You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2014/12/05 15:07:02 UTC

[01/52] [abbrv] incubator-ignite git commit: # Renaming

Repository: incubator-ignite
Updated Branches:
  refs/heads/master b7a633832 -> 12837f35b


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryStatistics.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryStatistics.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryStatistics.java
deleted file mode 100644
index 3ba21f0..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryStatistics.java
+++ /dev/null
@@ -1,639 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.internal;
-
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.spi.discovery.tcp.messages.*;
-import org.gridgain.grid.util.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-/**
- * Statistics for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
- */
-public class GridTcpDiscoveryStatistics {
-    /** Join started timestamp. */
-    private long joinStartedTs;
-
-    /** Join finished timestamp. */
-    private long joinFinishedTs;
-
-    /** Coordinator since timestamp. */
-    private final AtomicLong crdSinceTs = new AtomicLong();
-
-    /** Joined nodes count. */
-    private int joinedNodesCnt;
-
-    /** Failed nodes count. */
-    private int failedNodesCnt;
-
-    /** Left nodes count. */
-    private int leftNodesCnt;
-
-    /** Ack timeouts count. */
-    private int ackTimeoutsCnt;
-
-    /** Socket timeouts count. */
-    private int sockTimeoutsCnt;
-
-    /** Received messages. */
-    @GridToStringInclude
-    private final Map<String, Integer> rcvdMsgs = new HashMap<>();
-
-    /** Processed messages. */
-    @GridToStringInclude
-    private final Map<String, Integer> procMsgs = new HashMap<>();
-
-    /** Average time taken to serialize messages. */
-    @GridToStringInclude
-    private final Map<String, Long> avgMsgsSndTimes = new HashMap<>();
-
-    /** Average time taken to serialize messages. */
-    @GridToStringInclude
-    private final Map<String, Long> maxMsgsSndTimes = new HashMap<>();
-
-    /** Sent messages. */
-    @GridToStringInclude
-    private final Map<String, Integer> sentMsgs = new HashMap<>();
-
-    /** Messages receive timestamps. */
-    private final Map<IgniteUuid, Long> msgsRcvTs = new GridBoundedLinkedHashMap<>(1024);
-
-    /** Messages processing start timestamps. */
-    private final Map<IgniteUuid, Long> msgsProcStartTs = new GridBoundedLinkedHashMap<>(1024);
-
-    /** Ring messages sent timestamps. */
-    private final Map<IgniteUuid, Long> ringMsgsSndTs = new GridBoundedLinkedHashMap<>(1024);
-
-    /** Average time messages is in queue. */
-    private long avgMsgQueueTime;
-
-    /** Max time messages is in queue. */
-    private long maxMsgQueueTime;
-
-    /** Total number of ring messages sent. */
-    private int ringMsgsSent;
-
-    /** Average time it takes for messages to pass the full ring. */
-    private long avgRingMsgTime;
-
-    /** Max time it takes for messages to pass the full ring. */
-    private long maxRingMsgTime;
-
-    /** Class name of ring message that required the biggest time for full ring traverse. */
-    private String maxRingTimeMsgCls;
-
-    /** Average message processing time. */
-    private long avgMsgProcTime;
-
-    /** Max message processing time. */
-    private long maxMsgProcTime;
-
-    /** Class name of the message that required the biggest time to process. */
-    private String maxProcTimeMsgCls;
-
-    /** Socket readers created count. */
-    private int sockReadersCreated;
-
-    /** Socket readers removed count. */
-    private int sockReadersRmv;
-
-    /** Average time it takes to initialize connection from another node. */
-    private long avgSrvSockInitTime;
-
-    /** Max time it takes to initialize connection from another node. */
-    private long maxSrvSockInitTime;
-
-    /** Number of outgoing connections established. */
-    private int clientSockCreatedCnt;
-
-    /** Average time it takes to connect to another node. */
-    private long avgClientSockInitTime;
-
-    /** Max time it takes to connect to another node. */
-    private long maxClientSockInitTime;
-
-    /** Pending messages registered count. */
-    private int pendingMsgsRegistered;
-
-    /** Pending messages discarded count. */
-    private int pendingMsgsDiscarded;
-
-    /**
-     * Increments joined nodes count.
-     */
-    public synchronized void onNodeJoined() {
-        joinedNodesCnt++;
-    }
-
-    /**
-     * Increments left nodes count.
-     */
-    public synchronized void onNodeLeft() {
-        leftNodesCnt++;
-    }
-
-    /**
-     * Increments failed nodes count.
-     */
-    public synchronized void onNodeFailed() {
-        failedNodesCnt++;
-    }
-
-    /**
-     * Increments ack timeouts count.
-     */
-    public synchronized void onAckTimeout() {
-        ackTimeoutsCnt++;
-    }
-
-    /**
-     * Increments socket timeouts count.
-     */
-    public synchronized void onSocketTimeout() {
-        sockTimeoutsCnt++;
-    }
-
-    /**
-     * Initializes coordinator since date (if needed).
-     */
-    public void onBecomingCoordinator() {
-        crdSinceTs.compareAndSet(0, U.currentTimeMillis());
-    }
-
-    /**
-     * Initializes join started timestamp.
-     */
-    public synchronized void onJoinStarted() {
-        joinStartedTs = U.currentTimeMillis();
-    }
-
-    /**
-     * Initializes join finished timestamp.
-     */
-    public synchronized void onJoinFinished() {
-        joinFinishedTs = U.currentTimeMillis();
-    }
-
-    /**
-     * @return Join started timestamp.
-     */
-    public synchronized long joinStarted() {
-        return joinStartedTs;
-    }
-
-    /**
-     * @return Join finished timestamp.
-     */
-    public synchronized long joinFinished() {
-        return joinFinishedTs;
-    }
-
-    /**
-     * Collects necessary stats for message received by SPI.
-     *
-     * @param msg Received message.
-     */
-    public synchronized void onMessageReceived(GridTcpDiscoveryAbstractMessage msg) {
-        assert msg != null;
-
-        Integer cnt = F.addIfAbsent(rcvdMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
-            @Override public Integer call() {
-                return 0;
-            }
-        });
-
-        assert cnt != null;
-
-        rcvdMsgs.put(msg.getClass().getSimpleName(), ++cnt);
-
-        msgsRcvTs.put(msg.id(), U.currentTimeMillis());
-    }
-
-    /**
-     * Collects necessary stats for message processed by SPI.
-     *
-     * @param msg Processed message.
-     */
-    public synchronized void onMessageProcessingStarted(GridTcpDiscoveryAbstractMessage msg) {
-        assert msg != null;
-
-        Integer cnt = F.addIfAbsent(procMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
-            @Override public Integer call() {
-                return 0;
-            }
-        });
-
-        assert cnt != null;
-
-        procMsgs.put(msg.getClass().getSimpleName(), ++cnt);
-
-        Long rcvdTs = msgsRcvTs.remove(msg.id());
-
-        if (rcvdTs != null) {
-            long duration = U.currentTimeMillis() - rcvdTs;
-
-            if (maxMsgQueueTime < duration)
-                maxMsgQueueTime = duration;
-
-            avgMsgQueueTime = (avgMsgQueueTime * (totalReceivedMessages() -1)) / totalProcessedMessages();
-        }
-
-        msgsProcStartTs.put(msg.id(), U.currentTimeMillis());
-    }
-
-    /**
-     * Collects necessary stats for message processed by SPI.
-     *
-     * @param msg Processed message.
-     */
-    public synchronized void onMessageProcessingFinished(GridTcpDiscoveryAbstractMessage msg) {
-        assert msg != null;
-
-        Long startTs = msgsProcStartTs.get(msg.id());
-
-        if (startTs != null) {
-            long duration = U.currentTimeMillis() - startTs;
-
-            avgMsgProcTime = (avgMsgProcTime * (totalProcessedMessages() - 1) + duration) / totalProcessedMessages();
-
-            if (duration > maxMsgProcTime) {
-                maxMsgProcTime = duration;
-
-                maxProcTimeMsgCls = msg.getClass().getSimpleName();
-            }
-
-            msgsProcStartTs.remove(msg.id());
-        }
-    }
-
-    /**
-     * Called by coordinator when ring message is sent.
-     *
-     * @param msg Sent message.
-     * @param time Time taken to serialize message.
-     */
-    public synchronized void onMessageSent(GridTcpDiscoveryAbstractMessage msg, long time) {
-        assert msg != null;
-        assert time >= 0;
-
-        if (crdSinceTs.get() > 0 &&
-            (msg instanceof GridTcpDiscoveryNodeAddedMessage) ||
-            (msg instanceof GridTcpDiscoveryNodeLeftMessage) ||
-            (msg instanceof GridTcpDiscoveryNodeFailedMessage)) {
-            ringMsgsSndTs.put(msg.id(), U.currentTimeMillis());
-
-            ringMsgsSent++;
-        }
-
-        Integer cnt = F.addIfAbsent(sentMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
-            @Override public Integer call() {
-                return 0;
-            }
-        });
-
-        assert cnt != null;
-
-        sentMsgs.put(msg.getClass().getSimpleName(), ++cnt);
-
-        Long avgTime = F.addIfAbsent(avgMsgsSndTimes, msg.getClass().getSimpleName(), new Callable<Long>() {
-            @Override public Long call() {
-                return 0L;
-            }
-        });
-
-        assert avgTime != null;
-
-        avgTime = (avgTime * (cnt - 1) + time) / cnt;
-
-        avgMsgsSndTimes.put(msg.getClass().getSimpleName(), avgTime);
-
-        Long maxTime = F.addIfAbsent(maxMsgsSndTimes, msg.getClass().getSimpleName(), new Callable<Long>() {
-            @Override public Long call() {
-                return 0L;
-            }
-        });
-
-        assert maxTime != null;
-
-        if (time > maxTime)
-            maxMsgsSndTimes.put(msg.getClass().getSimpleName(), time);
-    }
-
-    /**
-     * Called by coordinator when ring message makes full pass.
-     *
-     * @param msg Message.
-     */
-    public synchronized void onRingMessageReceived(GridTcpDiscoveryAbstractMessage msg) {
-        assert msg != null;
-
-        Long sentTs = ringMsgsSndTs.get(msg.id());
-
-        if (sentTs != null) {
-            long duration  = U.currentTimeMillis() - sentTs;
-
-            if (maxRingMsgTime < duration) {
-                maxRingMsgTime = duration;
-
-                maxRingTimeMsgCls = msg.getClass().getSimpleName();
-            }
-
-            if (ringMsgsSent != 0)
-                avgRingMsgTime = (avgRingMsgTime * (ringMsgsSent - 1) + duration) / ringMsgsSent;
-        }
-    }
-
-    /**
-     * Gets max time for ring message to make full pass.
-     *
-     * @return Max full pass time.
-     */
-    public synchronized long maxRingMessageTime() {
-        return maxRingMsgTime;
-    }
-
-    /**
-     * Gets class name of the message that took max time to make full pass.
-     *
-     * @return Message class name.
-     */
-    public synchronized String maxRingDurationMessageClass() {
-        return maxRingTimeMsgCls;
-    }
-
-    /**
-     * Gets class name of the message took max time to process.
-     *
-     * @return Message class name.
-     */
-    public synchronized String maxProcessingTimeMessageClass() {
-        return maxProcTimeMsgCls;
-    }
-
-    /**
-     * @param initTime Time socket was initialized in.
-     */
-    public synchronized void onServerSocketInitialized(long initTime) {
-        assert initTime >= 0;
-
-        if (maxSrvSockInitTime < initTime)
-            maxSrvSockInitTime = initTime;
-
-        avgSrvSockInitTime = (avgSrvSockInitTime * (sockReadersCreated - 1) + initTime) / sockReadersCreated;
-    }
-
-    /**
-     * @param initTime Time socket was initialized in.
-     */
-    public synchronized void onClientSocketInitialized(long initTime) {
-        assert initTime >= 0;
-
-        clientSockCreatedCnt++;
-
-        if (maxClientSockInitTime < initTime)
-            maxClientSockInitTime = initTime;
-
-        avgClientSockInitTime = (avgClientSockInitTime * (clientSockCreatedCnt - 1) + initTime) / clientSockCreatedCnt;
-    }
-
-    /**
-     * Increments pending messages registered count.
-     */
-    public synchronized void onPendingMessageRegistered() {
-        pendingMsgsRegistered++;
-    }
-
-    /**
-     * Increments pending messages discarded count.
-     */
-    public synchronized void onPendingMessageDiscarded() {
-        pendingMsgsDiscarded++;
-    }
-
-    /**
-     * Increments socket readers created count.
-     */
-    public synchronized void onSocketReaderCreated() {
-        sockReadersCreated++;
-    }
-
-    /**
-     * Increments socket readers removed count.
-     */
-    public synchronized void onSocketReaderRemoved() {
-        sockReadersRmv++;
-    }
-
-    /**
-     * Gets processed messages counts (grouped by type).
-     *
-     * @return Map containing message types and respective counts.
-     */
-    public synchronized Map<String, Integer> processedMessages() {
-        return new HashMap<>(procMsgs);
-    }
-
-    /**
-     * Gets received messages counts (grouped by type).
-     *
-     * @return Map containing message types and respective counts.
-     */
-    public synchronized Map<String, Integer> receivedMessages() {
-        return new HashMap<>(rcvdMsgs);
-    }
-
-    /**
-     * Gets max messages send time (grouped by type).
-     *
-     * @return Map containing messages types and max send times.
-     */
-    public synchronized Map<String, Long> maxMessagesSendTimes() {
-        return new HashMap<>(maxMsgsSndTimes);
-    }
-
-    /**
-     * Gets average messages send time (grouped by type).
-     *
-     * @return Map containing messages types and average send times.
-     */
-    public synchronized Map<String, Long> avgMessagesSendTimes() {
-        return new HashMap<>(avgMsgsSndTimes);
-    }
-
-    /**
-     * Gets total received messages count.
-     *
-     * @return Total received messages count.
-     */
-    public synchronized int totalReceivedMessages() {
-        return F.sumInt(receivedMessages().values());
-    }
-
-    /**
-     * Gets total processed messages count.
-     *
-     * @return Total processed messages count.
-     */
-    public synchronized int totalProcessedMessages() {
-        return F.sumInt(processedMessages().values());
-    }
-
-    /**
-     * Gets max message processing time.
-     *
-     * @return Max message processing time.
-     */
-    public synchronized long maxMessageProcessingTime(){
-        return maxMsgProcTime;
-    }
-
-    /**
-     * Gets average message processing time.
-     *
-     * @return Average message processing time.
-     */
-    public synchronized long avgMessageProcessingTime() {
-        return avgMsgProcTime;
-    }
-
-    /**
-     * Gets pending messages registered count.
-     *
-     * @return Pending messages registered count.
-     */
-    public synchronized long pendingMessagesRegistered() {
-        return pendingMsgsRegistered;
-    }
-
-    /**
-     * Gets pending messages discarded count.
-     *
-     * @return Pending messages registered count.
-     */
-    public synchronized long pendingMessagesDiscarded() {
-        return pendingMsgsDiscarded;
-    }
-
-    /**
-     * Gets nodes joined count.
-     *
-     * @return Nodes joined count.
-     */
-    public synchronized int joinedNodesCount() {
-        return joinedNodesCnt;
-    }
-
-    /**
-     * Gets nodes left count.
-     *
-     * @return Nodes left count.
-     */
-    public synchronized int leftNodesCount() {
-        return leftNodesCnt;
-    }
-
-    /**
-     * Gets failed nodes count.
-     *
-     * @return Failed nodes count.
-     */
-    public synchronized int failedNodesCount() {
-        return failedNodesCnt;
-    }
-
-    /**
-     * @return Ack timeouts count.
-     */
-    public synchronized int ackTimeoutsCount() {
-        return ackTimeoutsCnt;
-    }
-
-    /**
-     * @return Socket timeouts count.
-     */
-    public synchronized int socketTimeoutsCount() {
-        return sockTimeoutsCnt;
-    }
-
-    /**
-     * Gets socket readers created count.
-     *
-     * @return Socket readers created count.
-     */
-    public synchronized int socketReadersCreated() {
-        return sockReadersCreated;
-    }
-
-    /**
-     * Gets socket readers removed count.
-     *
-     * @return Socket readers removed count.
-     */
-    public synchronized int socketReadersRemoved() {
-        return sockReadersRmv;
-    }
-
-    /**
-     * Gets time local node has been coordinator since.
-     *
-     * @return Coordinator since timestamp.
-     */
-    public long coordinatorSinceTimestamp() {
-        return crdSinceTs.get();
-    }
-
-    /**
-     * Clears statistics.
-     */
-    public synchronized void clear() {
-        ackTimeoutsCnt = 0;
-        avgClientSockInitTime = 0;
-        avgMsgProcTime = 0;
-        avgMsgQueueTime = 0;
-        avgMsgsSndTimes.clear();
-        avgRingMsgTime = 0;
-        avgSrvSockInitTime = 0;
-        clientSockCreatedCnt = 0;
-        crdSinceTs.set(0);
-        failedNodesCnt = 0;
-        joinedNodesCnt = 0;
-        joinFinishedTs = 0;
-        joinStartedTs = 0;
-        leftNodesCnt = 0;
-        maxClientSockInitTime = 0;
-        maxMsgProcTime = 0;
-        maxMsgQueueTime = 0;
-        maxMsgsSndTimes.clear();
-        maxProcTimeMsgCls = null;
-        maxRingMsgTime = 0;
-        maxRingTimeMsgCls = null;
-        maxSrvSockInitTime = 0;
-        pendingMsgsDiscarded = 0;
-        pendingMsgsRegistered = 0;
-        procMsgs.clear();
-        rcvdMsgs.clear();
-        ringMsgsSent = 0;
-        sentMsgs.clear();
-        sockReadersCreated = 0;
-        sockReadersRmv = 0;
-        sockTimeoutsCnt = 0;
-    }
-
-    /** {@inheritDoc} */
-    @Override public synchronized String toString() {
-        return S.toString(GridTcpDiscoveryStatistics.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNode.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNode.java
new file mode 100644
index 0000000..fe2d419
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNode.java
@@ -0,0 +1,443 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.internal;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.product.*;
+import org.gridgain.grid.kernal.*;
+import org.gridgain.grid.spi.discovery.*;
+import org.gridgain.grid.util.lang.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import static org.gridgain.grid.kernal.GridNodeAttributes.*;
+
+/**
+ * Node for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
+ * <p>
+ * <strong>This class is not intended for public use</strong> and has been made
+ * <tt>public</tt> due to certain limitations of Java technology.
+ */
+public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements ClusterNode,
+    Comparable<TcpDiscoveryNode>, Externalizable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Node ID. */
+    private UUID id;
+
+    /** Consistent ID. */
+    private Object consistentId;
+
+    /** Node attributes. */
+    @GridToStringExclude
+    private Map<String, Object> attrs;
+
+    /** Internal discovery addresses as strings. */
+    @GridToStringInclude
+    private Collection<String> addrs;
+
+    /** Internal discovery host names as strings. */
+    private Collection<String> hostNames;
+
+    /** */
+    @GridToStringInclude
+    private Collection<InetSocketAddress> sockAddrs;
+
+    /** */
+    @GridToStringInclude
+    private int discPort;
+
+    /** Node metrics. */
+    @GridToStringExclude
+    private volatile ClusterNodeMetrics metrics;
+
+    /** Node order in the topology. */
+    private volatile long order;
+
+    /** Node order in the topology (internal). */
+    private volatile long intOrder;
+
+    /** The most recent time when heartbeat message was received from the node. */
+    @GridToStringExclude
+    private volatile long lastUpdateTime = U.currentTimeMillis();
+
+    /** Metrics provider (transient). */
+    @GridToStringExclude
+    private DiscoveryMetricsProvider metricsProvider;
+
+    /** Visible flag (transient). */
+    @GridToStringExclude
+    private boolean visible;
+
+    /** Grid local node flag (transient). */
+    private boolean loc;
+
+    /** Version. */
+    private IgniteProductVersion ver;
+
+    /** Alive check (used by clients). */
+    @GridToStringExclude
+    private transient int aliveCheck;
+
+    /** Client router node ID. */
+    @GridToStringExclude
+    private UUID clientRouterNodeId;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryNode() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param id Node Id.
+     * @param addrs Addresses.
+     * @param hostNames Host names.
+     * @param discPort Port.
+     * @param metricsProvider Metrics provider.
+     * @param ver Version.
+     */
+    public TcpDiscoveryNode(UUID id, Collection<String> addrs, Collection<String> hostNames, int discPort,
+                            DiscoveryMetricsProvider metricsProvider, IgniteProductVersion ver) {
+        assert id != null;
+        assert !F.isEmpty(addrs);
+        assert metricsProvider != null;
+        assert ver != null;
+
+        this.id = id;
+        this.addrs = addrs;
+        this.hostNames = hostNames;
+        this.discPort = discPort;
+        this.metricsProvider = metricsProvider;
+        this.ver = ver;
+
+        consistentId = U.consistentId(addrs, discPort);
+
+        metrics = metricsProvider.getMetrics();
+        sockAddrs = U.toSocketAddresses(this, discPort);
+    }
+
+    /** {@inheritDoc} */
+    @Override public UUID id() {
+        return id;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Object consistentId() {
+        return consistentId;
+    }
+
+    /** {@inheritDoc} */
+    @SuppressWarnings("unchecked")
+    @Override public <T> T attribute(String name) {
+        // Even though discovery SPI removes this attribute after authentication, keep this check for safety.
+        if (GridNodeAttributes.ATTR_SECURITY_CREDENTIALS.equals(name))
+            return null;
+
+        return (T)attrs.get(name);
+    }
+
+    /** {@inheritDoc} */
+    @Override public Map<String, Object> attributes() {
+        // Even though discovery SPI removes this attribute after authentication, keep this check for safety.
+        return F.view(attrs, new IgnitePredicate<String>() {
+            @Override public boolean apply(String s) {
+                return !GridNodeAttributes.ATTR_SECURITY_CREDENTIALS.equals(s);
+            }
+        });
+    }
+
+    /**
+     * Sets node attributes.
+     *
+     * @param attrs Node attributes.
+     */
+    public void setAttributes(Map<String, Object> attrs) {
+        this.attrs = U.sealMap(attrs);
+    }
+
+    /**
+     * Gets node attributes without filtering.
+     *
+     * @return Node attributes without filtering.
+     */
+    public Map<String, Object> getAttributes() {
+        return attrs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public ClusterNodeMetrics metrics() {
+        if (metricsProvider != null)
+            metrics = metricsProvider.getMetrics();
+
+        return metrics;
+    }
+
+    /**
+     * Sets node metrics.
+     *
+     * @param metrics Node metrics.
+     */
+    public void setMetrics(ClusterNodeMetrics metrics) {
+        assert metrics != null;
+
+        this.metrics = metrics;
+    }
+
+    /**
+     * @return Internal order.
+     */
+    public long internalOrder() {
+        return intOrder;
+    }
+
+    /**
+     * @param intOrder Internal order of the node.
+     */
+    public void internalOrder(long intOrder) {
+        assert intOrder > 0;
+
+        this.intOrder = intOrder;
+    }
+
+    /**
+     * @return Order.
+     */
+    @Override public long order() {
+        return order;
+    }
+
+    /**
+     * @param order Order of the node.
+     */
+    public void order(long order) {
+        assert order >= 0 : "Order is invalid: " + this;
+
+        this.order = order;
+    }
+
+    /** {@inheritDoc} */
+    @Override public IgniteProductVersion version() {
+        return ver;
+    }
+
+    /**
+     * @param ver Version.
+     */
+    public void version(IgniteProductVersion ver) {
+        assert ver != null;
+
+        this.ver = ver;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<String> addresses() {
+        return addrs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isLocal() {
+        return loc;
+    }
+
+    /**
+     * @param loc Grid local node flag.
+     */
+    public void local(boolean loc) {
+        this.loc = loc;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isDaemon() {
+        return "true".equalsIgnoreCase((String)attribute(ATTR_DAEMON));
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<String> hostNames() {
+        return hostNames;
+    }
+
+    /**
+     * @return Discovery port.
+     */
+    public int discoveryPort() {
+        return discPort;
+    }
+
+    /**
+     * @return Addresses that could be used by discovery.
+     */
+    public Collection<InetSocketAddress> socketAddresses() {
+        return sockAddrs;
+    }
+
+    /**
+     * Gets node last update time.
+     *
+     * @return Time of the last heartbeat.
+     */
+    public long lastUpdateTime() {
+        return lastUpdateTime;
+    }
+
+    /**
+     * Sets node last update.
+     *
+     * @param lastUpdateTime Time of last metrics update.
+     */
+    public void lastUpdateTime(long lastUpdateTime) {
+        assert lastUpdateTime > 0;
+
+        this.lastUpdateTime = lastUpdateTime;
+    }
+
+    /**
+     * Gets visible flag.
+     *
+     * @return {@code true} if node is in visible state.
+     */
+    public boolean visible() {
+        return visible;
+    }
+
+    /**
+     * Sets visible flag.
+     *
+     * @param visible {@code true} if node is in visible state.
+     */
+    public void visible(boolean visible) {
+        this.visible = visible;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isClient() {
+        return clientRouterNodeId != null;
+    }
+
+    /**
+     * Decrements alive check value and returns new one.
+     *
+     * @return Alive check value.
+     */
+    public int decrementAliveCheck() {
+        assert isClient();
+
+        return --aliveCheck;
+    }
+
+    /**
+     * @param aliveCheck Alive check value.
+     */
+    public void aliveCheck(int aliveCheck) {
+        assert isClient();
+
+        this.aliveCheck = aliveCheck;
+    }
+
+    /**
+     * @return Client router node ID.
+     */
+    public UUID clientRouterNodeId() {
+        return clientRouterNodeId;
+    }
+
+    /**
+     * @param clientRouterNodeId Client router node ID.
+     */
+    public void clientRouterNodeId(UUID clientRouterNodeId) {
+        this.clientRouterNodeId = clientRouterNodeId;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int compareTo(@Nullable TcpDiscoveryNode node) {
+        if (node == null)
+            return 1;
+
+        if (internalOrder() == node.internalOrder())
+            assert id().equals(node.id()) : "Duplicate order [this=" + this + ", other=" + node + ']';
+
+        return internalOrder() < node.internalOrder() ? -1 : internalOrder() > node.internalOrder() ? 1 :
+            id().compareTo(node.id());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        U.writeUuid(out, id);
+        U.writeMap(out, attrs);
+        U.writeCollection(out, addrs);
+        U.writeCollection(out, hostNames);
+        out.writeInt(discPort);
+
+        byte[] mtr = null;
+
+        if (metrics != null) {
+            mtr = new byte[DiscoveryMetricsHelper.METRICS_SIZE];
+
+            DiscoveryMetricsHelper.serialize(mtr, 0, metrics);
+        }
+
+        U.writeByteArray(out, mtr);
+
+        out.writeLong(order);
+        out.writeLong(intOrder);
+        out.writeObject(ver);
+        U.writeUuid(out, clientRouterNodeId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        id = U.readUuid(in);
+
+        attrs = U.sealMap(U.<String, Object>readMap(in));
+        addrs = U.readCollection(in);
+        hostNames = U.readCollection(in);
+        discPort = in.readInt();
+
+        sockAddrs = U.toSocketAddresses(this, discPort);
+
+        consistentId = U.consistentId(addrs, discPort);
+
+        byte[] mtr = U.readByteArray(in);
+
+        if (mtr != null)
+            metrics = DiscoveryMetricsHelper.deserialize(mtr, 0);
+
+        order = in.readLong();
+        intOrder = in.readLong();
+        ver = (IgniteProductVersion)in.readObject();
+        clientRouterNodeId = U.readUuid(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        return id.hashCode();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        return F.eqNodes(this, o);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryNode.class, this, "isClient", isClient());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
new file mode 100644
index 0000000..b9093c1
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
@@ -0,0 +1,636 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.internal;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+import java.util.concurrent.locks.*;
+
+/**
+ * Convenient way to represent topology for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}
+ */
+public class TcpDiscoveryNodesRing {
+    /** Visible nodes filter. */
+    private static final IgnitePredicate<TcpDiscoveryNode> VISIBLE_NODES = new P1<TcpDiscoveryNode>() {
+        @Override public boolean apply(TcpDiscoveryNode node) {
+            return node.visible();
+        }
+    };
+
+    /** Client nodes filter. */
+    private static final PN CLIENT_NODES = new PN() {
+        @Override public boolean apply(ClusterNode node) {
+            return node.isClient();
+        }
+    };
+
+    /** Local node. */
+    private TcpDiscoveryNode locNode;
+
+    /** All nodes in topology. */
+    @GridToStringInclude
+    private NavigableSet<TcpDiscoveryNode> nodes = new TreeSet<>();
+
+    /** All started nodes. */
+    @GridToStringExclude
+    private Map<UUID, TcpDiscoveryNode> nodesMap = new HashMap<>();
+
+    /** Current topology version */
+    private long topVer;
+
+    /** */
+    private long nodeOrder;
+
+    /** Lock. */
+    @GridToStringExclude
+    private final ReadWriteLock rwLock = new ReentrantReadWriteLock();
+
+    /**
+     * Sets local node.
+     *
+     * @param locNode Local node.
+     */
+    public void localNode(TcpDiscoveryNode locNode) {
+        assert locNode != null;
+
+        rwLock.writeLock().lock();
+
+        try {
+            this.locNode = locNode;
+
+            clear();
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Gets all nodes in the topology.
+     *
+     * @return Collection of all nodes.
+     */
+    public Collection<TcpDiscoveryNode> allNodes() {
+        return nodes();
+    }
+
+    /**
+     * Gets visible nodes in the topology.
+     *
+     * @return Collection of visible nodes.
+     */
+    public Collection<TcpDiscoveryNode> visibleNodes() {
+        return nodes(VISIBLE_NODES);
+    }
+
+    /**
+     * Gets remote nodes.
+     *
+     * @return Collection of remote nodes in grid.
+     */
+    public Collection<TcpDiscoveryNode> remoteNodes() {
+        return nodes(F.remoteNodes(locNode.id()));
+    }
+
+    /**
+     * Gets visible remote nodes in the topology.
+     *
+     * @return Collection of visible remote nodes.
+     */
+    public Collection<TcpDiscoveryNode> visibleRemoteNodes() {
+        return nodes(VISIBLE_NODES, F.remoteNodes(locNode.id()));
+    }
+
+    /**
+     * @return Client nodes.
+     */
+    public Collection<TcpDiscoveryNode> clientNodes() {
+        return nodes(CLIENT_NODES);
+    }
+
+    /**
+     * Checks whether the topology has remote nodes in.
+     *
+     * @return {@code true} if the topology has remote nodes in.
+     */
+    public boolean hasRemoteNodes() {
+        rwLock.readLock().lock();
+
+        try {
+            return nodes.size() > 1;
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Adds node to topology, also initializes node last update time with current
+     * system time.
+     *
+     * @param node Node to add.
+     * @return {@code true} if such node was added and did not present previously in the topology.
+     */
+    public boolean add(TcpDiscoveryNode node) {
+        assert node != null;
+        assert node.internalOrder() > 0;
+
+        rwLock.writeLock().lock();
+
+        try {
+            if (nodesMap.containsKey(node.id()))
+                return false;
+
+            assert node.internalOrder() > maxInternalOrder() : "Adding node to the middle of the ring " +
+                "[ring=" + this + ", node=" + node + ']';
+
+            nodesMap.put(node.id(), node);
+
+            nodes = new TreeSet<>(nodes);
+
+            node.lastUpdateTime(U.currentTimeMillis());
+
+            nodes.add(node);
+
+            nodeOrder = node.internalOrder();
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+
+        return true;
+    }
+
+    /**
+     * @return Max internal order.
+     */
+    public long maxInternalOrder() {
+        rwLock.readLock().lock();
+
+        try {
+            TcpDiscoveryNode last = nodes.last();
+
+            return last != null ? last.internalOrder() : -1;
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Restores topology from parameters values.
+     * <p>
+     * This method is called when new node receives topology from coordinator.
+     * In this case all nodes received are remote for local.
+     * <p>
+     * Also initializes nodes last update time with current system time.
+     *
+     * @param nodes List of remote nodes.
+     * @param topVer Topology version.
+     */
+    public void restoreTopology(Iterable<TcpDiscoveryNode> nodes, long topVer) {
+        assert !F.isEmpty(nodes);
+        assert topVer > 0;
+
+        rwLock.writeLock().lock();
+
+        try {
+            locNode.internalOrder(topVer);
+
+            clear();
+
+            boolean firstAdd = true;
+
+            for (TcpDiscoveryNode node : nodes) {
+                if (nodesMap.containsKey(node.id()))
+                    continue;
+
+                nodesMap.put(node.id(), node);
+
+                if (firstAdd) {
+                    this.nodes = new TreeSet<>(this.nodes);
+
+                    firstAdd = false;
+                }
+
+                node.lastUpdateTime(U.currentTimeMillis());
+
+                this.nodes.add(node);
+            }
+
+            nodeOrder = topVer;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Finds node by ID.
+     *
+     * @param nodeId Node id to find.
+     * @return Node with ID provided or {@code null} if not found.
+     */
+    @Nullable public TcpDiscoveryNode node(UUID nodeId) {
+        assert nodeId != null;
+
+        rwLock.readLock().lock();
+
+        try {
+            return nodesMap.get(nodeId);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Removes node from the topology.
+     *
+     * @param nodeId ID of the node to remove.
+     * @return {@code true} if node was removed.
+     */
+    @Nullable public TcpDiscoveryNode removeNode(UUID nodeId) {
+        assert nodeId != null;
+        assert !locNode.id().equals(nodeId);
+
+        rwLock.writeLock().lock();
+
+        try {
+            TcpDiscoveryNode rmv = nodesMap.remove(nodeId);
+
+            if (rmv != null) {
+                nodes = new TreeSet<>(nodes);
+
+                nodes.remove(rmv);
+            }
+
+            return rmv;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Removes nodes from the topology.
+     *
+     * @param nodeIds IDs of the nodes to remove.
+     * @return Collection of removed nodes.
+     */
+    public Collection<TcpDiscoveryNode> removeNodes(Collection<UUID> nodeIds) {
+        assert !F.isEmpty(nodeIds);
+
+        rwLock.writeLock().lock();
+
+        try {
+            boolean firstRmv = true;
+
+            Collection<TcpDiscoveryNode> res = null;
+
+            for (UUID id : nodeIds) {
+                TcpDiscoveryNode rmv = nodesMap.remove(id);
+
+                if (rmv != null) {
+                    if (firstRmv) {
+                        nodes = new TreeSet<>(nodes);
+
+                        res = new ArrayList<>(nodeIds.size());
+
+                        firstRmv = false;
+                    }
+
+                    nodes.remove(rmv);
+
+                    res.add(rmv);
+                }
+            }
+
+            return res == null ? Collections.<TcpDiscoveryNode>emptyList() : res;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Removes all remote nodes, leaves only local node.
+     * <p>
+     * This should be called when SPI should be disconnected from topology and
+     * reconnected back after.
+     */
+    public void clear() {
+        rwLock.writeLock().lock();
+
+        try {
+            nodes = new TreeSet<>();
+
+            if (locNode != null)
+                nodes.add(locNode);
+
+            nodesMap = new HashMap<>();
+
+            if (locNode != null)
+                nodesMap.put(locNode.id(), locNode);
+
+            nodeOrder = 0;
+
+            topVer = 0;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Finds coordinator in the topology.
+     *
+     * @return Coordinator node that gives versions to topology (node with the smallest order).
+     */
+    @Nullable public TcpDiscoveryNode coordinator() {
+        rwLock.readLock().lock();
+
+        try {
+            if (F.isEmpty(nodes))
+                return null;
+
+            return coordinator(null);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Finds coordinator in the topology filtering excluded nodes from the search.
+     * <p>
+     * This may be used when handling current coordinator leave or failure.
+     *
+     * @param excluded Nodes to exclude from the search (optional).
+     * @return Coordinator node among remaining nodes or {@code null} if all nodes are excluded.
+     */
+    @Nullable public TcpDiscoveryNode coordinator(@Nullable Collection<TcpDiscoveryNode> excluded) {
+        rwLock.readLock().lock();
+
+        try {
+            Collection<TcpDiscoveryNode> filtered = serverNodes(excluded);
+
+            if (F.isEmpty(filtered))
+                return null;
+
+            return Collections.min(filtered);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Finds next node in the topology.
+     *
+     * @return Next node.
+     */
+    @Nullable public TcpDiscoveryNode nextNode() {
+        rwLock.readLock().lock();
+
+        try {
+            if (nodes.size() < 2)
+                return null;
+
+            return nextNode(null);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Finds next node in the topology filtering excluded nodes from search.
+     * <p>
+     * This may be used when detecting and handling nodes failure.
+     *
+     * @param excluded Nodes to exclude from the search (optional). If provided,
+     * cannot contain local node.
+     * @return Next node or {@code null} if all nodes were filtered out or
+     * topology contains less than two nodes.
+     */
+    @Nullable public TcpDiscoveryNode nextNode(@Nullable Collection<TcpDiscoveryNode> excluded) {
+        assert excluded == null || excluded.isEmpty() || !excluded.contains(locNode);
+
+        rwLock.readLock().lock();
+
+        try {
+            Collection<TcpDiscoveryNode> filtered = serverNodes(excluded);
+
+            if (filtered.size() < 2)
+                return null;
+
+            Iterator<TcpDiscoveryNode> iter = filtered.iterator();
+
+            while (iter.hasNext()) {
+                TcpDiscoveryNode node = iter.next();
+
+                if (locNode.equals(node))
+                    break;
+            }
+
+            return iter.hasNext() ? iter.next() : F.first(filtered);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Finds previous node in the topology.
+     *
+     * @return Previous node.
+     */
+    @Nullable public TcpDiscoveryNode previousNode() {
+        rwLock.readLock().lock();
+
+        try {
+            if (nodes.size() < 2)
+                return null;
+
+            return previousNode(null);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Finds previous node in the topology filtering excluded nodes from search.
+     *
+     * @param excluded Nodes to exclude from the search (optional). If provided,
+     * cannot contain local node.
+     * @return Previous node or {@code null} if all nodes were filtered out or
+     * topology contains less than two nodes.
+     */
+    @Nullable public TcpDiscoveryNode previousNode(@Nullable Collection<TcpDiscoveryNode> excluded) {
+        assert excluded == null || excluded.isEmpty() || !excluded.contains(locNode);
+
+        rwLock.readLock().lock();
+
+        try {
+            Collection<TcpDiscoveryNode> filtered = serverNodes(excluded);
+
+            if (filtered.size() < 2)
+                return null;
+
+            Iterator<TcpDiscoveryNode> iter = filtered.iterator();
+
+            while (iter.hasNext()) {
+                TcpDiscoveryNode node = iter.next();
+
+                if (locNode.equals(node))
+                    break;
+            }
+
+            return iter.hasNext() ? iter.next() : F.first(filtered);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Gets current topology version.
+     *
+     * @return Current topology version.
+     */
+    public long topologyVersion() {
+        rwLock.readLock().lock();
+
+        try {
+            return topVer;
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Sets new topology version.
+     *
+     * @param topVer New topology version (should be greater than current, otherwise no-op).
+     * @return {@code True} if topology has been changed.
+     */
+    public boolean topologyVersion(long topVer) {
+        rwLock.writeLock().lock();
+
+        try {
+            if (this.topVer < topVer) {
+                this.topVer = topVer;
+
+                return true;
+            }
+
+            U.debug("KARAMBA [old=" + this.topVer + ", new=" + topVer + ']');
+
+            return false;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Increments topology version and gets new value.
+     *
+     * @return Topology version (incremented).
+     */
+    public long incrementTopologyVersion() {
+        rwLock.writeLock().lock();
+
+        try {
+            return ++topVer;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Increments topology version and gets new value.
+     *
+     * @return Topology version (incremented).
+     */
+    public long nextNodeOrder() {
+        rwLock.writeLock().lock();
+
+        try {
+            if (nodeOrder == 0) {
+                TcpDiscoveryNode last = nodes.last();
+
+                assert last != null;
+
+                nodeOrder = last.internalOrder();
+            }
+
+            return ++nodeOrder;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * @param p Filters.
+     * @return Unmodifiable collection of nodes.
+     */
+    private Collection<TcpDiscoveryNode> nodes(IgnitePredicate<? super TcpDiscoveryNode>... p) {
+        rwLock.readLock().lock();
+
+        try {
+            List<TcpDiscoveryNode> list = U.arrayList(nodes, p);
+
+            return Collections.unmodifiableCollection(list);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Gets server nodes from topology.
+     *
+     * @param excluded Nodes to exclude from the search (optional).
+     * @return Collection of server nodes.
+     */
+    private Collection<TcpDiscoveryNode> serverNodes(@Nullable final Collection<TcpDiscoveryNode> excluded) {
+        final boolean excludedEmpty = F.isEmpty(excluded);
+
+        return F.view(nodes, new P1<TcpDiscoveryNode>() {
+            @Override public boolean apply(TcpDiscoveryNode node) {
+                return !node.isClient() && (excludedEmpty || !excluded.contains(node));
+            }
+        });
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        rwLock.readLock().lock();
+
+        try {
+            return S.toString(TcpDiscoveryNodesRing.class, this);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoverySpiState.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoverySpiState.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoverySpiState.java
new file mode 100644
index 0000000..7ed3e0a
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoverySpiState.java
@@ -0,0 +1,45 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.internal;
+
+/**
+ * State of local node {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
+ */
+public enum TcpDiscoverySpiState {
+    /** */
+    DISCONNECTED,
+
+    /** */
+    CONNECTING,
+
+    /** */
+    CONNECTED,
+
+    /** */
+    DISCONNECTING,
+
+    /** */
+    STOPPING,
+
+    /** */
+    LEFT,
+
+    /** */
+    DUPLICATE_ID,
+
+    /** */
+    AUTH_FAILED,
+
+    /** */
+    CHECK_FAILED,
+
+    /** */
+    LOOPBACK_PROBLEM
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
new file mode 100644
index 0000000..1155304
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
@@ -0,0 +1,639 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.internal;
+
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.spi.discovery.tcp.messages.*;
+import org.gridgain.grid.util.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+/**
+ * Statistics for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
+ */
+public class TcpDiscoveryStatistics {
+    /** Join started timestamp. */
+    private long joinStartedTs;
+
+    /** Join finished timestamp. */
+    private long joinFinishedTs;
+
+    /** Coordinator since timestamp. */
+    private final AtomicLong crdSinceTs = new AtomicLong();
+
+    /** Joined nodes count. */
+    private int joinedNodesCnt;
+
+    /** Failed nodes count. */
+    private int failedNodesCnt;
+
+    /** Left nodes count. */
+    private int leftNodesCnt;
+
+    /** Ack timeouts count. */
+    private int ackTimeoutsCnt;
+
+    /** Socket timeouts count. */
+    private int sockTimeoutsCnt;
+
+    /** Received messages. */
+    @GridToStringInclude
+    private final Map<String, Integer> rcvdMsgs = new HashMap<>();
+
+    /** Processed messages. */
+    @GridToStringInclude
+    private final Map<String, Integer> procMsgs = new HashMap<>();
+
+    /** Average time taken to serialize messages. */
+    @GridToStringInclude
+    private final Map<String, Long> avgMsgsSndTimes = new HashMap<>();
+
+    /** Average time taken to serialize messages. */
+    @GridToStringInclude
+    private final Map<String, Long> maxMsgsSndTimes = new HashMap<>();
+
+    /** Sent messages. */
+    @GridToStringInclude
+    private final Map<String, Integer> sentMsgs = new HashMap<>();
+
+    /** Messages receive timestamps. */
+    private final Map<IgniteUuid, Long> msgsRcvTs = new GridBoundedLinkedHashMap<>(1024);
+
+    /** Messages processing start timestamps. */
+    private final Map<IgniteUuid, Long> msgsProcStartTs = new GridBoundedLinkedHashMap<>(1024);
+
+    /** Ring messages sent timestamps. */
+    private final Map<IgniteUuid, Long> ringMsgsSndTs = new GridBoundedLinkedHashMap<>(1024);
+
+    /** Average time messages is in queue. */
+    private long avgMsgQueueTime;
+
+    /** Max time messages is in queue. */
+    private long maxMsgQueueTime;
+
+    /** Total number of ring messages sent. */
+    private int ringMsgsSent;
+
+    /** Average time it takes for messages to pass the full ring. */
+    private long avgRingMsgTime;
+
+    /** Max time it takes for messages to pass the full ring. */
+    private long maxRingMsgTime;
+
+    /** Class name of ring message that required the biggest time for full ring traverse. */
+    private String maxRingTimeMsgCls;
+
+    /** Average message processing time. */
+    private long avgMsgProcTime;
+
+    /** Max message processing time. */
+    private long maxMsgProcTime;
+
+    /** Class name of the message that required the biggest time to process. */
+    private String maxProcTimeMsgCls;
+
+    /** Socket readers created count. */
+    private int sockReadersCreated;
+
+    /** Socket readers removed count. */
+    private int sockReadersRmv;
+
+    /** Average time it takes to initialize connection from another node. */
+    private long avgSrvSockInitTime;
+
+    /** Max time it takes to initialize connection from another node. */
+    private long maxSrvSockInitTime;
+
+    /** Number of outgoing connections established. */
+    private int clientSockCreatedCnt;
+
+    /** Average time it takes to connect to another node. */
+    private long avgClientSockInitTime;
+
+    /** Max time it takes to connect to another node. */
+    private long maxClientSockInitTime;
+
+    /** Pending messages registered count. */
+    private int pendingMsgsRegistered;
+
+    /** Pending messages discarded count. */
+    private int pendingMsgsDiscarded;
+
+    /**
+     * Increments joined nodes count.
+     */
+    public synchronized void onNodeJoined() {
+        joinedNodesCnt++;
+    }
+
+    /**
+     * Increments left nodes count.
+     */
+    public synchronized void onNodeLeft() {
+        leftNodesCnt++;
+    }
+
+    /**
+     * Increments failed nodes count.
+     */
+    public synchronized void onNodeFailed() {
+        failedNodesCnt++;
+    }
+
+    /**
+     * Increments ack timeouts count.
+     */
+    public synchronized void onAckTimeout() {
+        ackTimeoutsCnt++;
+    }
+
+    /**
+     * Increments socket timeouts count.
+     */
+    public synchronized void onSocketTimeout() {
+        sockTimeoutsCnt++;
+    }
+
+    /**
+     * Initializes coordinator since date (if needed).
+     */
+    public void onBecomingCoordinator() {
+        crdSinceTs.compareAndSet(0, U.currentTimeMillis());
+    }
+
+    /**
+     * Initializes join started timestamp.
+     */
+    public synchronized void onJoinStarted() {
+        joinStartedTs = U.currentTimeMillis();
+    }
+
+    /**
+     * Initializes join finished timestamp.
+     */
+    public synchronized void onJoinFinished() {
+        joinFinishedTs = U.currentTimeMillis();
+    }
+
+    /**
+     * @return Join started timestamp.
+     */
+    public synchronized long joinStarted() {
+        return joinStartedTs;
+    }
+
+    /**
+     * @return Join finished timestamp.
+     */
+    public synchronized long joinFinished() {
+        return joinFinishedTs;
+    }
+
+    /**
+     * Collects necessary stats for message received by SPI.
+     *
+     * @param msg Received message.
+     */
+    public synchronized void onMessageReceived(GridTcpDiscoveryAbstractMessage msg) {
+        assert msg != null;
+
+        Integer cnt = F.addIfAbsent(rcvdMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
+            @Override public Integer call() {
+                return 0;
+            }
+        });
+
+        assert cnt != null;
+
+        rcvdMsgs.put(msg.getClass().getSimpleName(), ++cnt);
+
+        msgsRcvTs.put(msg.id(), U.currentTimeMillis());
+    }
+
+    /**
+     * Collects necessary stats for message processed by SPI.
+     *
+     * @param msg Processed message.
+     */
+    public synchronized void onMessageProcessingStarted(GridTcpDiscoveryAbstractMessage msg) {
+        assert msg != null;
+
+        Integer cnt = F.addIfAbsent(procMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
+            @Override public Integer call() {
+                return 0;
+            }
+        });
+
+        assert cnt != null;
+
+        procMsgs.put(msg.getClass().getSimpleName(), ++cnt);
+
+        Long rcvdTs = msgsRcvTs.remove(msg.id());
+
+        if (rcvdTs != null) {
+            long duration = U.currentTimeMillis() - rcvdTs;
+
+            if (maxMsgQueueTime < duration)
+                maxMsgQueueTime = duration;
+
+            avgMsgQueueTime = (avgMsgQueueTime * (totalReceivedMessages() -1)) / totalProcessedMessages();
+        }
+
+        msgsProcStartTs.put(msg.id(), U.currentTimeMillis());
+    }
+
+    /**
+     * Collects necessary stats for message processed by SPI.
+     *
+     * @param msg Processed message.
+     */
+    public synchronized void onMessageProcessingFinished(GridTcpDiscoveryAbstractMessage msg) {
+        assert msg != null;
+
+        Long startTs = msgsProcStartTs.get(msg.id());
+
+        if (startTs != null) {
+            long duration = U.currentTimeMillis() - startTs;
+
+            avgMsgProcTime = (avgMsgProcTime * (totalProcessedMessages() - 1) + duration) / totalProcessedMessages();
+
+            if (duration > maxMsgProcTime) {
+                maxMsgProcTime = duration;
+
+                maxProcTimeMsgCls = msg.getClass().getSimpleName();
+            }
+
+            msgsProcStartTs.remove(msg.id());
+        }
+    }
+
+    /**
+     * Called by coordinator when ring message is sent.
+     *
+     * @param msg Sent message.
+     * @param time Time taken to serialize message.
+     */
+    public synchronized void onMessageSent(GridTcpDiscoveryAbstractMessage msg, long time) {
+        assert msg != null;
+        assert time >= 0;
+
+        if (crdSinceTs.get() > 0 &&
+            (msg instanceof GridTcpDiscoveryNodeAddedMessage) ||
+            (msg instanceof GridTcpDiscoveryNodeLeftMessage) ||
+            (msg instanceof GridTcpDiscoveryNodeFailedMessage)) {
+            ringMsgsSndTs.put(msg.id(), U.currentTimeMillis());
+
+            ringMsgsSent++;
+        }
+
+        Integer cnt = F.addIfAbsent(sentMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
+            @Override public Integer call() {
+                return 0;
+            }
+        });
+
+        assert cnt != null;
+
+        sentMsgs.put(msg.getClass().getSimpleName(), ++cnt);
+
+        Long avgTime = F.addIfAbsent(avgMsgsSndTimes, msg.getClass().getSimpleName(), new Callable<Long>() {
+            @Override public Long call() {
+                return 0L;
+            }
+        });
+
+        assert avgTime != null;
+
+        avgTime = (avgTime * (cnt - 1) + time) / cnt;
+
+        avgMsgsSndTimes.put(msg.getClass().getSimpleName(), avgTime);
+
+        Long maxTime = F.addIfAbsent(maxMsgsSndTimes, msg.getClass().getSimpleName(), new Callable<Long>() {
+            @Override public Long call() {
+                return 0L;
+            }
+        });
+
+        assert maxTime != null;
+
+        if (time > maxTime)
+            maxMsgsSndTimes.put(msg.getClass().getSimpleName(), time);
+    }
+
+    /**
+     * Called by coordinator when ring message makes full pass.
+     *
+     * @param msg Message.
+     */
+    public synchronized void onRingMessageReceived(GridTcpDiscoveryAbstractMessage msg) {
+        assert msg != null;
+
+        Long sentTs = ringMsgsSndTs.get(msg.id());
+
+        if (sentTs != null) {
+            long duration  = U.currentTimeMillis() - sentTs;
+
+            if (maxRingMsgTime < duration) {
+                maxRingMsgTime = duration;
+
+                maxRingTimeMsgCls = msg.getClass().getSimpleName();
+            }
+
+            if (ringMsgsSent != 0)
+                avgRingMsgTime = (avgRingMsgTime * (ringMsgsSent - 1) + duration) / ringMsgsSent;
+        }
+    }
+
+    /**
+     * Gets max time for ring message to make full pass.
+     *
+     * @return Max full pass time.
+     */
+    public synchronized long maxRingMessageTime() {
+        return maxRingMsgTime;
+    }
+
+    /**
+     * Gets class name of the message that took max time to make full pass.
+     *
+     * @return Message class name.
+     */
+    public synchronized String maxRingDurationMessageClass() {
+        return maxRingTimeMsgCls;
+    }
+
+    /**
+     * Gets class name of the message took max time to process.
+     *
+     * @return Message class name.
+     */
+    public synchronized String maxProcessingTimeMessageClass() {
+        return maxProcTimeMsgCls;
+    }
+
+    /**
+     * @param initTime Time socket was initialized in.
+     */
+    public synchronized void onServerSocketInitialized(long initTime) {
+        assert initTime >= 0;
+
+        if (maxSrvSockInitTime < initTime)
+            maxSrvSockInitTime = initTime;
+
+        avgSrvSockInitTime = (avgSrvSockInitTime * (sockReadersCreated - 1) + initTime) / sockReadersCreated;
+    }
+
+    /**
+     * @param initTime Time socket was initialized in.
+     */
+    public synchronized void onClientSocketInitialized(long initTime) {
+        assert initTime >= 0;
+
+        clientSockCreatedCnt++;
+
+        if (maxClientSockInitTime < initTime)
+            maxClientSockInitTime = initTime;
+
+        avgClientSockInitTime = (avgClientSockInitTime * (clientSockCreatedCnt - 1) + initTime) / clientSockCreatedCnt;
+    }
+
+    /**
+     * Increments pending messages registered count.
+     */
+    public synchronized void onPendingMessageRegistered() {
+        pendingMsgsRegistered++;
+    }
+
+    /**
+     * Increments pending messages discarded count.
+     */
+    public synchronized void onPendingMessageDiscarded() {
+        pendingMsgsDiscarded++;
+    }
+
+    /**
+     * Increments socket readers created count.
+     */
+    public synchronized void onSocketReaderCreated() {
+        sockReadersCreated++;
+    }
+
+    /**
+     * Increments socket readers removed count.
+     */
+    public synchronized void onSocketReaderRemoved() {
+        sockReadersRmv++;
+    }
+
+    /**
+     * Gets processed messages counts (grouped by type).
+     *
+     * @return Map containing message types and respective counts.
+     */
+    public synchronized Map<String, Integer> processedMessages() {
+        return new HashMap<>(procMsgs);
+    }
+
+    /**
+     * Gets received messages counts (grouped by type).
+     *
+     * @return Map containing message types and respective counts.
+     */
+    public synchronized Map<String, Integer> receivedMessages() {
+        return new HashMap<>(rcvdMsgs);
+    }
+
+    /**
+     * Gets max messages send time (grouped by type).
+     *
+     * @return Map containing messages types and max send times.
+     */
+    public synchronized Map<String, Long> maxMessagesSendTimes() {
+        return new HashMap<>(maxMsgsSndTimes);
+    }
+
+    /**
+     * Gets average messages send time (grouped by type).
+     *
+     * @return Map containing messages types and average send times.
+     */
+    public synchronized Map<String, Long> avgMessagesSendTimes() {
+        return new HashMap<>(avgMsgsSndTimes);
+    }
+
+    /**
+     * Gets total received messages count.
+     *
+     * @return Total received messages count.
+     */
+    public synchronized int totalReceivedMessages() {
+        return F.sumInt(receivedMessages().values());
+    }
+
+    /**
+     * Gets total processed messages count.
+     *
+     * @return Total processed messages count.
+     */
+    public synchronized int totalProcessedMessages() {
+        return F.sumInt(processedMessages().values());
+    }
+
+    /**
+     * Gets max message processing time.
+     *
+     * @return Max message processing time.
+     */
+    public synchronized long maxMessageProcessingTime(){
+        return maxMsgProcTime;
+    }
+
+    /**
+     * Gets average message processing time.
+     *
+     * @return Average message processing time.
+     */
+    public synchronized long avgMessageProcessingTime() {
+        return avgMsgProcTime;
+    }
+
+    /**
+     * Gets pending messages registered count.
+     *
+     * @return Pending messages registered count.
+     */
+    public synchronized long pendingMessagesRegistered() {
+        return pendingMsgsRegistered;
+    }
+
+    /**
+     * Gets pending messages discarded count.
+     *
+     * @return Pending messages registered count.
+     */
+    public synchronized long pendingMessagesDiscarded() {
+        return pendingMsgsDiscarded;
+    }
+
+    /**
+     * Gets nodes joined count.
+     *
+     * @return Nodes joined count.
+     */
+    public synchronized int joinedNodesCount() {
+        return joinedNodesCnt;
+    }
+
+    /**
+     * Gets nodes left count.
+     *
+     * @return Nodes left count.
+     */
+    public synchronized int leftNodesCount() {
+        return leftNodesCnt;
+    }
+
+    /**
+     * Gets failed nodes count.
+     *
+     * @return Failed nodes count.
+     */
+    public synchronized int failedNodesCount() {
+        return failedNodesCnt;
+    }
+
+    /**
+     * @return Ack timeouts count.
+     */
+    public synchronized int ackTimeoutsCount() {
+        return ackTimeoutsCnt;
+    }
+
+    /**
+     * @return Socket timeouts count.
+     */
+    public synchronized int socketTimeoutsCount() {
+        return sockTimeoutsCnt;
+    }
+
+    /**
+     * Gets socket readers created count.
+     *
+     * @return Socket readers created count.
+     */
+    public synchronized int socketReadersCreated() {
+        return sockReadersCreated;
+    }
+
+    /**
+     * Gets socket readers removed count.
+     *
+     * @return Socket readers removed count.
+     */
+    public synchronized int socketReadersRemoved() {
+        return sockReadersRmv;
+    }
+
+    /**
+     * Gets time local node has been coordinator since.
+     *
+     * @return Coordinator since timestamp.
+     */
+    public long coordinatorSinceTimestamp() {
+        return crdSinceTs.get();
+    }
+
+    /**
+     * Clears statistics.
+     */
+    public synchronized void clear() {
+        ackTimeoutsCnt = 0;
+        avgClientSockInitTime = 0;
+        avgMsgProcTime = 0;
+        avgMsgQueueTime = 0;
+        avgMsgsSndTimes.clear();
+        avgRingMsgTime = 0;
+        avgSrvSockInitTime = 0;
+        clientSockCreatedCnt = 0;
+        crdSinceTs.set(0);
+        failedNodesCnt = 0;
+        joinedNodesCnt = 0;
+        joinFinishedTs = 0;
+        joinStartedTs = 0;
+        leftNodesCnt = 0;
+        maxClientSockInitTime = 0;
+        maxMsgProcTime = 0;
+        maxMsgQueueTime = 0;
+        maxMsgsSndTimes.clear();
+        maxProcTimeMsgCls = null;
+        maxRingMsgTime = 0;
+        maxRingTimeMsgCls = null;
+        maxSrvSockInitTime = 0;
+        pendingMsgsDiscarded = 0;
+        pendingMsgsRegistered = 0;
+        procMsgs.clear();
+        rcvdMsgs.clear();
+        ringMsgsSent = 0;
+        sentMsgs.clear();
+        sockReadersCreated = 0;
+        sockReadersRmv = 0;
+        sockTimeoutsCnt = 0;
+    }
+
+    /** {@inheritDoc} */
+    @Override public synchronized String toString() {
+        return S.toString(TcpDiscoveryStatistics.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDuplicateIdMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDuplicateIdMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDuplicateIdMessage.java
index 5c3e8f0..7dba08a 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDuplicateIdMessage.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDuplicateIdMessage.java
@@ -24,7 +24,7 @@ public class GridTcpDiscoveryDuplicateIdMessage extends GridTcpDiscoveryAbstract
     private static final long serialVersionUID = 0L;
 
     /** Node with duplicate ID. */
-    private GridTcpDiscoveryNode node;
+    private TcpDiscoveryNode node;
 
     /**
      * Public default no-arg constructor for {@link Externalizable} interface.
@@ -39,7 +39,7 @@ public class GridTcpDiscoveryDuplicateIdMessage extends GridTcpDiscoveryAbstract
      * @param creatorNodeId Creator node ID.
      * @param node Node with same ID.
      */
-    public GridTcpDiscoveryDuplicateIdMessage(UUID creatorNodeId, GridTcpDiscoveryNode node) {
+    public GridTcpDiscoveryDuplicateIdMessage(UUID creatorNodeId, TcpDiscoveryNode node) {
         super(creatorNodeId);
 
         assert node != null;
@@ -50,7 +50,7 @@ public class GridTcpDiscoveryDuplicateIdMessage extends GridTcpDiscoveryAbstract
     /**
      * @return Node with duplicate ID.
      */
-    public GridTcpDiscoveryNode node() {
+    public TcpDiscoveryNode node() {
         return node;
     }
 
@@ -65,7 +65,7 @@ public class GridTcpDiscoveryDuplicateIdMessage extends GridTcpDiscoveryAbstract
     @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
         super.readExternal(in);
 
-        node = (GridTcpDiscoveryNode)in.readObject();
+        node = (TcpDiscoveryNode)in.readObject();
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryJoinRequestMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryJoinRequestMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryJoinRequestMessage.java
index 597db81..ac3b1ea 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryJoinRequestMessage.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryJoinRequestMessage.java
@@ -24,7 +24,7 @@ public class GridTcpDiscoveryJoinRequestMessage extends GridTcpDiscoveryAbstract
     private static final long serialVersionUID = 0L;
 
     /** New node that wants to join the topology. */
-    private GridTcpDiscoveryNode node;
+    private TcpDiscoveryNode node;
 
     /** Discovery data. */
     private List<Object> discoData;
@@ -42,7 +42,7 @@ public class GridTcpDiscoveryJoinRequestMessage extends GridTcpDiscoveryAbstract
      * @param node New node that wants to join.
      * @param discoData Discovery data.
      */
-    public GridTcpDiscoveryJoinRequestMessage(GridTcpDiscoveryNode node, List<Object> discoData) {
+    public GridTcpDiscoveryJoinRequestMessage(TcpDiscoveryNode node, List<Object> discoData) {
         super(node.id());
 
         this.node = node;
@@ -54,7 +54,7 @@ public class GridTcpDiscoveryJoinRequestMessage extends GridTcpDiscoveryAbstract
      *
      * @return Node that wants to join the topology.
      */
-    public GridTcpDiscoveryNode node() {
+    public TcpDiscoveryNode node() {
         return node;
     }
 
@@ -91,7 +91,7 @@ public class GridTcpDiscoveryJoinRequestMessage extends GridTcpDiscoveryAbstract
     @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
         super.readExternal(in);
 
-        node = (GridTcpDiscoveryNode)in.readObject();
+        node = (TcpDiscoveryNode)in.readObject();
         discoData = U.readList(in);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddedMessage.java
index 5749392..72e4d15 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddedMessage.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddedMessage.java
@@ -31,7 +31,7 @@ public class GridTcpDiscoveryNodeAddedMessage extends GridTcpDiscoveryAbstractMe
     private static final long serialVersionUID = 0L;
 
     /** Added node. */
-    private GridTcpDiscoveryNode node;
+    private TcpDiscoveryNode node;
 
     /** Pending messages from previous node. */
     private Collection<GridTcpDiscoveryAbstractMessage> msgs;
@@ -41,7 +41,7 @@ public class GridTcpDiscoveryNodeAddedMessage extends GridTcpDiscoveryAbstractMe
 
     /** Current topology. Initialized by coordinator. */
     @GridToStringInclude
-    private Collection<GridTcpDiscoveryNode> top;
+    private Collection<TcpDiscoveryNode> top;
 
     /** Topology snapshots history. */
     private Map<Long, Collection<ClusterNode>> topHist;
@@ -70,7 +70,7 @@ public class GridTcpDiscoveryNodeAddedMessage extends GridTcpDiscoveryAbstractMe
      * @param newNodeDiscoData New Node discovery data.
      * @param gridStartTime Start time of the first grid node.
      */
-    public GridTcpDiscoveryNodeAddedMessage(UUID creatorNodeId, GridTcpDiscoveryNode node,
+    public GridTcpDiscoveryNodeAddedMessage(UUID creatorNodeId, TcpDiscoveryNode node,
         List<Object> newNodeDiscoData, long gridStartTime) {
         super(creatorNodeId);
 
@@ -89,7 +89,7 @@ public class GridTcpDiscoveryNodeAddedMessage extends GridTcpDiscoveryAbstractMe
      *
      * @return New node.
      */
-    public GridTcpDiscoveryNode node() {
+    public TcpDiscoveryNode node() {
         return node;
     }
 
@@ -127,7 +127,7 @@ public class GridTcpDiscoveryNodeAddedMessage extends GridTcpDiscoveryAbstractMe
      *
      * @return Current topology.
      */
-    @Nullable public Collection<GridTcpDiscoveryNode> topology() {
+    @Nullable public Collection<TcpDiscoveryNode> topology() {
         return top;
     }
 
@@ -136,7 +136,7 @@ public class GridTcpDiscoveryNodeAddedMessage extends GridTcpDiscoveryAbstractMe
      *
      * @param top Current topology.
      */
-    public void topology(@Nullable Collection<GridTcpDiscoveryNode> top) {
+    public void topology(@Nullable Collection<TcpDiscoveryNode> top) {
         this.top = top;
     }
 
@@ -221,7 +221,7 @@ public class GridTcpDiscoveryNodeAddedMessage extends GridTcpDiscoveryAbstractMe
     @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
         super.readExternal(in);
 
-        node = (GridTcpDiscoveryNode)in.readObject();
+        node = (TcpDiscoveryNode)in.readObject();
         msgs = U.readCollection(in);
         discardMsgId = U.readGridUuid(in);
         top = U.readCollection(in);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryStatusCheckMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryStatusCheckMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryStatusCheckMessage.java
index 896ae80..4baebab 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryStatusCheckMessage.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryStatusCheckMessage.java
@@ -34,7 +34,7 @@ public class GridTcpDiscoveryStatusCheckMessage extends GridTcpDiscoveryAbstract
     public static final int STATUS_RECON = 2;
 
     /** Creator node. */
-    private GridTcpDiscoveryNode creatorNode;
+    private TcpDiscoveryNode creatorNode;
 
     /** Failed node id. */
     private UUID failedNodeId;
@@ -55,7 +55,7 @@ public class GridTcpDiscoveryStatusCheckMessage extends GridTcpDiscoveryAbstract
      * @param creatorNode Creator node.
      * @param failedNodeId Failed node id.
      */
-    public GridTcpDiscoveryStatusCheckMessage(GridTcpDiscoveryNode creatorNode, UUID failedNodeId) {
+    public GridTcpDiscoveryStatusCheckMessage(TcpDiscoveryNode creatorNode, UUID failedNodeId) {
         super(creatorNode.id());
 
         this.creatorNode = creatorNode;
@@ -67,7 +67,7 @@ public class GridTcpDiscoveryStatusCheckMessage extends GridTcpDiscoveryAbstract
      *
      * @return Creator node.
      */
-    public GridTcpDiscoveryNode creatorNode() {
+    public TcpDiscoveryNode creatorNode() {
         return creatorNode;
     }
 
@@ -111,7 +111,7 @@ public class GridTcpDiscoveryStatusCheckMessage extends GridTcpDiscoveryAbstract
     @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
         super.readExternal(in);
 
-        creatorNode = (GridTcpDiscoveryNode)in.readObject();
+        creatorNode = (TcpDiscoveryNode)in.readObject();
         failedNodeId = U.readUuid(in);
         status = in.readInt();
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
index e7b62d4..7a58541 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
@@ -118,10 +118,10 @@ public abstract class GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest
 
                 GridCacheAffinity<Object> aff = affinity(g);
 
-                List<GridTcpDiscoveryNode> top = new ArrayList<>();
+                List<TcpDiscoveryNode> top = new ArrayList<>();
 
                 for (ClusterNode node : g.cluster().nodes())
-                    top.add((GridTcpDiscoveryNode) node);
+                    top.add((TcpDiscoveryNode) node);
 
                 Collections.sort(top);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java
index 68bf3d9..01a57bf 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java
@@ -98,7 +98,7 @@ public class GridTcpSpiForwardingSelfTest extends GridCommonAbstractTest {
                 Map<String, Object> attrs = new HashMap<>(node.attributes());
                 attrs.remove(createSpiAttributeName(ATTR_PORT));
 
-                ((GridTcpDiscoveryNode)node).setAttributes(attrs);
+                ((TcpDiscoveryNode)node).setAttributes(attrs);
 
                 return super.createTcpClient(node);
             }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
index 7817627..fbf60b7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
@@ -175,7 +175,7 @@ public class GridTcpDiscoverySelfTest extends GridCommonAbstractTest {
                 }
             }, 4, "grid-starter");
 
-            Collection<GridTcpDiscoveryNode> nodes = discoMap.get(g1.name()).ring().allNodes();
+            Collection<TcpDiscoveryNode> nodes = discoMap.get(g1.name()).ring().allNodes();
 
             ByteArrayOutputStream bos = new ByteArrayOutputStream();
 
@@ -314,7 +314,7 @@ public class GridTcpDiscoverySelfTest extends GridCommonAbstractTest {
 
                         IgniteDiscoveryEvent discoEvt = (IgniteDiscoveryEvent)evt;
 
-                        GridTcpDiscoveryNode node = ((GridTcpDiscoveryNode)discoMap.get(g1.name()).
+                        TcpDiscoveryNode node = ((TcpDiscoveryNode)discoMap.get(g1.name()).
                             getNode(discoEvt.eventNode().id()));
 
                         assert node != null && node.visible();


[06/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
index c32b7db..6d7db2b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
@@ -75,7 +75,7 @@ public class GridCacheConfigurationConsistencySelfTest extends GridCommonAbstrac
     private int backups;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java
index 1a3eef3..d0bcbde 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java
@@ -51,7 +51,7 @@ public class GridCacheConfigurationValidationSelfTest extends GridCommonAbstract
     private static final String DUP_DFLT_CACHES_GRID_NAME = "duplicateDefaultCachesCheckFails";
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
index 90b879c..7f828b6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public abstract class GridCacheDaemonNodeAbstractSelfTest extends GridCommonAbstractTest {
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Daemon flag. */
     protected boolean daemon;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java
index 18d8b0b..a896fb3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java
@@ -39,7 +39,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheDeploymentSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Name for grid without cache. */
     private static final String GRID_NAME = "grid-no-cache";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java
index 9304778..7a7a64c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.cache.GridCacheDistributionMode.*;
  */
 public class GridCacheEntryMemorySizeSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Null reference size (optimized marshaller writes one byte for null reference). */
     private static final int NULL_REF_SIZE = 1;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java
index 5337c2f..5aef743 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.kernal.processors.cache.GridCacheVersionManager.
  */
 public class GridCacheEntryVersionSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Atomicity mode. */
     private GridCacheAtomicityMode atomicityMode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java
index 8daffba..938f9b3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java
@@ -29,7 +29,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public abstract class GridCacheEvictionEventAbstractTest extends GridCommonAbstractTest {
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java
index 80f8cf8..91ff27d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java
@@ -27,7 +27,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheFieldsQueryNoDataSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java
index 7638c8c..ae78756 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public abstract class GridCacheGetAndTransformStoreAbstractTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Cache store. */
     private static final GridCacheTestStore store = new GridCacheTestStore();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java
index c6e7ae7..17b5536 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java
@@ -41,7 +41,7 @@ public class GridCacheGlobalClearAllSelfTest extends GridCommonAbstractTest {
     private static final String CACHE_NAME_OTHER = "cache_name_other";
 
     /** VM IP finder for TCP discovery SPI. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Cache name which will be passed to grid configuration. */
     private GridCacheMode cacheMode = PARTITIONED;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
index 13bb9e9..6b81c33 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
@@ -43,7 +43,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public abstract class GridCacheGroupLockAbstractSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Event wait timeout. */
     private static final int WAIT_TIMEOUT = 3000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
index 3591f62..6b2aad7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
@@ -38,7 +38,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheGroupLockFailoverSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Size of the test map. */
     private static final int TEST_MAP_SIZE = 200000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java
index 8fa9f60..c8fd4f8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheIncrementTransformTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Number of nodes to test on. */
     private static final int GRID_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java
index 072d514..14fe0e9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java
@@ -25,7 +25,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridCacheIteratorPerformanceTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Large entry count. */
     private static final int LARGE_ENTRY_CNT = 100000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java
index a37468c..bb1183b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java
@@ -25,7 +25,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheKeyCheckSelfTest extends GridCacheAbstractSelfTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Atomicity mode. */
     private GridCacheAtomicityMode atomicityMode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java
index 9fa2135..59fe3ff 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheLeakTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Cache name. */
     private static final String CACHE_NAME = "ggfs-data";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java
index 54a28f3..eb6551b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheLuceneQueryIndexTest extends GridCommonAbstractTest {
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java
index 4a37e71..4a6f7c9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java
@@ -48,7 +48,7 @@ public abstract class GridCacheMarshallerTxAbstractTest extends GridCommonAbstra
     }
 
     /** */
-    protected static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs a test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java
index 394eb0a..03c481f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
 @SuppressWarnings("deprecation")
 public class GridCacheMemoryModeSelfTest extends GridCommonAbstractTest {
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder;
+    private TcpDiscoveryIpFinder ipFinder;
 
     /** */
     private boolean swapEnabled;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java
index f165a0f..d4389b4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java
@@ -37,7 +37,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheMultiUpdateLockSelfTest extends GridCommonAbstractTest {
     /** Shared IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Near enabled flag. */
     private boolean nearEnabled;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java
index bfd8fc2..f5304f1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java
@@ -26,7 +26,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridCacheMvccManagerSelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Cache mode. */
     private GridCacheMode mode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java
index 8cd71c6..45b9f11 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java
@@ -31,7 +31,7 @@ public class GridCacheMvccPartitionedSelfTest extends GridCommonAbstractTest {
     private GridKernal grid;
 
     /** VM ip finder for TCP discovery. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java
index a77721f..9cc86bc 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java
@@ -30,7 +30,7 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
     private GridKernal grid;
 
     /** VM ip finder for TCP discovery. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java
index 011a486..23a25f6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public class GridCacheNestedTxAbstractTest extends GridCommonAbstractTest {
     /** */
-    protected static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Counter key. */
     private static final String CNTR_KEY = "CNTR_KEY";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java
index 5aa9893..bcbbcf4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public class GridCacheObjectToStringSelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Cache mode for test. */
     private GridCacheMode cacheMode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java
index 69cffd9..86bc12e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java
@@ -52,7 +52,7 @@ public class GridCacheOffHeapSelfTest extends GridCommonAbstractTest {
     private final Map<Integer, Object> versions = new HashMap<>();
 
     /** */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java
index 7469b56..0d9841e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheOffHeapTest extends GridCommonAbstractTest {
     /** */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private GridCacheMode mode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java
index 458a044..1bb2d71 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java
@@ -27,7 +27,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridCacheOrderedPreloadingSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Number of grids in test. */
     private static final int GRID_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java
index 6329e4a..a0ba093 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java
@@ -43,7 +43,7 @@ public class GridCacheP2PUndeploySelfTest extends GridCommonAbstractTest {
     private static final long OFFHEAP = 0;// 4 * 1024 * 1024;
 
     /** */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private final AtomicInteger idxGen = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java
index 89fc935..9da2277 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.kernal.GridTopic.*;
  */
 public class GridCachePartitionedGetSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int GRID_CNT = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java
index 000af30..3d06931 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java
@@ -37,7 +37,7 @@ public class GridCachePartitionedProjectionAffinitySelfTest extends GridCommonAb
     private static final int GRIDS = 3;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
index 1e7358c..63730ef 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
@@ -44,7 +44,7 @@ public class GridCachePreloadingEvictionsSelfTest extends GridCommonAbstractTest
     private static final String VALUE = createValue();
 
     /** */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private final AtomicInteger idxGen = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
index 2f4a817..d7274f3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCachePutAllFailoverSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Size of the test map. */
     private static final int TEST_MAP_SIZE = 100000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java
index ba2aa77..2888ade 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.testframework.GridTestUtils.*;
  */
 public class GridCacheReferenceCleanupSelfTest extends GridCommonAbstractTest {
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Cache mode for the current test. */
     private GridCacheMode mode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java
index 1111896..c11600c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java
@@ -30,7 +30,7 @@ import static java.util.concurrent.TimeUnit.*;
  */
 public abstract class GridCacheRefreshAheadAbstractSelfTest extends GridCommonAbstractTest {
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private final TestStore store = new TestStore();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java
index 9072070..eeaa64d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java
@@ -46,7 +46,7 @@ public class GridCacheReplicatedSynchronousCommitTest extends GridCommonAbstract
     private final Collection<TestCommunicationSpi> commSpis = new ConcurrentLinkedDeque8<>();
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java
index 5d10438..09bdfef 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java
@@ -27,7 +27,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridCacheSlowTxWarnTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java
index 50f21ce..a38660d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheStorePutxSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static AtomicInteger loads;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java
index eb139f0..6978ce6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java
@@ -29,7 +29,7 @@ public class GridCacheStoreValueBytesSelfTest extends GridCommonAbstractTest {
     private boolean storeValBytes;
 
     /** VM ip finder for TCP discovery. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java
index 8ee97fc..d9d6a82 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java
@@ -34,7 +34,7 @@ public class GridCacheSwapPreloadSelfTest extends GridCommonAbstractTest {
     private static final int ENTRY_CNT = 15000;
 
     /** */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private GridCacheMode cacheMode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java
index b13b31c..7e2103a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java
@@ -39,7 +39,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridCacheSwapReloadSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java
index 1439cf1..3198dfc 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java
@@ -28,7 +28,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridCacheTtlManagerSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Test cache mode. */
     protected GridCacheMode cacheMode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java
index 7343ae2..8a3929d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java
@@ -41,7 +41,7 @@ abstract class GridCacheTxAbstractTest extends GridCommonAbstractTest {
     private static final AtomicInteger cntr = new AtomicInteger();
 
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * Start grid by default.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java
index 1c7d48d..0d771ad 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java
@@ -34,7 +34,7 @@ public abstract class GridCacheTxConcurrentGetAbstractTest extends GridCommonAbs
     private static final boolean DEBUG = false;
 
     /** */
-    protected static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int THREAD_NUM = 20;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java
index fde3ae3..4b49361 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java
@@ -50,7 +50,7 @@ public abstract class GridCacheTxMultiNodeAbstractTest extends GridCommonAbstrac
     protected static final int GRID_CNT = 4;
 
     /** */
-    protected static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     protected static final int RETRIES = 300;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java
index 4f0dd29..acc6ae8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public abstract class GridCacheTxReentryAbstractSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** @return Cache mode. */
     protected abstract GridCacheMode cacheMode();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java
index 213eba1..f909704 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java
@@ -34,7 +34,7 @@ public class GridCacheVariableTopologySelfTest extends GridCommonAbstractTest {
     private static final Random RAND = new Random();
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Constructs test. */
     public GridCacheVariableTopologySelfTest() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java
index ea31ee7..2bb3540 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java
@@ -33,7 +33,7 @@ public class GridCacheWriteBehindStorePartitionedMultiNodeSelfTest extends GridC
     private static final int GRID_CNT = 5;
 
     /** Ip finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Flush frequency. */
     public static final int WRITE_BEHIND_FLUSH_FREQ = 1000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java
index 9e634b7..0694ba8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java
@@ -34,7 +34,7 @@ public class GridCacheAtomicLongApiSelfTest extends GridCommonAbstractTest {
     private static final Random RND = new Random();
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java
index 74fb6a1..bdf3956 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.cache.GridCacheDistributionMode.*;
  */
 public abstract class GridCacheAtomicReferenceApiSelfAbstractTest extends GridCommonAbstractTest {
     /** */
-    protected static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs a test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java
index e4bfbe7..76e1242 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java
@@ -30,7 +30,7 @@ public abstract class GridCacheAtomicReferenceMultiNodeAbstractTest extends Grid
     protected static final int GRID_CNT = 4;
 
     /** */
-    protected static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java
index 92f0e7b..8089f91 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java
@@ -24,7 +24,7 @@ import java.util.*;
  */
 public abstract class GridCacheAtomicStampedApiSelfAbstractTest extends GridCommonAbstractTest {
     /** */
-    protected static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs a test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java
index 5a12ef2..05e67e6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java
@@ -46,7 +46,7 @@ public class GridCacheCountDownLatchSelfTest extends GridCommonAbstractTest impl
     private static final int THREADS_CNT = 5;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final Random RND = new Random();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java
index ee44849..b45f353 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java
@@ -28,7 +28,7 @@ import java.util.concurrent.atomic.*;
  */
 public abstract class GridCacheQueueApiSelfAbstractTest extends GridCommonAbstractTest {
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int QUEUE_CAPACITY = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java
index 47466b7..235dd7f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java
@@ -35,7 +35,7 @@ public abstract class GridCacheQueueJoinedNodeSelfAbstractTest extends GridCommo
     protected static final int GRID_CNT = 3;
 
     /** */
-    protected static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     protected static final int ITEMS_CNT = 300;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
index 6b65cae..522550e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
@@ -39,7 +39,7 @@ public abstract class GridCacheQueueMultiNodeAbstractSelfTest extends GridCommon
     private static final int GRID_CNT = 4;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int RETRIES = 20;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java
index 9a77a2d..60c1787 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java
@@ -34,7 +34,7 @@ public class GridCacheQueueMultiNodeConsistencySelfTest extends GridCommonAbstra
     protected static final int GRID_CNT = 3;
 
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     protected static final int RETRIES = 20;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java
index 3abb5f2..ec0a7fa 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java
@@ -35,7 +35,7 @@ public abstract class GridCacheQueueRotativeMultiNodeAbstractTest extends GridCo
     protected static final int GRID_CNT = 4;
 
     /** */
-    protected static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     protected static final int RETRIES = 133;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
index 0927679..97929ad 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
@@ -53,7 +53,7 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends GridCommonAbs
     private static GridCacheAtomicSequence[] seqArr = new GridCacheAtomicSequence[SEQ_NUM];
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructor.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java
index 4533858..9e7c38b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java
@@ -37,7 +37,7 @@ public abstract class GridCacheSequenceMultiNodeAbstractSelfTest extends GridCom
     protected static final int BATCH_SIZE = 33;
 
     /** */
-    protected static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     protected static final int RETRIES = 1111;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
index 0963194..e2ba3db 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheDistributionMode.*;
  */
 public class GridCachePartitionedAtomicSequenceMultiThreadedTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Number of threads for multithreaded test. */
     private static final int THREAD_NUM = 30;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java
index 10aef03..cb018d5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java
@@ -26,7 +26,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCachePartitionedNodeRestartSelfTest extends GridCommonAbstractTest {
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs a test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java
index f2c57d7..b3cb278 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCachePartitionedNodeRestartTxSelfTest extends GridCommonAbstractTest {
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int INIT_GRID_NUM = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
index 71344f1..dc7b7c7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCachePartitionedQueueCreateMultiNodeSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java
index 5c4fd4b..e3513a8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java
@@ -37,7 +37,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridCachePartitionedQueueEntryMoveSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Queue capacity. */
     private static final int QUEUE_CAP = 5;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java
index c080974..454ccbc 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public abstract class GridCacheAbstractJobExecutionTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Job counter. */
     private static final AtomicInteger cntr = new AtomicInteger(0);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
index 5861595..0af42d7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
@@ -84,7 +84,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs
     private int retries = DFLT_RETRIES;
 
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java
index 50df3a1..0d19161 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java
@@ -31,7 +31,7 @@ public abstract class GridCacheAbstractPrimarySyncSelfTest extends GridCommonAbs
     private static final int GRID_CNT = 3;
 
     /** IP_FINDER. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java
index eb94580..8ed5b37 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java
@@ -42,7 +42,7 @@ public abstract class GridCacheBasicOpAbstractTest extends GridCommonAbstractTes
     private static Ignite ignite3;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java
index acba96a..ac0a43e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java
@@ -47,7 +47,7 @@ public abstract class GridCacheLockAbstractTest extends GridCommonAbstractTest {
     private static GridCache<Integer, String> cache2;
 
     /** Ip-finder. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java
index e5cf087..5b6f1ea 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java
@@ -51,7 +51,7 @@ public abstract class GridCacheMultiNodeAbstractTest extends GridCommonAbstractT
     private static GridCache<Integer, String> cache3;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Listeners. */
     private static Collection<CacheEventListener> lsnrs = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java
index d03c281..09e1880 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java
@@ -42,7 +42,7 @@ public abstract class GridCacheMultiNodeLockAbstractTest extends GridCommonAbstr
     private static Ignite ignite2;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Listeners. */
     private static Collection<IgnitePredicate<IgniteEvent>> lsnrs = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java
index d2ee664..3c1ff8c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java
@@ -56,7 +56,7 @@ public class GridCacheMultithreadedFailoverAbstractTest extends GridCommonAbstra
     private final Condition putCond = lock.newCondition();
 
     /** Shared IP finder. */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Caches comparison start latch. */
     private CountDownLatch cmpLatch;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
index f7a6bf3..f0b75c5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
@@ -47,7 +47,7 @@ public abstract class GridCacheNodeFailureAbstractTest extends GridCommonAbstrac
     private static final String VALUE = "test";
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Grid instances. */
     private static final List<Ignite> IGNITEs = new ArrayList<>();


[19/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java
index a39813b..1b915bb 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java
@@ -15,9 +15,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.processors.cache.GridCacheAbstractQuerySelfTest.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.grid.spi.swapspace.noop.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
index 48a50b4..022a2fd 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.dataload.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java
index 7cee23d..890fe1d 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/loadtests/h2indexing/GridH2IndexingSpiLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/loadtests/h2indexing/GridH2IndexingSpiLoadTest.java b/modules/indexing/src/test/java/org/gridgain/loadtests/h2indexing/GridH2IndexingSpiLoadTest.java
index 8dd50b9..c367463 100644
--- a/modules/indexing/src/test/java/org/gridgain/loadtests/h2indexing/GridH2IndexingSpiLoadTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/loadtests/h2indexing/GridH2IndexingSpiLoadTest.java
@@ -15,8 +15,8 @@ import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/jta/src/test/java/org/gridgain/grid/kernal/processors/cache/GridTmLookupLifecycleAwareSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/jta/src/test/java/org/gridgain/grid/kernal/processors/cache/GridTmLookupLifecycleAwareSelfTest.java b/modules/jta/src/test/java/org/gridgain/grid/kernal/processors/cache/GridTmLookupLifecycleAwareSelfTest.java
index 652559f..9b59053 100644
--- a/modules/jta/src/test/java/org/gridgain/grid/kernal/processors/cache/GridTmLookupLifecycleAwareSelfTest.java
+++ b/modules/jta/src/test/java/org/gridgain/grid/kernal/processors/cache/GridTmLookupLifecycleAwareSelfTest.java
@@ -15,7 +15,7 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.jta.GridCacheTmLookup;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/scalar/src/test/resources/spring-cache.xml
----------------------------------------------------------------------
diff --git a/modules/scalar/src/test/resources/spring-cache.xml b/modules/scalar/src/test/resources/spring-cache.xml
index 8b28caa..0e46330 100644
--- a/modules/scalar/src/test/resources/spring-cache.xml
+++ b/modules/scalar/src/test/resources/spring-cache.xml
@@ -30,9 +30,9 @@
         </property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/scalar/src/test/resources/spring-ping-pong-partner.xml
----------------------------------------------------------------------
diff --git a/modules/scalar/src/test/resources/spring-ping-pong-partner.xml b/modules/scalar/src/test/resources/spring-ping-pong-partner.xml
index 062871e..5d4934b 100644
--- a/modules/scalar/src/test/resources/spring-ping-pong-partner.xml
+++ b/modules/scalar/src/test/resources/spring-ping-pong-partner.xml
@@ -75,9 +75,9 @@
             of one or more servers which will always be started first.
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java b/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java
index 15009f1..410241b 100644
--- a/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java
+++ b/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java
@@ -11,9 +11,9 @@ package org.gridgain.grid.cache.spring;
 
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.springframework.beans.factory.*;
 import org.springframework.context.support.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/spring/src/test/java/org/gridgain/grid/kernal/GridFactorySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/kernal/GridFactorySelfTest.java b/modules/spring/src/test/java/org/gridgain/grid/kernal/GridFactorySelfTest.java
index ab260cb..bfd751d 100644
--- a/modules/spring/src/test/java/org/gridgain/grid/kernal/GridFactorySelfTest.java
+++ b/modules/spring/src/test/java/org/gridgain/grid/kernal/GridFactorySelfTest.java
@@ -19,7 +19,7 @@ import org.apache.ignite.resources.*;
 import org.apache.ignite.spi.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.collision.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java b/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java
index 64dedb9..373307c 100644
--- a/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java
+++ b/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.marshaller.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java b/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java
index e2de3b7..94018b7 100644
--- a/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java
+++ b/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.config.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/urideploy/src/test/java/org/gridgain/grid/p2p/GridP2PDisabledSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/urideploy/src/test/java/org/gridgain/grid/p2p/GridP2PDisabledSelfTest.java b/modules/urideploy/src/test/java/org/gridgain/grid/p2p/GridP2PDisabledSelfTest.java
index b792909..f7b9e1d 100644
--- a/modules/urideploy/src/test/java/org/gridgain/grid/p2p/GridP2PDisabledSelfTest.java
+++ b/modules/urideploy/src/test/java/org/gridgain/grid/p2p/GridP2PDisabledSelfTest.java
@@ -13,7 +13,7 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.deployment.uri.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/alert/VisorAlertCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/alert/VisorAlertCommandSpec.scala b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/alert/VisorAlertCommandSpec.scala
index b514735..a174eaa 100644
--- a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/alert/VisorAlertCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/alert/VisorAlertCommandSpec.scala
@@ -15,9 +15,9 @@ import java.util.regex.Pattern
 
 import org.apache.ignite.Ignition
 import org.apache.ignite.configuration.IgniteConfiguration
-import org.gridgain.grid.spi.discovery.DiscoverySpi
-import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
+import org.apache.ignite.spi.discovery.DiscoverySpi
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
 import org.gridgain.visor._
 import org.gridgain.visor.commands.alert.VisorAlertCommand._
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheClearCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheClearCommandSpec.scala b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheClearCommandSpec.scala
index ffb02ef..9c9fb2a 100644
--- a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheClearCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheClearCommandSpec.scala
@@ -16,8 +16,8 @@ import org.apache.ignite.configuration.IgniteConfiguration
 import org.gridgain.grid.cache.GridCacheAtomicityMode._
 import org.gridgain.grid.cache.GridCacheMode._
 import org.gridgain.grid.cache._
-import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
 import org.gridgain.grid.{_}
 import org.gridgain.visor._
 import org.gridgain.visor.commands.cache.VisorCacheCommand._

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheCompactCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheCompactCommandSpec.scala b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheCompactCommandSpec.scala
index a244709..31f9407 100644
--- a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheCompactCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheCompactCommandSpec.scala
@@ -15,8 +15,8 @@ import org.apache.ignite.Ignition
 import org.apache.ignite.configuration.IgniteConfiguration
 import org.gridgain.grid.cache.GridCacheMode._
 import org.gridgain.grid.cache._
-import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
 import org.gridgain.grid.{_}
 import org.gridgain.visor._
 import org.gridgain.visor.commands.cache.VisorCacheCommand._

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cswap/VisorCacheSwapCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cswap/VisorCacheSwapCommandSpec.scala b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cswap/VisorCacheSwapCommandSpec.scala
index afc51a2..184d034 100644
--- a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cswap/VisorCacheSwapCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cswap/VisorCacheSwapCommandSpec.scala
@@ -14,8 +14,8 @@ package org.gridgain.visor.commands.cswap
 import org.apache.ignite.Ignition
 import org.apache.ignite.configuration.IgniteConfiguration
 import org.gridgain.grid.cache.{GridCacheConfiguration, GridCacheMode}
-import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
 import org.gridgain.visor._
 import org.gridgain.visor.commands.cache.VisorCacheCommand._
 import org.jetbrains.annotations.Nullable

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index e9ff079..896a97d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -675,7 +675,7 @@
                                         </group>
                                         <group>
                                             <title>SPI: Discovery</title>
-                                            <packages>org.gridgain.grid.spi.discovery:org.gridgain.grid.spi.discovery.tcp:org.gridgain.grid.spi.discovery.tcp.ipfinder:org.gridgain.grid.spi.discovery.tcp.ipfinder.s3:org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc:org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs:org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast:org.gridgain.grid.spi.discovery.tcp.ipfinder.vm:org.gridgain.grid.spi.discovery.tcp.metricsstore:org.gridgain.grid.spi.discovery.tcp.metricsstore.s3:org.gridgain.grid.spi.discovery.tcp.metricsstore.jdbc:org.gridgain.grid.spi.discovery.tcp.metricsstore.sharedfs:org.gridgain.grid.spi.discovery.tcp.metricsstore.vm</packages>
+                                            <packages>org.gridgain.grid.spi.discovery:org.apache.ignite.spi.discovery.tcp:org.apache.ignite.spi.discovery.tcp.ipfinder:org.apache.ignite.spi.discovery.tcp.ipfinder.s3:org.apache.ignite.spi.discovery.tcp.ipfinder.jdbc:org.apache.ignite.spi.discovery.tcp.ipfinder.sharedfs:org.apache.ignite.spi.discovery.tcp.ipfinder.multicast:org.apache.ignite.spi.discovery.tcp.ipfinder.vm:org.apache.ignite.spi.discovery.tcp.metricsstore:org.apache.ignite.spi.discovery.tcp.metricsstore.s3:org.apache.ignite.spi.discovery.tcp.metricsstore.jdbc:org.apache.ignite.spi.discovery.tcp.metricsstore.sharedfs:org.apache.ignite.spi.discovery.tcp.metricsstore.vm</packages>
                                         </group>
                                         <group>
                                             <title>SPI: Failover</title>
@@ -877,7 +877,7 @@
                                         </group>
                                         <group>
                                             <title>SPI: Discovery</title>
-                                            <packages>org.gridgain.grid.spi.discovery:org.gridgain.grid.spi.discovery.tcp:org.gridgain.grid.spi.discovery.tcp.ipfinder:org.gridgain.grid.spi.discovery.tcp.ipfinder.s3:org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc:org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs:org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast:org.gridgain.grid.spi.discovery.tcp.ipfinder.vm:org.gridgain.grid.spi.discovery.tcp.metricsstore:org.gridgain.grid.spi.discovery.tcp.metricsstore.s3:org.gridgain.grid.spi.discovery.tcp.metricsstore.jdbc:org.gridgain.grid.spi.discovery.tcp.metricsstore.sharedfs:org.gridgain.grid.spi.discovery.tcp.metricsstore.vm</packages>
+                                            <packages>org.gridgain.grid.spi.discovery:org.apache.ignite.spi.discovery.tcp:org.apache.ignite.spi.discovery.tcp.ipfinder:org.apache.ignite.spi.discovery.tcp.ipfinder.s3:org.apache.ignite.spi.discovery.tcp.ipfinder.jdbc:org.apache.ignite.spi.discovery.tcp.ipfinder.sharedfs:org.apache.ignite.spi.discovery.tcp.ipfinder.multicast:org.apache.ignite.spi.discovery.tcp.ipfinder.vm:org.apache.ignite.spi.discovery.tcp.metricsstore:org.apache.ignite.spi.discovery.tcp.metricsstore.s3:org.apache.ignite.spi.discovery.tcp.metricsstore.jdbc:org.apache.ignite.spi.discovery.tcp.metricsstore.sharedfs:org.apache.ignite.spi.discovery.tcp.metricsstore.vm</packages>
                                         </group>
                                         <group>
                                             <title>SPI: Failover</title>


[02/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
new file mode 100644
index 0000000..2945352
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -0,0 +1,997 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.marshaller.*;
+import org.apache.ignite.marshaller.jdk.*;
+import org.apache.ignite.product.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.spi.discovery.*;
+import org.gridgain.grid.spi.discovery.tcp.internal.*;
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
+import org.gridgain.grid.spi.discovery.tcp.messages.*;
+import org.gridgain.grid.util.*;
+import org.gridgain.grid.util.io.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+import static org.gridgain.grid.spi.discovery.tcp.internal.TcpDiscoverySpiState.*;
+
+/**
+ * Base class for TCP discovery SPIs.
+ */
+abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements DiscoverySpi {
+    /** Default port to listen (value is <tt>47500</tt>). */
+    public static final int DFLT_PORT = 47500;
+
+    /** Default socket operations timeout in milliseconds (value is <tt>2,000ms</tt>). */
+    public static final long DFLT_SOCK_TIMEOUT = 2000;
+
+    /** Default timeout for receiving message acknowledgement in milliseconds (value is <tt>5,000ms</tt>). */
+    public static final long DFLT_ACK_TIMEOUT = 5000;
+
+    /** Default network timeout in milliseconds (value is <tt>5,000ms</tt>). */
+    public static final long DFLT_NETWORK_TIMEOUT = 5000;
+
+    /** Default value for thread priority (value is <tt>10</tt>). */
+    public static final int DFLT_THREAD_PRI = 10;
+
+    /** Default heartbeat messages issuing frequency (value is <tt>2,000ms</tt>). */
+    public static final long DFLT_HEARTBEAT_FREQ = 2000;
+
+    /** Default size of topology snapshots history. */
+    public static final int DFLT_TOP_HISTORY_SIZE = 1000;
+
+    /** Response OK. */
+    protected static final int RES_OK = 1;
+
+    /** Response CONTINUE JOIN. */
+    protected static final int RES_CONTINUE_JOIN = 100;
+
+    /** Response WAIT. */
+    protected static final int RES_WAIT = 200;
+
+    /** Local address. */
+    protected String locAddr;
+
+    /** IP finder. */
+    protected GridTcpDiscoveryIpFinder ipFinder;
+
+    /** Socket operations timeout. */
+    protected long sockTimeout = DFLT_SOCK_TIMEOUT;
+
+    /** Message acknowledgement timeout. */
+    protected long ackTimeout = DFLT_ACK_TIMEOUT;
+
+    /** Network timeout. */
+    protected long netTimeout = DFLT_NETWORK_TIMEOUT;
+
+    /** Thread priority for all threads started by SPI. */
+    protected int threadPri = DFLT_THREAD_PRI;
+
+    /** Heartbeat messages issuing frequency. */
+    protected long hbFreq = DFLT_HEARTBEAT_FREQ;
+
+    /** Size of topology snapshots history. */
+    protected int topHistSize = DFLT_TOP_HISTORY_SIZE;
+
+    /** Grid discovery listener. */
+    protected volatile DiscoverySpiListener lsnr;
+
+    /** Data exchange. */
+    protected DiscoverySpiDataExchange exchange;
+
+    /** Metrics provider. */
+    protected DiscoveryMetricsProvider metricsProvider;
+
+    /** Local node attributes. */
+    protected Map<String, Object> locNodeAttrs;
+
+    /** Local node version. */
+    protected IgniteProductVersion locNodeVer;
+
+    /** Local node. */
+    protected TcpDiscoveryNode locNode;
+
+    /** Local host. */
+    protected InetAddress locHost;
+
+    /** Internal and external addresses of local node. */
+    protected Collection<InetSocketAddress> locNodeAddrs;
+
+    /** Socket timeout worker. */
+    protected SocketTimeoutWorker sockTimeoutWorker;
+
+    /** Discovery state. */
+    protected TcpDiscoverySpiState spiState = DISCONNECTED;
+
+    /** Start time of the very first grid node. */
+    protected volatile long gridStartTime;
+
+    /** Marshaller. */
+    protected final IgniteMarshaller marsh = new IgniteJdkMarshaller();
+
+    /** Statistics. */
+    protected final TcpDiscoveryStatistics stats = new TcpDiscoveryStatistics();
+
+    /** Local node ID. */
+    @IgniteLocalNodeIdResource
+    protected UUID locNodeId;
+
+    /** Name of the grid. */
+    @IgniteNameResource
+    protected String gridName;
+
+    /** Logger. */
+    @IgniteLoggerResource
+    protected IgniteLogger log;
+
+    /**
+     * Sets local host IP address that discovery SPI uses.
+     * <p>
+     * If not provided, by default a first found non-loopback address
+     * will be used. If there is no non-loopback address available,
+     * then {@link InetAddress#getLocalHost()} will be used.
+     *
+     * @param locAddr IP address.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    @IgniteLocalHostResource
+    public void setLocalAddress(String locAddr) {
+        // Injection should not override value already set by Spring or user.
+        if (this.locAddr == null)
+            this.locAddr = locAddr;
+    }
+
+    /**
+     * Gets local address that was set to SPI with {@link #setLocalAddress(String)} method.
+     *
+     * @return local address.
+     */
+    public String getLocalAddress() {
+        return locAddr;
+    }
+
+    /**
+     * Gets IP finder for IP addresses sharing and storing.
+     *
+     * @return IP finder for IP addresses sharing and storing.
+     */
+    public GridTcpDiscoveryIpFinder getIpFinder() {
+        return ipFinder;
+    }
+
+    /**
+     * Sets IP finder for IP addresses sharing and storing.
+     * <p>
+     * If not provided {@link GridTcpDiscoveryMulticastIpFinder} will be used by default.
+     *
+     * @param ipFinder IP finder.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setIpFinder(GridTcpDiscoveryIpFinder ipFinder) {
+        this.ipFinder = ipFinder;
+    }
+
+    /**
+     * Sets socket operations timeout. This timeout is used to limit connection time and
+     * write-to-socket time.
+     * <p>
+     * Note that when running GridGain on Amazon EC2, socket timeout must be set to a value
+     * significantly greater than the default (e.g. to {@code 30000}).
+     * <p>
+     * If not specified, default is {@link #DFLT_SOCK_TIMEOUT}.
+     *
+     * @param sockTimeout Socket connection timeout.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setSocketTimeout(long sockTimeout) {
+        this.sockTimeout = sockTimeout;
+    }
+
+    /**
+     * Sets timeout for receiving acknowledgement for sent message.
+     * <p>
+     * If acknowledgement is not received within this timeout, sending is considered as failed
+     * and SPI tries to repeat message sending.
+     * <p>
+     * If not specified, default is {@link #DFLT_ACK_TIMEOUT}.
+     *
+     * @param ackTimeout Acknowledgement timeout.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setAckTimeout(long ackTimeout) {
+        this.ackTimeout = ackTimeout;
+    }
+
+    /**
+     * Sets maximum network timeout to use for network operations.
+     * <p>
+     * If not specified, default is {@link #DFLT_NETWORK_TIMEOUT}.
+     *
+     * @param netTimeout Network timeout.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setNetworkTimeout(long netTimeout) {
+        this.netTimeout = netTimeout;
+    }
+
+    /**
+     * Sets thread priority. All threads within SPI will be started with it.
+     * <p>
+     * If not provided, default value is {@link #DFLT_THREAD_PRI}
+     *
+     * @param threadPri Thread priority.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setThreadPriority(int threadPri) {
+        this.threadPri = threadPri;
+    }
+
+    /**
+     * Sets delay between issuing of heartbeat messages. SPI sends heartbeat messages
+     * in configurable time interval to other nodes to notify them about its state.
+     * <p>
+     * If not provided, default value is {@link #DFLT_HEARTBEAT_FREQ}.
+     *
+     * @param hbFreq Heartbeat frequency in milliseconds.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setHeartbeatFrequency(long hbFreq) {
+        this.hbFreq = hbFreq;
+    }
+
+    /**
+     * @return Size of topology snapshots history.
+     */
+    public long getTopHistorySize() {
+        return topHistSize;
+    }
+
+    /**
+     * Sets size of topology snapshots history. Specified size should be greater than or equal to default size
+     * {@link #DFLT_TOP_HISTORY_SIZE}.
+     *
+     * @param topHistSize Size of topology snapshots history.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setTopHistorySize(int topHistSize) {
+        if (topHistSize < DFLT_TOP_HISTORY_SIZE) {
+            U.warn(log, "Topology history size should be greater than or equal to default size. " +
+                "Specified size will not be set [curSize=" + this.topHistSize + ", specifiedSize=" + topHistSize +
+                ", defaultSize=" + DFLT_TOP_HISTORY_SIZE + ']');
+
+            return;
+        }
+
+        this.topHistSize = topHistSize;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void setNodeAttributes(Map<String, Object> attrs, IgniteProductVersion ver) {
+        assert locNodeAttrs == null;
+        assert locNodeVer == null;
+
+        if (log.isDebugEnabled()) {
+            log.debug("Node attributes to set: " + attrs);
+            log.debug("Node version to set: " + ver);
+        }
+
+        locNodeAttrs = attrs;
+        locNodeVer = ver;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException {
+        super.onContextInitialized0(spiCtx);
+
+        ipFinder.onSpiContextInitialized(spiCtx);
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void onContextDestroyed0() {
+        super.onContextDestroyed0();
+
+        ipFinder.onSpiContextDestroyed();
+    }
+
+    /** {@inheritDoc} */
+    @Override public ClusterNode getLocalNode() {
+        return locNode;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void setListener(@Nullable DiscoverySpiListener lsnr) {
+        this.lsnr = lsnr;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void setDataExchange(DiscoverySpiDataExchange exchange) {
+        this.exchange = exchange;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void setMetricsProvider(DiscoveryMetricsProvider metricsProvider) {
+        this.metricsProvider = metricsProvider;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getGridStartTime() {
+        assert gridStartTime != 0;
+
+        return gridStartTime;
+    }
+
+    /**
+     * @param sockAddr Remote address.
+     * @return Opened socket.
+     * @throws IOException If failed.
+     */
+    protected Socket openSocket(InetSocketAddress sockAddr) throws IOException {
+        assert sockAddr != null;
+
+        InetSocketAddress resolved = sockAddr.isUnresolved() ?
+            new InetSocketAddress(InetAddress.getByName(sockAddr.getHostName()), sockAddr.getPort()) : sockAddr;
+
+        InetAddress addr = resolved.getAddress();
+
+        assert addr != null;
+
+        Socket sock = new Socket();
+
+        sock.bind(new InetSocketAddress(locHost, 0));
+
+        sock.setTcpNoDelay(true);
+
+        sock.connect(resolved, (int)sockTimeout);
+
+        writeToSocket(sock, U.GG_HEADER);
+
+        return sock;
+    }
+
+    /**
+     * Writes message to the socket.
+     *
+     * @param sock Socket.
+     * @param data Raw data to write.
+     * @throws IOException If IO failed or write timed out.
+     */
+    @SuppressWarnings("ThrowFromFinallyBlock")
+    protected void writeToSocket(Socket sock, byte[] data) throws IOException {
+        assert sock != null;
+        assert data != null;
+
+        SocketTimeoutObject obj = new SocketTimeoutObject(sock, U.currentTimeMillis() + sockTimeout);
+
+        sockTimeoutWorker.addTimeoutObject(obj);
+
+        IOException err = null;
+
+        try {
+            OutputStream out = sock.getOutputStream();
+
+            out.write(data);
+
+            out.flush();
+        }
+        catch (IOException e) {
+            err = e;
+        }
+        finally {
+            boolean cancelled = obj.cancel();
+
+            if (cancelled)
+                sockTimeoutWorker.removeTimeoutObject(obj);
+
+            // Throw original exception.
+            if (err != null)
+                throw err;
+
+            if (!cancelled)
+                throw new SocketTimeoutException("Write timed out (socket was concurrently closed).");
+        }
+    }
+
+    /**
+     * Writes message to the socket.
+     *
+     * @param sock Socket.
+     * @param msg Message.
+     * @throws IOException If IO failed or write timed out.
+     * @throws GridException If marshalling failed.
+     */
+    protected void writeToSocket(Socket sock, GridTcpDiscoveryAbstractMessage msg) throws IOException, GridException {
+        writeToSocket(sock, msg, new GridByteArrayOutputStream(8 * 1024)); // 8K.
+    }
+
+    /**
+     * Writes message to the socket.
+     *
+     * @param sock Socket.
+     * @param msg Message.
+     * @param bout Byte array output stream.
+     * @throws IOException If IO failed or write timed out.
+     * @throws GridException If marshalling failed.
+     */
+    @SuppressWarnings("ThrowFromFinallyBlock")
+    protected void writeToSocket(Socket sock, GridTcpDiscoveryAbstractMessage msg, GridByteArrayOutputStream bout)
+        throws IOException, GridException {
+        assert sock != null;
+        assert msg != null;
+        assert bout != null;
+
+        // Marshall message first to perform only write after.
+        marsh.marshal(msg, bout);
+
+        SocketTimeoutObject obj = new SocketTimeoutObject(sock, U.currentTimeMillis() + sockTimeout);
+
+        sockTimeoutWorker.addTimeoutObject(obj);
+
+        IOException err = null;
+
+        try {
+            OutputStream out = sock.getOutputStream();
+
+            bout.writeTo(out);
+
+            out.flush();
+        }
+        catch (IOException e) {
+            err = e;
+        }
+        finally {
+            boolean cancelled = obj.cancel();
+
+            if (cancelled)
+                sockTimeoutWorker.removeTimeoutObject(obj);
+
+            // Throw original exception.
+            if (err != null)
+                throw err;
+
+            if (!cancelled)
+                throw new SocketTimeoutException("Write timed out (socket was concurrently closed).");
+        }
+    }
+
+    /**
+     * Writes response to the socket.
+     *
+     * @param sock Socket.
+     * @param res Integer response.
+     * @throws IOException If IO failed or write timed out.
+     */
+    @SuppressWarnings("ThrowFromFinallyBlock")
+    protected void writeToSocket(Socket sock, int res) throws IOException {
+        assert sock != null;
+
+        SocketTimeoutObject obj = new SocketTimeoutObject(sock, U.currentTimeMillis() + sockTimeout);
+
+        sockTimeoutWorker.addTimeoutObject(obj);
+
+        OutputStream out = sock.getOutputStream();
+
+        IOException err = null;
+
+        try {
+            out.write(res);
+
+            out.flush();
+        }
+        catch (IOException e) {
+            err = e;
+        }
+        finally {
+            boolean cancelled = obj.cancel();
+
+            if (cancelled)
+                sockTimeoutWorker.removeTimeoutObject(obj);
+
+            // Throw original exception.
+            if (err != null)
+                throw err;
+
+            if (!cancelled)
+                throw new SocketTimeoutException("Write timed out (socket was concurrently closed).");
+        }
+    }
+
+    /**
+     * Reads message from the socket limiting read time.
+     *
+     * @param sock Socket.
+     * @param in Input stream (in case socket stream was wrapped).
+     * @param timeout Socket timeout for this operation.
+     * @return Message.
+     * @throws IOException If IO failed or read timed out.
+     * @throws GridException If unmarshalling failed.
+     */
+    protected <T> T readMessage(Socket sock, @Nullable InputStream in, long timeout) throws IOException, GridException {
+        assert sock != null;
+
+        int oldTimeout = sock.getSoTimeout();
+
+        try {
+            sock.setSoTimeout((int)timeout);
+
+            return marsh.unmarshal(in == null ? sock.getInputStream() : in, U.gridClassLoader());
+        }
+        catch (IOException | GridException e) {
+            if (X.hasCause(e, SocketTimeoutException.class))
+                LT.warn(log, null, "Timed out waiting for message to be read (most probably, the reason is " +
+                    "in long GC pauses on remote node. Current timeout: " + timeout + '.');
+
+            throw e;
+        }
+        finally {
+            // Quietly restore timeout.
+            try {
+                sock.setSoTimeout(oldTimeout);
+            }
+            catch (SocketException ignored) {
+                // No-op.
+            }
+        }
+    }
+
+    /**
+     * Reads message delivery receipt from the socket.
+     *
+     * @param sock Socket.
+     * @param timeout Socket timeout for this operation.
+     * @return Receipt.
+     * @throws IOException If IO failed or read timed out.
+     */
+    protected int readReceipt(Socket sock, long timeout) throws IOException {
+        assert sock != null;
+
+        int oldTimeout = sock.getSoTimeout();
+
+        try {
+            sock.setSoTimeout((int)timeout);
+
+            int res = sock.getInputStream().read();
+
+            if (res == -1)
+                throw new EOFException();
+
+            return res;
+        }
+        catch (SocketTimeoutException e) {
+            LT.warn(log, null, "Timed out waiting for message delivery receipt (most probably, the reason is " +
+                "in long GC pauses on remote node; consider tuning GC and increasing 'ackTimeout' " +
+                "configuration property). Will retry to send message with increased timeout. " +
+                "Current timeout: " + timeout + '.');
+
+            stats.onAckTimeout();
+
+            throw e;
+        }
+        finally {
+            // Quietly restore timeout.
+            try {
+                sock.setSoTimeout(oldTimeout);
+            }
+            catch (SocketException ignored) {
+                // No-op.
+            }
+        }
+    }
+
+    /**
+     * Resolves addresses registered in the IP finder, removes duplicates and local host
+     * address and returns the collection of.
+     *
+     * @return Resolved addresses without duplicates and local address (potentially
+     *      empty but never null).
+     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
+     */
+    protected Collection<InetSocketAddress> resolvedAddresses() throws IgniteSpiException {
+        List<InetSocketAddress> res = new ArrayList<>();
+
+        Collection<InetSocketAddress> addrs;
+
+        // Get consistent addresses collection.
+        while (true) {
+            try {
+                addrs = registeredAddresses();
+
+                break;
+            }
+            catch (IgniteSpiException e) {
+                LT.error(log, e, "Failed to get registered addresses from IP finder on start " +
+                    "(retrying every 2000 ms).");
+            }
+
+            try {
+                U.sleep(2000);
+            }
+            catch (GridInterruptedException e) {
+                throw new IgniteSpiException("Thread has been interrupted.", e);
+            }
+        }
+
+        for (InetSocketAddress addr : addrs) {
+            assert addr != null;
+
+            try {
+                InetSocketAddress resolved = addr.isUnresolved() ?
+                    new InetSocketAddress(InetAddress.getByName(addr.getHostName()), addr.getPort()) : addr;
+
+                if (locNodeAddrs == null || !locNodeAddrs.contains(resolved))
+                    res.add(resolved);
+            }
+            catch (UnknownHostException ignored) {
+                LT.warn(log, null, "Failed to resolve address from IP finder (host is unknown): " + addr);
+
+                // Add address in any case.
+                res.add(addr);
+            }
+        }
+
+        if (!res.isEmpty())
+            Collections.shuffle(res);
+
+        return res;
+    }
+
+    /**
+     * Gets addresses registered in the IP finder, initializes addresses having no
+     * port (or 0 port) with {@link #DFLT_PORT}.
+     *
+     * @return Registered addresses.
+     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
+     */
+    protected Collection<InetSocketAddress> registeredAddresses() throws IgniteSpiException {
+        Collection<InetSocketAddress> res = new LinkedList<>();
+
+        for (InetSocketAddress addr : ipFinder.getRegisteredAddresses()) {
+            if (addr.getPort() == 0)
+                addr = addr.isUnresolved() ? new InetSocketAddress(addr.getHostName(), DFLT_PORT) :
+                    new InetSocketAddress(addr.getAddress(), DFLT_PORT);
+
+            res.add(addr);
+        }
+
+        return res;
+    }
+
+    /**
+     * @param msg Message.
+     * @return Error.
+     */
+    protected IgniteSpiException duplicateIdError(GridTcpDiscoveryDuplicateIdMessage msg) {
+        assert msg != null;
+
+        return new IgniteSpiException("Local node has the same ID as existing node in topology " +
+            "(fix configuration and restart local node) [localNode=" + locNode +
+            ", existingNode=" + msg.node() + ']');
+    }
+
+    /**
+     * @param msg Message.
+     * @return Error.
+     */
+    protected IgniteSpiException authenticationFailedError(GridTcpDiscoveryAuthFailedMessage msg) {
+        assert msg != null;
+
+        return new IgniteSpiException(new GridAuthenticationException("Authentication failed [nodeId=" +
+            msg.creatorNodeId() + ", addr=" + msg.address().getHostAddress() + ']'));
+    }
+
+    /**
+     * @param msg Message.
+     * @return Error.
+     */
+    protected IgniteSpiException checkFailedError(GridTcpDiscoveryCheckFailedMessage msg) {
+        assert msg != null;
+
+        return versionCheckFailed(msg) ? new IgniteSpiVersionCheckException(msg.error()) :
+            new IgniteSpiException(msg.error());
+    }
+
+    /**
+     * @param msg Message.
+     * @return Whether delivery of the message is ensured.
+     */
+    protected boolean ensured(GridTcpDiscoveryAbstractMessage msg) {
+        return U.getAnnotation(msg.getClass(), GridTcpDiscoveryEnsureDelivery.class) != null;
+    }
+
+    /**
+     * @param msg Failed message.
+     * @return {@code True} if specified failed message relates to version incompatibility, {@code false} otherwise.
+     * @deprecated Parsing of error message was used for preserving backward compatibility. We should remove it
+     *      and create separate message for failed version check with next major release.
+     */
+    @Deprecated
+    private static boolean versionCheckFailed(GridTcpDiscoveryCheckFailedMessage msg) {
+        return msg.error().contains("versions are not compatible");
+    }
+
+    /**
+     * Handles sockets timeouts.
+     */
+    protected class SocketTimeoutWorker extends IgniteSpiThread {
+        /** Time-based sorted set for timeout objects. */
+        private final GridConcurrentSkipListSet<SocketTimeoutObject> timeoutObjs =
+            new GridConcurrentSkipListSet<>(new Comparator<SocketTimeoutObject>() {
+                @Override public int compare(SocketTimeoutObject o1, SocketTimeoutObject o2) {
+                    long time1 = o1.endTime();
+                    long time2 = o2.endTime();
+
+                    long id1 = o1.id();
+                    long id2 = o2.id();
+
+                    return time1 < time2 ? -1 : time1 > time2 ? 1 :
+                        id1 < id2 ? -1 : id1 > id2 ? 1 : 0;
+                }
+            });
+
+        /** Mutex. */
+        private final Object mux0 = new Object();
+
+        /**
+         *
+         */
+        SocketTimeoutWorker() {
+            super(gridName, "tcp-disco-sock-timeout-worker", log);
+
+            setPriority(threadPri);
+        }
+
+        /**
+         * @param timeoutObj Timeout object to add.
+         */
+        @SuppressWarnings({"NakedNotify"})
+        public void addTimeoutObject(SocketTimeoutObject timeoutObj) {
+            assert timeoutObj != null && timeoutObj.endTime() > 0 && timeoutObj.endTime() != Long.MAX_VALUE;
+
+            timeoutObjs.add(timeoutObj);
+
+            if (timeoutObjs.firstx() == timeoutObj) {
+                synchronized (mux0) {
+                    mux0.notifyAll();
+                }
+            }
+        }
+
+        /**
+         * @param timeoutObj Timeout object to remove.
+         */
+        public void removeTimeoutObject(SocketTimeoutObject timeoutObj) {
+            assert timeoutObj != null;
+
+            timeoutObjs.remove(timeoutObj);
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void body() throws InterruptedException {
+            if (log.isDebugEnabled())
+                log.debug("Socket timeout worker has been started.");
+
+            while (!isInterrupted()) {
+                long now = U.currentTimeMillis();
+
+                for (Iterator<SocketTimeoutObject> iter = timeoutObjs.iterator(); iter.hasNext(); ) {
+                    SocketTimeoutObject timeoutObj = iter.next();
+
+                    if (timeoutObj.endTime() <= now) {
+                        iter.remove();
+
+                        if (timeoutObj.onTimeout()) {
+                            LT.warn(log, null, "Socket write has timed out (consider increasing " +
+                                "'sockTimeout' configuration property) [sockTimeout=" + sockTimeout + ']');
+
+                            stats.onSocketTimeout();
+                        }
+                    }
+                    else
+                        break;
+                }
+
+                synchronized (mux0) {
+                    while (true) {
+                        // Access of the first element must be inside of
+                        // synchronization block, so we don't miss out
+                        // on thread notification events sent from
+                        // 'addTimeoutObject(..)' method.
+                        SocketTimeoutObject first = timeoutObjs.firstx();
+
+                        if (first != null) {
+                            long waitTime = first.endTime() - U.currentTimeMillis();
+
+                            if (waitTime > 0)
+                                mux0.wait(waitTime);
+                            else
+                                break;
+                        }
+                        else
+                            mux0.wait(5000);
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Socket timeout object.
+     */
+    protected static class SocketTimeoutObject {
+        /** */
+        private static final AtomicLong idGen = new AtomicLong();
+
+        /** */
+        private final long id = idGen.incrementAndGet();
+
+        /** */
+        private final Socket sock;
+
+        /** */
+        private final long endTime;
+
+        /** */
+        private final AtomicBoolean done = new AtomicBoolean();
+
+        /**
+         * @param sock Socket.
+         * @param endTime End time.
+         */
+        SocketTimeoutObject(Socket sock, long endTime) {
+            assert sock != null;
+            assert endTime > 0;
+
+            this.sock = sock;
+            this.endTime = endTime;
+        }
+
+        /**
+         * @return {@code True} if object has not yet been processed.
+         */
+        boolean cancel() {
+            return done.compareAndSet(false, true);
+        }
+
+        /**
+         * @return {@code True} if object has not yet been canceled.
+         */
+        boolean onTimeout() {
+            if (done.compareAndSet(false, true)) {
+                // Close socket - timeout occurred.
+                U.closeQuiet(sock);
+
+                return true;
+            }
+
+            return false;
+        }
+
+        /**
+         * @return End time.
+         */
+        long endTime() {
+            return endTime;
+        }
+
+        /**
+         * @return ID.
+         */
+        long id() {
+            return id;
+        }
+
+        /** {@inheritDoc} */
+        @Override public String toString() {
+            return S.toString(SocketTimeoutObject.class, this);
+        }
+    }
+
+    /**
+     * Base class for message workers.
+     */
+    protected abstract class MessageWorkerAdapter extends IgniteSpiThread {
+        /** Pre-allocated output stream (100K). */
+        private final GridByteArrayOutputStream bout = new GridByteArrayOutputStream(100 * 1024);
+
+        /** Message queue. */
+        private final BlockingDeque<GridTcpDiscoveryAbstractMessage> queue = new LinkedBlockingDeque<>();
+
+        /** Backed interrupted flag. */
+        private volatile boolean interrupted;
+
+        /**
+         * @param name Thread name.
+         */
+        protected MessageWorkerAdapter(String name) {
+            super(gridName, name, log);
+
+            setPriority(threadPri);
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void body() throws InterruptedException {
+            if (log.isDebugEnabled())
+                log.debug("Message worker started [locNodeId=" + locNodeId + ']');
+
+            while (!isInterrupted()) {
+                GridTcpDiscoveryAbstractMessage msg = queue.poll(2000, TimeUnit.MILLISECONDS);
+
+                if (msg == null)
+                    continue;
+
+                processMessage(msg);
+            }
+        }
+
+        /** {@inheritDoc} */
+        @Override public void interrupt() {
+            interrupted = true;
+
+            super.interrupt();
+        }
+
+        /** {@inheritDoc} */
+        @Override public boolean isInterrupted() {
+            return interrupted || super.isInterrupted();
+        }
+
+        /**
+         * @return Current queue size.
+         */
+        int queueSize() {
+            return queue.size();
+        }
+
+        /**
+         * Adds message to queue.
+         *
+         * @param msg Message to add.
+         */
+        void addMessage(GridTcpDiscoveryAbstractMessage msg) {
+            assert msg != null;
+
+            if (msg instanceof GridTcpDiscoveryHeartbeatMessage)
+                queue.addFirst(msg);
+            else
+                queue.add(msg);
+
+            if (log.isDebugEnabled())
+                log.debug("Message has been added to queue: " + msg);
+        }
+
+        protected abstract void processMessage(GridTcpDiscoveryAbstractMessage msg);
+
+        /**
+         * @param sock Socket.
+         * @param msg Message.
+         * @throws IOException If IO failed.
+         * @throws GridException If marshalling failed.
+         */
+        protected final void writeToSocket(Socket sock, GridTcpDiscoveryAbstractMessage msg)
+            throws IOException, GridException {
+            bout.reset();
+
+            TcpDiscoverySpiAdapter.this.writeToSocket(sock, msg, bout);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java
new file mode 100644
index 0000000..0f9212d
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java
@@ -0,0 +1,268 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp;
+
+import org.apache.ignite.mbean.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Management bean for {@link TcpDiscoverySpi}.
+ */
+public interface TcpDiscoverySpiMBean extends IgniteSpiManagementMBean {
+    /**
+     * Gets delay between heartbeat messages sent by coordinator.
+     *
+     * @return Time period in milliseconds.
+     */
+    @IgniteMBeanDescription("Heartbeat frequency.")
+    public long getHeartbeatFrequency();
+
+    /**
+     * Gets current SPI state.
+     *
+     * @return Current SPI state.
+     */
+    @IgniteMBeanDescription("SPI state.")
+    public String getSpiState();
+
+    /**
+     * Gets {@link GridTcpDiscoveryIpFinder} (string representation).
+     *
+     * @return IPFinder (string representation).
+     */
+    @IgniteMBeanDescription("IP Finder.")
+    public String getIpFinderFormatted();
+
+    /**
+     * Gets number of connection attempts.
+     *
+     * @return Number of connection attempts.
+     */
+    @IgniteMBeanDescription("Reconnect count.")
+    public int getReconnectCount();
+
+    /**
+     * Gets network timeout.
+     *
+     * @return Network timeout.
+     */
+    @IgniteMBeanDescription("Network timeout.")
+    public long getNetworkTimeout();
+
+    /**
+     * Gets local TCP port SPI listens to.
+     *
+     * @return Local port range.
+     */
+    @IgniteMBeanDescription("Local TCP port.")
+    public int getLocalPort();
+
+    /**
+     * Gets local TCP port range.
+     *
+     * @return Local port range.
+     */
+    @IgniteMBeanDescription("Local TCP port range.")
+    public int getLocalPortRange();
+
+    /**
+     * Gets max heartbeats count node can miss without initiating status check.
+     *
+     * @return Max missed heartbeats.
+     */
+    @IgniteMBeanDescription("Max missed heartbeats.")
+    public int getMaxMissedHeartbeats();
+
+    /**
+     * Gets max heartbeats count node can miss without failing client node.
+     *
+     * @return Max missed client heartbeats.
+     */
+    @IgniteMBeanDescription("Max missed client heartbeats.")
+    public int getMaxMissedClientHeartbeats();
+
+    /**
+     * Gets thread priority. All threads within SPI will be started with it.
+     *
+     * @return Thread priority.
+     */
+    @IgniteMBeanDescription("Threads priority.")
+    public int getThreadPriority();
+
+    /**
+     * Gets IP finder clean frequency.
+     *
+     * @return IP finder clean frequency.
+     */
+    @IgniteMBeanDescription("IP finder clean frequency.")
+    public long getIpFinderCleanFrequency();
+
+    /**
+     * Gets statistics print frequency.
+     *
+     * @return Statistics print frequency in milliseconds.
+     */
+    @IgniteMBeanDescription("Statistics print frequency.")
+    public long getStatisticsPrintFrequency();
+
+    /**
+     * Gets message worker queue current size.
+     *
+     * @return Message worker queue current size.
+     */
+    @IgniteMBeanDescription("Message worker queue current size.")
+    public int getMessageWorkerQueueSize();
+
+    /**
+     * Gets joined nodes count.
+     *
+     * @return Nodes joined count.
+     */
+    @IgniteMBeanDescription("Nodes joined count.")
+    public long getNodesJoined();
+
+    /**
+     * Gets left nodes count.
+     *
+     * @return Left nodes count.
+     */
+    @IgniteMBeanDescription("Nodes left count.")
+    public long getNodesLeft();
+
+    /**
+     * Gets failed nodes count.
+     *
+     * @return Failed nodes count.
+     */
+    @IgniteMBeanDescription("Nodes failed count.")
+    public long getNodesFailed();
+
+    /**
+     * Gets pending messages registered count.
+     *
+     * @return Pending messages registered count.
+     */
+    @IgniteMBeanDescription("Pending messages registered.")
+    public long getPendingMessagesRegistered();
+
+    /**
+     * Gets pending messages discarded count.
+     *
+     * @return Pending messages registered count.
+     */
+    @IgniteMBeanDescription("Pending messages discarded.")
+    public long getPendingMessagesDiscarded();
+
+    /**
+     * Gets avg message processing time.
+     *
+     * @return Avg message processing time.
+     */
+    @IgniteMBeanDescription("Avg message processing time.")
+    public long getAvgMessageProcessingTime();
+
+    /**
+     * Gets max message processing time.
+     *
+     * @return Max message processing time.
+     */
+    @IgniteMBeanDescription("Max message processing time.")
+    public long getMaxMessageProcessingTime();
+
+    /**
+     * Gets total received messages count.
+     *
+     * @return Total received messages count.
+     */
+    @IgniteMBeanDescription("Total received messages count.")
+    public int getTotalReceivedMessages();
+
+    /**
+     * Gets received messages counts (grouped by type).
+     *
+     * @return Map containing message types and respective counts.
+     */
+    @IgniteMBeanDescription("Received messages by type.")
+    public Map<String, Integer> getReceivedMessages();
+
+    /**
+     * Gets total processed messages count.
+     *
+     * @return Total processed messages count.
+     */
+    @IgniteMBeanDescription("Total processed messages count.")
+    public int getTotalProcessedMessages();
+
+    /**
+     * Gets processed messages counts (grouped by type).
+     *
+     * @return Map containing message types and respective counts.
+     */
+    @IgniteMBeanDescription("Received messages by type.")
+    public Map<String, Integer> getProcessedMessages();
+
+    /**
+     * Gets time local node has been coordinator since.
+     *
+     * @return Time local node is coordinator since.
+     */
+    @IgniteMBeanDescription("Local node is coordinator since.")
+    public long getCoordinatorSinceTimestamp();
+
+    /**
+     * Gets current coordinator.
+     *
+     * @return Gets current coordinator.
+     */
+    @IgniteMBeanDescription("Coordinator node ID.")
+    @Nullable public UUID getCoordinator();
+
+    /**
+     * Gets message acknowledgement timeout.
+     *
+     * @return Message acknowledgement timeout.
+     */
+    @IgniteMBeanDescription("Message acknowledgement timeout.")
+    public long getAckTimeout();
+
+    /**
+     * Gets maximum message acknowledgement timeout.
+     *
+     * @return Maximum message acknowledgement timeout.
+     */
+    @IgniteMBeanDescription("Maximum message acknowledgement timeout.")
+    public long getMaxAckTimeout();
+
+    /**
+     * Gets socket timeout.
+     *
+     * @return Socket timeout.
+     */
+    @IgniteMBeanDescription("Socket timeout.")
+    public long getSocketTimeout();
+
+    /**
+     * Gets join timeout.
+     *
+     * @return Join timeout.
+     */
+    @IgniteMBeanDescription("Join timeout.")
+    public long getJoinTimeout();
+
+    /**
+     * Dumps debug info using configured logger.
+     */
+    @IgniteMBeanDescription("Dump debug info.")
+    public void dumpDebugInfo();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNode.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNode.java
deleted file mode 100644
index 3469973..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNode.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.internal;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.product.*;
-import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.util.lang.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import static org.gridgain.grid.kernal.GridNodeAttributes.*;
-
-/**
- * Node for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
- * <p>
- * <strong>This class is not intended for public use</strong> and has been made
- * <tt>public</tt> due to certain limitations of Java technology.
- */
-public class GridTcpDiscoveryNode extends GridMetadataAwareAdapter implements ClusterNode,
-    Comparable<GridTcpDiscoveryNode>, Externalizable {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Node ID. */
-    private UUID id;
-
-    /** Consistent ID. */
-    private Object consistentId;
-
-    /** Node attributes. */
-    @GridToStringExclude
-    private Map<String, Object> attrs;
-
-    /** Internal discovery addresses as strings. */
-    @GridToStringInclude
-    private Collection<String> addrs;
-
-    /** Internal discovery host names as strings. */
-    private Collection<String> hostNames;
-
-    /** */
-    @GridToStringInclude
-    private Collection<InetSocketAddress> sockAddrs;
-
-    /** */
-    @GridToStringInclude
-    private int discPort;
-
-    /** Node metrics. */
-    @GridToStringExclude
-    private volatile ClusterNodeMetrics metrics;
-
-    /** Node order in the topology. */
-    private volatile long order;
-
-    /** Node order in the topology (internal). */
-    private volatile long intOrder;
-
-    /** The most recent time when heartbeat message was received from the node. */
-    @GridToStringExclude
-    private volatile long lastUpdateTime = U.currentTimeMillis();
-
-    /** Metrics provider (transient). */
-    @GridToStringExclude
-    private DiscoveryMetricsProvider metricsProvider;
-
-    /** Visible flag (transient). */
-    @GridToStringExclude
-    private boolean visible;
-
-    /** Grid local node flag (transient). */
-    private boolean loc;
-
-    /** Version. */
-    private IgniteProductVersion ver;
-
-    /** Alive check (used by clients). */
-    @GridToStringExclude
-    private transient int aliveCheck;
-
-    /** Client router node ID. */
-    @GridToStringExclude
-    private UUID clientRouterNodeId;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryNode() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param id Node Id.
-     * @param addrs Addresses.
-     * @param hostNames Host names.
-     * @param discPort Port.
-     * @param metricsProvider Metrics provider.
-     * @param ver Version.
-     */
-    public GridTcpDiscoveryNode(UUID id, Collection<String> addrs, Collection<String> hostNames, int discPort,
-        DiscoveryMetricsProvider metricsProvider, IgniteProductVersion ver) {
-        assert id != null;
-        assert !F.isEmpty(addrs);
-        assert metricsProvider != null;
-        assert ver != null;
-
-        this.id = id;
-        this.addrs = addrs;
-        this.hostNames = hostNames;
-        this.discPort = discPort;
-        this.metricsProvider = metricsProvider;
-        this.ver = ver;
-
-        consistentId = U.consistentId(addrs, discPort);
-
-        metrics = metricsProvider.getMetrics();
-        sockAddrs = U.toSocketAddresses(this, discPort);
-    }
-
-    /** {@inheritDoc} */
-    @Override public UUID id() {
-        return id;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Object consistentId() {
-        return consistentId;
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override public <T> T attribute(String name) {
-        // Even though discovery SPI removes this attribute after authentication, keep this check for safety.
-        if (GridNodeAttributes.ATTR_SECURITY_CREDENTIALS.equals(name))
-            return null;
-
-        return (T)attrs.get(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override public Map<String, Object> attributes() {
-        // Even though discovery SPI removes this attribute after authentication, keep this check for safety.
-        return F.view(attrs, new IgnitePredicate<String>() {
-            @Override public boolean apply(String s) {
-                return !GridNodeAttributes.ATTR_SECURITY_CREDENTIALS.equals(s);
-            }
-        });
-    }
-
-    /**
-     * Sets node attributes.
-     *
-     * @param attrs Node attributes.
-     */
-    public void setAttributes(Map<String, Object> attrs) {
-        this.attrs = U.sealMap(attrs);
-    }
-
-    /**
-     * Gets node attributes without filtering.
-     *
-     * @return Node attributes without filtering.
-     */
-    public Map<String, Object> getAttributes() {
-        return attrs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public ClusterNodeMetrics metrics() {
-        if (metricsProvider != null)
-            metrics = metricsProvider.getMetrics();
-
-        return metrics;
-    }
-
-    /**
-     * Sets node metrics.
-     *
-     * @param metrics Node metrics.
-     */
-    public void setMetrics(ClusterNodeMetrics metrics) {
-        assert metrics != null;
-
-        this.metrics = metrics;
-    }
-
-    /**
-     * @return Internal order.
-     */
-    public long internalOrder() {
-        return intOrder;
-    }
-
-    /**
-     * @param intOrder Internal order of the node.
-     */
-    public void internalOrder(long intOrder) {
-        assert intOrder > 0;
-
-        this.intOrder = intOrder;
-    }
-
-    /**
-     * @return Order.
-     */
-    @Override public long order() {
-        return order;
-    }
-
-    /**
-     * @param order Order of the node.
-     */
-    public void order(long order) {
-        assert order >= 0 : "Order is invalid: " + this;
-
-        this.order = order;
-    }
-
-    /** {@inheritDoc} */
-    @Override public IgniteProductVersion version() {
-        return ver;
-    }
-
-    /**
-     * @param ver Version.
-     */
-    public void version(IgniteProductVersion ver) {
-        assert ver != null;
-
-        this.ver = ver;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<String> addresses() {
-        return addrs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isLocal() {
-        return loc;
-    }
-
-    /**
-     * @param loc Grid local node flag.
-     */
-    public void local(boolean loc) {
-        this.loc = loc;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isDaemon() {
-        return "true".equalsIgnoreCase((String)attribute(ATTR_DAEMON));
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<String> hostNames() {
-        return hostNames;
-    }
-
-    /**
-     * @return Discovery port.
-     */
-    public int discoveryPort() {
-        return discPort;
-    }
-
-    /**
-     * @return Addresses that could be used by discovery.
-     */
-    public Collection<InetSocketAddress> socketAddresses() {
-        return sockAddrs;
-    }
-
-    /**
-     * Gets node last update time.
-     *
-     * @return Time of the last heartbeat.
-     */
-    public long lastUpdateTime() {
-        return lastUpdateTime;
-    }
-
-    /**
-     * Sets node last update.
-     *
-     * @param lastUpdateTime Time of last metrics update.
-     */
-    public void lastUpdateTime(long lastUpdateTime) {
-        assert lastUpdateTime > 0;
-
-        this.lastUpdateTime = lastUpdateTime;
-    }
-
-    /**
-     * Gets visible flag.
-     *
-     * @return {@code true} if node is in visible state.
-     */
-    public boolean visible() {
-        return visible;
-    }
-
-    /**
-     * Sets visible flag.
-     *
-     * @param visible {@code true} if node is in visible state.
-     */
-    public void visible(boolean visible) {
-        this.visible = visible;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isClient() {
-        return clientRouterNodeId != null;
-    }
-
-    /**
-     * Decrements alive check value and returns new one.
-     *
-     * @return Alive check value.
-     */
-    public int decrementAliveCheck() {
-        assert isClient();
-
-        return --aliveCheck;
-    }
-
-    /**
-     * @param aliveCheck Alive check value.
-     */
-    public void aliveCheck(int aliveCheck) {
-        assert isClient();
-
-        this.aliveCheck = aliveCheck;
-    }
-
-    /**
-     * @return Client router node ID.
-     */
-    public UUID clientRouterNodeId() {
-        return clientRouterNodeId;
-    }
-
-    /**
-     * @param clientRouterNodeId Client router node ID.
-     */
-    public void clientRouterNodeId(UUID clientRouterNodeId) {
-        this.clientRouterNodeId = clientRouterNodeId;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int compareTo(@Nullable GridTcpDiscoveryNode node) {
-        if (node == null)
-            return 1;
-
-        if (internalOrder() == node.internalOrder())
-            assert id().equals(node.id()) : "Duplicate order [this=" + this + ", other=" + node + ']';
-
-        return internalOrder() < node.internalOrder() ? -1 : internalOrder() > node.internalOrder() ? 1 :
-            id().compareTo(node.id());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        U.writeUuid(out, id);
-        U.writeMap(out, attrs);
-        U.writeCollection(out, addrs);
-        U.writeCollection(out, hostNames);
-        out.writeInt(discPort);
-
-        byte[] mtr = null;
-
-        if (metrics != null) {
-            mtr = new byte[DiscoveryMetricsHelper.METRICS_SIZE];
-
-            DiscoveryMetricsHelper.serialize(mtr, 0, metrics);
-        }
-
-        U.writeByteArray(out, mtr);
-
-        out.writeLong(order);
-        out.writeLong(intOrder);
-        out.writeObject(ver);
-        U.writeUuid(out, clientRouterNodeId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        id = U.readUuid(in);
-
-        attrs = U.sealMap(U.<String, Object>readMap(in));
-        addrs = U.readCollection(in);
-        hostNames = U.readCollection(in);
-        discPort = in.readInt();
-
-        sockAddrs = U.toSocketAddresses(this, discPort);
-
-        consistentId = U.consistentId(addrs, discPort);
-
-        byte[] mtr = U.readByteArray(in);
-
-        if (mtr != null)
-            metrics = DiscoveryMetricsHelper.deserialize(mtr, 0);
-
-        order = in.readLong();
-        intOrder = in.readLong();
-        ver = (IgniteProductVersion)in.readObject();
-        clientRouterNodeId = U.readUuid(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public int hashCode() {
-        return id.hashCode();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean equals(Object o) {
-        return F.eqNodes(this, o);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryNode.class, this, "isClient", isClient());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNodesRing.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNodesRing.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNodesRing.java
deleted file mode 100644
index 25c9192..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoveryNodesRing.java
+++ /dev/null
@@ -1,636 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.internal;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-import java.util.concurrent.locks.*;
-
-/**
- * Convenient way to represent topology for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}
- */
-public class GridTcpDiscoveryNodesRing {
-    /** Visible nodes filter. */
-    private static final IgnitePredicate<GridTcpDiscoveryNode> VISIBLE_NODES = new P1<GridTcpDiscoveryNode>() {
-        @Override public boolean apply(GridTcpDiscoveryNode node) {
-            return node.visible();
-        }
-    };
-
-    /** Client nodes filter. */
-    private static final PN CLIENT_NODES = new PN() {
-        @Override public boolean apply(ClusterNode node) {
-            return node.isClient();
-        }
-    };
-
-    /** Local node. */
-    private GridTcpDiscoveryNode locNode;
-
-    /** All nodes in topology. */
-    @GridToStringInclude
-    private NavigableSet<GridTcpDiscoveryNode> nodes = new TreeSet<>();
-
-    /** All started nodes. */
-    @GridToStringExclude
-    private Map<UUID, GridTcpDiscoveryNode> nodesMap = new HashMap<>();
-
-    /** Current topology version */
-    private long topVer;
-
-    /** */
-    private long nodeOrder;
-
-    /** Lock. */
-    @GridToStringExclude
-    private final ReadWriteLock rwLock = new ReentrantReadWriteLock();
-
-    /**
-     * Sets local node.
-     *
-     * @param locNode Local node.
-     */
-    public void localNode(GridTcpDiscoveryNode locNode) {
-        assert locNode != null;
-
-        rwLock.writeLock().lock();
-
-        try {
-            this.locNode = locNode;
-
-            clear();
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Gets all nodes in the topology.
-     *
-     * @return Collection of all nodes.
-     */
-    public Collection<GridTcpDiscoveryNode> allNodes() {
-        return nodes();
-    }
-
-    /**
-     * Gets visible nodes in the topology.
-     *
-     * @return Collection of visible nodes.
-     */
-    public Collection<GridTcpDiscoveryNode> visibleNodes() {
-        return nodes(VISIBLE_NODES);
-    }
-
-    /**
-     * Gets remote nodes.
-     *
-     * @return Collection of remote nodes in grid.
-     */
-    public Collection<GridTcpDiscoveryNode> remoteNodes() {
-        return nodes(F.remoteNodes(locNode.id()));
-    }
-
-    /**
-     * Gets visible remote nodes in the topology.
-     *
-     * @return Collection of visible remote nodes.
-     */
-    public Collection<GridTcpDiscoveryNode> visibleRemoteNodes() {
-        return nodes(VISIBLE_NODES, F.remoteNodes(locNode.id()));
-    }
-
-    /**
-     * @return Client nodes.
-     */
-    public Collection<GridTcpDiscoveryNode> clientNodes() {
-        return nodes(CLIENT_NODES);
-    }
-
-    /**
-     * Checks whether the topology has remote nodes in.
-     *
-     * @return {@code true} if the topology has remote nodes in.
-     */
-    public boolean hasRemoteNodes() {
-        rwLock.readLock().lock();
-
-        try {
-            return nodes.size() > 1;
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Adds node to topology, also initializes node last update time with current
-     * system time.
-     *
-     * @param node Node to add.
-     * @return {@code true} if such node was added and did not present previously in the topology.
-     */
-    public boolean add(GridTcpDiscoveryNode node) {
-        assert node != null;
-        assert node.internalOrder() > 0;
-
-        rwLock.writeLock().lock();
-
-        try {
-            if (nodesMap.containsKey(node.id()))
-                return false;
-
-            assert node.internalOrder() > maxInternalOrder() : "Adding node to the middle of the ring " +
-                "[ring=" + this + ", node=" + node + ']';
-
-            nodesMap.put(node.id(), node);
-
-            nodes = new TreeSet<>(nodes);
-
-            node.lastUpdateTime(U.currentTimeMillis());
-
-            nodes.add(node);
-
-            nodeOrder = node.internalOrder();
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-
-        return true;
-    }
-
-    /**
-     * @return Max internal order.
-     */
-    public long maxInternalOrder() {
-        rwLock.readLock().lock();
-
-        try {
-            GridTcpDiscoveryNode last = nodes.last();
-
-            return last != null ? last.internalOrder() : -1;
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Restores topology from parameters values.
-     * <p>
-     * This method is called when new node receives topology from coordinator.
-     * In this case all nodes received are remote for local.
-     * <p>
-     * Also initializes nodes last update time with current system time.
-     *
-     * @param nodes List of remote nodes.
-     * @param topVer Topology version.
-     */
-    public void restoreTopology(Iterable<GridTcpDiscoveryNode> nodes, long topVer) {
-        assert !F.isEmpty(nodes);
-        assert topVer > 0;
-
-        rwLock.writeLock().lock();
-
-        try {
-            locNode.internalOrder(topVer);
-
-            clear();
-
-            boolean firstAdd = true;
-
-            for (GridTcpDiscoveryNode node : nodes) {
-                if (nodesMap.containsKey(node.id()))
-                    continue;
-
-                nodesMap.put(node.id(), node);
-
-                if (firstAdd) {
-                    this.nodes = new TreeSet<>(this.nodes);
-
-                    firstAdd = false;
-                }
-
-                node.lastUpdateTime(U.currentTimeMillis());
-
-                this.nodes.add(node);
-            }
-
-            nodeOrder = topVer;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Finds node by ID.
-     *
-     * @param nodeId Node id to find.
-     * @return Node with ID provided or {@code null} if not found.
-     */
-    @Nullable public GridTcpDiscoveryNode node(UUID nodeId) {
-        assert nodeId != null;
-
-        rwLock.readLock().lock();
-
-        try {
-            return nodesMap.get(nodeId);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Removes node from the topology.
-     *
-     * @param nodeId ID of the node to remove.
-     * @return {@code true} if node was removed.
-     */
-    @Nullable public GridTcpDiscoveryNode removeNode(UUID nodeId) {
-        assert nodeId != null;
-        assert !locNode.id().equals(nodeId);
-
-        rwLock.writeLock().lock();
-
-        try {
-            GridTcpDiscoveryNode rmv = nodesMap.remove(nodeId);
-
-            if (rmv != null) {
-                nodes = new TreeSet<>(nodes);
-
-                nodes.remove(rmv);
-            }
-
-            return rmv;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Removes nodes from the topology.
-     *
-     * @param nodeIds IDs of the nodes to remove.
-     * @return Collection of removed nodes.
-     */
-    public Collection<GridTcpDiscoveryNode> removeNodes(Collection<UUID> nodeIds) {
-        assert !F.isEmpty(nodeIds);
-
-        rwLock.writeLock().lock();
-
-        try {
-            boolean firstRmv = true;
-
-            Collection<GridTcpDiscoveryNode> res = null;
-
-            for (UUID id : nodeIds) {
-                GridTcpDiscoveryNode rmv = nodesMap.remove(id);
-
-                if (rmv != null) {
-                    if (firstRmv) {
-                        nodes = new TreeSet<>(nodes);
-
-                        res = new ArrayList<>(nodeIds.size());
-
-                        firstRmv = false;
-                    }
-
-                    nodes.remove(rmv);
-
-                    res.add(rmv);
-                }
-            }
-
-            return res == null ? Collections.<GridTcpDiscoveryNode>emptyList() : res;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Removes all remote nodes, leaves only local node.
-     * <p>
-     * This should be called when SPI should be disconnected from topology and
-     * reconnected back after.
-     */
-    public void clear() {
-        rwLock.writeLock().lock();
-
-        try {
-            nodes = new TreeSet<>();
-
-            if (locNode != null)
-                nodes.add(locNode);
-
-            nodesMap = new HashMap<>();
-
-            if (locNode != null)
-                nodesMap.put(locNode.id(), locNode);
-
-            nodeOrder = 0;
-
-            topVer = 0;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Finds coordinator in the topology.
-     *
-     * @return Coordinator node that gives versions to topology (node with the smallest order).
-     */
-    @Nullable public GridTcpDiscoveryNode coordinator() {
-        rwLock.readLock().lock();
-
-        try {
-            if (F.isEmpty(nodes))
-                return null;
-
-            return coordinator(null);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Finds coordinator in the topology filtering excluded nodes from the search.
-     * <p>
-     * This may be used when handling current coordinator leave or failure.
-     *
-     * @param excluded Nodes to exclude from the search (optional).
-     * @return Coordinator node among remaining nodes or {@code null} if all nodes are excluded.
-     */
-    @Nullable public GridTcpDiscoveryNode coordinator(@Nullable Collection<GridTcpDiscoveryNode> excluded) {
-        rwLock.readLock().lock();
-
-        try {
-            Collection<GridTcpDiscoveryNode> filtered = serverNodes(excluded);
-
-            if (F.isEmpty(filtered))
-                return null;
-
-            return Collections.min(filtered);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Finds next node in the topology.
-     *
-     * @return Next node.
-     */
-    @Nullable public GridTcpDiscoveryNode nextNode() {
-        rwLock.readLock().lock();
-
-        try {
-            if (nodes.size() < 2)
-                return null;
-
-            return nextNode(null);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Finds next node in the topology filtering excluded nodes from search.
-     * <p>
-     * This may be used when detecting and handling nodes failure.
-     *
-     * @param excluded Nodes to exclude from the search (optional). If provided,
-     * cannot contain local node.
-     * @return Next node or {@code null} if all nodes were filtered out or
-     * topology contains less than two nodes.
-     */
-    @Nullable public GridTcpDiscoveryNode nextNode(@Nullable Collection<GridTcpDiscoveryNode> excluded) {
-        assert excluded == null || excluded.isEmpty() || !excluded.contains(locNode);
-
-        rwLock.readLock().lock();
-
-        try {
-            Collection<GridTcpDiscoveryNode> filtered = serverNodes(excluded);
-
-            if (filtered.size() < 2)
-                return null;
-
-            Iterator<GridTcpDiscoveryNode> iter = filtered.iterator();
-
-            while (iter.hasNext()) {
-                GridTcpDiscoveryNode node = iter.next();
-
-                if (locNode.equals(node))
-                    break;
-            }
-
-            return iter.hasNext() ? iter.next() : F.first(filtered);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Finds previous node in the topology.
-     *
-     * @return Previous node.
-     */
-    @Nullable public GridTcpDiscoveryNode previousNode() {
-        rwLock.readLock().lock();
-
-        try {
-            if (nodes.size() < 2)
-                return null;
-
-            return previousNode(null);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Finds previous node in the topology filtering excluded nodes from search.
-     *
-     * @param excluded Nodes to exclude from the search (optional). If provided,
-     * cannot contain local node.
-     * @return Previous node or {@code null} if all nodes were filtered out or
-     * topology contains less than two nodes.
-     */
-    @Nullable public GridTcpDiscoveryNode previousNode(@Nullable Collection<GridTcpDiscoveryNode> excluded) {
-        assert excluded == null || excluded.isEmpty() || !excluded.contains(locNode);
-
-        rwLock.readLock().lock();
-
-        try {
-            Collection<GridTcpDiscoveryNode> filtered = serverNodes(excluded);
-
-            if (filtered.size() < 2)
-                return null;
-
-            Iterator<GridTcpDiscoveryNode> iter = filtered.iterator();
-
-            while (iter.hasNext()) {
-                GridTcpDiscoveryNode node = iter.next();
-
-                if (locNode.equals(node))
-                    break;
-            }
-
-            return iter.hasNext() ? iter.next() : F.first(filtered);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Gets current topology version.
-     *
-     * @return Current topology version.
-     */
-    public long topologyVersion() {
-        rwLock.readLock().lock();
-
-        try {
-            return topVer;
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Sets new topology version.
-     *
-     * @param topVer New topology version (should be greater than current, otherwise no-op).
-     * @return {@code True} if topology has been changed.
-     */
-    public boolean topologyVersion(long topVer) {
-        rwLock.writeLock().lock();
-
-        try {
-            if (this.topVer < topVer) {
-                this.topVer = topVer;
-
-                return true;
-            }
-
-            U.debug("KARAMBA [old=" + this.topVer + ", new=" + topVer + ']');
-
-            return false;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Increments topology version and gets new value.
-     *
-     * @return Topology version (incremented).
-     */
-    public long incrementTopologyVersion() {
-        rwLock.writeLock().lock();
-
-        try {
-            return ++topVer;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Increments topology version and gets new value.
-     *
-     * @return Topology version (incremented).
-     */
-    public long nextNodeOrder() {
-        rwLock.writeLock().lock();
-
-        try {
-            if (nodeOrder == 0) {
-                GridTcpDiscoveryNode last = nodes.last();
-
-                assert last != null;
-
-                nodeOrder = last.internalOrder();
-            }
-
-            return ++nodeOrder;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * @param p Filters.
-     * @return Unmodifiable collection of nodes.
-     */
-    private Collection<GridTcpDiscoveryNode> nodes(IgnitePredicate<? super GridTcpDiscoveryNode>... p) {
-        rwLock.readLock().lock();
-
-        try {
-            List<GridTcpDiscoveryNode> list = U.arrayList(nodes, p);
-
-            return Collections.unmodifiableCollection(list);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Gets server nodes from topology.
-     *
-     * @param excluded Nodes to exclude from the search (optional).
-     * @return Collection of server nodes.
-     */
-    private Collection<GridTcpDiscoveryNode> serverNodes(@Nullable final Collection<GridTcpDiscoveryNode> excluded) {
-        final boolean excludedEmpty = F.isEmpty(excluded);
-
-        return F.view(nodes, new P1<GridTcpDiscoveryNode>() {
-            @Override public boolean apply(GridTcpDiscoveryNode node) {
-                return !node.isClient() && (excludedEmpty || !excluded.contains(node));
-            }
-        });
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        rwLock.readLock().lock();
-
-        try {
-            return S.toString(GridTcpDiscoveryNodesRing.class, this);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoverySpiState.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoverySpiState.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoverySpiState.java
deleted file mode 100644
index 72d4e82..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/GridTcpDiscoverySpiState.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.internal;
-
-/**
- * State of local node {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
- */
-public enum GridTcpDiscoverySpiState {
-    /** */
-    DISCONNECTED,
-
-    /** */
-    CONNECTING,
-
-    /** */
-    CONNECTED,
-
-    /** */
-    DISCONNECTING,
-
-    /** */
-    STOPPING,
-
-    /** */
-    LEFT,
-
-    /** */
-    DUPLICATE_ID,
-
-    /** */
-    AUTH_FAILED,
-
-    /** */
-    CHECK_FAILED,
-
-    /** */
-    LOOPBACK_PROBLEM
-}


[13/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
# Renaming


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

Branch: refs/heads/master
Commit: 717180b3bc7980591bb44af29d07eb1bc8933047
Parents: 805377c
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 5 16:48:38 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 5 16:49:01 2014 +0300

----------------------------------------------------------------------
 examples/config/example-cache.xml               |   2 +-
 examples/config/example-compute.xml             |   2 +-
 examples/config/example-streamer.xml            |   2 +-
 examples/config/filesystem/example-ggfs.xml     |   2 +-
 .../failover/ComputeFailoverNodeStartup.java    |   2 +-
 .../HibernateL2CacheExampleNodeStartup.java     |   2 +-
 .../store/CacheNodeWithStoreStartup.java        |   2 +-
 .../MemcacheRestExampleNodeStartup.java         |   2 +-
 .../examples/misc/springbean/spring-bean.xml    |   2 +-
 .../scalar/examples/ScalarJvmCloudExample.scala |   4 +-
 .../apache/ignite/IgniteSystemProperties.java   |   3 +-
 .../gridgain/grid/GridBasicWarmupClosure.java   |   2 +-
 .../grid/spi/discovery/tcp/TcpDiscoverySpi.java |   3 +-
 .../GridTcpDiscoveryMulticastIpFinder.java      |   2 +-
 .../ipfinder/vm/GridTcpDiscoveryVmIpFinder.java | 255 -------------------
 .../tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java | 255 +++++++++++++++++++
 .../spring-cache-client-benchmark-1.xml         |   2 +-
 .../spring-cache-client-benchmark-2.xml         |   2 +-
 .../spring-cache-client-benchmark-3.xml         |   2 +-
 .../core/src/test/config/discovery-stress.xml   |   2 +-
 modules/core/src/test/config/example-cache.xml  |   2 +-
 modules/core/src/test/config/ggfs-loopback.xml  |   2 +-
 .../core/src/test/config/ggfs-no-endpoint.xml   |   2 +-
 modules/core/src/test/config/ggfs-shmem.xml     |   2 +-
 .../src/test/config/io-manager-benchmark.xml    |   2 +-
 .../src/test/config/job-loadtest/client.xml     |   2 +-
 .../src/test/config/job-loadtest/server.xml     |   2 +-
 modules/core/src/test/config/jobs-load-base.xml |   2 +-
 .../src/test/config/load/cache-benchmark.xml    |   2 +-
 .../test/config/load/cache-client-benchmark.xml |   2 +-
 .../core/src/test/config/load/dsi-load-base.xml |   2 +-
 .../src/test/config/load/merge-sort-base.xml    |   2 +-
 .../test/config/load/mongo-multinode-foster.xml |   2 +-
 .../core/src/test/config/spring-cache-load.xml  |   2 +-
 .../config/spring-cache-put-remove-load.xml     |   2 +-
 .../core/src/test/config/spring-cache-swap.xml  |   2 +-
 .../src/test/config/spring-cache-teststore.xml  |   2 +-
 .../core/src/test/config/spring-multicache.xml  |   2 +-
 .../src/test/config/spring-start-nodes-attr.xml |   2 +-
 .../core/src/test/config/spring-start-nodes.xml |   2 +-
 .../config/streamer/spring-streamer-base.xml    |   4 +-
 .../test/config/websession/spring-cache-1.xml   |   2 +-
 .../test/config/websession/spring-cache-2.xml   |   2 +-
 .../test/config/websession/spring-cache-3.xml   |   2 +-
 .../optimized/GridOptimizedMarshallerTest.java  |   4 +-
 ...idCacheCheckpointSpiSecondCacheSelfTest.java |   2 +-
 .../tcp/GridCacheDhtLockBackupSelfTest.java     |   2 +-
 .../tcp/GridOrderedMessageCancelSelfTest.java   |   2 +-
 .../GridCacheStoreValueBytesNode.java           |   2 +-
 ...CachePartitionFairAffinityNodesSelfTest.java |   2 +-
 ...CacheJdbcBlobStoreMultithreadedSelfTest.java |   2 +-
 .../ggfs/GridGgfsEventsAbstractSelfTest.java    |   2 +-
 .../GridGgfsFragmentizerAbstractSelfTest.java   |   2 +-
 .../grid/kernal/GridAffinityMappedTest.java     |   2 +-
 .../grid/kernal/GridAffinityP2PSelfTest.java    |   2 +-
 .../grid/kernal/GridAffinitySelfTest.java       |   2 +-
 .../kernal/GridCancelUnusedJobSelfTest.java     |   2 +-
 .../grid/kernal/GridDiscoveryEventSelfTest.java |   2 +-
 .../grid/kernal/GridDiscoverySelfTest.java      |   2 +-
 .../kernal/GridJobMasterLeaveAwareSelfTest.java |   2 +-
 .../grid/kernal/GridManagementJobSelfTest.java  |   2 +-
 .../grid/kernal/GridMultipleJobsSelfTest.java   |   2 +-
 .../kernal/GridProjectionForCachesSelfTest.java |   2 +-
 ...ectionLocalJobMultipleArgumentsSelfTest.java |   2 +-
 .../grid/kernal/GridReleaseTypeSelfTest.java    |   2 +-
 .../grid/kernal/GridTaskMapAsyncSelfTest.java   |   2 +-
 .../GridTopologyBuildVersionSelfTest.java       |   2 +-
 .../GridCheckpointManagerAbstractSelfTest.java  |   2 +-
 .../checkpoint/GridCheckpointTaskSelfTest.java  |   2 +-
 .../GridCommunicationSendMessageSelfTest.java   |   2 +-
 .../GridDeploymentMessageCountSelfTest.java     |   2 +-
 .../GridDiscoveryManagerAliveCacheSelfTest.java |   2 +-
 .../GridDiscoveryManagerAttributesSelfTest.java |   2 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |   2 +-
 .../GridAffinityProcessorAbstractSelfTest.java  |   2 +-
 ...ridCacheAbstractByteArrayValuesSelfTest.java |   2 +-
 .../cache/GridCacheAbstractSelfTest.java        |   2 +-
 .../cache/GridCacheAffinityRoutingSelfTest.java |   2 +-
 .../GridCacheAtomicMessageCountSelfTest.java    |   2 +-
 .../cache/GridCacheBasicApiAbstractTest.java    |   2 +-
 .../cache/GridCacheBasicStoreAbstractTest.java  |   2 +-
 ...acheBasicStoreMultithreadedAbstractTest.java |   2 +-
 .../GridCacheBasicStoreNoBatchAbstractTest.java |   2 +-
 .../cache/GridCacheClearAllSelfTest.java        |   2 +-
 .../cache/GridCacheConcurrentMapSelfTest.java   |   2 +-
 .../GridCacheConcurrentTxMultiNodeTest.java     |   2 +-
 ...idCacheConfigurationConsistencySelfTest.java |   2 +-
 ...ridCacheConfigurationValidationSelfTest.java |   2 +-
 .../GridCacheDaemonNodeAbstractSelfTest.java    |   2 +-
 .../cache/GridCacheDeploymentSelfTest.java      |   2 +-
 .../cache/GridCacheEntryMemorySizeSelfTest.java |   2 +-
 .../cache/GridCacheEntryVersionSelfTest.java    |   2 +-
 .../GridCacheEvictionEventAbstractTest.java     |   2 +-
 .../GridCacheFieldsQueryNoDataSelfTest.java     |   2 +-
 ...idCacheGetAndTransformStoreAbstractTest.java |   2 +-
 .../cache/GridCacheGlobalClearAllSelfTest.java  |   2 +-
 .../GridCacheGroupLockAbstractSelfTest.java     |   2 +-
 .../GridCacheGroupLockFailoverSelfTest.java     |   2 +-
 .../cache/GridCacheIncrementTransformTest.java  |   2 +-
 .../cache/GridCacheIteratorPerformanceTest.java |   2 +-
 .../cache/GridCacheKeyCheckSelfTest.java        |   2 +-
 .../processors/cache/GridCacheLeakTest.java     |   2 +-
 .../cache/GridCacheLuceneQueryIndexTest.java    |   2 +-
 .../GridCacheMarshallerTxAbstractTest.java      |   2 +-
 .../cache/GridCacheMemoryModeSelfTest.java      |   2 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |   2 +-
 .../cache/GridCacheMultiUpdateLockSelfTest.java |   2 +-
 .../cache/GridCacheMvccManagerSelfTest.java     |   2 +-
 .../cache/GridCacheMvccPartitionedSelfTest.java |   2 +-
 .../processors/cache/GridCacheMvccSelfTest.java |   2 +-
 .../cache/GridCacheNestedTxAbstractTest.java    |   2 +-
 .../cache/GridCacheObjectToStringSelfTest.java  |   2 +-
 .../cache/GridCacheOffHeapSelfTest.java         |   2 +-
 .../processors/cache/GridCacheOffHeapTest.java  |   2 +-
 .../GridCacheOrderedPreloadingSelfTest.java     |   2 +-
 .../cache/GridCacheP2PUndeploySelfTest.java     |   2 +-
 .../cache/GridCachePartitionedGetSelfTest.java  |   2 +-
 ...hePartitionedProjectionAffinitySelfTest.java |   2 +-
 .../cache/GridCachePartitionedWritesTest.java   |   2 +-
 .../GridCachePreloadingEvictionsSelfTest.java   |   2 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |   2 +-
 .../GridCacheReferenceCleanupSelfTest.java      |   2 +-
 .../GridCacheRefreshAheadAbstractSelfTest.java  |   2 +-
 .../cache/GridCacheReloadSelfTest.java          |   2 +-
 ...ridCacheReplicatedSynchronousCommitTest.java |   2 +-
 .../cache/GridCacheSlowTxWarnTest.java          |   2 +-
 .../processors/cache/GridCacheStopSelfTest.java |   2 +-
 .../cache/GridCacheStorePutxSelfTest.java       |   2 +-
 .../cache/GridCacheStoreValueBytesSelfTest.java |   2 +-
 .../cache/GridCacheSwapPreloadSelfTest.java     |   2 +-
 .../cache/GridCacheSwapReloadSelfTest.java      |   2 +-
 .../cache/GridCacheTtlManagerSelfTest.java      |   2 +-
 .../cache/GridCacheTxAbstractTest.java          |   2 +-
 .../GridCacheTxConcurrentGetAbstractTest.java   |   2 +-
 .../cache/GridCacheTxMultiNodeAbstractTest.java |   2 +-
 .../GridCacheTxReentryAbstractSelfTest.java     |   2 +-
 .../GridCacheVariableTopologySelfTest.java      |   2 +-
 .../GridCacheWriteBehindStoreAbstractTest.java  |   2 +-
 ...BehindStorePartitionedMultiNodeSelfTest.java |   2 +-
 .../GridCacheAtomicLongApiSelfTest.java         |   2 +-
 ...CacheAtomicReferenceApiSelfAbstractTest.java |   2 +-
 ...cheAtomicReferenceMultiNodeAbstractTest.java |   2 +-
 ...idCacheAtomicStampedApiSelfAbstractTest.java |   2 +-
 .../GridCacheCountDownLatchSelfTest.java        |   2 +-
 .../GridCacheQueueApiSelfAbstractTest.java      |   2 +-
 ...ridCacheQueueJoinedNodeSelfAbstractTest.java |   2 +-
 ...GridCacheQueueMultiNodeAbstractSelfTest.java |   2 +-
 ...dCacheQueueMultiNodeConsistencySelfTest.java |   2 +-
 ...CacheQueueRotativeMultiNodeAbstractTest.java |   2 +-
 .../GridCacheSequenceApiSelfAbstractTest.java   |   2 +-
 ...dCacheSequenceMultiNodeAbstractSelfTest.java |   2 +-
 ...titionedAtomicSequenceMultiThreadedTest.java |   2 +-
 ...GridCachePartitionedNodeRestartSelfTest.java |   2 +-
 ...idCachePartitionedNodeRestartTxSelfTest.java |   2 +-
 ...PartitionedQueueCreateMultiNodeSelfTest.java |   2 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |   2 +-
 .../GridCacheAbstractJobExecutionTest.java      |   2 +-
 .../GridCacheAbstractNodeRestartSelfTest.java   |   2 +-
 .../GridCacheAbstractPrimarySyncSelfTest.java   |   2 +-
 .../GridCacheBasicOpAbstractTest.java           |   2 +-
 .../distributed/GridCacheLockAbstractTest.java  |   2 +-
 .../GridCacheMultiNodeAbstractTest.java         |   2 +-
 .../GridCacheMultiNodeLockAbstractTest.java     |   2 +-
 ...dCacheMultithreadedFailoverAbstractTest.java |   2 +-
 .../GridCacheNodeFailureAbstractTest.java       |   2 +-
 ...dCachePartitionedAffinityFilterSelfTest.java |   2 +-
 ...chePartitionedReloadAllAbstractSelfTest.java |   2 +-
 .../GridCachePreloadEventsAbstractSelfTest.java |   2 +-
 .../GridCachePreloadLifecycleAbstractTest.java  |   2 +-
 ...GridCachePreloadRestartAbstractSelfTest.java |   2 +-
 .../GridCacheTransformEventSelfTest.java        |   2 +-
 ...cheTxConsistencyRestartAbstractSelfTest.java |   2 +-
 ...heAbstractTransformWriteThroughSelfTest.java |   2 +-
 .../dht/GridCacheColocatedDebugTest.java        |   2 +-
 ...eColocatedOptimisticTransactionSelfTest.java |   2 +-
 ...dCacheColocatedTxSingleThreadedSelfTest.java |   2 +-
 .../dht/GridCacheDhtEntrySelfTest.java          |   2 +-
 ...GridCacheDhtEvictionNearReadersSelfTest.java |   2 +-
 .../dht/GridCacheDhtEvictionSelfTest.java       |   2 +-
 .../GridCacheDhtEvictionsDisabledSelfTest.java  |   2 +-
 .../dht/GridCacheDhtInternalEntrySelfTest.java  |   2 +-
 .../dht/GridCacheDhtMappingSelfTest.java        |   2 +-
 .../dht/GridCacheDhtPreloadBigDataSelfTest.java |   2 +-
 .../dht/GridCacheDhtPreloadDelayedSelfTest.java |   2 +-
 .../GridCacheDhtPreloadDisabledSelfTest.java    |   2 +-
 .../GridCacheDhtPreloadMessageCountTest.java    |   2 +-
 ...ridCacheDhtPreloadMultiThreadedSelfTest.java |   2 +-
 .../dht/GridCacheDhtPreloadPutGetSelfTest.java  |   2 +-
 .../dht/GridCacheDhtPreloadSelfTest.java        |   2 +-
 .../GridCacheDhtPreloadStartStopSelfTest.java   |   2 +-
 .../dht/GridCacheDhtPreloadUnloadSelfTest.java  |   2 +-
 ...dCachePartitionedTopologyChangeSelfTest.java |   2 +-
 ...ridCachePartitionedUnloadEventsSelfTest.java |   2 +-
 ...eAtomicInvalidPartitionHandlingSelfTest.java |   2 +-
 ...unctionExcludeNeighborsAbstractSelfTest.java |   2 +-
 .../near/GridCacheGetStoreErrorSelfTest.java    |   2 +-
 .../near/GridCacheNearEvictionSelfTest.java     |   2 +-
 .../near/GridCacheNearMultiGetSelfTest.java     |   2 +-
 .../near/GridCacheNearMultiNodeSelfTest.java    |   2 +-
 .../near/GridCacheNearOneNodeSelfTest.java      |   2 +-
 .../near/GridCacheNearOnlyTopologySelfTest.java |   2 +-
 .../GridCacheNearReaderPreloadSelfTest.java     |   2 +-
 .../near/GridCacheNearReadersSelfTest.java      |   2 +-
 .../near/GridCacheNearTxMultiNodeSelfTest.java  |   2 +-
 ...AffinityExcludeNeighborsPerformanceTest.java |   2 +-
 ...rtitionedAffinityHashIdResolverSelfTest.java |   2 +-
 .../GridCachePartitionedAffinitySelfTest.java   |   2 +-
 ...ePartitionedBasicStoreMultiNodeSelfTest.java |   2 +-
 .../GridCachePartitionedEvictionSelfTest.java   |   2 +-
 ...titionedExplicitLockNodeFailureSelfTest.java |   2 +-
 ...GridCachePartitionedFilteredPutSelfTest.java |   2 +-
 .../GridCachePartitionedLoadCacheSelfTest.java  |   2 +-
 ...achePartitionedMultiNodeCounterSelfTest.java |   2 +-
 ...ePartitionedMultiThreadedPutGetSelfTest.java |   2 +-
 ...hePartitionedQueryMultiThreadedSelfTest.java |   2 +-
 .../GridCachePartitionedStorePutSelfTest.java   |   2 +-
 ...CachePartitionedTxMultiThreadedSelfTest.java |   2 +-
 .../GridCachePartitionedTxSalvageSelfTest.java  |   2 +-
 ...achePartitionedTxSingleThreadedSelfTest.java |   2 +-
 .../GridCachePartitionedTxTimeoutSelfTest.java  |   2 +-
 .../near/GridPartitionedBackupLoadSelfTest.java |   2 +-
 .../GridCacheReplicatedInvalidateSelfTest.java  |   2 +-
 ...dCacheReplicatedTxMultiThreadedSelfTest.java |   2 +-
 ...CacheReplicatedTxSingleThreadedSelfTest.java |   2 +-
 .../GridCacheReplicatedTxTimeoutSelfTest.java   |   2 +-
 ...idCacheReplicatedUnswapAdvancedSelfTest.java |   2 +-
 .../GridCacheSyncReplicatedPreloadSelfTest.java |   2 +-
 .../GridCacheReplicatedPreloadSelfTest.java     |   2 +-
 ...eplicatedPreloadStartStopEventsSelfTest.java |   2 +-
 ...heConcurrentEvictionConsistencySelfTest.java |   2 +-
 .../GridCacheConcurrentEvictionsSelfTest.java   |   2 +-
 .../GridCacheDistributedEvictionsSelfTest.java  |   2 +-
 .../GridCacheEmptyEntriesAbstractSelfTest.java  |   4 +-
 .../eviction/GridCacheEvictionAbstractTest.java |   2 +-
 .../GridCacheEvictionFilterSelfTest.java        |   2 +-
 .../GridCacheEvictionLockUnlockSelfTest.java    |   2 +-
 .../GridCacheEvictionTouchSelfTest.java         |   2 +-
 .../GridCacheLruNearEvictionPolicySelfTest.java |   2 +-
 ...heNearOnlyLruNearEvictionPolicySelfTest.java |   2 +-
 .../local/GridCacheLocalLoadAllSelfTest.java    |   2 +-
 .../cache/local/GridCacheLocalLockSelfTest.java |   2 +-
 .../GridCacheLocalMultithreadedSelfTest.java    |   2 +-
 .../local/GridCacheLocalTxTimeoutSelfTest.java  |   2 +-
 .../GridCacheSwapScanQueryAbstractSelfTest.java |   2 +-
 ...ridCacheContinuousQueryAbstractSelfTest.java |   2 +-
 ...dCacheAbstractReduceFieldsQuerySelfTest.java |   2 +-
 .../clock/GridTimeSyncProcessorSelfTest.java    |   2 +-
 .../closure/GridClosureProcessorSelfTest.java   |   2 +-
 .../dataload/GridDataLoaderImplSelfTest.java    |   2 +-
 .../dataload/GridDataLoaderPerformanceTest.java |   2 +-
 .../GridDataLoaderProcessorSelfTest.java        |   2 +-
 ...heGgfsPerBlockLruEvictionPolicySelfTest.java |   4 +-
 .../ggfs/GridGgfsAbstractSelfTest.java          |   2 +-
 .../processors/ggfs/GridGgfsCacheSelfTest.java  |   2 +-
 .../ggfs/GridGgfsDataManagerSelfTest.java       |   2 +-
 .../ggfs/GridGgfsMetaManagerSelfTest.java       |   2 +-
 .../ggfs/GridGgfsMetricsSelfTest.java           |   4 +-
 .../processors/ggfs/GridGgfsModesSelfTest.java  |   4 +-
 .../ggfs/GridGgfsProcessorSelfTest.java         |   2 +-
 .../GridGgfsProcessorValidationSelfTest.java    |   2 +-
 ...IpcEndpointRegistrationAbstractSelfTest.java |   2 +-
 .../processors/ggfs/GridGgfsSizeSelfTest.java   |   2 +-
 .../ggfs/GridGgfsStreamsSelfTest.java           |   2 +-
 .../processors/ggfs/GridGgfsTaskSelfTest.java   |   2 +-
 .../GridGgfsAbstractRecordResolverSelfTest.java |   2 +-
 .../cache/GridCacheCommandHandlerSelfTest.java  |   2 +-
 .../GridServiceProcessorAbstractSelfTest.java   |   2 +-
 .../streamer/GridStreamerEvictionSelfTest.java  |   2 +-
 .../streamer/GridStreamerFailoverSelfTest.java  |   2 +-
 .../streamer/GridStreamerSelfTest.java          |   2 +-
 .../gridgain/grid/lang/GridFuncSelfTest.java    |   2 +-
 .../grid/messaging/GridMessagingSelfTest.java   |   2 +-
 .../GridP2PContinuousDeploymentSelfTest.java    |   2 +-
 .../p2p/GridP2PDoubleDeploymentSelfTest.java    |   2 +-
 .../GridP2PMissedResourceCacheSizeSelfTest.java |   2 +-
 ...SessionCancelSiblingsFromFutureSelfTest.java |   2 +-
 ...ridSessionCancelSiblingsFromJobSelfTest.java |   2 +-
 ...idSessionCancelSiblingsFromTaskSelfTest.java |   2 +-
 ...GridSessionJobWaitTaskAttributeSelfTest.java |   2 +-
 .../GridSessionSetFutureAttributeSelfTest.java  |   2 +-
 ...nSetFutureAttributeWaitListenerSelfTest.java |   2 +-
 .../GridSessionSetJobAttributeSelfTest.java     |   2 +-
 ...sionSetJobAttributeWaitListenerSelfTest.java |   2 +-
 .../GridSessionWaitAttributeSelfTest.java       |   2 +-
 .../grid/spi/GridTcpSpiForwardingSelfTest.java  |   2 +-
 .../tcp/GridTcpClientDiscoverySelfTest.java     |   6 +-
 .../GridTcpDiscoveryConcurrentStartTest.java    |   4 +-
 ...GridTcpDiscoveryMarshallerCheckSelfTest.java |   2 +-
 .../tcp/GridTcpDiscoveryMultiThreadedTest.java  |   2 +-
 .../discovery/tcp/GridTcpDiscoverySelfTest.java |   4 +-
 .../GridTcpDiscoverySpiRandomStartStopTest.java |   2 +-
 .../tcp/GridTcpDiscoverySpiSelfTest.java        |   2 +-
 .../GridTcpDiscoverySpiStartStopSelfTest.java   |   2 +-
 .../GridTcpDiscoverySpiWildcardSelfTest.java    |   2 +-
 .../vm/GridTcpDiscoveryVmIpFinderSelfTest.java  |  10 +-
 .../noop/GridNoopSwapSpaceSpiSelfTest.java      |   2 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |   2 +-
 ...tartupWithUndefinedGridGainHomeSelfTest.java |   2 +-
 .../grid/util/GridTopologyHeapSizeSelfTest.java |   2 +-
 .../shmem/GridIpcSharedMemoryNodeStartup.java   |   2 +-
 .../loadtests/GridCacheMultiNodeLoadTest.java   |   2 +-
 ...ridCacheAffinityTransactionsOffHeapTest.java |   2 +-
 .../cache/GridCacheSingleNodeLoadTest.java      |   2 +-
 .../GridCacheWriteBehindStoreLoadTest.java      |   2 +-
 .../capacity/spring-capacity-cache.xml          |   2 +-
 .../loadtests/colocation/spring-colocation.xml  |   2 +-
 .../communication/GridIoManagerBenchmark0.java  |   2 +-
 .../GridCachePartitionedAtomicLongLoadTest.java |   2 +-
 .../swap/GridSwapEvictAllBenchmark.java         |   2 +-
 .../junits/spi/GridSpiAbstractTest.java         |   2 +-
 .../core/src/test/webapp/META-INF/gg-config.xml |   2 +-
 ...dGgfsHadoop20FileSystemAbstractSelfTest.java |   4 +-
 .../GridGgfsHadoopDualAbstractSelfTest.java     |   2 +-
 ...ridGgfsHadoopFileSystemAbstractSelfTest.java |   4 +-
 .../GridGgfsHadoopFileSystemClientSelfTest.java |   2 +-
 ...idGgfsHadoopFileSystemHandshakeSelfTest.java |   2 +-
 ...ridGgfsHadoopFileSystemIpcCacheSelfTest.java |   2 +-
 ...GgfsHadoopFileSystemLoggerStateSelfTest.java |   2 +-
 ...fsHadoopFileSystemSecondaryModeSelfTest.java |   4 +-
 .../ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java |   2 +-
 ...idHibernateL2CacheConfigurationSelfTest.java |   2 +-
 .../hibernate/GridHibernateL2CacheSelfTest.java |   2 +-
 .../GridCacheAbstractFieldsQuerySelfTest.java   |   2 +-
 .../cache/GridCacheAbstractQuerySelfTest.java   |   2 +-
 .../cache/GridCacheCrossCacheQuerySelfTest.java |   2 +-
 .../cache/GridCacheOffHeapAndSwapSelfTest.java  |   2 +-
 .../cache/GridCacheQueryLoadSelfTest.java       |   2 +-
 .../cache/GridCacheQueryMetricsSelfTest.java    |   2 +-
 .../GridCacheQueryMultiThreadedSelfTest.java    |   2 +-
 .../GridCacheQueryUserResourceSelfTest.java     |   2 +-
 .../GridCacheSqlQueryMultiThreadedSelfTest.java |   2 +-
 .../processors/cache/GridCacheSwapSelfTest.java |   2 +-
 .../cache/GridIndexingWithNoopSwapSelfTest.java |   2 +-
 ...idCachePartitionedHitsAndMissesSelfTest.java |   2 +-
 .../near/GridCacheQueryNodeRestartSelfTest.java |   2 +-
 .../h2indexing/GridH2IndexingSpiLoadTest.java   |   2 +-
 .../scalar/src/test/resources/spring-cache.xml  |   2 +-
 .../test/resources/spring-ping-pong-partner.xml |   2 +-
 .../spring/GridSpringCacheManagerSelfTest.java  |   2 +-
 .../GridSpringBeanSerializationSelfTest.java    |   2 +-
 .../p2p/GridP2PUserVersionChangeSelfTest.java   |   2 +-
 .../commands/alert/VisorAlertCommandSpec.scala  |   4 +-
 .../cache/VisorCacheClearCommandSpec.scala      |   4 +-
 .../cache/VisorCacheCompactCommandSpec.scala    |   4 +-
 .../cswap/VisorCacheSwapCommandSpec.scala       |   4 +-
 345 files changed, 620 insertions(+), 622 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/examples/config/example-cache.xml
----------------------------------------------------------------------
diff --git a/examples/config/example-cache.xml b/examples/config/example-cache.xml
index b573295..ebc9920 100644
--- a/examples/config/example-cache.xml
+++ b/examples/config/example-cache.xml
@@ -180,7 +180,7 @@
                     -->
                     <!-- Uncomment multicast IP finder to enable multicast-based discovery of initial nodes. -->
                     <!--<bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">-->
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!-- In distributed environment, replace with actual host IP address. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/examples/config/example-compute.xml
----------------------------------------------------------------------
diff --git a/examples/config/example-compute.xml b/examples/config/example-compute.xml
index a56ef2d..f87567d 100644
--- a/examples/config/example-compute.xml
+++ b/examples/config/example-compute.xml
@@ -52,7 +52,7 @@
                     -->
                     <!-- Uncomment multicast IP finder to enable multicast-based discovery of initial nodes. -->
                     <!--<bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">-->
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!-- In distributed environment, replace with actual host IP address. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/examples/config/example-streamer.xml
----------------------------------------------------------------------
diff --git a/examples/config/example-streamer.xml b/examples/config/example-streamer.xml
index 8bc70ec..429edbd 100644
--- a/examples/config/example-streamer.xml
+++ b/examples/config/example-streamer.xml
@@ -275,7 +275,7 @@
                     -->
                     <!-- Uncomment multicast IP finder to enable multicast-based discovery of initial nodes. -->
                     <!--<bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">-->
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!-- In distributed environment, replace with actual host IP address. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/examples/config/filesystem/example-ggfs.xml
----------------------------------------------------------------------
diff --git a/examples/config/filesystem/example-ggfs.xml b/examples/config/filesystem/example-ggfs.xml
index ff974c7..a4f19f6 100644
--- a/examples/config/filesystem/example-ggfs.xml
+++ b/examples/config/filesystem/example-ggfs.xml
@@ -147,7 +147,7 @@
                     -->
                     <!-- Uncomment multicast IP finder to enable multicast-based discovery of initial nodes. -->
                     <!--<bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">-->
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!-- In distributed environment, replace with actual host IP address. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/examples/src/main/java/org/gridgain/examples/compute/failover/ComputeFailoverNodeStartup.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/gridgain/examples/compute/failover/ComputeFailoverNodeStartup.java b/examples/src/main/java/org/gridgain/examples/compute/failover/ComputeFailoverNodeStartup.java
index 06eebde..7950ec2 100644
--- a/examples/src/main/java/org/gridgain/examples/compute/failover/ComputeFailoverNodeStartup.java
+++ b/examples/src/main/java/org/gridgain/examples/compute/failover/ComputeFailoverNodeStartup.java
@@ -57,7 +57,7 @@ public class ComputeFailoverNodeStartup {
         // Configure discovery SPI.
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        GridTcpDiscoveryVmIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder();
+        TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
 
         ipFinder.setAddresses(Arrays.asList("127.0.0.1:47500..47509"));
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/examples/src/main/java/org/gridgain/examples/datagrid/hibernate/HibernateL2CacheExampleNodeStartup.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/gridgain/examples/datagrid/hibernate/HibernateL2CacheExampleNodeStartup.java b/examples/src/main/java/org/gridgain/examples/datagrid/hibernate/HibernateL2CacheExampleNodeStartup.java
index f346be3..76d7b15 100644
--- a/examples/src/main/java/org/gridgain/examples/datagrid/hibernate/HibernateL2CacheExampleNodeStartup.java
+++ b/examples/src/main/java/org/gridgain/examples/datagrid/hibernate/HibernateL2CacheExampleNodeStartup.java
@@ -51,7 +51,7 @@ public class HibernateL2CacheExampleNodeStartup {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        GridTcpDiscoveryVmIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder();
+        TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
 
         ipFinder.setAddresses(Collections.singletonList("127.0.0.1:47500..47509"));
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java b/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java
index 8a2c2d5..2bf0cfd 100644
--- a/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java
+++ b/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java
@@ -50,7 +50,7 @@ public class CacheNodeWithStoreStartup {
         // Discovery SPI.
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        GridTcpDiscoveryVmIpFinder ipFinder = new GridTcpDiscoveryMulticastIpFinder();
+        TcpDiscoveryVmIpFinder ipFinder = new GridTcpDiscoveryMulticastIpFinder();
 
         ipFinder.setAddresses(Arrays.asList("127.0.0.1:47500..47509"));
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/examples/src/main/java/org/gridgain/examples/misc/client/memcache/MemcacheRestExampleNodeStartup.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/gridgain/examples/misc/client/memcache/MemcacheRestExampleNodeStartup.java b/examples/src/main/java/org/gridgain/examples/misc/client/memcache/MemcacheRestExampleNodeStartup.java
index c22ee36..4de9148 100644
--- a/examples/src/main/java/org/gridgain/examples/misc/client/memcache/MemcacheRestExampleNodeStartup.java
+++ b/examples/src/main/java/org/gridgain/examples/misc/client/memcache/MemcacheRestExampleNodeStartup.java
@@ -79,7 +79,7 @@ public class MemcacheRestExampleNodeStartup {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        GridTcpDiscoveryVmIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder();
+        TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
 
         ipFinder.setAddresses(Collections.singletonList("127.0.0.1:47500..47509"));
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/examples/src/main/java/org/gridgain/examples/misc/springbean/spring-bean.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/gridgain/examples/misc/springbean/spring-bean.xml b/examples/src/main/java/org/gridgain/examples/misc/springbean/spring-bean.xml
index f17c32d..1d463fd 100644
--- a/examples/src/main/java/org/gridgain/examples/misc/springbean/spring-bean.xml
+++ b/examples/src/main/java/org/gridgain/examples/misc/springbean/spring-bean.xml
@@ -50,7 +50,7 @@
                         <property name="ipFinder">
                             <!-- Uncomment multicast IP finder to enable multicast-based discovery of initial nodes. -->
                             <!--<bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">-->
-                            <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                            <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                                 <property name="addresses">
                                     <list>
                                         <!-- In distributed environment, replace with actual host IP address. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/examples/src/main/scala/org/gridgain/scalar/examples/ScalarJvmCloudExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/gridgain/scalar/examples/ScalarJvmCloudExample.scala b/examples/src/main/scala/org/gridgain/scalar/examples/ScalarJvmCloudExample.scala
index 2086b91..e4b603e 100644
--- a/examples/src/main/scala/org/gridgain/scalar/examples/ScalarJvmCloudExample.scala
+++ b/examples/src/main/scala/org/gridgain/scalar/examples/ScalarJvmCloudExample.scala
@@ -5,7 +5,7 @@ import java.util.concurrent.TimeUnit._
 import javax.swing.{JComponent, JLabel, JOptionPane}
 import org.apache.ignite.configuration.IgniteConfiguration
 import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
 import org.gridgain.grid.util.scala.impl
 import org.gridgain.scalar.scalar
 
@@ -27,7 +27,7 @@ object ScalarJvmCloudExample {
     def main(args: Array[String]) {
         try {
             // Shared IP finder for in-VM node discovery.
-            val ipFinder = new GridTcpDiscoveryVmIpFinder(true)
+            val ipFinder = new TcpDiscoveryVmIpFinder(true)
 
             val pool = Executors.newFixedThreadPool(NODES.size)
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
index 2eeba0d..cb3fdf0 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@ -9,7 +9,6 @@
 
 package org.apache.ignite;
 
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
 import org.jetbrains.annotations.*;
 
 import javax.net.ssl.*;
@@ -387,7 +386,7 @@ public final class IgniteSystemProperties {
 
     /**
      * Comma separated list of addresses in format "10.100.22.100:45000,10.100.22.101:45000".
-     * Makes sense only for {@link GridTcpDiscoveryVmIpFinder}.
+     * Makes sense only for {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder}.
      */
     public static final String GG_TCP_DISCOVERY_ADDRESSES = "GRIDGAIN_TCP_DISCOVERY_ADDRESSES";
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java b/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java
index d692178..ee2c343 100644
--- a/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java
+++ b/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java
@@ -188,7 +188,7 @@ public class GridBasicWarmupClosure implements IgniteInClosure<IgniteConfigurati
         try {
             System.setProperty(IgniteSystemProperties.GG_UPDATE_NOTIFIER, "false");
 
-            TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+            TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
             for (int i = 0; i < gridCnt; i++) {
                 IgniteConfiguration cfg0 = new IgniteConfiguration(cfg);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
index beb725d..7a1b964 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -25,7 +25,6 @@ import org.gridgain.grid.spi.discovery.tcp.internal.*;
 import org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc.*;
 import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
 import org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.discovery.tcp.messages.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
@@ -72,7 +71,7 @@ import static org.gridgain.grid.spi.discovery.tcp.messages.GridTcpDiscoveryStatu
  * <li>{@link GridTcpDiscoverySharedFsIpFinder}</li>
  * <li>{@gglink org.gridgain.grid.spi.discovery.tcp.ipfinder.s3.GridTcpDiscoveryS3IpFinder}</li>
  * <li>{@link GridTcpDiscoveryJdbcIpFinder}</li>
- * <li>{@link GridTcpDiscoveryVmIpFinder}</li>
+ * <li>{@link org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder}</li>
  * <li>{@link GridTcpDiscoveryMulticastIpFinder} - default</li>
  * </ul>
  * </li>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinder.java
index e4bee93..1c4a5f9 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinder.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinder.java
@@ -52,7 +52,7 @@ import static org.apache.ignite.spi.IgnitePortProtocol.*;
  *      <li>Local address (see {@link #setLocalAddress(String)})</li>
  * </ul>
  */
-public class GridTcpDiscoveryMulticastIpFinder extends GridTcpDiscoveryVmIpFinder {
+public class GridTcpDiscoveryMulticastIpFinder extends TcpDiscoveryVmIpFinder {
     /** Default multicast IP address (value is {@code 228.1.2.4}). */
     public static final String DFLT_MCAST_GROUP = "228.1.2.4";
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinder.java
deleted file mode 100644
index f993de7..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinder.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.vm;
-
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.net.*;
-import java.util.*;
-
-import static org.apache.ignite.IgniteSystemProperties.*;
-
-/**
- * IP Finder which works only with pre-configured list of IP addresses specified
- * via {@link #setAddresses(Collection)} method. By default, this IP finder is
- * not {@code shared}, which means that all grid nodes have to be configured with the
- * same list of IP addresses when this IP finder is used.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * There are no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * <ul>
- *      <li>Addresses for initialization (see {@link #setAddresses(Collection)})</li>
- *      <li>Shared flag (see {@link #setShared(boolean)})</li>
- * </ul>
- */
-public class GridTcpDiscoveryVmIpFinder extends TcpDiscoveryIpFinderAdapter {
-    /** Grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Addresses. */
-    @GridToStringInclude
-    private Collection<InetSocketAddress> addrs;
-
-    /**
-     * Initialize from system property.
-     */
-    {
-        String ips = IgniteSystemProperties.getString(GG_TCP_DISCOVERY_ADDRESSES);
-
-        if (!F.isEmpty(ips)) {
-            Collection<InetSocketAddress> addrsList = new LinkedHashSet<>();
-
-            for (String s : ips.split(",")) {
-                if (!F.isEmpty(s)) {
-                    s = s.trim();
-
-                    if (!F.isEmpty(s)) {
-                        try {
-                            addrsList.addAll(address(s));
-                        }
-                        catch (IgniteSpiException e) {
-                            throw new GridRuntimeException(e);
-                        }
-                    }
-                }
-            }
-
-            addrs = addrsList;
-        }
-        else
-            addrs = new LinkedHashSet<>();
-    }
-
-    /**
-     * Constructs new IP finder.
-     */
-    public GridTcpDiscoveryVmIpFinder() {
-        // No-op.
-    }
-
-    /**
-     * Constructs new IP finder.
-     *
-     * @param shared {@code true} if IP finder is shared.
-     * @see #setShared(boolean)
-     */
-    public GridTcpDiscoveryVmIpFinder(boolean shared) {
-        setShared(shared);
-    }
-
-    /**
-     * Parses provided values and initializes the internal collection of addresses.
-     * <p>
-     * Addresses may be represented as follows:
-     * <ul>
-     *     <li>IP address (e.g. 127.0.0.1, 9.9.9.9, etc);</li>
-     *     <li>IP address and port (e.g. 127.0.0.1:47500, 9.9.9.9:47501, etc);</li>
-     *     <li>IP address and port range (e.g. 127.0.0.1:47500..47510, 9.9.9.9:47501..47504, etc);</li>
-     *     <li>Hostname (e.g. host1.com, host2, etc);</li>
-     *     <li>Hostname and port (e.g. host1.com:47500, host2:47502, etc).</li>
-     *     <li>Hostname and port range (e.g. host1.com:47500..47510, host2:47502..47508, etc).</li>
-     * </ul>
-     * <p>
-     * If port is 0 or not provided then default port will be used (depends on
-     * discovery SPI configuration).
-     * <p>
-     * If port range is provided (e.g. host:port1..port2) the following should be considered:
-     * <ul>
-     *     <li>{@code port1 < port2} should be {@code true};</li>
-     *     <li>Both {@code port1} and {@code port2} should be greater than {@code 0}.</li>
-     * </ul>
-     *
-     * @param addrs Known nodes addresses.
-     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public synchronized void setAddresses(Collection<String> addrs) throws IgniteSpiException {
-        if (F.isEmpty(addrs))
-            return;
-
-        Collection<InetSocketAddress> newAddrs = new LinkedHashSet<>();
-
-        for (String ipStr : addrs)
-            newAddrs.addAll(address(ipStr));
-
-        this.addrs = newAddrs;
-    }
-
-    /**
-     * Creates address from string.
-     *
-     * @param ipStr Address string.
-     * @return Socket addresses (may contain 1 or more addresses if provided string
-     *      includes port range).
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    private static Collection<InetSocketAddress> address(String ipStr) throws IgniteSpiException {
-        ipStr = ipStr.trim();
-
-        String errMsg = "Failed to parse provided address: " + ipStr;
-
-        int colonCnt = ipStr.length() - ipStr.replace(":", "").length();
-
-        if (colonCnt > 1) {
-            // IPv6 address (literal IPv6 addresses are enclosed in square brackets, for example
-            // https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443).
-            if (ipStr.startsWith("[")) {
-                ipStr = ipStr.substring(1);
-
-                if (ipStr.contains("]:"))
-                    return addresses(ipStr, "\\]\\:", errMsg);
-                else if (ipStr.endsWith("]"))
-                    ipStr = ipStr.substring(0, ipStr.length() - 1);
-                else
-                    throw new IgniteSpiException(errMsg);
-            }
-        }
-        else {
-            // IPv4 address.
-            if (ipStr.endsWith(":"))
-                ipStr = ipStr.substring(0, ipStr.length() - 1);
-            else if (ipStr.indexOf(':') >= 0)
-                return addresses(ipStr, "\\:", errMsg);
-        }
-
-        // Provided address does not contain port (will use default one).
-        return Collections.singleton(new InetSocketAddress(ipStr, 0));
-    }
-
-    /**
-     * Creates address from string with port information.
-     *
-     * @param ipStr Address string
-     * @param regexDelim Port regex delimiter.
-     * @param errMsg Error message.
-     * @return Socket addresses (may contain 1 or more addresses if provided string
-     *      includes port range).
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    private static Collection<InetSocketAddress> addresses(String ipStr, String regexDelim, String errMsg)
-        throws IgniteSpiException {
-        String[] tokens = ipStr.split(regexDelim);
-
-        if (tokens.length == 2) {
-            String addrStr = tokens[0];
-            String portStr = tokens[1];
-
-            if (portStr.contains("..")) {
-                try {
-                    int port1 = Integer.parseInt(portStr.substring(0, portStr.indexOf("..")));
-                    int port2 = Integer.parseInt(portStr.substring(portStr.indexOf("..") + 2, portStr.length()));
-
-                    if (port2 < port1 || port1 == port2 || port1 <= 0 || port2 <= 0)
-                        throw new IgniteSpiException(errMsg);
-
-                    Collection<InetSocketAddress> res = new ArrayList<>(port2 - port1);
-
-                    // Upper bound included.
-                    for (int i = port1; i <= port2; i++)
-                        res.add(new InetSocketAddress(addrStr, i));
-
-                    return res;
-                }
-                catch (IllegalArgumentException e) {
-                    throw new IgniteSpiException(errMsg, e);
-                }
-            }
-            else {
-                try {
-                    int port = Integer.parseInt(portStr);
-
-                    return Collections.singleton(new InetSocketAddress(addrStr, port));
-                }
-                catch (IllegalArgumentException e) {
-                    throw new IgniteSpiException(errMsg, e);
-                }
-            }
-        }
-        else
-            throw new IgniteSpiException(errMsg);
-    }
-
-    /** {@inheritDoc} */
-    @Override public synchronized Collection<InetSocketAddress> getRegisteredAddresses() {
-        return Collections.unmodifiableCollection(addrs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public synchronized void registerAddresses(Collection<InetSocketAddress> addrs) {
-        assert !F.isEmpty(addrs);
-
-        this.addrs = new LinkedHashSet<>(this.addrs);
-
-        this.addrs.addAll(addrs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public synchronized void unregisterAddresses(Collection<InetSocketAddress> addrs) {
-        assert !F.isEmpty(addrs);
-
-        this.addrs = new LinkedHashSet<>(this.addrs);
-
-        this.addrs.removeAll(addrs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryVmIpFinder.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
new file mode 100644
index 0000000..fdcee08
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
@@ -0,0 +1,255 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.ipfinder.vm;
+
+import org.apache.ignite.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.net.*;
+import java.util.*;
+
+import static org.apache.ignite.IgniteSystemProperties.*;
+
+/**
+ * IP Finder which works only with pre-configured list of IP addresses specified
+ * via {@link #setAddresses(Collection)} method. By default, this IP finder is
+ * not {@code shared}, which means that all grid nodes have to be configured with the
+ * same list of IP addresses when this IP finder is used.
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * There are no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * <ul>
+ *      <li>Addresses for initialization (see {@link #setAddresses(Collection)})</li>
+ *      <li>Shared flag (see {@link #setShared(boolean)})</li>
+ * </ul>
+ */
+public class TcpDiscoveryVmIpFinder extends TcpDiscoveryIpFinderAdapter {
+    /** Grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Addresses. */
+    @GridToStringInclude
+    private Collection<InetSocketAddress> addrs;
+
+    /**
+     * Initialize from system property.
+     */
+    {
+        String ips = IgniteSystemProperties.getString(GG_TCP_DISCOVERY_ADDRESSES);
+
+        if (!F.isEmpty(ips)) {
+            Collection<InetSocketAddress> addrsList = new LinkedHashSet<>();
+
+            for (String s : ips.split(",")) {
+                if (!F.isEmpty(s)) {
+                    s = s.trim();
+
+                    if (!F.isEmpty(s)) {
+                        try {
+                            addrsList.addAll(address(s));
+                        }
+                        catch (IgniteSpiException e) {
+                            throw new GridRuntimeException(e);
+                        }
+                    }
+                }
+            }
+
+            addrs = addrsList;
+        }
+        else
+            addrs = new LinkedHashSet<>();
+    }
+
+    /**
+     * Constructs new IP finder.
+     */
+    public TcpDiscoveryVmIpFinder() {
+        // No-op.
+    }
+
+    /**
+     * Constructs new IP finder.
+     *
+     * @param shared {@code true} if IP finder is shared.
+     * @see #setShared(boolean)
+     */
+    public TcpDiscoveryVmIpFinder(boolean shared) {
+        setShared(shared);
+    }
+
+    /**
+     * Parses provided values and initializes the internal collection of addresses.
+     * <p>
+     * Addresses may be represented as follows:
+     * <ul>
+     *     <li>IP address (e.g. 127.0.0.1, 9.9.9.9, etc);</li>
+     *     <li>IP address and port (e.g. 127.0.0.1:47500, 9.9.9.9:47501, etc);</li>
+     *     <li>IP address and port range (e.g. 127.0.0.1:47500..47510, 9.9.9.9:47501..47504, etc);</li>
+     *     <li>Hostname (e.g. host1.com, host2, etc);</li>
+     *     <li>Hostname and port (e.g. host1.com:47500, host2:47502, etc).</li>
+     *     <li>Hostname and port range (e.g. host1.com:47500..47510, host2:47502..47508, etc).</li>
+     * </ul>
+     * <p>
+     * If port is 0 or not provided then default port will be used (depends on
+     * discovery SPI configuration).
+     * <p>
+     * If port range is provided (e.g. host:port1..port2) the following should be considered:
+     * <ul>
+     *     <li>{@code port1 < port2} should be {@code true};</li>
+     *     <li>Both {@code port1} and {@code port2} should be greater than {@code 0}.</li>
+     * </ul>
+     *
+     * @param addrs Known nodes addresses.
+     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public synchronized void setAddresses(Collection<String> addrs) throws IgniteSpiException {
+        if (F.isEmpty(addrs))
+            return;
+
+        Collection<InetSocketAddress> newAddrs = new LinkedHashSet<>();
+
+        for (String ipStr : addrs)
+            newAddrs.addAll(address(ipStr));
+
+        this.addrs = newAddrs;
+    }
+
+    /**
+     * Creates address from string.
+     *
+     * @param ipStr Address string.
+     * @return Socket addresses (may contain 1 or more addresses if provided string
+     *      includes port range).
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    private static Collection<InetSocketAddress> address(String ipStr) throws IgniteSpiException {
+        ipStr = ipStr.trim();
+
+        String errMsg = "Failed to parse provided address: " + ipStr;
+
+        int colonCnt = ipStr.length() - ipStr.replace(":", "").length();
+
+        if (colonCnt > 1) {
+            // IPv6 address (literal IPv6 addresses are enclosed in square brackets, for example
+            // https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443).
+            if (ipStr.startsWith("[")) {
+                ipStr = ipStr.substring(1);
+
+                if (ipStr.contains("]:"))
+                    return addresses(ipStr, "\\]\\:", errMsg);
+                else if (ipStr.endsWith("]"))
+                    ipStr = ipStr.substring(0, ipStr.length() - 1);
+                else
+                    throw new IgniteSpiException(errMsg);
+            }
+        }
+        else {
+            // IPv4 address.
+            if (ipStr.endsWith(":"))
+                ipStr = ipStr.substring(0, ipStr.length() - 1);
+            else if (ipStr.indexOf(':') >= 0)
+                return addresses(ipStr, "\\:", errMsg);
+        }
+
+        // Provided address does not contain port (will use default one).
+        return Collections.singleton(new InetSocketAddress(ipStr, 0));
+    }
+
+    /**
+     * Creates address from string with port information.
+     *
+     * @param ipStr Address string
+     * @param regexDelim Port regex delimiter.
+     * @param errMsg Error message.
+     * @return Socket addresses (may contain 1 or more addresses if provided string
+     *      includes port range).
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    private static Collection<InetSocketAddress> addresses(String ipStr, String regexDelim, String errMsg)
+        throws IgniteSpiException {
+        String[] tokens = ipStr.split(regexDelim);
+
+        if (tokens.length == 2) {
+            String addrStr = tokens[0];
+            String portStr = tokens[1];
+
+            if (portStr.contains("..")) {
+                try {
+                    int port1 = Integer.parseInt(portStr.substring(0, portStr.indexOf("..")));
+                    int port2 = Integer.parseInt(portStr.substring(portStr.indexOf("..") + 2, portStr.length()));
+
+                    if (port2 < port1 || port1 == port2 || port1 <= 0 || port2 <= 0)
+                        throw new IgniteSpiException(errMsg);
+
+                    Collection<InetSocketAddress> res = new ArrayList<>(port2 - port1);
+
+                    // Upper bound included.
+                    for (int i = port1; i <= port2; i++)
+                        res.add(new InetSocketAddress(addrStr, i));
+
+                    return res;
+                }
+                catch (IllegalArgumentException e) {
+                    throw new IgniteSpiException(errMsg, e);
+                }
+            }
+            else {
+                try {
+                    int port = Integer.parseInt(portStr);
+
+                    return Collections.singleton(new InetSocketAddress(addrStr, port));
+                }
+                catch (IllegalArgumentException e) {
+                    throw new IgniteSpiException(errMsg, e);
+                }
+            }
+        }
+        else
+            throw new IgniteSpiException(errMsg);
+    }
+
+    /** {@inheritDoc} */
+    @Override public synchronized Collection<InetSocketAddress> getRegisteredAddresses() {
+        return Collections.unmodifiableCollection(addrs);
+    }
+
+    /** {@inheritDoc} */
+    @Override public synchronized void registerAddresses(Collection<InetSocketAddress> addrs) {
+        assert !F.isEmpty(addrs);
+
+        this.addrs = new LinkedHashSet<>(this.addrs);
+
+        this.addrs.addAll(addrs);
+    }
+
+    /** {@inheritDoc} */
+    @Override public synchronized void unregisterAddresses(Collection<InetSocketAddress> addrs) {
+        assert !F.isEmpty(addrs);
+
+        this.addrs = new LinkedHashSet<>(this.addrs);
+
+        this.addrs.removeAll(addrs);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryVmIpFinder.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml
index 47175de..4d0d4d7 100644
--- a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml
+++ b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml
@@ -98,7 +98,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml
index 19a5c88..2aa4ba5 100644
--- a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml
+++ b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml
@@ -88,7 +88,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml
index 6ff84e0..b807184 100644
--- a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml
+++ b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml
@@ -88,7 +88,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/discovery-stress.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/discovery-stress.xml b/modules/core/src/test/config/discovery-stress.xml
index e8becc5..1b8f421 100644
--- a/modules/core/src/test/config/discovery-stress.xml
+++ b/modules/core/src/test/config/discovery-stress.xml
@@ -44,7 +44,7 @@
                 <property name="ackTimeout" value="10000"/>
                 <property name="reconnectCount" value="3"/>
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>fosters-210:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/example-cache.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/example-cache.xml b/modules/core/src/test/config/example-cache.xml
index e369809..aff7229 100644
--- a/modules/core/src/test/config/example-cache.xml
+++ b/modules/core/src/test/config/example-cache.xml
@@ -106,7 +106,7 @@
                 <property name="ipFinder">
                     <!-- Uncomment multicast IP finder to enable multicast-based discovery of initial nodes. -->
                     <!--<bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">-->
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!-- In distributed environment, replace with actual host IP address. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/ggfs-loopback.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/ggfs-loopback.xml b/modules/core/src/test/config/ggfs-loopback.xml
index 37f3bb6..450a72a 100644
--- a/modules/core/src/test/config/ggfs-loopback.xml
+++ b/modules/core/src/test/config/ggfs-loopback.xml
@@ -149,7 +149,7 @@
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <!-- Override default IP-finder.-->
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/ggfs-no-endpoint.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/ggfs-no-endpoint.xml b/modules/core/src/test/config/ggfs-no-endpoint.xml
index 247259f..ecd68e9 100644
--- a/modules/core/src/test/config/ggfs-no-endpoint.xml
+++ b/modules/core/src/test/config/ggfs-no-endpoint.xml
@@ -149,7 +149,7 @@
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <!-- Override default IP-finder.-->
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/ggfs-shmem.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/ggfs-shmem.xml b/modules/core/src/test/config/ggfs-shmem.xml
index 9d58a0d..d264ffb 100644
--- a/modules/core/src/test/config/ggfs-shmem.xml
+++ b/modules/core/src/test/config/ggfs-shmem.xml
@@ -149,7 +149,7 @@
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <!-- Override default IP-finder.-->
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/io-manager-benchmark.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/io-manager-benchmark.xml b/modules/core/src/test/config/io-manager-benchmark.xml
index d048c40..0566a47 100644
--- a/modules/core/src/test/config/io-manager-benchmark.xml
+++ b/modules/core/src/test/config/io-manager-benchmark.xml
@@ -58,7 +58,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/job-loadtest/client.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/job-loadtest/client.xml b/modules/core/src/test/config/job-loadtest/client.xml
index 8ccb7e3..2ad72f5 100644
--- a/modules/core/src/test/config/job-loadtest/client.xml
+++ b/modules/core/src/test/config/job-loadtest/client.xml
@@ -86,7 +86,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/job-loadtest/server.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/job-loadtest/server.xml b/modules/core/src/test/config/job-loadtest/server.xml
index ca18c86..8009d6a 100644
--- a/modules/core/src/test/config/job-loadtest/server.xml
+++ b/modules/core/src/test/config/job-loadtest/server.xml
@@ -59,7 +59,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/jobs-load-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/jobs-load-base.xml b/modules/core/src/test/config/jobs-load-base.xml
index 475a763..df43b94 100644
--- a/modules/core/src/test/config/jobs-load-base.xml
+++ b/modules/core/src/test/config/jobs-load-base.xml
@@ -31,7 +31,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/load/cache-benchmark.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/cache-benchmark.xml b/modules/core/src/test/config/load/cache-benchmark.xml
index 6b3a9b8..c6608c5 100644
--- a/modules/core/src/test/config/load/cache-benchmark.xml
+++ b/modules/core/src/test/config/load/cache-benchmark.xml
@@ -68,7 +68,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/load/cache-client-benchmark.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/cache-client-benchmark.xml b/modules/core/src/test/config/load/cache-client-benchmark.xml
index 4f71491..668c315 100644
--- a/modules/core/src/test/config/load/cache-client-benchmark.xml
+++ b/modules/core/src/test/config/load/cache-client-benchmark.xml
@@ -68,7 +68,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/load/dsi-load-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/dsi-load-base.xml b/modules/core/src/test/config/load/dsi-load-base.xml
index fb937a3..8476ba8 100644
--- a/modules/core/src/test/config/load/dsi-load-base.xml
+++ b/modules/core/src/test/config/load/dsi-load-base.xml
@@ -46,7 +46,7 @@
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
                     <bean
-                            class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                            class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/load/merge-sort-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/merge-sort-base.xml b/modules/core/src/test/config/load/merge-sort-base.xml
index 882c1bc..3bb3645 100644
--- a/modules/core/src/test/config/load/merge-sort-base.xml
+++ b/modules/core/src/test/config/load/merge-sort-base.xml
@@ -108,7 +108,7 @@
                 <property name="statisticsPrintFrequency" value="60000"/>
 
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/load/mongo-multinode-foster.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/mongo-multinode-foster.xml b/modules/core/src/test/config/load/mongo-multinode-foster.xml
index cde3373..d8a6587 100644
--- a/modules/core/src/test/config/load/mongo-multinode-foster.xml
+++ b/modules/core/src/test/config/load/mongo-multinode-foster.xml
@@ -134,7 +134,7 @@
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <!-- Override default IP-finder.-->
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>10.1.10.212:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/spring-cache-load.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-cache-load.xml b/modules/core/src/test/config/spring-cache-load.xml
index 4e96521..550ef79 100644
--- a/modules/core/src/test/config/spring-cache-load.xml
+++ b/modules/core/src/test/config/spring-cache-load.xml
@@ -59,7 +59,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/spring-cache-put-remove-load.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-cache-put-remove-load.xml b/modules/core/src/test/config/spring-cache-put-remove-load.xml
index e0aaafe..513e300 100644
--- a/modules/core/src/test/config/spring-cache-put-remove-load.xml
+++ b/modules/core/src/test/config/spring-cache-put-remove-load.xml
@@ -56,7 +56,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/spring-cache-swap.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-cache-swap.xml b/modules/core/src/test/config/spring-cache-swap.xml
index eed5391..5873e95 100644
--- a/modules/core/src/test/config/spring-cache-swap.xml
+++ b/modules/core/src/test/config/spring-cache-swap.xml
@@ -49,7 +49,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/spring-cache-teststore.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-cache-teststore.xml b/modules/core/src/test/config/spring-cache-teststore.xml
index c08a630..bd139e6 100644
--- a/modules/core/src/test/config/spring-cache-teststore.xml
+++ b/modules/core/src/test/config/spring-cache-teststore.xml
@@ -45,7 +45,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/spring-multicache.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-multicache.xml b/modules/core/src/test/config/spring-multicache.xml
index e8e3be3..fc3e030 100644
--- a/modules/core/src/test/config/spring-multicache.xml
+++ b/modules/core/src/test/config/spring-multicache.xml
@@ -257,7 +257,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/spring-start-nodes-attr.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-start-nodes-attr.xml b/modules/core/src/test/config/spring-start-nodes-attr.xml
index 13cbe45..b7aa38e 100644
--- a/modules/core/src/test/config/spring-start-nodes-attr.xml
+++ b/modules/core/src/test/config/spring-start-nodes-attr.xml
@@ -39,7 +39,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/spring-start-nodes.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-start-nodes.xml b/modules/core/src/test/config/spring-start-nodes.xml
index 0114dcf..e4246cb 100644
--- a/modules/core/src/test/config/spring-start-nodes.xml
+++ b/modules/core/src/test/config/spring-start-nodes.xml
@@ -33,7 +33,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/streamer/spring-streamer-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/streamer/spring-streamer-base.xml b/modules/core/src/test/config/streamer/spring-streamer-base.xml
index 4904988..b241f8e 100644
--- a/modules/core/src/test/config/streamer/spring-streamer-base.xml
+++ b/modules/core/src/test/config/streamer/spring-streamer-base.xml
@@ -68,7 +68,7 @@
             <property name="maxMissedHeartbeats" value="3"/>
 
             <property name="ipFinder">
-                <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                     <property name="addresses">
                         <list>
                             <value>127.0.0.1:47500</value>
@@ -84,7 +84,7 @@
 
         <bean id="discoSpi" class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="ipFinder">
-                <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                     <property name="addresses">
                         <list>
                             <value>10.1.10.210</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/websession/spring-cache-1.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/websession/spring-cache-1.xml b/modules/core/src/test/config/websession/spring-cache-1.xml
index d4e9c8c..31b75da 100644
--- a/modules/core/src/test/config/websession/spring-cache-1.xml
+++ b/modules/core/src/test/config/websession/spring-cache-1.xml
@@ -80,7 +80,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/websession/spring-cache-2.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/websession/spring-cache-2.xml b/modules/core/src/test/config/websession/spring-cache-2.xml
index 6786226..35f8f41 100644
--- a/modules/core/src/test/config/websession/spring-cache-2.xml
+++ b/modules/core/src/test/config/websession/spring-cache-2.xml
@@ -80,7 +80,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/config/websession/spring-cache-3.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/websession/spring-cache-3.xml b/modules/core/src/test/config/websession/spring-cache-3.xml
index d27dc8e..bc24f47 100644
--- a/modules/core/src/test/config/websession/spring-cache-3.xml
+++ b/modules/core/src/test/config/websession/spring-cache-3.xml
@@ -80,7 +80,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java
index 7fbed15..0a1797a 100644
--- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java
@@ -47,13 +47,13 @@ public class GridOptimizedMarshallerTest extends GridCommonAbstractTest {
 
         marsh.setRequireSerializable(false);
 
-        byte[] bytes = marsh.marshal(new GridTcpDiscoveryVmIpFinder());
+        byte[] bytes = marsh.marshal(new TcpDiscoveryVmIpFinder());
 
         TcpDiscoveryIpFinder ipFinder = marsh.unmarshal(bytes, null);
 
         assertFalse(ipFinder.isShared());
 
-        ipFinder = marsh.unmarshal(marsh.marshal(new GridTcpDiscoveryVmIpFinder(true)), null);
+        ipFinder = marsh.unmarshal(marsh.marshal(new TcpDiscoveryVmIpFinder(true)), null);
 
         assertTrue(ipFinder.isShared());
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java
index 9058f8d..4dcdd7e 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java
@@ -24,7 +24,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheCheckpointSpiSecondCacheSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Data cache name. */
     private static final String DATA_CACHE = null;


[04/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java
index d21dc78..4dbe7db 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridCacheEvictionFilterSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Replicated cache. */
     private GridCacheMode mode = REPLICATED;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java
index 2130a8d..d2ce3ae 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java
@@ -33,7 +33,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridCacheEvictionLockUnlockSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Evict latch. */
     private static CountDownLatch evictLatch;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java
index 25ffaa3..6bbd5ca 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheEvictionTouchSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private GridCacheEvictionPolicy<?, ?> plc;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java
index 0800975..e83fc8f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheLruNearEvictionPolicySelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Maximum size for near eviction policy. */
     private static final int EVICTION_MAX_SIZE = 10;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java
index 9d40515..5e18641 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java
@@ -29,7 +29,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheNearOnlyLruNearEvictionPolicySelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Grid count. */
     private static final int GRID_COUNT = 2;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java
index b8f3597..46782f9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public abstract class GridCacheSwapScanQueryAbstractSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     protected static final String ATOMIC_CACHE_NAME = "atomicCache";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
index 00f355d..626741f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
@@ -51,7 +51,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public abstract class GridCacheContinuousQueryAbstractSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Latch timeout. */
     protected static final long LATCH_TIMEOUT = 5000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java
index 2d9eed5..cadab14 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java
@@ -37,7 +37,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public abstract class GridCacheAbstractReduceFieldsQuerySelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Flag indicating if starting node should have cache. */
     protected boolean hasCache;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java
index 10bd116..d95be6e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java
@@ -29,7 +29,7 @@ import java.util.*;
  */
 public class GridTimeSyncProcessorSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Number of grids in test. */
     public static final int GRID_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java
index 6d19222..1a53b1f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java
@@ -45,7 +45,7 @@ public class GridClosureProcessorSelfTest extends GridCommonAbstractTest {
     private static final long JOB_TIMEOUT = 100;
 
     /** IP finder. */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java
index c93ce39..a6a8908 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridDataLoaderImplSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Number of keys to load via data loader. */
     private static final int KEYS_COUNT = 1000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java
index 1ed09f6..27db810 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridDataLoaderPerformanceTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int GRID_CNT = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java
index b5d589c..fa8e539 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java
@@ -40,7 +40,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridDataLoaderProcessorSelfTest extends GridCommonAbstractTest {
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private GridCacheMode mode = PARTITIONED;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java
index 350224d..06e1f0c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java
@@ -37,7 +37,7 @@ import static org.gridgain.testframework.GridTestUtils.*;
  */
 public class GridGgfsDataManagerSelfTest extends GridGgfsCommonAbstractTest {
     /** Test IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Meta-information cache name. */
     private static final String META_CACHE_NAME = "meta";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java
index a3ecb58..12e81e1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.testframework.GridTestUtils.*;
  */
 public class GridGgfsMetaManagerSelfTest extends GridGgfsCommonAbstractTest {
     /** Test IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Meta-information cache name. */
     private static final String META_CACHE_NAME = "replicated";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java
index 1cab83d..b334943 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java
@@ -43,7 +43,7 @@ public class GridGgfsMetricsSelfTest extends GridGgfsCommonAbstractTest {
     private static final int NODES_CNT = 3;
 
     /** IP finder for the grid with the primary file system. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Primary GGFS instances. */
     private static IgniteFs[] ggfsPrimary;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java
index 240b3b0..12ac414 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java
@@ -39,7 +39,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridGgfsProcessorSelfTest extends GridGgfsCommonAbstractTest {
     /** Test IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Meta-information cache name. */
     private static final String META_CACHE_NAME = "replicated";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java
index cc5c75f..0a96cb5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java
@@ -36,7 +36,7 @@ import static org.apache.ignite.fs.IgniteFsMode.*;
  */
 public class GridGgfsProcessorValidationSelfTest extends GridGgfsCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Grid #1 config. */
     private IgniteConfiguration g1Cfg;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java
index d4ded3f..b7c2e84 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java
@@ -36,7 +36,7 @@ import static org.apache.ignite.fs.IgniteFsConfiguration.*;
  */
 public abstract class GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest extends GridGgfsCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     private static final AtomicInteger mgmtPort = new AtomicInteger(DFLT_MGMT_PORT);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java
index e0e4f9b..7e3569f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java
@@ -66,7 +66,7 @@ public class GridGgfsSizeSelfTest extends GridGgfsCommonAbstractTest {
     private static final String GGFS_NAME = "ggfs";
 
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** GGFS management port */
     private static int mgmtPort;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java
index 79dc565..47f35b1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java
@@ -37,7 +37,7 @@ import static org.gridgain.testframework.GridTestUtils.*;
  */
 public class GridGgfsStreamsSelfTest extends GridGgfsCommonAbstractTest {
     /** Test IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Meta-information cache name. */
     private static final String META_CACHE_NAME = "replicated";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java
index 449c707..67bdea9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java
@@ -46,7 +46,7 @@ public class GridGgfsTaskSelfTest extends GridGgfsCommonAbstractTest {
     private static final IgniteFsPath FILE = new IgniteFsPath("/file");
 
     /** Shared IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Block size: 64 Kb. */
     private static final int BLOCK_SIZE = 64 * 1024;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java
index 2d98cd9..12bd5c1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java
@@ -36,7 +36,7 @@ public class GridGgfsAbstractRecordResolverSelfTest extends GridCommonAbstractTe
     protected static final IgniteFsPath FILE = new IgniteFsPath("/file");
 
     /** Shared IP finder. */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** GGFS. */
     protected static IgniteFs ggfs;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java
index 85d44ca..9b6a3f0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java
@@ -39,7 +39,7 @@ public abstract class GridServiceProcessorAbstractSelfTest extends GridCommonAbs
     public static final String CACHE_NAME = "testServiceCache";
 
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Random generator. */
     private static final Random RAND = new Random();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java
index 2539732..b00be46 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java
@@ -31,7 +31,7 @@ import static java.util.concurrent.TimeUnit.*;
  */
 public class GridStreamerEvictionSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Number of events used in test. */
     private static final int EVENTS_COUNT = 10;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java
index 5508034..046a685 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java
@@ -32,7 +32,7 @@ import java.util.concurrent.atomic.*;
  */
 public class GridStreamerFailoverSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Event router. */
     private TestRandomRouter router;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java
index 96a5d98..83b98ce 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java
@@ -42,7 +42,7 @@ import static org.apache.ignite.configuration.IgniteDeploymentMode.*;
  */
 public class GridStreamerSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private boolean atLeastOnce = true;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java
index dd6aa76..4e606b9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java
@@ -53,7 +53,7 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest {
     public static final String EXT_RESOURCE_CLS_NAME = "org.gridgain.grid.tests.p2p.GridTestUserResource";
 
     /** Shared IP finder. */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * A test message topic.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java
index 5d5cae3..a079441 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java
@@ -27,7 +27,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridP2PContinuousDeploymentSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Number of grids cache. */
     private static final int GRID_CNT = 2;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java
index 0d5a3c4..6f7e5ea 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java
@@ -30,7 +30,7 @@ public class GridP2PDoubleDeploymentSelfTest extends GridCommonAbstractTest {
     private IgniteDeploymentMode depMode;
 
     /** IP finder. */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java
index 313d1a7..52084a5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java
@@ -48,7 +48,7 @@ public class GridP2PMissedResourceCacheSizeSelfTest extends GridCommonAbstractTe
     private int missedRsrcCacheSize;
 
     /** */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
index fd5553f..9a4f3d5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
@@ -36,7 +36,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridTcpClientDiscoverySelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final AtomicInteger srvIdx = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
index ecdb05d..0bea36a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
@@ -24,7 +24,7 @@ public class GridTcpDiscoveryConcurrentStartTest extends GridCommonAbstractTest
     private static final int TOP_SIZE = 1;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static volatile boolean client;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
index 9ee2b04..8bec834 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
@@ -29,7 +29,7 @@ public class GridTcpDiscoveryMarshallerCheckSelfTest extends GridCommonAbstractT
     private static boolean flag;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
index e474b9a..6c72568 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
@@ -49,7 +49,7 @@ public class GridTcpDiscoveryMultiThreadedTest extends GridCommonAbstractTest {
     }
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * @throws Exception If fails.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
index 27b8910..09e9397 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
@@ -21,7 +21,7 @@ import org.gridgain.testframework.junits.spi.*;
 public class GridTcpDiscoverySpiRandomStartStopTest extends
     GridAbstractDiscoveryRandomStartStopTest<TcpDiscoverySpi> {
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected int getMaxInterval() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
index 806c678..cdfc477 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
@@ -21,7 +21,7 @@ import org.gridgain.testframework.junits.spi.*;
 @GridSpiTest(spi = TcpDiscoverySpi.class, group = "Discovery SPI")
 public class GridTcpDiscoverySpiSelfTest extends GridAbstractDiscoverySelfTest<TcpDiscoverySpi> {
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder =  new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder =  new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected DiscoverySpi getSpi(int idx) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
index e7fa57c..a503395 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
@@ -29,7 +29,7 @@ public class GridTcpDiscoverySpiStartStopSelfTest extends GridSpiStartStopAbstra
      * @return IP finder.
      */
     @GridSpiTestConfig
-    public GridTcpDiscoveryIpFinder getIpFinder() {
+    public TcpDiscoveryIpFinder getIpFinder() {
         return new GridTcpDiscoveryVmIpFinder(true);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
index a01454c..1b8a998 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
@@ -19,7 +19,7 @@ import org.gridgain.testframework.junits.common.*;
  */
 public class GridTcpDiscoverySpiWildcardSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int NODES = 5;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java
index 355ec49..123867e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java
@@ -20,7 +20,7 @@ import java.util.*;
 /**
  * Abstract test for ip finder.
  */
-public abstract class GridTcpDiscoveryIpFinderAbstractSelfTest<T extends GridTcpDiscoveryIpFinder>
+public abstract class GridTcpDiscoveryIpFinderAbstractSelfTest<T extends TcpDiscoveryIpFinder>
     extends GridCommonAbstractTest {
     /** */
     private T finder;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java
index e8983d7..4e31cd3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.util.GridUtils.*;
  */
 public class GridStartupWithSpecifiedWorkDirectorySelfTest extends TestCase {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int GRID_COUNT = 2;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java
index be88a3b..e66fd55 100644
--- a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.util.GridUtils.*;
  */
 public class GridStartupWithUndefinedGridGainHomeSelfTest extends TestCase {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int GRID_COUNT = 2;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java
index f105278..d0094e7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java
@@ -29,7 +29,7 @@ import static org.gridgain.grid.kernal.GridNodeAttributes.*;
  */
 public class GridTopologyHeapSizeSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java
index 672bdbd..a089320 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java
@@ -37,7 +37,7 @@ public class GridCacheMultiNodeLoadTest extends GridCommonAbstractTest {
     private static Ignite ignite1;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java
index eaee5cb..95d2b30 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheAffinityTransactionsOffHeapTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int NODE_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java b/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java
index 1703443..b18afcc 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java
@@ -47,7 +47,7 @@ public class GridIoManagerBenchmark0 extends GridCommonAbstractTest {
     private static final long TEST_TIMEOUT = 3 * 60 * 1000;
 
     /** */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java
index fdc7749..cbc3d05 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java
@@ -35,7 +35,7 @@ public class GridCachePartitionedAtomicLongLoadTest extends GridCommonAbstractTe
     private static final long DURATION = 8 * 60 * 60 * 1000;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final AtomicInteger idx = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java b/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java
index b95c713..3229b75 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java
@@ -247,7 +247,7 @@ public class GridSwapEvictAllBenchmark {
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        GridTcpDiscoveryIpFinder finder = new GridTcpDiscoveryVmIpFinder(true);
+        TcpDiscoveryIpFinder finder = new GridTcpDiscoveryVmIpFinder(true);
 
         disco.setIpFinder(finder);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
index af2f761..00f96eb 100644
--- a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
@@ -392,7 +392,7 @@ public abstract class GridSpiAbstractTest<T extends IgniteSpi> extends GridAbstr
             ((TcpCommunicationSpi)spi).setLocalPort(GridTestUtils.getNextCommPort(getClass()));
 
         if (spi instanceof TcpDiscoverySpi) {
-            GridTcpDiscoveryIpFinder ipFinder = ((TcpDiscoverySpi)spi).getIpFinder();
+            TcpDiscoveryIpFinder ipFinder = ((TcpDiscoverySpi)spi).getIpFinder();
 
             if (ipFinder instanceof GridTcpDiscoveryMulticastIpFinder) {
                 String mcastAddr = GridTestUtils.getNextMulticastGroup(getClass());

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
index 4b77226..16a87c4 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
@@ -55,7 +55,7 @@ public abstract class GridGgfsHadoop20FileSystemAbstractSelfTest extends GridGgf
     private static final int THREAD_CNT = 8;
 
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Barrier for multithreaded tests. */
     private static CyclicBarrier barrier;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java
index b1a49f3..023a411 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java
@@ -80,7 +80,7 @@ public abstract class GridGgfsHadoopFileSystemAbstractSelfTest extends GridGgfsC
     private static final int THREAD_CNT = 8;
 
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Barrier for multithreaded tests. */
     private static CyclicBarrier barrier;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
index 036873c..3ce2c8a 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
@@ -41,7 +41,7 @@ import static org.gridgain.grid.util.ipc.shmem.GridIpcSharedMemoryServerEndpoint
  */
 public class GridGgfsHadoopFileSystemHandshakeSelfTest extends GridGgfsCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Grid name. */
     private static final String GRID_NAME = "grid";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
index fd0ce09..0d7d922 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
@@ -39,7 +39,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridGgfsHadoopFileSystemIpcCacheSelfTest extends GridGgfsCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Path to test hadoop configuration. */
     private static final String HADOOP_FS_CFG = "modules/core/src/test/config/hadoop/core-site.xml";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java
index b9989d1..4d113e2 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java
@@ -45,7 +45,7 @@ public class GridGgfsNearOnlyMultiNodeSelfTest extends GridCommonAbstractTest {
     public static final int GRP_SIZE = 128;
 
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Node count. */
     private int cnt;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java b/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java
index 2a8722c..f17594c 100644
--- a/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java
+++ b/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java
@@ -43,7 +43,7 @@ import static org.hibernate.cfg.Environment.*;
  */
 public class GridHibernateL2CacheSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     public static final String CONNECTION_URL = "jdbc:h2:mem:example;DB_CLOSE_DELAY=-1";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
index baa94b2..0dfae87 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
@@ -39,7 +39,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public abstract class GridCacheAbstractFieldsQuerySelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Cache name. */
     private static final String CACHE = "cache";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java
index 0358a8b..ad19fc4 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java
@@ -55,7 +55,7 @@ public abstract class GridCacheAbstractQuerySelfTest extends GridCommonAbstractT
     private static TestStore store = new TestStore();
 
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final UUID subjId = UUID.fromString("8EB3B06D-0885-4B4A-9A54-02C93EF09B65");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
index 464b586..4cb2617 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridCacheCrossCacheQuerySelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private Ignite ignite;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java
index 20c1a85..906b960 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java
@@ -97,7 +97,7 @@ public class GridCacheOffHeapAndSwapSelfTest extends GridCommonAbstractTest {
     };
 
     /** */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java
index 9c2eb4f..1f45579 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheQueryLoadSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Puts count. */
     private static final int PUT_CNT = 10;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java
index f0c7c86..6d4307d 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java
@@ -34,7 +34,7 @@ public class GridCacheQueryMetricsSelfTest extends GridCommonAbstractTest {
     private static final GridCacheMode CACHE_MODE = REPLICATED;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java
index 33ebd17..8291dee 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java
@@ -48,7 +48,7 @@ public class GridCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTest
     private static final int GRID_CNT = 2;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static AtomicInteger idxSwapCnt = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java
index 7bcd865..d2ee128 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java
@@ -44,7 +44,7 @@ public class GridCacheQueryUserResourceSelfTest extends GridCommonAbstractTest {
     private static final int RUN_CNT = 2;
 
     /** VM ip finder for TCP discovery. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** External class loader. */
     private static final ClassLoader extClsLdr;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java
index f808c34..a596f15 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridCacheSqlQueryMultiThreadedSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java
index ec8d52f..8531c13 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java
@@ -52,7 +52,7 @@ public class GridCacheSwapSelfTest extends GridCommonAbstractTest {
     private final Map<Integer, Object> versions = new HashMap<>();
 
     /** */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private boolean swapEnabled = true;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java
index 45740ea..6640ea5 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridIndexingWithNoopSwapSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     protected Ignite ignite;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
index 1f589ec..21c6c38 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
@@ -37,7 +37,7 @@ public class GridCachePartitionedHitsAndMissesSelfTest extends GridCommonAbstrac
     private static final int CNT = 2000;
 
     /** IP Finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java
index 0e0d684..b9e341c 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java
@@ -42,7 +42,7 @@ public class GridCacheQueryNodeRestartSelfTest extends GridCacheAbstractSelfTest
     private static final int KEY_CNT = 1000;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected int gridCount() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java b/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java
index 30e8dfb..66946da 100644
--- a/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java
+++ b/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java
@@ -23,7 +23,7 @@ import org.springframework.context.support.*;
  */
 public class GridSpringCacheManagerSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final String CACHE_NAME = "testCache";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java b/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java
index c4dc33f..996b297 100644
--- a/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java
+++ b/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java
@@ -24,7 +24,7 @@ import org.gridgain.testframework.junits.common.*;
  */
 public class GridSpringBeanSerializationSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Marshaller. */
     private static final IgniteMarshaller MARSHALLER = new IgniteOptimizedMarshaller();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java b/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java
index 2d3e1d4..5215551 100644
--- a/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java
+++ b/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java
@@ -52,7 +52,7 @@ public class GridP2PUserVersionChangeSelfTest extends GridCommonAbstractTest {
     private static final String TEST_RCRS_NAME = "org.gridgain.grid.tests.p2p.GridTestUserResource";
 
     /** IP finder. */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     public GridP2PUserVersionChangeSelfTest() {


[37/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
new file mode 100644
index 0000000..32d3f54
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -0,0 +1,5144 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.marshaller.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.kernal.*;
+import org.gridgain.grid.kernal.managers.security.*;
+import org.gridgain.grid.security.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.internal.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.*;
+import org.apache.ignite.spi.discovery.tcp.messages.*;
+import org.gridgain.grid.util.*;
+import org.gridgain.grid.util.future.*;
+import org.gridgain.grid.util.lang.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jdk8.backport.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.net.*;
+import java.text.*;
+import java.util.*;
+import java.util.concurrent.*;
+
+import static org.apache.ignite.events.IgniteEventType.*;
+import static org.gridgain.grid.kernal.GridNodeAttributes.*;
+import static org.apache.ignite.spi.IgnitePortProtocol.*;
+import static org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoverySpiState.*;
+import static org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHeartbeatMessage.*;
+import static org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryStatusCheckMessage.*;
+
+/**
+ * Discovery SPI implementation that uses TCP/IP for node discovery.
+ * <p>
+ * Nodes are organized in ring. So almost all network exchange (except few cases) is
+ * done across it.
+ * <p>
+ * At startup SPI tries to send messages to random IP taken from
+ * {@link org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} about self start (stops when send succeeds)
+ * and then this info goes to coordinator. When coordinator processes join request
+ * and issues node added messages and all other nodes then receive info about new node.
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * There are no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * The following configuration parameters are optional:
+ * <ul>
+ * <li>IP finder to share info about nodes IP addresses
+ * (see {@link #setIpFinder(org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder)}).
+ * See the following IP finder implementations for details on configuration:
+ * <ul>
+ * <li>{@link org.apache.ignite.spi.discovery.tcp.ipfinder.sharedfs.TcpDiscoverySharedFsIpFinder}</li>
+ * <li>{@gglink org.gridgain.grid.spi.discovery.tcp.ipfinder.s3.GridTcpDiscoveryS3IpFinder}</li>
+ * <li>{@link org.apache.ignite.spi.discovery.tcp.ipfinder.jdbc.TcpDiscoveryJdbcIpFinder}</li>
+ * <li>{@link org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder}</li>
+ * <li>{@link org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder} - default</li>
+ * </ul>
+ * </li>
+ * </ul>
+ * <ul>
+ * </li>
+ * <li>Local address (see {@link #setLocalAddress(String)})</li>
+ * <li>Local port to bind to (see {@link #setLocalPort(int)})</li>
+ * <li>Local port range to try binding to if previous ports are in use
+ *      (see {@link #setLocalPortRange(int)})</li>
+ * <li>Heartbeat frequency (see {@link #setHeartbeatFrequency(long)})</li>
+ * <li>Max missed heartbeats (see {@link #setMaxMissedHeartbeats(int)})</li>
+ * <li>Number of times node tries to (re)establish connection to another node
+ *      (see {@link #setReconnectCount(int)})</li>
+ * <li>Network timeout (see {@link #setNetworkTimeout(long)})</li>
+ * <li>Socket timeout (see {@link #setSocketTimeout(long)})</li>
+ * <li>Message acknowledgement timeout (see {@link #setAckTimeout(long)})</li>
+ * <li>Maximum message acknowledgement timeout (see {@link #setMaxAckTimeout(long)})</li>
+ * <li>Join timeout (see {@link #setJoinTimeout(long)})</li>
+ * <li>Thread priority for threads started by SPI (see {@link #setThreadPriority(int)})</li>
+ * <li>IP finder clean frequency (see {@link #setIpFinderCleanFrequency(long)})</li>
+ * <li>Statistics print frequency (see {@link #setStatisticsPrintFrequency(long)}</li>
+ * </ul>
+ * <h2 class="header">Java Example</h2>
+ * <pre name="code" class="java">
+ * GridTcpDiscoverySpi spi = new GridTcpDiscoverySpi();
+ *
+ * GridTcpDiscoveryVmIpFinder finder =
+ *     new GridTcpDiscoveryVmIpFinder();
+ *
+ * spi.setIpFinder(finder);
+ *
+ * GridConfiguration cfg = new GridConfiguration();
+ *
+ * // Override default discovery SPI.
+ * cfg.setDiscoverySpi(spi);
+ *
+ * // Start grid.
+ * GridGain.start(cfg);
+ * </pre>
+ * <h2 class="header">Spring Example</h2>
+ * GridTcpDiscoverySpi can be configured from Spring XML configuration file:
+ * <pre name="code" class="xml">
+ * &lt;bean id="grid.custom.cfg" class="org.gridgain.grid.GridConfiguration" singleton="true"&gt;
+ *         ...
+ *         &lt;property name="discoverySpi"&gt;
+ *             &lt;bean class="org.gridgain.grid.spi.discovery.tcp.GridTcpDiscoverySpi"&gt;
+ *                 &lt;property name="ipFinder"&gt;
+ *                     &lt;bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder" /&gt;
+ *                 &lt;/property&gt;
+ *             &lt;/bean&gt;
+ *         &lt;/property&gt;
+ *         ...
+ * &lt;/bean&gt;
+ * </pre>
+ * <p>
+ * <img src="http://www.gridgain.com/images/spring-small.png">
+ * <br>
+ * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
+ * @see org.apache.ignite.spi.discovery.DiscoverySpi
+ */
+@SuppressWarnings("NonPrivateFieldAccessedInSynchronizedContext")
+@IgniteSpiMultipleInstancesSupport(true)
+@DiscoverySpiOrderSupport(true)
+@DiscoverySpiHistorySupport(true)
+public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscoverySpiMBean {
+    /** Default local port range (value is <tt>100</tt>). */
+    public static final int DFLT_PORT_RANGE = 100;
+
+    /** Default timeout for joining topology (value is <tt>0</tt>). */
+    public static final long DFLT_JOIN_TIMEOUT = 0;
+
+    /** Default reconnect attempts count (value is <tt>10</tt>). */
+    public static final int DFLT_RECONNECT_CNT = 10;
+
+    /** Default max heartbeats count node can miss without initiating status check (value is <tt>1</tt>). */
+    public static final int DFLT_MAX_MISSED_HEARTBEATS = 1;
+
+    /** Default max heartbeats count node can miss without failing client node (value is <tt>5</tt>). */
+    public static final int DFLT_MAX_MISSED_CLIENT_HEARTBEATS = 5;
+
+    /** Default IP finder clean frequency in milliseconds (value is <tt>60,000ms</tt>). */
+    public static final long DFLT_IP_FINDER_CLEAN_FREQ = 60 * 1000;
+
+    /** Default statistics print frequency in milliseconds (value is <tt>0ms</tt>). */
+    public static final long DFLT_STATS_PRINT_FREQ = 0;
+
+    /** Maximum ack timeout value for receiving message acknowledgement in milliseconds (value is <tt>600,000ms</tt>). */
+    public static final long DFLT_MAX_ACK_TIMEOUT = 10 * 60 * 1000;
+
+    /** Node attribute that is mapped to node's external addresses (value is <tt>disc.tcp.ext-addrs</tt>). */
+    public static final String ATTR_EXT_ADDRS = "disc.tcp.ext-addrs";
+
+    /** Address resolver. */
+    private IgniteAddressResolver addrRslvr;
+
+    /** Local port which node uses. */
+    private int locPort = DFLT_PORT;
+
+    /** Local port range. */
+    private int locPortRange = DFLT_PORT_RANGE;
+
+    /** Statistics print frequency. */
+    @SuppressWarnings({"FieldAccessedSynchronizedAndUnsynchronized", "RedundantFieldInitialization"})
+    private long statsPrintFreq = DFLT_STATS_PRINT_FREQ;
+
+    /** Maximum message acknowledgement timeout. */
+    private long maxAckTimeout = DFLT_MAX_ACK_TIMEOUT;
+
+    /** Join timeout. */
+    @SuppressWarnings("RedundantFieldInitialization")
+    private long joinTimeout = DFLT_JOIN_TIMEOUT;
+
+    /** Max heartbeats count node can miss without initiating status check. */
+    private int maxMissedHbs = DFLT_MAX_MISSED_HEARTBEATS;
+
+    /** Max heartbeats count node can miss without failing client node. */
+    private int maxMissedClientHbs = DFLT_MAX_MISSED_CLIENT_HEARTBEATS;
+
+    /** IP finder clean frequency. */
+    @SuppressWarnings({"FieldAccessedSynchronizedAndUnsynchronized"})
+    private long ipFinderCleanFreq = DFLT_IP_FINDER_CLEAN_FREQ;
+
+    /** Reconnect attempts count. */
+    @SuppressWarnings({"FieldAccessedSynchronizedAndUnsynchronized"})
+    private int reconCnt = DFLT_RECONNECT_CNT;
+
+    /** Grid marshaller. */
+    @IgniteMarshallerResource
+    private IgniteMarshaller gridMarsh;
+
+    /** Nodes ring. */
+    @GridToStringExclude
+    private final TcpDiscoveryNodesRing ring = new TcpDiscoveryNodesRing();
+
+    /** Topology snapshots history. */
+    private final SortedMap<Long, Collection<ClusterNode>> topHist = new TreeMap<>();
+
+    /** Socket readers. */
+    private final Collection<SocketReader> readers = new LinkedList<>();
+
+    /** TCP server for discovery SPI. */
+    private TcpServer tcpSrvr;
+
+    /** Message worker. */
+    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
+    private RingMessageWorker msgWorker;
+
+    /** Client message workers. */
+    private ConcurrentMap<UUID, ClientMessageWorker> clientMsgWorkers = new ConcurrentHashMap8<>();
+
+    /** Metrics sender. */
+    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
+    private HeartbeatsSender hbsSnd;
+
+    /** Status checker. */
+    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
+    private CheckStatusSender chkStatusSnd;
+
+    /** IP finder cleaner. */
+    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
+    private IpFinderCleaner ipFinderCleaner;
+
+    /** Statistics printer thread. */
+    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
+    private StatisticsPrinter statsPrinter;
+
+    /** Failed nodes (but still in topology). */
+    private Collection<TcpDiscoveryNode> failedNodes = new HashSet<>();
+
+    /** Leaving nodes (but still in topology). */
+    private Collection<TcpDiscoveryNode> leavingNodes = new HashSet<>();
+
+    /** If non-shared IP finder is used this flag shows whether IP finder contains local address. */
+    private boolean ipFinderHasLocAddr;
+
+    /** Addresses that do not respond during join requests send (for resolving concurrent start). */
+    private final Collection<SocketAddress> noResAddrs = new GridConcurrentHashSet<>();
+
+    /** Addresses that incoming join requests send were send from (for resolving concurrent start). */
+    private final Collection<SocketAddress> fromAddrs = new GridConcurrentHashSet<>();
+
+    /** Response on join request from coordinator (in case of duplicate ID or auth failure). */
+    private final GridTuple<TcpDiscoveryAbstractMessage> joinRes = F.t1();
+
+    /** Context initialization latch. */
+    @GridToStringExclude
+    private final CountDownLatch ctxInitLatch = new CountDownLatch(1);
+
+    /** Node authenticator. */
+    private DiscoverySpiNodeAuthenticator nodeAuth;
+
+    /** Mutex. */
+    private final Object mux = new Object();
+
+    /** Map with proceeding ping requests. */
+    private final ConcurrentMap<InetSocketAddress, IgniteFuture<IgniteBiTuple<UUID, Boolean>>> pingMap =
+        new ConcurrentHashMap8<>();
+
+    /** Debug mode. */
+    private boolean debugMode;
+
+    /** Debug messages history. */
+    private int debugMsgHist = 512;
+
+    /** Received messages. */
+    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
+    private ConcurrentLinkedDeque<String> debugLog;
+
+    /**
+     * Sets address resolver.
+     *
+     * @param addrRslvr Address resolver.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    @IgniteAddressResolverResource
+    public void setAddressResolver(IgniteAddressResolver addrRslvr) {
+        // Injection should not override value already set by Spring or user.
+        if (this.addrRslvr == null)
+            this.addrRslvr = addrRslvr;
+    }
+
+    /**
+     * Gets address resolver.
+     *
+     * @return Address resolver.
+     */
+    public IgniteAddressResolver getAddressResolver() {
+        return addrRslvr;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getReconnectCount() {
+        return reconCnt;
+    }
+
+    /**
+     * Number of times node tries to (re)establish connection to another node.
+     * <p>
+     * Note that SPI implementation will increase {@link #ackTimeout} by factor 2
+     * on every retry.
+     * <p>
+     * If not specified, default is {@link #DFLT_RECONNECT_CNT}.
+     *
+     * @param reconCnt Number of retries during message sending.
+     * @see #setAckTimeout(long)
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setReconnectCount(int reconCnt) {
+        this.reconCnt = reconCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getMaxAckTimeout() {
+        return maxAckTimeout;
+    }
+
+    /**
+     * Sets maximum timeout for receiving acknowledgement for sent message.
+     * <p>
+     * If acknowledgement is not received within this timeout, sending is considered as failed
+     * and SPI tries to repeat message sending. Every time SPI retries messing sending, ack
+     * timeout will be increased. If no acknowledgement is received and {@code maxAckTimeout}
+     * is reached, then the process of message sending is considered as failed.
+     * <p>
+     * If not specified, default is {@link #DFLT_MAX_ACK_TIMEOUT}.
+     *
+     * @param maxAckTimeout Maximum acknowledgement timeout.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setMaxAckTimeout(long maxAckTimeout) {
+        this.maxAckTimeout = maxAckTimeout;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getJoinTimeout() {
+        return joinTimeout;
+    }
+
+    /**
+     * Sets join timeout.
+     * <p>
+     * If non-shared IP finder is used and node fails to connect to
+     * any address from IP finder, node keeps trying to join within this
+     * timeout. If all addresses are still unresponsive, exception is thrown
+     * and node startup fails.
+     * <p>
+     * If not specified, default is {@link #DFLT_JOIN_TIMEOUT}.
+     *
+     * @param joinTimeout Join timeout ({@code 0} means wait forever).
+     *
+     * @see org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setJoinTimeout(long joinTimeout) {
+        this.joinTimeout = joinTimeout;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getLocalPort() {
+        TcpDiscoveryNode locNode0 = locNode;
+
+        return locNode0 != null ? locNode0.discoveryPort() : 0;
+    }
+
+    /**
+     * Sets local port to listen to.
+     * <p>
+     * If not specified, default is {@link #DFLT_PORT}.
+     *
+     * @param locPort Local port to bind.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setLocalPort(int locPort) {
+        this.locPort = locPort;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getLocalPortRange() {
+        return locPortRange;
+    }
+
+    /**
+     * Range for local ports. Local node will try to bind on first available port
+     * starting from {@link #getLocalPort()} up until
+     * <tt>{@link #getLocalPort()} {@code + locPortRange}</tt>.
+     * <p>
+     * If not specified, default is {@link #DFLT_PORT_RANGE}.
+     *
+     * @param locPortRange Local port range to bind.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setLocalPortRange(int locPortRange) {
+        this.locPortRange = locPortRange;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getMaxMissedHeartbeats() {
+        return maxMissedHbs;
+    }
+
+    /**
+     * Sets max heartbeats count node can miss without initiating status check.
+     * <p>
+     * If not provided, default value is {@link #DFLT_MAX_MISSED_HEARTBEATS}.
+     *
+     * @param maxMissedHbs Max missed heartbeats.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setMaxMissedHeartbeats(int maxMissedHbs) {
+        this.maxMissedHbs = maxMissedHbs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getMaxMissedClientHeartbeats() {
+        return maxMissedClientHbs;
+    }
+
+    /**
+     * Sets max heartbeats count node can miss without failing client node.
+     * <p>
+     * If not provided, default value is {@link #DFLT_MAX_MISSED_CLIENT_HEARTBEATS}.
+     *
+     * @param maxMissedClientHbs Max missed client heartbeats.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setMaxMissedClientHeartbeats(int maxMissedClientHbs) {
+        this.maxMissedClientHbs = maxMissedClientHbs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getStatisticsPrintFrequency() {
+        return statsPrintFreq;
+    }
+
+    /**
+     * Sets statistics print frequency.
+     * <p>
+     * If not set default value is {@link #DFLT_STATS_PRINT_FREQ}.
+     * 0 indicates that no print is required. If value is greater than 0 and log is
+     * not quiet then statistics are printed out with INFO level.
+     * <p>
+     * This may be very helpful for tracing topology problems.
+     *
+     * @param statsPrintFreq Statistics print frequency in milliseconds.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setStatisticsPrintFrequency(long statsPrintFreq) {
+        this.statsPrintFreq = statsPrintFreq;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getIpFinderCleanFrequency() {
+        return ipFinderCleanFreq;
+    }
+
+    /**
+     * Sets IP finder clean frequency in milliseconds.
+     * <p>
+     * If not provided, default value is {@link #DFLT_IP_FINDER_CLEAN_FREQ}
+     *
+     * @param ipFinderCleanFreq IP finder clean frequency.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setIpFinderCleanFrequency(long ipFinderCleanFreq) {
+        this.ipFinderCleanFreq = ipFinderCleanFreq;
+    }
+
+    /**
+     * This method is intended for troubleshooting purposes only.
+     *
+     * @param debugMode {code True} to start SPI in debug mode.
+     */
+    public void setDebugMode(boolean debugMode) {
+        this.debugMode = debugMode;
+    }
+
+    /**
+     * This method is intended for troubleshooting purposes only.
+     *
+     * @param debugMsgHist Message history log size.
+     */
+    public void setDebugMessageHistory(int debugMsgHist) {
+        this.debugMsgHist = debugMsgHist;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String getSpiState() {
+        synchronized (mux) {
+            return spiState.name();
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getSocketTimeout() {
+        return sockTimeout;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getAckTimeout() {
+        return ackTimeout;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNetworkTimeout() {
+        return netTimeout;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getThreadPriority() {
+        return threadPri;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getHeartbeatFrequency() {
+        return hbFreq;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String getIpFinderFormatted() {
+        return ipFinder.toString();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getMessageWorkerQueueSize() {
+        return msgWorker.queueSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNodesJoined() {
+        return stats.joinedNodesCount();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNodesLeft() {
+        return stats.leftNodesCount();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNodesFailed() {
+        return stats.failedNodesCount();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getPendingMessagesRegistered() {
+        return stats.pendingMessagesRegistered();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getPendingMessagesDiscarded() {
+        return stats.pendingMessagesDiscarded();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getAvgMessageProcessingTime() {
+        return stats.avgMessageProcessingTime();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getMaxMessageProcessingTime() {
+        return stats.maxMessageProcessingTime();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalReceivedMessages() {
+        return stats.totalReceivedMessages();
+    }
+
+    /** {@inheritDoc} */
+    @Override public Map<String, Integer> getReceivedMessages() {
+        return stats.receivedMessages();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalProcessedMessages() {
+        return stats.totalProcessedMessages();
+    }
+
+    /** {@inheritDoc} */
+    @Override public Map<String, Integer> getProcessedMessages() {
+        return stats.processedMessages();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getCoordinatorSinceTimestamp() {
+        return stats.coordinatorSinceTimestamp();
+    }
+
+    /** {@inheritDoc} */
+    @Nullable @Override public UUID getCoordinator() {
+        TcpDiscoveryNode crd = resolveCoordinator();
+
+        return crd != null ? crd.id() : null;
+    }
+
+    /** {@inheritDoc} */
+    @Nullable @Override public ClusterNode getNode(UUID nodeId) {
+        assert nodeId != null;
+
+        UUID locNodeId0 = locNodeId;
+
+        if (locNodeId0 != null && locNodeId0.equals(nodeId))
+            // Return local node directly.
+            return locNode;
+
+        TcpDiscoveryNode node = ring.node(nodeId);
+
+        if (node != null && !node.visible())
+            return null;
+
+        return node;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<ClusterNode> getRemoteNodes() {
+        return F.<TcpDiscoveryNode, ClusterNode>upcast(ring.visibleRemoteNodes());
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<Object> injectables() {
+        Collection<Object> res = new LinkedList<>();
+
+        if (ipFinder != null)
+            res.add(ipFinder);
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(String gridName) throws IgniteSpiException {
+        spiStart0(false);
+    }
+
+    /**
+     * Starts or restarts SPI after stop (to reconnect).
+     *
+     * @param restart {@code True} if SPI is restarted after stop.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    private void spiStart0(boolean restart) throws IgniteSpiException {
+        if (!restart)
+            // It is initial start.
+            onSpiStart();
+
+        synchronized (mux) {
+            spiState = DISCONNECTED;
+        }
+
+        if (debugMode) {
+            if (!log.isInfoEnabled())
+                throw new IgniteSpiException("Info log level should be enabled for TCP discovery to work " +
+                    "in debug mode.");
+
+            debugLog = new ConcurrentLinkedDeque<>();
+
+            U.quietAndWarn(log, "TCP discovery SPI is configured in debug mode.");
+        }
+
+        // Clear addresses collections.
+        fromAddrs.clear();
+        noResAddrs.clear();
+
+        sockTimeoutWorker = new SocketTimeoutWorker();
+        sockTimeoutWorker.start();
+
+        msgWorker = new RingMessageWorker();
+        msgWorker.start();
+
+        tcpSrvr = new TcpServer();
+
+        // Init local node.
+        IgniteBiTuple<Collection<String>, Collection<String>> addrs;
+
+        try {
+            addrs = U.resolveLocalAddresses(locHost);
+        }
+        catch (IOException | GridException e) {
+            throw new IgniteSpiException("Failed to resolve local host to set of external addresses: " + locHost, e);
+        }
+
+        locNode = new TcpDiscoveryNode(
+            locNodeId,
+            addrs.get1(),
+            addrs.get2(),
+            tcpSrvr.port,
+            metricsProvider,
+            locNodeVer);
+
+        try {
+            Collection<InetSocketAddress> extAddrs = addrRslvr == null ? null :
+                U.resolveAddresses(addrRslvr, F.flat(Arrays.asList(addrs.get1(), addrs.get2())),
+                    locNode.discoveryPort());
+
+            if (extAddrs != null)
+                locNodeAttrs.put(createSpiAttributeName(ATTR_EXT_ADDRS), extAddrs);
+        }
+        catch (GridException e) {
+            throw new IgniteSpiException("Failed to resolve local host to addresses: " + locHost, e);
+        }
+
+        locNode.setAttributes(locNodeAttrs);
+
+        locNode.local(true);
+
+        locNodeAddrs = getNodeAddresses(locNode);
+
+        if (log.isDebugEnabled())
+            log.debug("Local node initialized: " + locNode);
+
+        // Start TCP server thread after local node is initialized.
+        tcpSrvr.start();
+
+        ring.localNode(locNode);
+
+        if (ipFinder.isShared())
+            registerLocalNodeAddress();
+        else {
+            if (F.isEmpty(ipFinder.getRegisteredAddresses()))
+                throw new IgniteSpiException("Non-shared IP finder must have IP addresses specified in " +
+                    "GridTcpDiscoveryIpFinder.getRegisteredAddresses() configuration property " +
+                    "(specify list of IP addresses in configuration).");
+
+            ipFinderHasLocAddr = ipFinderHasLocalAddress();
+        }
+
+        if (statsPrintFreq > 0 && log.isInfoEnabled()) {
+            statsPrinter = new StatisticsPrinter();
+            statsPrinter.start();
+        }
+
+        stats.onJoinStarted();
+
+        joinTopology();
+
+        stats.onJoinFinished();
+
+        hbsSnd = new HeartbeatsSender();
+        hbsSnd.start();
+
+        chkStatusSnd = new CheckStatusSender();
+        chkStatusSnd.start();
+
+        if (ipFinder.isShared()) {
+            ipFinderCleaner = new IpFinderCleaner();
+            ipFinderCleaner.start();
+        }
+
+        if (log.isDebugEnabled() && !restart)
+            log.debug(startInfo());
+
+        if (restart)
+            getSpiContext().registerPort(tcpSrvr.port, TCP);
+    }
+
+    /**
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    @SuppressWarnings("BusyWait")
+    private void registerLocalNodeAddress() throws IgniteSpiException {
+        // Make sure address registration succeeded.
+        while (true) {
+            try {
+                ipFinder.initializeLocalAddresses(locNode.socketAddresses());
+
+                // Success.
+                break;
+            }
+            catch (IllegalStateException e) {
+                throw new IgniteSpiException("Failed to register local node address with IP finder: " +
+                    locNode.socketAddresses(), e);
+            }
+            catch (IgniteSpiException e) {
+                LT.error(log, e, "Failed to register local node address in IP finder on start " +
+                    "(retrying every 2000 ms).");
+            }
+
+            try {
+                U.sleep(2000);
+            }
+            catch (GridInterruptedException e) {
+                throw new IgniteSpiException("Thread has been interrupted.", e);
+            }
+        }
+    }
+
+    /**
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    private void onSpiStart() throws IgniteSpiException {
+        startStopwatch();
+
+        assertParameter(ipFinder != null, "ipFinder != null");
+        assertParameter(ipFinderCleanFreq > 0, "ipFinderCleanFreq > 0");
+        assertParameter(locPort > 1023, "localPort > 1023");
+        assertParameter(locPortRange >= 0, "localPortRange >= 0");
+        assertParameter(locPort + locPortRange <= 0xffff, "locPort + locPortRange <= 0xffff");
+        assertParameter(netTimeout > 0, "networkTimeout > 0");
+        assertParameter(sockTimeout > 0, "sockTimeout > 0");
+        assertParameter(ackTimeout > 0, "ackTimeout > 0");
+        assertParameter(maxAckTimeout > ackTimeout, "maxAckTimeout > ackTimeout");
+        assertParameter(reconCnt > 0, "reconnectCnt > 0");
+        assertParameter(hbFreq > 0, "heartbeatFreq > 0");
+        assertParameter(maxMissedHbs > 0, "maxMissedHeartbeats > 0");
+        assertParameter(maxMissedClientHbs > 0, "maxMissedClientHeartbeats > 0");
+        assertParameter(threadPri > 0, "threadPri > 0");
+        assertParameter(statsPrintFreq >= 0, "statsPrintFreq >= 0");
+
+        try {
+            locHost = U.resolveLocalHost(locAddr);
+        }
+        catch (IOException e) {
+            throw new IgniteSpiException("Unknown local address: " + locAddr, e);
+        }
+
+        if (log.isDebugEnabled()) {
+            log.debug(configInfo("localHost", locHost.getHostAddress()));
+            log.debug(configInfo("localPort", locPort));
+            log.debug(configInfo("localPortRange", locPortRange));
+            log.debug(configInfo("threadPri", threadPri));
+            log.debug(configInfo("networkTimeout", netTimeout));
+            log.debug(configInfo("sockTimeout", sockTimeout));
+            log.debug(configInfo("ackTimeout", ackTimeout));
+            log.debug(configInfo("maxAckTimeout", maxAckTimeout));
+            log.debug(configInfo("reconnectCount", reconCnt));
+            log.debug(configInfo("ipFinder", ipFinder));
+            log.debug(configInfo("ipFinderCleanFreq", ipFinderCleanFreq));
+            log.debug(configInfo("heartbeatFreq", hbFreq));
+            log.debug(configInfo("maxMissedHeartbeats", maxMissedHbs));
+            log.debug(configInfo("statsPrintFreq", statsPrintFreq));
+        }
+
+        // Warn on odd network timeout.
+        if (netTimeout < 3000)
+            U.warn(log, "Network timeout is too low (at least 3000 ms recommended): " + netTimeout);
+
+        // Warn on odd heartbeat frequency.
+        if (hbFreq < 2000)
+            U.warn(log, "Heartbeat frequency is too high (at least 2000 ms recommended): " + hbFreq);
+
+        registerMBean(gridName, this, TcpDiscoverySpiMBean.class);
+
+        if (ipFinder instanceof TcpDiscoveryMulticastIpFinder) {
+            TcpDiscoveryMulticastIpFinder mcastIpFinder = ((TcpDiscoveryMulticastIpFinder)ipFinder);
+
+            if (mcastIpFinder.getLocalAddress() == null)
+                mcastIpFinder.setLocalAddress(locAddr);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException {
+        super.onContextInitialized0(spiCtx);
+
+        ctxInitLatch.countDown();
+
+        spiCtx.registerPort(tcpSrvr.port, TCP);
+    }
+
+    /** {@inheritDoc} */
+    @Override public IgniteSpiContext getSpiContext() {
+        if (ctxInitLatch.getCount() > 0) {
+            if (log.isDebugEnabled())
+                log.debug("Waiting for context initialization.");
+
+            try {
+                U.await(ctxInitLatch);
+
+                if (log.isDebugEnabled())
+                    log.debug("Context has been initialized.");
+            }
+            catch (GridInterruptedException e) {
+                U.warn(log, "Thread has been interrupted while waiting for SPI context initialization.", e);
+            }
+        }
+
+        return super.getSpiContext();
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        spiStop0(false);
+    }
+
+    /**
+     * Stops SPI finally or stops SPI for restart.
+     *
+     * @param disconnect {@code True} if SPI is being disconnected.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    private void spiStop0(boolean disconnect) throws IgniteSpiException {
+        if (ctxInitLatch.getCount() > 0)
+            // Safety.
+            ctxInitLatch.countDown();
+
+        if (log.isDebugEnabled()) {
+            if (disconnect)
+                log.debug("Disconnecting SPI.");
+            else
+                log.debug("Preparing to start local node stop procedure.");
+        }
+
+        if (disconnect) {
+            synchronized (mux) {
+                spiState = DISCONNECTING;
+            }
+        }
+
+        if (msgWorker != null && msgWorker.isAlive() && !disconnect) {
+            // Send node left message only if it is final stop.
+            msgWorker.addMessage(new TcpDiscoveryNodeLeftMessage(locNodeId));
+
+            synchronized (mux) {
+                long threshold = U.currentTimeMillis() + netTimeout;
+
+                long timeout = netTimeout;
+
+                while (spiState != LEFT && timeout > 0) {
+                    try {
+                        mux.wait(timeout);
+
+                        timeout = threshold - U.currentTimeMillis();
+                    }
+                    catch (InterruptedException ignored) {
+                        Thread.currentThread().interrupt();
+
+                        break;
+                    }
+                }
+
+                if (spiState == LEFT) {
+                    if (log.isDebugEnabled())
+                        log.debug("Verification for local node leave has been received from coordinator" +
+                            " (continuing stop procedure).");
+                }
+                else if (log.isInfoEnabled()) {
+                    log.info("No verification for local node leave has been received from coordinator" +
+                        " (will stop node anyway).");
+                }
+            }
+        }
+
+        U.interrupt(tcpSrvr);
+        U.join(tcpSrvr, log);
+
+        Collection<SocketReader> tmp;
+
+        synchronized (mux) {
+            tmp = U.arrayList(readers);
+        }
+
+        U.interrupt(tmp);
+        U.joinThreads(tmp, log);
+
+        U.interrupt(hbsSnd);
+        U.join(hbsSnd, log);
+
+        U.interrupt(chkStatusSnd);
+        U.join(chkStatusSnd, log);
+
+        U.interrupt(ipFinderCleaner);
+        U.join(ipFinderCleaner, log);
+
+        U.interrupt(msgWorker);
+        U.join(msgWorker, log);
+
+        U.interrupt(sockTimeoutWorker);
+        U.join(sockTimeoutWorker, log);
+
+        U.interrupt(statsPrinter);
+        U.join(statsPrinter, log);
+
+        if (ipFinder != null)
+            ipFinder.close();
+
+        Collection<TcpDiscoveryNode> rmts = null;
+
+        if (!disconnect) {
+            // This is final stop.
+            unregisterMBean();
+
+            if (log.isDebugEnabled())
+                log.debug(stopInfo());
+        }
+        else {
+            getSpiContext().deregisterPorts();
+
+            rmts = ring.visibleRemoteNodes();
+        }
+
+        long topVer = ring.topologyVersion();
+
+        ring.clear();
+
+        if (rmts != null && !rmts.isEmpty()) {
+            // This is restart/disconnection and remote nodes are not empty.
+            // We need to fire FAIL event for each.
+            DiscoverySpiListener lsnr = this.lsnr;
+
+            if (lsnr != null) {
+                Collection<ClusterNode> processed = new LinkedList<>();
+
+                for (TcpDiscoveryNode n : rmts) {
+                    assert n.visible();
+
+                    processed.add(n);
+
+                    Collection<ClusterNode> top = F.viewReadOnly(rmts, F.<ClusterNode>identity(), F.notIn(processed));
+
+                    topVer++;
+
+                    Map<Long, Collection<ClusterNode>> hist = updateTopologyHistory(topVer, top);
+
+                    lsnr.onDiscovery(EVT_NODE_FAILED, topVer, n, top, hist);
+                }
+            }
+        }
+
+        printStatistics();
+
+        stats.clear();
+
+        synchronized (mux) {
+            // Clear stored data.
+            leavingNodes.clear();
+            failedNodes.clear();
+
+            spiState = DISCONNECTED;
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void onContextDestroyed0() {
+        super.onContextDestroyed0();
+
+        if (ctxInitLatch.getCount() > 0)
+            // Safety.
+            ctxInitLatch.countDown();
+
+        getSpiContext().deregisterPorts();
+    }
+
+    /**
+     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
+     * @return {@code true} if IP finder contains local address.
+     */
+    private boolean ipFinderHasLocalAddress() throws IgniteSpiException {
+        for (InetSocketAddress locAddr : locNodeAddrs) {
+            for (InetSocketAddress addr : registeredAddresses())
+                try {
+                    int port = addr.getPort();
+
+                    InetSocketAddress resolved = addr.isUnresolved() ?
+                        new InetSocketAddress(InetAddress.getByName(addr.getHostName()), port) :
+                        new InetSocketAddress(addr.getAddress(), port);
+
+                    if (resolved.equals(locAddr))
+                        return true;
+                }
+                catch (UnknownHostException ignored) {
+                    // No-op.
+                }
+        }
+
+        return false;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean pingNode(UUID nodeId) {
+        assert nodeId != null;
+
+        if (nodeId == locNodeId)
+            return true;
+
+        TcpDiscoveryNode node = ring.node(nodeId);
+
+        if (node == null || !node.visible())
+            return false;
+
+        boolean res = pingNode(node);
+
+        if (!res && !node.isClient()) {
+            LT.warn(log, null, "Failed to ping node (status check will be initiated): " + nodeId);
+
+            msgWorker.addMessage(new TcpDiscoveryStatusCheckMessage(locNode, node.id()));
+        }
+
+        return res;
+    }
+
+    /**
+     * Pings the remote node to see if it's alive.
+     *
+     * @param node Node.
+     * @return {@code True} if ping succeeds.
+     */
+    private boolean pingNode(TcpDiscoveryNode node) {
+        assert node != null;
+
+        if (node.id().equals(locNodeId))
+            return true;
+
+        UUID clientNodeId = null;
+
+        if (node.isClient()) {
+            clientNodeId = node.id();
+
+            node = ring.node(node.clientRouterNodeId());
+
+            if (node == null || !node.visible())
+                return false;
+        }
+
+        for (InetSocketAddress addr : getNodeAddresses(node, U.sameMacs(locNode, node))) {
+            try {
+                // ID returned by the node should be the same as ID of the parameter for ping to succeed.
+                IgniteBiTuple<UUID, Boolean> t = pingNode(addr, clientNodeId);
+
+                return node.id().equals(t.get1()) && (clientNodeId == null || t.get2());
+            }
+            catch (GridException e) {
+                if (log.isDebugEnabled())
+                    log.debug("Failed to ping node [node=" + node + ", err=" + e.getMessage() + ']');
+
+                // continue;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Pings the remote node by its address to see if it's alive.
+     *
+     * @param addr Address of the node.
+     * @return ID of the remote node if node alive.
+     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
+     */
+    private IgniteBiTuple<UUID, Boolean> pingNode(InetSocketAddress addr, @Nullable UUID clientNodeId)
+        throws GridException {
+        assert addr != null;
+
+        if (F.contains(locNodeAddrs, addr))
+            return F.t(locNodeId, false);
+
+        GridFutureAdapterEx<IgniteBiTuple<UUID, Boolean>> fut = new GridFutureAdapterEx<>();
+
+        IgniteFuture<IgniteBiTuple<UUID, Boolean>> oldFut = pingMap.putIfAbsent(addr, fut);
+
+        if (oldFut != null)
+            return oldFut.get();
+        else {
+            Collection<Throwable> errs = null;
+
+            try {
+                Socket sock = null;
+
+                for (int i = 0; i < reconCnt; i++) {
+                    try {
+                        if (addr.isUnresolved())
+                            addr = new InetSocketAddress(InetAddress.getByName(addr.getHostName()), addr.getPort());
+
+                        long tstamp = U.currentTimeMillis();
+
+                        sock = openSocket(addr);
+
+                        writeToSocket(sock, new TcpDiscoveryPingRequest(locNodeId, clientNodeId));
+
+                        TcpDiscoveryPingResponse res = readMessage(sock, null, netTimeout);
+
+                        if (locNodeId.equals(res.creatorNodeId())) {
+                            if (log.isDebugEnabled())
+                                log.debug("Ping response from local node: " + res);
+
+                            break;
+                        }
+
+                        stats.onClientSocketInitialized(U.currentTimeMillis() - tstamp);
+
+                        IgniteBiTuple<UUID, Boolean> t = F.t(res.creatorNodeId(), res.clientExists());
+
+                        fut.onDone(t);
+
+                        return t;
+                    }
+                    catch (IOException | GridException e) {
+                        if (errs == null)
+                            errs = new ArrayList<>();
+
+                        errs.add(e);
+                    }
+                    finally {
+                        U.closeQuiet(sock);
+                    }
+                }
+            }
+            catch (Throwable t) {
+                fut.onDone(t);
+
+                throw U.cast(t);
+            }
+            finally {
+                if (!fut.isDone())
+                    fut.onDone(U.exceptionWithSuppressed("Failed to ping node by address: " + addr, errs));
+
+                boolean b = pingMap.remove(addr, fut);
+
+                assert b;
+            }
+
+            return fut.get();
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void disconnect() throws IgniteSpiException {
+        spiStop0(true);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void setAuthenticator(DiscoverySpiNodeAuthenticator nodeAuth) {
+        this.nodeAuth = nodeAuth;
+    }
+
+    /**
+     * Tries to join this node to topology.
+     *
+     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
+     */
+    private void joinTopology() throws IgniteSpiException {
+        synchronized (mux) {
+            assert spiState == CONNECTING || spiState == DISCONNECTED;
+
+            spiState = CONNECTING;
+        }
+
+        GridSecurityCredentials locCred = (GridSecurityCredentials)locNode.getAttributes()
+            .get(GridNodeAttributes.ATTR_SECURITY_CREDENTIALS);
+
+        // Marshal credentials for backward compatibility and security.
+        marshalCredentials(locNode);
+
+        while (true) {
+            if (!sendJoinRequestMessage()) {
+                if (log.isDebugEnabled())
+                    log.debug("Join request message has not been sent (local node is the first in the topology).");
+
+                // Authenticate local node.
+                try {
+                    GridSecurityContext subj = nodeAuth.authenticateNode(locNode, locCred);
+
+                    if (subj == null)
+                        throw new IgniteSpiException("Authentication failed for local node: " + locNode.id());
+
+                    Map<String, Object> attrs = new HashMap<>(locNode.attributes());
+
+                    attrs.put(GridNodeAttributes.ATTR_SECURITY_SUBJECT, gridMarsh.marshal(subj));
+                    attrs.remove(GridNodeAttributes.ATTR_SECURITY_CREDENTIALS);
+
+                    locNode.setAttributes(attrs);
+                }
+                catch (GridException e) {
+                    throw new IgniteSpiException("Failed to authenticate local node (will shutdown local node).", e);
+                }
+
+                locNode.order(1);
+                locNode.internalOrder(1);
+
+                gridStartTime = U.currentTimeMillis();
+
+                locNode.visible(true);
+
+                ring.clear();
+
+                ring.topologyVersion(1);
+
+                synchronized (mux) {
+                    topHist.clear();
+
+                    spiState = CONNECTED;
+
+                    mux.notifyAll();
+                }
+
+                notifyDiscovery(EVT_NODE_JOINED, 1, locNode);
+
+                break;
+            }
+
+            if (log.isDebugEnabled())
+                log.debug("Join request message has been sent (waiting for coordinator response).");
+
+            synchronized (mux) {
+                long threshold = U.currentTimeMillis() + netTimeout;
+
+                long timeout = netTimeout;
+
+                while (spiState == CONNECTING && timeout > 0) {
+                    try {
+                        mux.wait(timeout);
+
+                        timeout = threshold - U.currentTimeMillis();
+                    }
+                    catch (InterruptedException ignored) {
+                        Thread.currentThread().interrupt();
+
+                        throw new IgniteSpiException("Thread has been interrupted.");
+                    }
+                }
+
+                if (spiState == CONNECTED)
+                    break;
+                else if (spiState == DUPLICATE_ID)
+                    throw duplicateIdError((TcpDiscoveryDuplicateIdMessage)joinRes.get());
+                else if (spiState == AUTH_FAILED)
+                    throw authenticationFailedError((TcpDiscoveryAuthFailedMessage)joinRes.get());
+                else if (spiState == CHECK_FAILED)
+                    throw checkFailedError((TcpDiscoveryCheckFailedMessage)joinRes.get());
+                else if (spiState == LOOPBACK_PROBLEM) {
+                    TcpDiscoveryLoopbackProblemMessage msg = (TcpDiscoveryLoopbackProblemMessage)joinRes.get();
+
+                    boolean locHostLoopback = locHost.isLoopbackAddress();
+
+                    String firstNode = locHostLoopback ? "local" : "remote";
+
+                    String secondNode = locHostLoopback ? "remote" : "local";
+
+                    throw new IgniteSpiException("Failed to add node to topology because " + firstNode +
+                        " node is configured to use loopback address, but " + secondNode + " node is not " +
+                        "(consider changing 'localAddress' configuration parameter) " +
+                        "[locNodeAddrs=" + U.addressesAsString(locNode) + ", rmtNodeAddrs=" +
+                        U.addressesAsString(msg.addresses(), msg.hostNames()) + ']');
+                }
+                else
+                    LT.warn(log, null, "Node has not been connected to topology and will repeat join process. " +
+                        "Check remote nodes logs for possible error messages. " +
+                        "Note that large topology may require significant time to start. " +
+                        "Increase 'GridTcpDiscoverySpi.networkTimeout' configuration property " +
+                        "if getting this message on the starting nodes [networkTimeout=" + netTimeout + ']');
+            }
+        }
+
+        assert locNode.order() != 0;
+        assert locNode.internalOrder() != 0;
+
+        if (log.isDebugEnabled())
+            log.debug("Discovery SPI has been connected to topology with order: " + locNode.internalOrder());
+    }
+
+    /**
+     * @param msg Error message.
+     * @return Remote grid version parsed from error message.
+     * @deprecated This method was created for preserving backward compatibility. During major version update
+     *      parsing of error message should be replaced with new {@link org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCheckFailedMessage}
+     *      which contains all necessary information.
+     */
+    @Deprecated
+    @Nullable private String parseRemoteVersion(String msg) {
+        msg = msg.replaceAll("\\s", "");
+
+        final String verPrefix = "rmtBuildVer=";
+
+        int startIdx = msg.indexOf(verPrefix);
+        int endIdx = msg.indexOf(',', startIdx);
+
+        if (endIdx < 0)
+            endIdx = msg.indexOf(']', startIdx);
+
+        if (startIdx < 0 || endIdx < 0)
+            return null;
+
+        return msg.substring(startIdx + verPrefix.length() - 1, endIdx);
+    }
+
+    /**
+     * Tries to send join request message to a random node presenting in topology.
+     * Address is provided by {@link org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} and message is
+     * sent to first node connection succeeded to.
+     *
+     * @return {@code true} if send succeeded.
+     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
+     */
+    @SuppressWarnings({"BusyWait"})
+    private boolean sendJoinRequestMessage() throws IgniteSpiException {
+        TcpDiscoveryAbstractMessage joinReq = new TcpDiscoveryJoinRequestMessage(locNode,
+            exchange.collect(locNodeId));
+
+        // Time when it has been detected, that addresses from IP finder do not respond.
+        long noResStart = 0;
+
+        while (true) {
+            Collection<InetSocketAddress> addrs = resolvedAddresses();
+
+            if (F.isEmpty(addrs))
+                return false;
+
+            boolean retry = false;
+            GridException errs = null;
+
+            for (InetSocketAddress addr : addrs) {
+                try {
+                    Integer res = sendMessageDirectly(joinReq, addr);
+
+                    assert res != null;
+
+                    noResAddrs.remove(addr);
+
+                    // Address is responsive, reset period start.
+                    noResStart = 0;
+
+                    switch (res) {
+                        case RES_WAIT:
+                            // Concurrent startup, try sending join request again or wait if no success.
+                            retry = true;
+
+                            break;
+                        case RES_OK:
+                            if (log.isDebugEnabled())
+                                log.debug("Join request message has been sent to address [addr=" + addr +
+                                    ", req=" + joinReq + ']');
+
+                            // Join request sending succeeded, wait for response from topology.
+                            return true;
+
+                        default:
+                            // Concurrent startup, try next node.
+                            if (res == RES_CONTINUE_JOIN) {
+                                if (!fromAddrs.contains(addr))
+                                    retry = true;
+                            }
+                            else {
+                                if (log.isDebugEnabled())
+                                    log.debug("Unexpected response to join request: " + res);
+
+                                retry = true;
+                            }
+
+                            break;
+                    }
+                }
+                catch (IgniteSpiException e) {
+                    if (errs == null)
+                        errs = new GridException("Multiple connection attempts failed.");
+
+                    errs.addSuppressed(e);
+
+                    if (log.isDebugEnabled()) {
+                        IOException ioe = X.cause(e, IOException.class);
+
+                        log.debug("Failed to send join request message [addr=" + addr +
+                            ", msg=" + ioe != null ? ioe.getMessage() : e.getMessage() + ']');
+                    }
+
+                    noResAddrs.add(addr);
+                }
+            }
+
+            if (retry) {
+                if (log.isDebugEnabled())
+                    log.debug("Concurrent discovery SPI start has been detected (local node should wait).");
+
+                try {
+                    U.sleep(2000);
+                }
+                catch (GridInterruptedException e) {
+                    throw new IgniteSpiException("Thread has been interrupted.", e);
+                }
+            }
+            else if (!ipFinder.isShared() && !ipFinderHasLocAddr) {
+                if (errs != null && X.hasCause(errs, ConnectException.class))
+                    LT.warn(log, null, "Failed to connect to any address from IP finder " +
+                        "(make sure IP finder addresses are correct and firewalls are disabled on all host machines): " +
+                        addrs);
+
+                if (joinTimeout > 0) {
+                    if (noResStart == 0)
+                        noResStart = U.currentTimeMillis();
+                    else if (U.currentTimeMillis() - noResStart > joinTimeout)
+                        throw new IgniteSpiException(
+                            "Failed to connect to any address from IP finder within join timeout " +
+                                "(make sure IP finder addresses are correct, and operating system firewalls are disabled " +
+                                "on all host machines, or consider increasing 'joinTimeout' configuration property): " +
+                                addrs, errs);
+                }
+
+                try {
+                    U.sleep(2000);
+                }
+                catch (GridInterruptedException e) {
+                    throw new IgniteSpiException("Thread has been interrupted.", e);
+                }
+            }
+            else
+                break;
+        }
+
+        return false;
+    }
+
+    /**
+     * Establishes connection to an address, sends message and returns the response (if any).
+     *
+     * @param msg Message to send.
+     * @param addr Address to send message to.
+     * @return Response read from the recipient or {@code null} if no response is supposed.
+     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
+     */
+    @Nullable private Integer sendMessageDirectly(TcpDiscoveryAbstractMessage msg, InetSocketAddress addr)
+        throws IgniteSpiException {
+        assert msg != null;
+        assert addr != null;
+
+        Collection<Throwable> errs = null;
+
+        Socket sock = null;
+
+        long ackTimeout0 = ackTimeout;
+
+        int connectAttempts = 1;
+
+        boolean joinReqSent = false;
+
+        for (int i = 0; i < reconCnt; i++) {
+            // Need to set to false on each new iteration,
+            // since remote node may leave in the middle of the first iteration.
+            joinReqSent = false;
+
+            boolean openSock = false;
+
+            try {
+                long tstamp = U.currentTimeMillis();
+
+                sock = openSocket(addr);
+
+                openSock = true;
+
+                // Handshake.
+                writeToSocket(sock, new TcpDiscoveryHandshakeRequest(locNodeId));
+
+                TcpDiscoveryHandshakeResponse res = readMessage(sock, null, ackTimeout0);
+
+                if (locNodeId.equals(res.creatorNodeId())) {
+                    if (log.isDebugEnabled())
+                        log.debug("Handshake response from local node: " + res);
+
+                    break;
+                }
+
+                stats.onClientSocketInitialized(U.currentTimeMillis() - tstamp);
+
+                // Send message.
+                tstamp = U.currentTimeMillis();
+
+                writeToSocket(sock, msg);
+
+                stats.onMessageSent(msg, U.currentTimeMillis() - tstamp);
+
+                if (debugMode)
+                    debugLog("Message has been sent directly to address [msg=" + msg + ", addr=" + addr +
+                        ", rmtNodeId=" + res.creatorNodeId() + ']');
+
+                if (log.isDebugEnabled())
+                    log.debug("Message has been sent directly to address [msg=" + msg + ", addr=" + addr +
+                        ", rmtNodeId=" + res.creatorNodeId() + ']');
+
+                // Connection has been established, but
+                // join request may not be unmarshalled on remote host.
+                // E.g. due to class not found issue.
+                joinReqSent = msg instanceof TcpDiscoveryJoinRequestMessage;
+
+                return readReceipt(sock, ackTimeout0);
+            }
+            catch (ClassCastException e) {
+                // This issue is rarely reproducible on AmazonEC2, but never
+                // on dedicated machines.
+                if (log.isDebugEnabled())
+                    U.error(log, "Class cast exception on direct send: " + addr, e);
+
+                if (errs == null)
+                    errs = new ArrayList<>();
+
+                errs.add(e);
+            }
+            catch (IOException | GridException e) {
+                if (log.isDebugEnabled())
+                    log.error("Exception on direct send: " + e.getMessage(), e);
+
+                if (errs == null)
+                    errs = new ArrayList<>();
+
+                errs.add(e);
+
+                if (!openSock) {
+                    // Reconnect for the second time, if connection is not established.
+                    if (connectAttempts < 2) {
+                        connectAttempts++;
+
+                        continue;
+                    }
+
+                    break; // Don't retry if we can not establish connection.
+                }
+
+                if (e instanceof SocketTimeoutException || X.hasCause(e, SocketTimeoutException.class)) {
+                    ackTimeout0 *= 2;
+
+                    if (!checkAckTimeout(ackTimeout0))
+                        break;
+                }
+            }
+            finally {
+                U.closeQuiet(sock);
+            }
+        }
+
+        if (joinReqSent) {
+            if (log.isDebugEnabled())
+                log.debug("Join request has been sent, but receipt has not been read (returning RES_WAIT).");
+
+            // Topology will not include this node,
+            // however, warning on timed out join will be output.
+            return RES_OK;
+        }
+
+        throw new IgniteSpiException(
+            "Failed to send message to address [addr=" + addr + ", msg=" + msg + ']',
+            U.exceptionWithSuppressed("Failed to send message to address " +
+                "[addr=" + addr + ", msg=" + msg + ']', errs));
+    }
+
+    /**
+     * Marshalls credentials with discovery SPI marshaller (will replace attribute value).
+     *
+     * @param node Node to marshall credentials for.
+     * @throws org.apache.ignite.spi.IgniteSpiException If marshalling failed.
+     */
+    private void marshalCredentials(TcpDiscoveryNode node) throws IgniteSpiException {
+        try {
+            // Use security-unsafe getter.
+            Map<String, Object> attrs = new HashMap<>(node.getAttributes());
+
+            attrs.put(GridNodeAttributes.ATTR_SECURITY_CREDENTIALS,
+                marsh.marshal(attrs.get(GridNodeAttributes.ATTR_SECURITY_CREDENTIALS)));
+
+            node.setAttributes(attrs);
+        }
+        catch (GridException e) {
+            throw new IgniteSpiException("Failed to marshal node security credentials: " + node.id(), e);
+        }
+    }
+
+    /**
+     * Unmarshalls credentials with discovery SPI marshaller (will not replace attribute value).
+     *
+     * @param node Node to unmarshall credentials for.
+     * @return Security credentials.
+     * @throws org.apache.ignite.spi.IgniteSpiException If unmarshal fails.
+     */
+    private GridSecurityCredentials unmarshalCredentials(TcpDiscoveryNode node) throws IgniteSpiException {
+        try {
+            byte[] credBytes = (byte[])node.getAttributes().get(GridNodeAttributes.ATTR_SECURITY_CREDENTIALS);
+
+            if (credBytes == null)
+                return null;
+
+            return marsh.unmarshal(credBytes, null);
+        }
+        catch (GridException e) {
+            throw new IgniteSpiException("Failed to unmarshal node security credentials: " + node.id(), e);
+        }
+    }
+
+    /**
+     * @param ackTimeout Acknowledgement timeout.
+     * @return {@code True} if acknowledgement timeout is less or equal to
+     * maximum acknowledgement timeout, {@code false} otherwise.
+     */
+    private boolean checkAckTimeout(long ackTimeout) {
+        if (ackTimeout > maxAckTimeout) {
+            LT.warn(log, null, "Acknowledgement timeout is greater than maximum acknowledgement timeout " +
+                "(consider increasing 'maxAckTimeout' configuration property) " +
+                "[ackTimeout=" + ackTimeout + ", maxAckTimeout=" + maxAckTimeout + ']');
+
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Notify external listener on discovery event.
+     *
+     * @param type Discovery event type. See {@link org.apache.ignite.events.IgniteDiscoveryEvent} for more details.
+     * @param topVer Topology version.
+     * @param node Remote node this event is connected with.
+     */
+    private void notifyDiscovery(int type, long topVer, TcpDiscoveryNode node) {
+        assert type > 0;
+        assert node != null;
+
+        DiscoverySpiListener lsnr = this.lsnr;
+
+        TcpDiscoverySpiState spiState = spiStateCopy();
+
+        if (lsnr != null && node.visible() && (spiState == CONNECTED || spiState == DISCONNECTING)) {
+            if (log.isDebugEnabled())
+                log.debug("Discovery notification [node=" + node + ", spiState=" + spiState +
+                    ", type=" + U.gridEventName(type) + ", topVer=" + topVer + ']');
+
+            Collection<ClusterNode> top = F.<TcpDiscoveryNode, ClusterNode>upcast(ring.visibleNodes());
+
+            Map<Long, Collection<ClusterNode>> hist = updateTopologyHistory(topVer, top);
+
+            lsnr.onDiscovery(type, topVer, node, top, hist);
+        }
+        else if (log.isDebugEnabled())
+            log.debug("Skipped discovery notification [node=" + node + ", spiState=" + spiState +
+                ", type=" + U.gridEventName(type) + ", topVer=" + topVer + ']');
+    }
+
+    /**
+     * Update topology history with new topology snapshots.
+     *
+     * @param topVer Topology version.
+     * @param top Topology snapshot.
+     * @return Copy of updated topology history.
+     */
+    @Nullable private Map<Long, Collection<ClusterNode>> updateTopologyHistory(long topVer, Collection<ClusterNode> top) {
+        synchronized (mux) {
+            if (topHist.containsKey(topVer))
+                return null;
+
+            topHist.put(topVer, top);
+
+            while (topHist.size() > topHistSize)
+                topHist.remove(topHist.firstKey());
+
+            if (log.isDebugEnabled())
+                log.debug("Added topology snapshot to history, topVer=" + topVer + ", historySize=" + topHist.size());
+
+            return new TreeMap<>(topHist);
+        }
+    }
+
+    /**
+     * @param node Node.
+     * @return {@link LinkedHashSet} of internal and external addresses of provided node.
+     *      Internal addresses placed before external addresses.
+     */
+    @SuppressWarnings("TypeMayBeWeakened")
+    private LinkedHashSet<InetSocketAddress> getNodeAddresses(TcpDiscoveryNode node) {
+        LinkedHashSet<InetSocketAddress> res = new LinkedHashSet<>(node.socketAddresses());
+
+        Collection<InetSocketAddress> extAddrs = node.attribute(createSpiAttributeName(ATTR_EXT_ADDRS));
+
+        if (extAddrs != null)
+            res.addAll(extAddrs);
+
+        return res;
+    }
+
+    /**
+     * @param node Node.
+     * @param sameHost Same host flag.
+     * @return {@link LinkedHashSet} of internal and external addresses of provided node.
+     *      Internal addresses placed before external addresses.
+     *      Internal addresses will be sorted with {@code inetAddressesComparator(sameHost)}.
+     */
+    @SuppressWarnings("TypeMayBeWeakened")
+    private LinkedHashSet<InetSocketAddress> getNodeAddresses(TcpDiscoveryNode node, boolean sameHost) {
+        List<InetSocketAddress> addrs = U.arrayList(node.socketAddresses());
+
+        Collections.sort(addrs, U.inetAddressesComparator(sameHost));
+
+        LinkedHashSet<InetSocketAddress> res = new LinkedHashSet<>(addrs);
+
+        Collection<InetSocketAddress> extAddrs = node.attribute(createSpiAttributeName(ATTR_EXT_ADDRS));
+
+        if (extAddrs != null)
+            res.addAll(extAddrs);
+
+        return res;
+    }
+
+    /**
+     * Checks whether local node is coordinator. Nodes that are leaving or failed
+     * (but are still in topology) are removed from search.
+     *
+     * @return {@code true} if local node is coordinator.
+     */
+    private boolean isLocalNodeCoordinator() {
+        synchronized (mux) {
+            boolean crd = spiState == CONNECTED && locNode.equals(resolveCoordinator());
+
+            if (crd)
+                stats.onBecomingCoordinator();
+
+            return crd;
+        }
+    }
+
+    /**
+     * @return Spi state copy.
+     */
+    private TcpDiscoverySpiState spiStateCopy() {
+        TcpDiscoverySpiState state;
+
+        synchronized (mux) {
+            state = spiState;
+        }
+
+        return state;
+    }
+
+    /**
+     * Resolves coordinator. Nodes that are leaving or failed (but are still in
+     * topology) are removed from search.
+     *
+     * @return Coordinator node or {@code null} if there are no coordinator
+     * (i.e. local node is the last one and is currently stopping).
+     */
+    @Nullable private TcpDiscoveryNode resolveCoordinator() {
+        return resolveCoordinator(null);
+    }
+
+    /**
+     * Resolves coordinator. Nodes that are leaving or failed (but are still in
+     * topology) are removed from search as well as provided filter.
+     *
+     * @param filter Nodes to exclude when resolving coordinator (optional).
+     * @return Coordinator node or {@code null} if there are no coordinator
+     * (i.e. local node is the last one and is currently stopping).
+     */
+    @Nullable private TcpDiscoveryNode resolveCoordinator(
+        @Nullable Collection<TcpDiscoveryNode> filter) {
+        synchronized (mux) {
+            Collection<TcpDiscoveryNode> excluded = F.concat(false, failedNodes, leavingNodes);
+
+            if (!F.isEmpty(filter))
+                excluded = F.concat(false, excluded, filter);
+
+            return ring.coordinator(excluded);
+        }
+    }
+
+    /**
+     * Prints SPI statistics.
+     */
+    private void printStatistics() {
+        if (log.isInfoEnabled() && statsPrintFreq > 0) {
+            int failedNodesSize;
+            int leavingNodesSize;
+
+            synchronized (mux) {
+                failedNodesSize = failedNodes.size();
+                leavingNodesSize = leavingNodes.size();
+            }
+
+            Runtime runtime = Runtime.getRuntime();
+
+            TcpDiscoveryNode coord = resolveCoordinator();
+
+            log.info("Discovery SPI statistics [statistics=" + stats + ", spiState=" + spiStateCopy() +
+                ", coord=" + coord +
+                ", topSize=" + ring.allNodes().size() +
+                ", leavingNodesSize=" + leavingNodesSize + ", failedNodesSize=" + failedNodesSize +
+                ", msgWorker.queue.size=" + (msgWorker != null ? msgWorker.queueSize() : "N/A") +
+                ", lastUpdate=" + (locNode != null ? U.format(locNode.lastUpdateTime()) : "N/A") +
+                ", heapFree=" + runtime.freeMemory() / (1024 * 1024) +
+                "M, heapTotal=" + runtime.maxMemory() / (1024 * 1024) + "M]");
+        }
+    }
+
+    /**
+     * @param msg Message to prepare.
+     * @param destNodeId Destination node ID.
+     * @param msgs Messages to include.
+     * @param discardMsgId Discarded message ID.
+     */
+    private void prepareNodeAddedMessage(TcpDiscoveryAbstractMessage msg, UUID destNodeId,
+        @Nullable Collection<TcpDiscoveryAbstractMessage> msgs, @Nullable IgniteUuid discardMsgId) {
+        assert destNodeId != null;
+
+        if (msg instanceof TcpDiscoveryNodeAddedMessage) {
+            TcpDiscoveryNodeAddedMessage nodeAddedMsg = (TcpDiscoveryNodeAddedMessage)msg;
+
+            TcpDiscoveryNode node = nodeAddedMsg.node();
+
+            if (node.id().equals(destNodeId)) {
+                Collection<TcpDiscoveryNode> allNodes = ring.allNodes();
+                Collection<TcpDiscoveryNode> topToSend = new ArrayList<>(allNodes.size());
+
+                for (TcpDiscoveryNode n0 : allNodes) {
+                    assert n0.internalOrder() != 0 : n0;
+
+                    // Skip next node and nodes added after next
+                    // in case this message is resent due to failures/leaves.
+                    // There will be separate messages for nodes with greater
+                    // internal order.
+                    if (n0.internalOrder() < nodeAddedMsg.node().internalOrder())
+                        topToSend.add(n0);
+                }
+
+                nodeAddedMsg.topology(topToSend);
+                nodeAddedMsg.messages(msgs, discardMsgId);
+
+                Map<Long, Collection<ClusterNode>> hist;
+
+                synchronized (mux) {
+                    hist = new TreeMap<>(topHist);
+                }
+
+                nodeAddedMsg.topologyHistory(hist);
+            }
+        }
+    }
+
+    /**
+     * @param msg Message to clear.
+     */
+    private void clearNodeAddedMessage(TcpDiscoveryAbstractMessage msg) {
+        if (msg instanceof TcpDiscoveryNodeAddedMessage) {
+            // Nullify topology before registration.
+            TcpDiscoveryNodeAddedMessage nodeAddedMsg = (TcpDiscoveryNodeAddedMessage)msg;
+
+            nodeAddedMsg.topology(null);
+            nodeAddedMsg.topologyHistory(null);
+            nodeAddedMsg.messages(null, null);
+        }
+    }
+
+    /**
+     * <strong>FOR TEST ONLY!!!</strong>
+     * <p>
+     * Simulates this node failure by stopping service threads. So, node will become
+     * unresponsive.
+     * <p>
+     * This method is intended for test purposes only.
+     */
+    void simulateNodeFailure() {
+        U.warn(log, "Simulating node failure: " + locNodeId);
+
+        U.interrupt(tcpSrvr);
+        U.join(tcpSrvr, log);
+
+        U.interrupt(hbsSnd);
+        U.join(hbsSnd, log);
+
+        U.interrupt(chkStatusSnd);
+        U.join(chkStatusSnd, log);
+
+        U.interrupt(ipFinderCleaner);
+        U.join(ipFinderCleaner, log);
+
+        Collection<SocketReader> tmp;
+
+        synchronized (mux) {
+            tmp = U.arrayList(readers);
+        }
+
+        U.interrupt(tmp);
+        U.joinThreads(tmp, log);
+
+        U.interrupt(msgWorker);
+        U.join(msgWorker, log);
+
+        U.interrupt(statsPrinter);
+        U.join(statsPrinter, log);
+    }
+
+    /**
+     * <strong>FOR TEST ONLY!!!</strong>
+     * <p>
+     * Simulates situation when next node is still alive but is bypassed
+     * since it has been excluded from the ring, possibly, due to short time
+     * network problems.
+     * <p>
+     * This method is intended for test purposes only.
+     */
+    void forceNextNodeFailure() {
+        U.warn(log, "Next node will be forcibly failed (if any).");
+
+        TcpDiscoveryNode next;
+
+        synchronized (mux) {
+            next = ring.nextNode(failedNodes);
+        }
+
+        if (next != null)
+            msgWorker.addMessage(new TcpDiscoveryNodeFailedMessage(locNodeId, next.id(), next.internalOrder()));
+    }
+
+    /**
+     * <strong>FOR TEST ONLY!!!</strong>
+     * <p>
+     * This method is intended for test purposes only.
+     *
+     * @param msg Message.
+     */
+    void onBeforeMessageSentAcrossRing(Serializable msg) {
+        // No-op.
+    }
+
+    /**
+     * <strong>FOR TEST ONLY!!!</strong>
+     * <p>
+     * This method is intended for test purposes only.
+     *
+     * @return Nodes ring.
+     */
+    TcpDiscoveryNodesRing ring() {
+        return ring;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void dumpDebugInfo() {
+        dumpDebugInfo(log);
+    }
+
+    /**
+     * @param log Logger.
+     */
+    public void dumpDebugInfo(IgniteLogger log) {
+        if (!debugMode) {
+            U.quietAndWarn(log, "Failed to dump debug info (discovery SPI was not configured " +
+                "in debug mode, consider setting 'debugMode' configuration property to 'true').");
+
+            return;
+        }
+
+        assert log.isInfoEnabled();
+
+        synchronized (mux) {
+            StringBuilder b = new StringBuilder(U.nl());
+
+            b.append(">>>").append(U.nl());
+            b.append(">>>").append("Dumping discovery SPI debug info.").append(U.nl());
+            b.append(">>>").append(U.nl());
+
+            b.append("Local node ID: ").append(locNodeId).append(U.nl()).append(U.nl());
+            b.append("Local node: ").append(locNode).append(U.nl()).append(U.nl());
+            b.append("SPI state: ").append(spiState).append(U.nl()).append(U.nl());
+
+            b.append("Internal threads: ").append(U.nl());
+
+            b.append("    Message worker: ").append(threadStatus(msgWorker)).append(U.nl());
+            b.append("    Check status sender: ").append(threadStatus(chkStatusSnd)).append(U.nl());
+            b.append("    HB sender: ").append(threadStatus(hbsSnd)).append(U.nl());
+            b.append("    Socket timeout worker: ").append(threadStatus(sockTimeoutWorker)).append(U.nl());
+            b.append("    IP finder cleaner: ").append(threadStatus(ipFinderCleaner)).append(U.nl());
+            b.append("    Stats printer: ").append(threadStatus(statsPrinter)).append(U.nl());
+
+            b.append(U.nl());
+
+            b.append("Socket readers: ").append(U.nl());
+
+            for (SocketReader rdr : readers)
+                b.append("    ").append(rdr).append(U.nl());
+
+            b.append(U.nl());
+
+            b.append("In-memory log messages: ").append(U.nl());
+
+            for (String msg : debugLog)
+                b.append("    ").append(msg).append(U.nl());
+
+            b.append(U.nl());
+
+            b.append("Leaving nodes: ").append(U.nl());
+
+            for (TcpDiscoveryNode node : leavingNodes)
+                b.append("    ").append(node.id()).append(U.nl());
+
+            b.append(U.nl());
+
+            b.append("Failed nodes: ").append(U.nl());
+
+            for (TcpDiscoveryNode node : failedNodes)
+                b.append("    ").append(node.id()).append(U.nl());
+
+            b.append(U.nl());
+
+            b.append("Stats: ").append(stats).append(U.nl());
+
+            U.quietAndInfo(log, b.toString());
+        }
+    }
+
+    /**
+     * @param msg Message.
+     */
+    private void debugLog(String msg) {
+        assert debugMode;
+
+        String msg0 = new SimpleDateFormat("[HH:mm:ss,SSS]").format(new Date(System.currentTimeMillis())) +
+            '[' + Thread.currentThread().getName() + "][" + locNodeId + "-" + locNode.internalOrder() + "] " +
+            msg;
+
+        debugLog.add(msg0);
+
+        int delta = debugLog.size() - debugMsgHist;
+
+        for (int i = 0; i < delta && debugLog.size() > debugMsgHist; i++)
+            debugLog.poll();
+    }
+
+    /**
+     * @param msg Message.
+     * @return {@code True} if recordable in debug mode.
+     */
+    private boolean recordable(TcpDiscoveryAbstractMessage msg) {
+        return !(msg instanceof TcpDiscoveryHeartbeatMessage) &&
+            !(msg instanceof TcpDiscoveryStatusCheckMessage) &&
+            !(msg instanceof TcpDiscoveryDiscardMessage);
+    }
+
+    /**
+     * @param t Thread.
+     * @return Status as string.
+     */
+    private String threadStatus(Thread t) {
+        if (t == null)
+            return "N/A";
+
+        return t.isAlive() ? "alive" : "dead";
+    }
+
+    /**
+     * Checks if two given {@link GridSecurityPermissionSet} objects contain the same permissions.
+     * Each permission belongs to one of three groups : cache, task or system.
+     *
+     * @param locPerms The first set of permissions.
+     * @param rmtPerms The second set of permissions.
+     * @return {@code True} if given parameters contain the same permissions, {@code False} otherwise.
+     */
+    private boolean permissionsEqual(GridSecurityPermissionSet locPerms, GridSecurityPermissionSet rmtPerms) {
+        boolean dfltAllowMatch = !(locPerms.defaultAllowAll() ^ rmtPerms.defaultAllowAll());
+
+        boolean bothHaveSamePerms = F.eqNotOrdered(rmtPerms.systemPermissions(), locPerms.systemPermissions()) &&
+            F.eqNotOrdered(rmtPerms.cachePermissions(), locPerms.cachePermissions()) &&
+            F.eqNotOrdered(rmtPerms.taskPermissions(), locPerms.taskPermissions());
+
+        return dfltAllowMatch && bothHaveSamePerms;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoverySpi.class, this);
+    }
+
+    /**
+     * Thread that sends heartbeats.
+     */
+    private class HeartbeatsSender extends IgniteSpiThread {
+        /**
+         * Constructor.
+         */
+        private HeartbeatsSender() {
+            super(gridName, "tcp-disco-hb-sender", log);
+
+            setPriority(threadPri);
+        }
+
+        /** {@inheritDoc} */
+        @SuppressWarnings("BusyWait")
+        @Override protected void body() throws InterruptedException {
+            while (!isLocalNodeCoordinator())
+                Thread.sleep(1000);
+
+            if (log.isDebugEnabled())
+                log.debug("Heartbeats sender has been started.");
+
+            while (!isInterrupted()) {
+                if (spiStateCopy() != CONNECTED) {
+                    if (log.isDebugEnabled())
+                        log.debug("Stopping heartbeats sender (SPI is not connected to topology).");
+
+                    return;
+                }
+
+                TcpDiscoveryHeartbeatMessage msg = new TcpDiscoveryHeartbeatMessage(locNodeId);
+
+                msg.verify(locNodeId);
+
+                msgWorker.addMessage(msg);
+
+                Thread.sleep(hbFreq);
+            }
+        }
+    }
+
+    /**
+     * Thread that sends status check messages to next node if local node has not
+     * been receiving heartbeats ({@link org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHeartbeatMessage})
+     * for {@link TcpDiscoverySpi#getMaxMissedHeartbeats()} *
+     * {@link TcpDiscoverySpi#getHeartbeatFrequency()}.
+     */
+    private class CheckStatusSender extends IgniteSpiThread {
+        /**
+         * Constructor.
+         */
+        private CheckStatusSender() {
+            super(gridName, "tcp-disco-status-check-sender", log);
+
+            setPriority(threadPri);
+        }
+
+        /** {@inheritDoc} */
+        @SuppressWarnings("BusyWait")
+        @Override protected void body() throws InterruptedException {
+            if (log.isDebugEnabled())
+                log.debug("Status check sender has been started.");
+
+            // Only 1 heartbeat missing is acceptable. 1 sec is added to avoid false alarm.
+            long checkTimeout = (long)maxMissedHbs * hbFreq + 1000;
+
+            long lastSent = 0;
+
+            while (!isInterrupted()) {
+                // 1. Determine timeout.
+                if (lastSent < locNode.lastUpdateTime())
+                    lastSent = locNode.lastUpdateTime();
+
+                long timeout = (lastSent + checkTimeout) - U.currentTimeMillis();
+
+                if (timeout > 0)
+                    Thread.sleep(timeout);
+
+                // 2. Check if SPI is still connected.
+                if (spiStateCopy() != CONNECTED) {
+                    if (log.isDebugEnabled())
+                        log.debug("Stopping status check sender (SPI is not connected to topology).");
+
+                    return;
+                }
+
+                // 3. Was there an update?
+                if (locNode.lastUpdateTime() > lastSent || !ring.hasRemoteNodes()) {
+                    if (log.isDebugEnabled())
+                        log.debug("Skipping status check send " +
+                            "[locNodeLastUpdate=" + U.format(locNode.lastUpdateTime()) +
+                            ", hasRmts=" + ring.hasRemoteNodes() + ']');
+
+                    continue;
+                }
+
+                // 4. Send status check message.
+                lastSent = U.currentTimeMillis();
+
+                msgWorker.addMessage(new TcpDiscoveryStatusCheckMessage(locNode, null));
+            }
+        }
+    }
+
+    /**
+     * Thread that cleans IP finder and keeps it in the correct state, unregistering
+     * addresses of the nodes that has left the topology.
+     * <p>
+     * This thread should run only on coordinator node and will clean IP finder
+     * if and only if {@link org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()} is {@code true}.
+     */
+    private class IpFinderCleaner extends IgniteSpiThread {
+        /**
+         * Constructor.
+         */
+        private IpFinderCleaner() {
+            super(gridName, "tcp-disco-ip-finder-cleaner", log);
+
+            setPriority(threadPri);
+        }
+
+        /** {@inheritDoc} */
+        @SuppressWarnings("BusyWait")
+        @Override protected void body() throws InterruptedException {
+            if (log.isDebugEnabled())
+                log.debug("IP finder cleaner has been started.");
+
+            while (!isInterrupted()) {
+                Thread.sleep(ipFinderCleanFreq);
+
+                if (!isLocalNodeCoordinator())
+                    continue;
+
+                if (spiStateCopy() != CONNECTED) {
+                    if (log.isDebugEnabled())
+                        log.debug("Stopping IP finder cleaner (SPI is not connected to topology).");
+
+                    return;
+                }
+
+                if (ipFinder.isShared())
+                    cleanIpFinder();
+            }
+        }
+
+        /**
+         * Cleans IP finder.
+         */
+        private void cleanIpFinder() {
+            assert ipFinder.isShared();
+
+            try {
+                // Addresses that belongs to nodes in topology.
+                Collection<InetSocketAddress> currAddrs = F.flatCollections(
+                    F.viewReadOnly(
+                        ring.allNodes(),
+                        new C1<TcpDiscoveryNode, Collection<InetSocketAddress>>() {
+                            @Override public Collection<InetSocketAddress> apply(TcpDiscoveryNode node) {
+                                return !node.isClient() ? getNodeAddresses(node) :
+                                    Collections.<InetSocketAddress>emptyList();
+                            }
+                        }
+                    )
+                );
+
+                // Addresses registered in IP finder.
+                Collection<InetSocketAddress> regAddrs = registeredAddresses();
+
+                // Remove all addresses that belong to alive nodes, leave dead-node addresses.
+                Collection<InetSocketAddress> rmvAddrs = F.view(
+                    regAddrs,
+                    F.notContains(currAddrs),
+                    new P1<InetSocketAddress>() {
+                        private final Map<InetSocketAddress, Boolean> pingResMap =
+                            new HashMap<>();
+
+                        @Override public boolean apply(InetSocketAddress addr) {
+                            Boolean res = pingResMap.get(addr);
+
+                            if (res == null) {
+                                try {
+                                    res = pingNode(addr, null).get1() != null;
+                                }
+                                catch (GridException e) {
+                                    if (log.isDebugEnabled())
+                                        log.debug("Failed to ping node [addr=" + addr +
+                                            ", err=" + e.getMessage() + ']');
+
+                                    res = false;
+                                }
+                                finally {
+                                    pingResMap.put(addr, res);
+                                }
+                            }
+
+                            return !res;
+                        }
+                    }
+                );
+
+                // Unregister dead-nodes addresses.
+                if (!rmvAddrs.isEmpty()) {
+                    ipFinder.unregisterAddresses(rmvAddrs);
+
+                    if (log.isDebugEnabled())
+                        log.debug("Unregistered addresses from IP finder: " + rmvAddrs);
+                }
+
+                // Addresses that were removed by mistake (e.g. on segmentation).
+                Collection<InetSocketAddress> missingAddrs = F.view(
+                    currAddrs,
+                    F.notContains(regAddrs)
+                );
+
+                // Re-register missing addresses.
+                if (!missingAddrs.isEmpty()) {
+                    ipFinder.registerAddresses(missingAddrs);
+
+                    if (log.isDebugEnabled())
+                        log.debug("Registered missing addresses in IP finder: " + missingAddrs);
+                }
+            }
+            catch (IgniteSpiException e) {
+                LT.error(log, e, "Failed to clean IP finder up.");
+            }
+        }
+    }
+
+    /**
+     * Pending messages container.
+     */
+    private static class PendingMessages {
+        /** */
+        private static final int MAX = 1024;
+
+        /** Pending messages. */
+        private final Queue<TcpDiscoveryAbstractMessage> msgs = new ArrayDeque<>(MAX * 2);
+
+        /** Discarded message ID. */
+        private IgniteUuid discardId;
+
+        /**
+         * Adds pending message and shrinks queue if it exceeds limit
+         * (messages that were not discarded yet are never removed).
+         *
+         * @param msg Message to add.
+         */
+        void add(TcpDiscoveryAbstractMessage msg) {
+            msgs.add(msg);
+
+            while (msgs.size() > MAX) {
+                TcpDiscoveryAbstractMessage polled = msgs.poll();
+
+                assert polled != null;
+
+                if (polled.id().equals(discardId))
+                    break;
+            }
+        }
+
+        /**
+         * Gets messages starting from provided ID (exclusive). If such
+         * message is not found, {@code null} is returned (this indicates
+         * a failure condition when it was already removed from queue).
+         *
+         * @param lastMsgId Last message ID.
+         * @return Collection of messages.
+         */
+        @Nullable Collection<TcpDiscoveryAbstractMessage> messages(IgniteUuid lastMsgId) {
+            assert lastMsgId != null;
+
+            Collection<TcpDiscoveryAbstractMessage> copy = new ArrayList<>(msgs.size());
+
+            boolean skip = true;
+
+            for (TcpDiscoveryAbstractMessage msg : msgs) {
+                if (skip) {
+                    if (msg.id().equals(lastMsgId))
+                        skip = false;
+                }
+                else
+                    copy.add(msg);
+            }
+
+            return !skip ? copy : null;
+        }
+
+        /**
+         * Resets pending messages.
+         *
+         * @param msgs Message.
+         * @param discardId Discarded message ID.
+         */
+        void reset(@Nullable Collection<TcpDiscoveryAbstractMessage> msgs, @Nullable IgniteUuid discardId) {
+            this.msgs.clear();
+
+            if (msgs != null)
+                this.msgs.addAll(msgs);
+
+            this.discardId = discardId;
+        }
+
+        /**
+         * Clears pending messages.
+         */
+        void clear() {
+            msgs.clear();
+
+            discardId = null;
+        }
+
+        /**
+         * Discards message with provided ID and all before it.
+         *
+         * @param id Discarded message ID.
+         */
+        void discard(IgniteUuid id) {
+            discardId = id;
+        }
+    }
+
+    /**
+     * Message worker thread for messages

<TRUNCATED>

[09/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java
index 9b6a3f0..b00c8f2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java
@@ -39,7 +39,7 @@ public abstract class GridServiceProcessorAbstractSelfTest extends GridCommonAbs
     public static final String CACHE_NAME = "testServiceCache";
 
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Random generator. */
     private static final Random RAND = new Random();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java
index b00be46..fb49cb6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java
@@ -31,7 +31,7 @@ import static java.util.concurrent.TimeUnit.*;
  */
 public class GridStreamerEvictionSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Number of events used in test. */
     private static final int EVENTS_COUNT = 10;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java
index 046a685..ab1c047 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java
@@ -32,7 +32,7 @@ import java.util.concurrent.atomic.*;
  */
 public class GridStreamerFailoverSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Event router. */
     private TestRandomRouter router;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java
index 83b98ce..fdd8642 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java
@@ -42,7 +42,7 @@ import static org.apache.ignite.configuration.IgniteDeploymentMode.*;
  */
 public class GridStreamerSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private boolean atLeastOnce = true;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/lang/GridFuncSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/lang/GridFuncSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/lang/GridFuncSelfTest.java
index 1200d26..e26912a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/lang/GridFuncSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/lang/GridFuncSelfTest.java
@@ -2843,7 +2843,7 @@ public class GridFuncSelfTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java
index 4e606b9..448e421 100644
--- a/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java
@@ -53,7 +53,7 @@ public class GridMessagingSelfTest extends GridCommonAbstractTest {
     public static final String EXT_RESOURCE_CLS_NAME = "org.gridgain.grid.tests.p2p.GridTestUserResource";
 
     /** Shared IP finder. */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * A test message topic.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java
index a079441..7d517a4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java
@@ -27,7 +27,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridP2PContinuousDeploymentSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Number of grids cache. */
     private static final int GRID_CNT = 2;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java
index 6f7e5ea..4532ece 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java
@@ -30,7 +30,7 @@ public class GridP2PDoubleDeploymentSelfTest extends GridCommonAbstractTest {
     private IgniteDeploymentMode depMode;
 
     /** IP finder. */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java
index 52084a5..f9dc135 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java
@@ -48,7 +48,7 @@ public class GridP2PMissedResourceCacheSizeSelfTest extends GridCommonAbstractTe
     private int missedRsrcCacheSize;
 
     /** */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromFutureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromFutureSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromFutureSelfTest.java
index bcb7279..6e53d39 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromFutureSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromFutureSelfTest.java
@@ -62,7 +62,7 @@ public class GridSessionCancelSiblingsFromFutureSelfTest extends GridCommonAbstr
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromJobSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromJobSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromJobSelfTest.java
index 110ca10..1428b1f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromJobSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromJobSelfTest.java
@@ -61,7 +61,7 @@ public class GridSessionCancelSiblingsFromJobSelfTest extends GridCommonAbstract
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromTaskSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromTaskSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromTaskSelfTest.java
index a70e956..2ab9a64 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromTaskSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromTaskSelfTest.java
@@ -61,7 +61,7 @@ public class GridSessionCancelSiblingsFromTaskSelfTest extends GridCommonAbstrac
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobWaitTaskAttributeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobWaitTaskAttributeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobWaitTaskAttributeSelfTest.java
index 448a2d2..079ff97 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobWaitTaskAttributeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobWaitTaskAttributeSelfTest.java
@@ -48,7 +48,7 @@ public class GridSessionJobWaitTaskAttributeSelfTest extends GridCommonAbstractT
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeSelfTest.java
index d20a0cd..50d7f4d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeSelfTest.java
@@ -54,7 +54,7 @@ public class GridSessionSetFutureAttributeSelfTest extends GridCommonAbstractTes
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeWaitListenerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeWaitListenerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeWaitListenerSelfTest.java
index e4cad13..93a3e0f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeWaitListenerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeWaitListenerSelfTest.java
@@ -54,7 +54,7 @@ public class GridSessionSetFutureAttributeWaitListenerSelfTest extends GridCommo
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeSelfTest.java
index 2a1121f..28babfd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeSelfTest.java
@@ -48,7 +48,7 @@ public class GridSessionSetJobAttributeSelfTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeWaitListenerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeWaitListenerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeWaitListenerSelfTest.java
index ca54c0f..4592f6e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeWaitListenerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeWaitListenerSelfTest.java
@@ -48,7 +48,7 @@ public class GridSessionSetJobAttributeWaitListenerSelfTest extends GridCommonAb
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/session/GridSessionWaitAttributeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionWaitAttributeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionWaitAttributeSelfTest.java
index 6f8df63..f52759a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionWaitAttributeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionWaitAttributeSelfTest.java
@@ -72,7 +72,7 @@ public class GridSessionWaitAttributeSelfTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java
index 01a57bf..97d5c1d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java
@@ -57,7 +57,7 @@ public class GridTcpSpiForwardingSelfTest extends GridCommonAbstractTest {
     /** {@inheritDoc} */
     @SuppressWarnings({"IfMayBeConditional", "deprecation"})
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        GridTcpDiscoveryVmIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder();
+        TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
         ipFinder.setAddresses(Arrays.asList("127.0.0.1:" + extPort1, "127.0.0.1:" + extPort2));
 
         TcpDiscoverySpi spi = new TcpDiscoverySpi();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
index 9a4f3d5..6d696e2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
@@ -36,7 +36,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridTcpClientDiscoverySelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final AtomicInteger srvIdx = new AtomicInteger();
@@ -90,7 +90,7 @@ public class GridTcpClientDiscoverySelfTest extends GridCommonAbstractTest {
         else if (gridName.startsWith("client")) {
             TcpClientDiscoverySpi disco = new TcpClientDiscoverySpi();
 
-            GridTcpDiscoveryVmIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder();
+            TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
 
             String addr = new ArrayList<>(IP_FINDER.getRegisteredAddresses()).
                 get((clientIdx.get() - 1) / clientsPerSrv).toString();
@@ -471,7 +471,7 @@ public class GridTcpClientDiscoverySelfTest extends GridCommonAbstractTest {
         TcpClientDiscoverySpi disco =
             (TcpClientDiscoverySpi)G.grid("client-" + idx).configuration().getDiscoverySpi();
 
-        GridTcpDiscoveryVmIpFinder ipFinder = (GridTcpDiscoveryVmIpFinder)disco.getIpFinder();
+        TcpDiscoveryVmIpFinder ipFinder = (TcpDiscoveryVmIpFinder)disco.getIpFinder();
 
         String addr = IP_FINDER.getRegisteredAddresses().iterator().next().toString();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
index 0bea36a..1048160 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
@@ -24,7 +24,7 @@ public class GridTcpDiscoveryConcurrentStartTest extends GridCommonAbstractTest
     private static final int TOP_SIZE = 1;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static volatile boolean client;
@@ -34,7 +34,7 @@ public class GridTcpDiscoveryConcurrentStartTest extends GridCommonAbstractTest
         IgniteConfiguration cfg =  super.getConfiguration(gridName);
 
         if (client) {
-            GridTcpDiscoveryVmIpFinder clientIpFinder = new GridTcpDiscoveryVmIpFinder();
+            TcpDiscoveryVmIpFinder clientIpFinder = new TcpDiscoveryVmIpFinder();
 
             String addr = new ArrayList<>(ipFinder.getRegisteredAddresses()).iterator().next().toString();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
index 8bec834..b3991c2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
@@ -29,7 +29,7 @@ public class GridTcpDiscoveryMarshallerCheckSelfTest extends GridCommonAbstractT
     private static boolean flag;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
index 6c72568..6f046a7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
@@ -49,7 +49,7 @@ public class GridTcpDiscoveryMultiThreadedTest extends GridCommonAbstractTest {
     }
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * @throws Exception If fails.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
index fbf60b7..eefb52b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
@@ -43,7 +43,7 @@ import static org.apache.ignite.spi.IgnitePortProtocol.*;
  */
 public class GridTcpDiscoverySelfTest extends GridCommonAbstractTest {
     /** */
-    private GridTcpDiscoveryVmIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private Map<String, TcpDiscoverySpi> discoMap = new HashMap<>();
@@ -108,7 +108,7 @@ public class GridTcpDiscoverySelfTest extends GridCommonAbstractTest {
             cfg.setNodeId(nodeId);
 
         if (gridName.contains("NonSharedIpFinder")) {
-            GridTcpDiscoveryVmIpFinder finder = new GridTcpDiscoveryVmIpFinder();
+            TcpDiscoveryVmIpFinder finder = new TcpDiscoveryVmIpFinder();
 
             finder.setAddresses(Arrays.asList("127.0.0.1:47501"));
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
index 09e9397..275c7c8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
@@ -21,7 +21,7 @@ import org.gridgain.testframework.junits.spi.*;
 public class GridTcpDiscoverySpiRandomStartStopTest extends
     GridAbstractDiscoveryRandomStartStopTest<TcpDiscoverySpi> {
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected int getMaxInterval() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
index cdfc477..3aaa8e9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
@@ -21,7 +21,7 @@ import org.gridgain.testframework.junits.spi.*;
 @GridSpiTest(spi = TcpDiscoverySpi.class, group = "Discovery SPI")
 public class GridTcpDiscoverySpiSelfTest extends GridAbstractDiscoverySelfTest<TcpDiscoverySpi> {
     /** */
-    private TcpDiscoveryIpFinder ipFinder =  new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder =  new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected DiscoverySpi getSpi(int idx) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
index a503395..cb198de 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
@@ -30,7 +30,7 @@ public class GridTcpDiscoverySpiStartStopSelfTest extends GridSpiStartStopAbstra
      */
     @GridSpiTestConfig
     public TcpDiscoveryIpFinder getIpFinder() {
-        return new GridTcpDiscoveryVmIpFinder(true);
+        return new TcpDiscoveryVmIpFinder(true);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
index 1b8a998..bd40d7f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
@@ -19,7 +19,7 @@ import org.gridgain.testframework.junits.common.*;
  */
 public class GridTcpDiscoverySpiWildcardSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int NODES = 5;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java
index 038093d..76dded6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java
@@ -18,7 +18,7 @@ import java.util.*;
  * GridTcpDiscoveryVmIpFinder test.
  */
 public class GridTcpDiscoveryVmIpFinderSelfTest
-    extends GridTcpDiscoveryIpFinderAbstractSelfTest<GridTcpDiscoveryVmIpFinder> {
+    extends GridTcpDiscoveryIpFinderAbstractSelfTest<TcpDiscoveryVmIpFinder> {
     /**
      * Constructor.
      *
@@ -29,8 +29,8 @@ public class GridTcpDiscoveryVmIpFinderSelfTest
     }
 
     /** {@inheritDoc} */
-    @Override protected GridTcpDiscoveryVmIpFinder ipFinder() {
-        GridTcpDiscoveryVmIpFinder finder = new GridTcpDiscoveryVmIpFinder();
+    @Override protected TcpDiscoveryVmIpFinder ipFinder() {
+        TcpDiscoveryVmIpFinder finder = new TcpDiscoveryVmIpFinder();
 
         assert !finder.isShared() : "Ip finder should NOT be shared by default.";
 
@@ -41,7 +41,7 @@ public class GridTcpDiscoveryVmIpFinderSelfTest
      * @throws Exception If any error occurs.
      */
     public void testAddressesInitialization() throws Exception {
-        GridTcpDiscoveryVmIpFinder finder = ipFinder();
+        TcpDiscoveryVmIpFinder finder = ipFinder();
 
         try {
             finder.setAddresses(Arrays.asList("127.0.0.1:475000001"));
@@ -110,7 +110,7 @@ public class GridTcpDiscoveryVmIpFinderSelfTest
      * @throws Exception If any error occurs.
      */
     public void testIpV6AddressesInitialization() throws Exception {
-        GridTcpDiscoveryVmIpFinder finder = ipFinder();
+        TcpDiscoveryVmIpFinder finder = ipFinder();
 
         try {
             finder.setAddresses(Arrays.asList("[::1]:475000001"));

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/spi/swapspace/noop/GridNoopSwapSpaceSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/swapspace/noop/GridNoopSwapSpaceSpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/swapspace/noop/GridNoopSwapSpaceSpiSelfTest.java
index 1e5c323..4105847 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/swapspace/noop/GridNoopSwapSpaceSpiSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/swapspace/noop/GridNoopSwapSpaceSpiSelfTest.java
@@ -26,7 +26,7 @@ public class GridNoopSwapSpaceSpiSelfTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java
index 4e31cd3..739085b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.util.GridUtils.*;
  */
 public class GridStartupWithSpecifiedWorkDirectorySelfTest extends TestCase {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int GRID_COUNT = 2;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java
index e66fd55..03d68b3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.util.GridUtils.*;
  */
 public class GridStartupWithUndefinedGridGainHomeSelfTest extends TestCase {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int GRID_COUNT = 2;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java
index d0094e7..12eb861 100644
--- a/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java
@@ -29,7 +29,7 @@ import static org.gridgain.grid.kernal.GridNodeAttributes.*;
  */
 public class GridTopologyHeapSizeSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryNodeStartup.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryNodeStartup.java b/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryNodeStartup.java
index 4f383a7..e53c3a1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryNodeStartup.java
+++ b/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryNodeStartup.java
@@ -39,7 +39,7 @@ public class GridIpcSharedMemoryNodeStartup {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java
index a089320..4f0663e 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java
@@ -37,7 +37,7 @@ public class GridCacheMultiNodeLoadTest extends GridCommonAbstractTest {
     private static Ignite ignite1;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java
index 95d2b30..7e6c260 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheAffinityTransactionsOffHeapTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int NODE_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheSingleNodeLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheSingleNodeLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheSingleNodeLoadTest.java
index fc2cf53..4f4e261 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheSingleNodeLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheSingleNodeLoadTest.java
@@ -104,7 +104,7 @@ public class GridCacheSingleNodeLoadTest {
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheWriteBehindStoreLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheWriteBehindStoreLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheWriteBehindStoreLoadTest.java
index 5ee7b64..57b62a6 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheWriteBehindStoreLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheWriteBehindStoreLoadTest.java
@@ -92,7 +92,7 @@ public class GridCacheWriteBehindStoreLoadTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/loadtests/capacity/spring-capacity-cache.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/capacity/spring-capacity-cache.xml b/modules/core/src/test/java/org/gridgain/loadtests/capacity/spring-capacity-cache.xml
index 2729b5c..57538ad 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/capacity/spring-capacity-cache.xml
+++ b/modules/core/src/test/java/org/gridgain/loadtests/capacity/spring-capacity-cache.xml
@@ -90,7 +90,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/loadtests/colocation/spring-colocation.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/colocation/spring-colocation.xml b/modules/core/src/test/java/org/gridgain/loadtests/colocation/spring-colocation.xml
index 9c4fb4c..83087cd 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/colocation/spring-colocation.xml
+++ b/modules/core/src/test/java/org/gridgain/loadtests/colocation/spring-colocation.xml
@@ -161,7 +161,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java b/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java
index b18afcc..16bb1df 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java
@@ -47,7 +47,7 @@ public class GridIoManagerBenchmark0 extends GridCommonAbstractTest {
     private static final long TEST_TIMEOUT = 3 * 60 * 1000;
 
     /** */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java
index cbc3d05..e069208 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java
@@ -35,7 +35,7 @@ public class GridCachePartitionedAtomicLongLoadTest extends GridCommonAbstractTe
     private static final long DURATION = 8 * 60 * 60 * 1000;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final AtomicInteger idx = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java b/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java
index 3229b75..85f3e3d 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java
@@ -247,7 +247,7 @@ public class GridSwapEvictAllBenchmark {
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        TcpDiscoveryIpFinder finder = new GridTcpDiscoveryVmIpFinder(true);
+        TcpDiscoveryIpFinder finder = new TcpDiscoveryVmIpFinder(true);
 
         disco.setIpFinder(finder);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
index 00f96eb..f2596ee 100644
--- a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
@@ -302,7 +302,7 @@ public abstract class GridSpiAbstractTest<T extends IgniteSpi> extends GridAbstr
         if (discoSpi instanceof TcpDiscoverySpi) {
             TcpDiscoverySpi tcpDisco = (TcpDiscoverySpi)discoSpi;
 
-            tcpDisco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+            tcpDisco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
         }
 
         getTestData().setDiscoverySpi(discoSpi);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/webapp/META-INF/gg-config.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/webapp/META-INF/gg-config.xml b/modules/core/src/test/webapp/META-INF/gg-config.xml
index c2e8aa5..57d0a96 100644
--- a/modules/core/src/test/webapp/META-INF/gg-config.xml
+++ b/modules/core/src/test/webapp/META-INF/gg-config.xml
@@ -285,7 +285,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
index 16a87c4..4a77163 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
@@ -55,7 +55,7 @@ public abstract class GridGgfsHadoop20FileSystemAbstractSelfTest extends GridGgf
     private static final int THREAD_CNT = 8;
 
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Barrier for multithreaded tests. */
     private static CyclicBarrier barrier;
@@ -172,7 +172,7 @@ public abstract class GridGgfsHadoop20FileSystemAbstractSelfTest extends GridGgf
 
             TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-            discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+            discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
             cfg.setDiscoverySpi(discoSpi);
             cfg.setCacheConfiguration(metaCacheCfg, cacheCfg);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopDualAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopDualAbstractSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopDualAbstractSelfTest.java
index 887baaa..b77e386 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopDualAbstractSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopDualAbstractSelfTest.java
@@ -147,7 +147,7 @@ public abstract class GridGgfsHadoopDualAbstractSelfTest extends GridGgfsCommonA
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
         cfg.setCacheConfiguration(dataCacheCfg, metaCacheCfg);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java
index 023a411..d58c7a1 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java
@@ -80,7 +80,7 @@ public abstract class GridGgfsHadoopFileSystemAbstractSelfTest extends GridGgfsC
     private static final int THREAD_CNT = 8;
 
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Barrier for multithreaded tests. */
     private static CyclicBarrier barrier;
@@ -197,7 +197,7 @@ public abstract class GridGgfsHadoopFileSystemAbstractSelfTest extends GridGgfsC
 
             TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-            discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+            discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
             cfg.setDiscoverySpi(discoSpi);
             cfg.setCacheConfiguration(metaCacheCfg, cacheCfg);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemClientSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemClientSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemClientSelfTest.java
index 12a5842..e11bc13 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemClientSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemClientSelfTest.java
@@ -57,7 +57,7 @@ public class GridGgfsHadoopFileSystemClientSelfTest extends GridGgfsCommonAbstra
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
index 3ce2c8a..8d0b646 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
@@ -41,7 +41,7 @@ import static org.gridgain.grid.util.ipc.shmem.GridIpcSharedMemoryServerEndpoint
  */
 public class GridGgfsHadoopFileSystemHandshakeSelfTest extends GridGgfsCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Grid name. */
     private static final String GRID_NAME = "grid";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
index 0d7d922..d984d55 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
@@ -39,7 +39,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridGgfsHadoopFileSystemIpcCacheSelfTest extends GridGgfsCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Path to test hadoop configuration. */
     private static final String HADOOP_FS_CFG = "modules/core/src/test/config/hadoop/core-site.xml";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
index 12c2756..e5b6890 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
@@ -102,7 +102,7 @@ public class GridGgfsHadoopFileSystemLoggerStateSelfTest extends GridGgfsCommonA
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
         cfg.setCacheConfiguration(metaCacheCfg, cacheCfg);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java
index d51fec2..d4f0603 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java
@@ -116,7 +116,7 @@ public class GridGgfsHadoopFileSystemSecondaryModeSelfTest extends GridGgfsCommo
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
         cfg.setCacheConfiguration(metaCacheCfg, cacheCfg);
@@ -175,7 +175,7 @@ public class GridGgfsHadoopFileSystemSecondaryModeSelfTest extends GridGgfsCommo
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
         cfg.setCacheConfiguration(metaCacheCfg, cacheCfg);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java
index 4d113e2..5b7d74f 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java
@@ -45,7 +45,7 @@ public class GridGgfsNearOnlyMultiNodeSelfTest extends GridCommonAbstractTest {
     public static final int GRP_SIZE = 128;
 
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Node count. */
     private int cnt;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheConfigurationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheConfigurationSelfTest.java b/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheConfigurationSelfTest.java
index d9506f6..e98103e 100644
--- a/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheConfigurationSelfTest.java
+++ b/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheConfigurationSelfTest.java
@@ -79,7 +79,7 @@ public class GridHibernateL2CacheConfigurationSelfTest extends GridCommonAbstrac
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java b/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java
index f17594c..51f1565 100644
--- a/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java
+++ b/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java
@@ -43,7 +43,7 @@ import static org.hibernate.cfg.Environment.*;
  */
 public class GridHibernateL2CacheSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     public static final String CONNECTION_URL = "jdbc:h2:mem:example;DB_CLOSE_DELAY=-1";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
index 0dfae87..3966b70 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
@@ -39,7 +39,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public abstract class GridCacheAbstractFieldsQuerySelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Cache name. */
     private static final String CACHE = "cache";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java
index ad19fc4..6db5615 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java
@@ -55,7 +55,7 @@ public abstract class GridCacheAbstractQuerySelfTest extends GridCommonAbstractT
     private static TestStore store = new TestStore();
 
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final UUID subjId = UUID.fromString("8EB3B06D-0885-4B4A-9A54-02C93EF09B65");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
index 4cb2617..20c6146 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridCacheCrossCacheQuerySelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private Ignite ignite;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java
index 906b960..c74556e 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java
@@ -97,7 +97,7 @@ public class GridCacheOffHeapAndSwapSelfTest extends GridCommonAbstractTest {
     };
 
     /** */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java
index 1f45579..9654fb6 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheQueryLoadSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Puts count. */
     private static final int PUT_CNT = 10;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java
index 6d4307d..9410c94 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java
@@ -34,7 +34,7 @@ public class GridCacheQueryMetricsSelfTest extends GridCommonAbstractTest {
     private static final GridCacheMode CACHE_MODE = REPLICATED;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java
index 8291dee..01dc06a 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java
@@ -48,7 +48,7 @@ public class GridCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTest
     private static final int GRID_CNT = 2;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static AtomicInteger idxSwapCnt = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java
index d2ee128..6db0a1c 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java
@@ -44,7 +44,7 @@ public class GridCacheQueryUserResourceSelfTest extends GridCommonAbstractTest {
     private static final int RUN_CNT = 2;
 
     /** VM ip finder for TCP discovery. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** External class loader. */
     private static final ClassLoader extClsLdr;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java
index a596f15..935045d 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridCacheSqlQueryMultiThreadedSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java
index 8531c13..1f71618 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java
@@ -52,7 +52,7 @@ public class GridCacheSwapSelfTest extends GridCommonAbstractTest {
     private final Map<Integer, Object> versions = new HashMap<>();
 
     /** */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private boolean swapEnabled = true;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java
index 6640ea5..a39813b 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridIndexingWithNoopSwapSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridIndexingWithNoopSwapSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     protected Ignite ignite;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
index 21c6c38..48a50b4 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
@@ -37,7 +37,7 @@ public class GridCachePartitionedHitsAndMissesSelfTest extends GridCommonAbstrac
     private static final int CNT = 2000;
 
     /** IP Finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java
index b9e341c..7cee23d 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheQueryNodeRestartSelfTest.java
@@ -42,7 +42,7 @@ public class GridCacheQueryNodeRestartSelfTest extends GridCacheAbstractSelfTest
     private static final int KEY_CNT = 1000;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected int gridCount() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/indexing/src/test/java/org/gridgain/loadtests/h2indexing/GridH2IndexingSpiLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/loadtests/h2indexing/GridH2IndexingSpiLoadTest.java b/modules/indexing/src/test/java/org/gridgain/loadtests/h2indexing/GridH2IndexingSpiLoadTest.java
index b370cb8..8dd50b9 100644
--- a/modules/indexing/src/test/java/org/gridgain/loadtests/h2indexing/GridH2IndexingSpiLoadTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/loadtests/h2indexing/GridH2IndexingSpiLoadTest.java
@@ -98,7 +98,7 @@ public class GridH2IndexingSpiLoadTest {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/scalar/src/test/resources/spring-cache.xml
----------------------------------------------------------------------
diff --git a/modules/scalar/src/test/resources/spring-cache.xml b/modules/scalar/src/test/resources/spring-cache.xml
index c626e45..8b28caa 100644
--- a/modules/scalar/src/test/resources/spring-cache.xml
+++ b/modules/scalar/src/test/resources/spring-cache.xml
@@ -32,7 +32,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/scalar/src/test/resources/spring-ping-pong-partner.xml
----------------------------------------------------------------------
diff --git a/modules/scalar/src/test/resources/spring-ping-pong-partner.xml b/modules/scalar/src/test/resources/spring-ping-pong-partner.xml
index b8bb95d..062871e 100644
--- a/modules/scalar/src/test/resources/spring-ping-pong-partner.xml
+++ b/modules/scalar/src/test/resources/spring-ping-pong-partner.xml
@@ -77,7 +77,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java b/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java
index 66946da..15009f1 100644
--- a/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java
+++ b/modules/spring/src/test/java/org/gridgain/grid/cache/spring/GridSpringCacheManagerSelfTest.java
@@ -23,7 +23,7 @@ import org.springframework.context.support.*;
  */
 public class GridSpringCacheManagerSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final String CACHE_NAME = "testCache";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java b/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java
index 996b297..64dedb9 100644
--- a/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java
+++ b/modules/spring/src/test/java/org/gridgain/grid/kernal/GridSpringBeanSerializationSelfTest.java
@@ -24,7 +24,7 @@ import org.gridgain.testframework.junits.common.*;
  */
 public class GridSpringBeanSerializationSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Marshaller. */
     private static final IgniteMarshaller MARSHALLER = new IgniteOptimizedMarshaller();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java b/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java
index 5215551..e2de3b7 100644
--- a/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java
+++ b/modules/spring/src/test/java/org/gridgain/grid/p2p/GridP2PUserVersionChangeSelfTest.java
@@ -52,7 +52,7 @@ public class GridP2PUserVersionChangeSelfTest extends GridCommonAbstractTest {
     private static final String TEST_RCRS_NAME = "org.gridgain.grid.tests.p2p.GridTestUserResource";
 
     /** IP finder. */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     public GridP2PUserVersionChangeSelfTest() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/visor-console/src/test/scala/org/gridgain/visor/commands/alert/VisorAlertCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/alert/VisorAlertCommandSpec.scala b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/alert/VisorAlertCommandSpec.scala
index 0b0da66..b514735 100644
--- a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/alert/VisorAlertCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/alert/VisorAlertCommandSpec.scala
@@ -17,7 +17,7 @@ import org.apache.ignite.Ignition
 import org.apache.ignite.configuration.IgniteConfiguration
 import org.gridgain.grid.spi.discovery.DiscoverySpi
 import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
 import org.gridgain.visor._
 import org.gridgain.visor.commands.alert.VisorAlertCommand._
 
@@ -26,7 +26,7 @@ import org.gridgain.visor.commands.alert.VisorAlertCommand._
  */
 class VisorAlertCommandSpec extends VisorRuntimeBaseSpec(1) {
     /** */
-    val ipFinder = new GridTcpDiscoveryVmIpFinder(true)
+    val ipFinder = new TcpDiscoveryVmIpFinder(true)
 
     /**  */
     val out = new java.io.ByteArrayOutputStream


[31/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
deleted file mode 100644
index 40e4418..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
+++ /dev/null
@@ -1,5144 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.marshaller.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.kernal.managers.security.*;
-import org.gridgain.grid.security.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
-import org.gridgain.grid.spi.discovery.tcp.messages.*;
-import org.gridgain.grid.util.*;
-import org.gridgain.grid.util.future.*;
-import org.gridgain.grid.util.lang.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jdk8.backport.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.net.*;
-import java.text.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-import static org.apache.ignite.events.IgniteEventType.*;
-import static org.gridgain.grid.kernal.GridNodeAttributes.*;
-import static org.apache.ignite.spi.IgnitePortProtocol.*;
-import static org.gridgain.grid.spi.discovery.tcp.internal.TcpDiscoverySpiState.*;
-import static org.gridgain.grid.spi.discovery.tcp.messages.TcpDiscoveryHeartbeatMessage.*;
-import static org.gridgain.grid.spi.discovery.tcp.messages.TcpDiscoveryStatusCheckMessage.*;
-
-/**
- * Discovery SPI implementation that uses TCP/IP for node discovery.
- * <p>
- * Nodes are organized in ring. So almost all network exchange (except few cases) is
- * done across it.
- * <p>
- * At startup SPI tries to send messages to random IP taken from
- * {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} about self start (stops when send succeeds)
- * and then this info goes to coordinator. When coordinator processes join request
- * and issues node added messages and all other nodes then receive info about new node.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * There are no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * The following configuration parameters are optional:
- * <ul>
- * <li>IP finder to share info about nodes IP addresses
- * (see {@link #setIpFinder(org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder)}).
- * See the following IP finder implementations for details on configuration:
- * <ul>
- * <li>{@link org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs.TcpDiscoverySharedFsIpFinder}</li>
- * <li>{@gglink org.gridgain.grid.spi.discovery.tcp.ipfinder.s3.GridTcpDiscoveryS3IpFinder}</li>
- * <li>{@link org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc.TcpDiscoveryJdbcIpFinder}</li>
- * <li>{@link org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder}</li>
- * <li>{@link org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder} - default</li>
- * </ul>
- * </li>
- * </ul>
- * <ul>
- * </li>
- * <li>Local address (see {@link #setLocalAddress(String)})</li>
- * <li>Local port to bind to (see {@link #setLocalPort(int)})</li>
- * <li>Local port range to try binding to if previous ports are in use
- *      (see {@link #setLocalPortRange(int)})</li>
- * <li>Heartbeat frequency (see {@link #setHeartbeatFrequency(long)})</li>
- * <li>Max missed heartbeats (see {@link #setMaxMissedHeartbeats(int)})</li>
- * <li>Number of times node tries to (re)establish connection to another node
- *      (see {@link #setReconnectCount(int)})</li>
- * <li>Network timeout (see {@link #setNetworkTimeout(long)})</li>
- * <li>Socket timeout (see {@link #setSocketTimeout(long)})</li>
- * <li>Message acknowledgement timeout (see {@link #setAckTimeout(long)})</li>
- * <li>Maximum message acknowledgement timeout (see {@link #setMaxAckTimeout(long)})</li>
- * <li>Join timeout (see {@link #setJoinTimeout(long)})</li>
- * <li>Thread priority for threads started by SPI (see {@link #setThreadPriority(int)})</li>
- * <li>IP finder clean frequency (see {@link #setIpFinderCleanFrequency(long)})</li>
- * <li>Statistics print frequency (see {@link #setStatisticsPrintFrequency(long)}</li>
- * </ul>
- * <h2 class="header">Java Example</h2>
- * <pre name="code" class="java">
- * GridTcpDiscoverySpi spi = new GridTcpDiscoverySpi();
- *
- * GridTcpDiscoveryVmIpFinder finder =
- *     new GridTcpDiscoveryVmIpFinder();
- *
- * spi.setIpFinder(finder);
- *
- * GridConfiguration cfg = new GridConfiguration();
- *
- * // Override default discovery SPI.
- * cfg.setDiscoverySpi(spi);
- *
- * // Start grid.
- * GridGain.start(cfg);
- * </pre>
- * <h2 class="header">Spring Example</h2>
- * GridTcpDiscoverySpi can be configured from Spring XML configuration file:
- * <pre name="code" class="xml">
- * &lt;bean id="grid.custom.cfg" class="org.gridgain.grid.GridConfiguration" singleton="true"&gt;
- *         ...
- *         &lt;property name="discoverySpi"&gt;
- *             &lt;bean class="org.gridgain.grid.spi.discovery.tcp.GridTcpDiscoverySpi"&gt;
- *                 &lt;property name="ipFinder"&gt;
- *                     &lt;bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder" /&gt;
- *                 &lt;/property&gt;
- *             &lt;/bean&gt;
- *         &lt;/property&gt;
- *         ...
- * &lt;/bean&gt;
- * </pre>
- * <p>
- * <img src="http://www.gridgain.com/images/spring-small.png">
- * <br>
- * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
- * @see org.gridgain.grid.spi.discovery.DiscoverySpi
- */
-@SuppressWarnings("NonPrivateFieldAccessedInSynchronizedContext")
-@IgniteSpiMultipleInstancesSupport(true)
-@DiscoverySpiOrderSupport(true)
-@DiscoverySpiHistorySupport(true)
-public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscoverySpiMBean {
-    /** Default local port range (value is <tt>100</tt>). */
-    public static final int DFLT_PORT_RANGE = 100;
-
-    /** Default timeout for joining topology (value is <tt>0</tt>). */
-    public static final long DFLT_JOIN_TIMEOUT = 0;
-
-    /** Default reconnect attempts count (value is <tt>10</tt>). */
-    public static final int DFLT_RECONNECT_CNT = 10;
-
-    /** Default max heartbeats count node can miss without initiating status check (value is <tt>1</tt>). */
-    public static final int DFLT_MAX_MISSED_HEARTBEATS = 1;
-
-    /** Default max heartbeats count node can miss without failing client node (value is <tt>5</tt>). */
-    public static final int DFLT_MAX_MISSED_CLIENT_HEARTBEATS = 5;
-
-    /** Default IP finder clean frequency in milliseconds (value is <tt>60,000ms</tt>). */
-    public static final long DFLT_IP_FINDER_CLEAN_FREQ = 60 * 1000;
-
-    /** Default statistics print frequency in milliseconds (value is <tt>0ms</tt>). */
-    public static final long DFLT_STATS_PRINT_FREQ = 0;
-
-    /** Maximum ack timeout value for receiving message acknowledgement in milliseconds (value is <tt>600,000ms</tt>). */
-    public static final long DFLT_MAX_ACK_TIMEOUT = 10 * 60 * 1000;
-
-    /** Node attribute that is mapped to node's external addresses (value is <tt>disc.tcp.ext-addrs</tt>). */
-    public static final String ATTR_EXT_ADDRS = "disc.tcp.ext-addrs";
-
-    /** Address resolver. */
-    private IgniteAddressResolver addrRslvr;
-
-    /** Local port which node uses. */
-    private int locPort = DFLT_PORT;
-
-    /** Local port range. */
-    private int locPortRange = DFLT_PORT_RANGE;
-
-    /** Statistics print frequency. */
-    @SuppressWarnings({"FieldAccessedSynchronizedAndUnsynchronized", "RedundantFieldInitialization"})
-    private long statsPrintFreq = DFLT_STATS_PRINT_FREQ;
-
-    /** Maximum message acknowledgement timeout. */
-    private long maxAckTimeout = DFLT_MAX_ACK_TIMEOUT;
-
-    /** Join timeout. */
-    @SuppressWarnings("RedundantFieldInitialization")
-    private long joinTimeout = DFLT_JOIN_TIMEOUT;
-
-    /** Max heartbeats count node can miss without initiating status check. */
-    private int maxMissedHbs = DFLT_MAX_MISSED_HEARTBEATS;
-
-    /** Max heartbeats count node can miss without failing client node. */
-    private int maxMissedClientHbs = DFLT_MAX_MISSED_CLIENT_HEARTBEATS;
-
-    /** IP finder clean frequency. */
-    @SuppressWarnings({"FieldAccessedSynchronizedAndUnsynchronized"})
-    private long ipFinderCleanFreq = DFLT_IP_FINDER_CLEAN_FREQ;
-
-    /** Reconnect attempts count. */
-    @SuppressWarnings({"FieldAccessedSynchronizedAndUnsynchronized"})
-    private int reconCnt = DFLT_RECONNECT_CNT;
-
-    /** Grid marshaller. */
-    @IgniteMarshallerResource
-    private IgniteMarshaller gridMarsh;
-
-    /** Nodes ring. */
-    @GridToStringExclude
-    private final TcpDiscoveryNodesRing ring = new TcpDiscoveryNodesRing();
-
-    /** Topology snapshots history. */
-    private final SortedMap<Long, Collection<ClusterNode>> topHist = new TreeMap<>();
-
-    /** Socket readers. */
-    private final Collection<SocketReader> readers = new LinkedList<>();
-
-    /** TCP server for discovery SPI. */
-    private TcpServer tcpSrvr;
-
-    /** Message worker. */
-    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
-    private RingMessageWorker msgWorker;
-
-    /** Client message workers. */
-    private ConcurrentMap<UUID, ClientMessageWorker> clientMsgWorkers = new ConcurrentHashMap8<>();
-
-    /** Metrics sender. */
-    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
-    private HeartbeatsSender hbsSnd;
-
-    /** Status checker. */
-    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
-    private CheckStatusSender chkStatusSnd;
-
-    /** IP finder cleaner. */
-    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
-    private IpFinderCleaner ipFinderCleaner;
-
-    /** Statistics printer thread. */
-    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
-    private StatisticsPrinter statsPrinter;
-
-    /** Failed nodes (but still in topology). */
-    private Collection<TcpDiscoveryNode> failedNodes = new HashSet<>();
-
-    /** Leaving nodes (but still in topology). */
-    private Collection<TcpDiscoveryNode> leavingNodes = new HashSet<>();
-
-    /** If non-shared IP finder is used this flag shows whether IP finder contains local address. */
-    private boolean ipFinderHasLocAddr;
-
-    /** Addresses that do not respond during join requests send (for resolving concurrent start). */
-    private final Collection<SocketAddress> noResAddrs = new GridConcurrentHashSet<>();
-
-    /** Addresses that incoming join requests send were send from (for resolving concurrent start). */
-    private final Collection<SocketAddress> fromAddrs = new GridConcurrentHashSet<>();
-
-    /** Response on join request from coordinator (in case of duplicate ID or auth failure). */
-    private final GridTuple<TcpDiscoveryAbstractMessage> joinRes = F.t1();
-
-    /** Context initialization latch. */
-    @GridToStringExclude
-    private final CountDownLatch ctxInitLatch = new CountDownLatch(1);
-
-    /** Node authenticator. */
-    private DiscoverySpiNodeAuthenticator nodeAuth;
-
-    /** Mutex. */
-    private final Object mux = new Object();
-
-    /** Map with proceeding ping requests. */
-    private final ConcurrentMap<InetSocketAddress, IgniteFuture<IgniteBiTuple<UUID, Boolean>>> pingMap =
-        new ConcurrentHashMap8<>();
-
-    /** Debug mode. */
-    private boolean debugMode;
-
-    /** Debug messages history. */
-    private int debugMsgHist = 512;
-
-    /** Received messages. */
-    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
-    private ConcurrentLinkedDeque<String> debugLog;
-
-    /**
-     * Sets address resolver.
-     *
-     * @param addrRslvr Address resolver.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    @IgniteAddressResolverResource
-    public void setAddressResolver(IgniteAddressResolver addrRslvr) {
-        // Injection should not override value already set by Spring or user.
-        if (this.addrRslvr == null)
-            this.addrRslvr = addrRslvr;
-    }
-
-    /**
-     * Gets address resolver.
-     *
-     * @return Address resolver.
-     */
-    public IgniteAddressResolver getAddressResolver() {
-        return addrRslvr;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getReconnectCount() {
-        return reconCnt;
-    }
-
-    /**
-     * Number of times node tries to (re)establish connection to another node.
-     * <p>
-     * Note that SPI implementation will increase {@link #ackTimeout} by factor 2
-     * on every retry.
-     * <p>
-     * If not specified, default is {@link #DFLT_RECONNECT_CNT}.
-     *
-     * @param reconCnt Number of retries during message sending.
-     * @see #setAckTimeout(long)
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setReconnectCount(int reconCnt) {
-        this.reconCnt = reconCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getMaxAckTimeout() {
-        return maxAckTimeout;
-    }
-
-    /**
-     * Sets maximum timeout for receiving acknowledgement for sent message.
-     * <p>
-     * If acknowledgement is not received within this timeout, sending is considered as failed
-     * and SPI tries to repeat message sending. Every time SPI retries messing sending, ack
-     * timeout will be increased. If no acknowledgement is received and {@code maxAckTimeout}
-     * is reached, then the process of message sending is considered as failed.
-     * <p>
-     * If not specified, default is {@link #DFLT_MAX_ACK_TIMEOUT}.
-     *
-     * @param maxAckTimeout Maximum acknowledgement timeout.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setMaxAckTimeout(long maxAckTimeout) {
-        this.maxAckTimeout = maxAckTimeout;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getJoinTimeout() {
-        return joinTimeout;
-    }
-
-    /**
-     * Sets join timeout.
-     * <p>
-     * If non-shared IP finder is used and node fails to connect to
-     * any address from IP finder, node keeps trying to join within this
-     * timeout. If all addresses are still unresponsive, exception is thrown
-     * and node startup fails.
-     * <p>
-     * If not specified, default is {@link #DFLT_JOIN_TIMEOUT}.
-     *
-     * @param joinTimeout Join timeout ({@code 0} means wait forever).
-     *
-     * @see org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setJoinTimeout(long joinTimeout) {
-        this.joinTimeout = joinTimeout;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getLocalPort() {
-        TcpDiscoveryNode locNode0 = locNode;
-
-        return locNode0 != null ? locNode0.discoveryPort() : 0;
-    }
-
-    /**
-     * Sets local port to listen to.
-     * <p>
-     * If not specified, default is {@link #DFLT_PORT}.
-     *
-     * @param locPort Local port to bind.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setLocalPort(int locPort) {
-        this.locPort = locPort;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getLocalPortRange() {
-        return locPortRange;
-    }
-
-    /**
-     * Range for local ports. Local node will try to bind on first available port
-     * starting from {@link #getLocalPort()} up until
-     * <tt>{@link #getLocalPort()} {@code + locPortRange}</tt>.
-     * <p>
-     * If not specified, default is {@link #DFLT_PORT_RANGE}.
-     *
-     * @param locPortRange Local port range to bind.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setLocalPortRange(int locPortRange) {
-        this.locPortRange = locPortRange;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getMaxMissedHeartbeats() {
-        return maxMissedHbs;
-    }
-
-    /**
-     * Sets max heartbeats count node can miss without initiating status check.
-     * <p>
-     * If not provided, default value is {@link #DFLT_MAX_MISSED_HEARTBEATS}.
-     *
-     * @param maxMissedHbs Max missed heartbeats.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setMaxMissedHeartbeats(int maxMissedHbs) {
-        this.maxMissedHbs = maxMissedHbs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getMaxMissedClientHeartbeats() {
-        return maxMissedClientHbs;
-    }
-
-    /**
-     * Sets max heartbeats count node can miss without failing client node.
-     * <p>
-     * If not provided, default value is {@link #DFLT_MAX_MISSED_CLIENT_HEARTBEATS}.
-     *
-     * @param maxMissedClientHbs Max missed client heartbeats.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setMaxMissedClientHeartbeats(int maxMissedClientHbs) {
-        this.maxMissedClientHbs = maxMissedClientHbs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getStatisticsPrintFrequency() {
-        return statsPrintFreq;
-    }
-
-    /**
-     * Sets statistics print frequency.
-     * <p>
-     * If not set default value is {@link #DFLT_STATS_PRINT_FREQ}.
-     * 0 indicates that no print is required. If value is greater than 0 and log is
-     * not quiet then statistics are printed out with INFO level.
-     * <p>
-     * This may be very helpful for tracing topology problems.
-     *
-     * @param statsPrintFreq Statistics print frequency in milliseconds.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setStatisticsPrintFrequency(long statsPrintFreq) {
-        this.statsPrintFreq = statsPrintFreq;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getIpFinderCleanFrequency() {
-        return ipFinderCleanFreq;
-    }
-
-    /**
-     * Sets IP finder clean frequency in milliseconds.
-     * <p>
-     * If not provided, default value is {@link #DFLT_IP_FINDER_CLEAN_FREQ}
-     *
-     * @param ipFinderCleanFreq IP finder clean frequency.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setIpFinderCleanFrequency(long ipFinderCleanFreq) {
-        this.ipFinderCleanFreq = ipFinderCleanFreq;
-    }
-
-    /**
-     * This method is intended for troubleshooting purposes only.
-     *
-     * @param debugMode {code True} to start SPI in debug mode.
-     */
-    public void setDebugMode(boolean debugMode) {
-        this.debugMode = debugMode;
-    }
-
-    /**
-     * This method is intended for troubleshooting purposes only.
-     *
-     * @param debugMsgHist Message history log size.
-     */
-    public void setDebugMessageHistory(int debugMsgHist) {
-        this.debugMsgHist = debugMsgHist;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String getSpiState() {
-        synchronized (mux) {
-            return spiState.name();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getSocketTimeout() {
-        return sockTimeout;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getAckTimeout() {
-        return ackTimeout;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNetworkTimeout() {
-        return netTimeout;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getThreadPriority() {
-        return threadPri;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getHeartbeatFrequency() {
-        return hbFreq;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String getIpFinderFormatted() {
-        return ipFinder.toString();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getMessageWorkerQueueSize() {
-        return msgWorker.queueSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNodesJoined() {
-        return stats.joinedNodesCount();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNodesLeft() {
-        return stats.leftNodesCount();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNodesFailed() {
-        return stats.failedNodesCount();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getPendingMessagesRegistered() {
-        return stats.pendingMessagesRegistered();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getPendingMessagesDiscarded() {
-        return stats.pendingMessagesDiscarded();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getAvgMessageProcessingTime() {
-        return stats.avgMessageProcessingTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getMaxMessageProcessingTime() {
-        return stats.maxMessageProcessingTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalReceivedMessages() {
-        return stats.totalReceivedMessages();
-    }
-
-    /** {@inheritDoc} */
-    @Override public Map<String, Integer> getReceivedMessages() {
-        return stats.receivedMessages();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalProcessedMessages() {
-        return stats.totalProcessedMessages();
-    }
-
-    /** {@inheritDoc} */
-    @Override public Map<String, Integer> getProcessedMessages() {
-        return stats.processedMessages();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCoordinatorSinceTimestamp() {
-        return stats.coordinatorSinceTimestamp();
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public UUID getCoordinator() {
-        TcpDiscoveryNode crd = resolveCoordinator();
-
-        return crd != null ? crd.id() : null;
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public ClusterNode getNode(UUID nodeId) {
-        assert nodeId != null;
-
-        UUID locNodeId0 = locNodeId;
-
-        if (locNodeId0 != null && locNodeId0.equals(nodeId))
-            // Return local node directly.
-            return locNode;
-
-        TcpDiscoveryNode node = ring.node(nodeId);
-
-        if (node != null && !node.visible())
-            return null;
-
-        return node;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<ClusterNode> getRemoteNodes() {
-        return F.<TcpDiscoveryNode, ClusterNode>upcast(ring.visibleRemoteNodes());
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<Object> injectables() {
-        Collection<Object> res = new LinkedList<>();
-
-        if (ipFinder != null)
-            res.add(ipFinder);
-
-        return res;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(String gridName) throws IgniteSpiException {
-        spiStart0(false);
-    }
-
-    /**
-     * Starts or restarts SPI after stop (to reconnect).
-     *
-     * @param restart {@code True} if SPI is restarted after stop.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    private void spiStart0(boolean restart) throws IgniteSpiException {
-        if (!restart)
-            // It is initial start.
-            onSpiStart();
-
-        synchronized (mux) {
-            spiState = DISCONNECTED;
-        }
-
-        if (debugMode) {
-            if (!log.isInfoEnabled())
-                throw new IgniteSpiException("Info log level should be enabled for TCP discovery to work " +
-                    "in debug mode.");
-
-            debugLog = new ConcurrentLinkedDeque<>();
-
-            U.quietAndWarn(log, "TCP discovery SPI is configured in debug mode.");
-        }
-
-        // Clear addresses collections.
-        fromAddrs.clear();
-        noResAddrs.clear();
-
-        sockTimeoutWorker = new SocketTimeoutWorker();
-        sockTimeoutWorker.start();
-
-        msgWorker = new RingMessageWorker();
-        msgWorker.start();
-
-        tcpSrvr = new TcpServer();
-
-        // Init local node.
-        IgniteBiTuple<Collection<String>, Collection<String>> addrs;
-
-        try {
-            addrs = U.resolveLocalAddresses(locHost);
-        }
-        catch (IOException | GridException e) {
-            throw new IgniteSpiException("Failed to resolve local host to set of external addresses: " + locHost, e);
-        }
-
-        locNode = new TcpDiscoveryNode(
-            locNodeId,
-            addrs.get1(),
-            addrs.get2(),
-            tcpSrvr.port,
-            metricsProvider,
-            locNodeVer);
-
-        try {
-            Collection<InetSocketAddress> extAddrs = addrRslvr == null ? null :
-                U.resolveAddresses(addrRslvr, F.flat(Arrays.asList(addrs.get1(), addrs.get2())),
-                    locNode.discoveryPort());
-
-            if (extAddrs != null)
-                locNodeAttrs.put(createSpiAttributeName(ATTR_EXT_ADDRS), extAddrs);
-        }
-        catch (GridException e) {
-            throw new IgniteSpiException("Failed to resolve local host to addresses: " + locHost, e);
-        }
-
-        locNode.setAttributes(locNodeAttrs);
-
-        locNode.local(true);
-
-        locNodeAddrs = getNodeAddresses(locNode);
-
-        if (log.isDebugEnabled())
-            log.debug("Local node initialized: " + locNode);
-
-        // Start TCP server thread after local node is initialized.
-        tcpSrvr.start();
-
-        ring.localNode(locNode);
-
-        if (ipFinder.isShared())
-            registerLocalNodeAddress();
-        else {
-            if (F.isEmpty(ipFinder.getRegisteredAddresses()))
-                throw new IgniteSpiException("Non-shared IP finder must have IP addresses specified in " +
-                    "GridTcpDiscoveryIpFinder.getRegisteredAddresses() configuration property " +
-                    "(specify list of IP addresses in configuration).");
-
-            ipFinderHasLocAddr = ipFinderHasLocalAddress();
-        }
-
-        if (statsPrintFreq > 0 && log.isInfoEnabled()) {
-            statsPrinter = new StatisticsPrinter();
-            statsPrinter.start();
-        }
-
-        stats.onJoinStarted();
-
-        joinTopology();
-
-        stats.onJoinFinished();
-
-        hbsSnd = new HeartbeatsSender();
-        hbsSnd.start();
-
-        chkStatusSnd = new CheckStatusSender();
-        chkStatusSnd.start();
-
-        if (ipFinder.isShared()) {
-            ipFinderCleaner = new IpFinderCleaner();
-            ipFinderCleaner.start();
-        }
-
-        if (log.isDebugEnabled() && !restart)
-            log.debug(startInfo());
-
-        if (restart)
-            getSpiContext().registerPort(tcpSrvr.port, TCP);
-    }
-
-    /**
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    @SuppressWarnings("BusyWait")
-    private void registerLocalNodeAddress() throws IgniteSpiException {
-        // Make sure address registration succeeded.
-        while (true) {
-            try {
-                ipFinder.initializeLocalAddresses(locNode.socketAddresses());
-
-                // Success.
-                break;
-            }
-            catch (IllegalStateException e) {
-                throw new IgniteSpiException("Failed to register local node address with IP finder: " +
-                    locNode.socketAddresses(), e);
-            }
-            catch (IgniteSpiException e) {
-                LT.error(log, e, "Failed to register local node address in IP finder on start " +
-                    "(retrying every 2000 ms).");
-            }
-
-            try {
-                U.sleep(2000);
-            }
-            catch (GridInterruptedException e) {
-                throw new IgniteSpiException("Thread has been interrupted.", e);
-            }
-        }
-    }
-
-    /**
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    private void onSpiStart() throws IgniteSpiException {
-        startStopwatch();
-
-        assertParameter(ipFinder != null, "ipFinder != null");
-        assertParameter(ipFinderCleanFreq > 0, "ipFinderCleanFreq > 0");
-        assertParameter(locPort > 1023, "localPort > 1023");
-        assertParameter(locPortRange >= 0, "localPortRange >= 0");
-        assertParameter(locPort + locPortRange <= 0xffff, "locPort + locPortRange <= 0xffff");
-        assertParameter(netTimeout > 0, "networkTimeout > 0");
-        assertParameter(sockTimeout > 0, "sockTimeout > 0");
-        assertParameter(ackTimeout > 0, "ackTimeout > 0");
-        assertParameter(maxAckTimeout > ackTimeout, "maxAckTimeout > ackTimeout");
-        assertParameter(reconCnt > 0, "reconnectCnt > 0");
-        assertParameter(hbFreq > 0, "heartbeatFreq > 0");
-        assertParameter(maxMissedHbs > 0, "maxMissedHeartbeats > 0");
-        assertParameter(maxMissedClientHbs > 0, "maxMissedClientHeartbeats > 0");
-        assertParameter(threadPri > 0, "threadPri > 0");
-        assertParameter(statsPrintFreq >= 0, "statsPrintFreq >= 0");
-
-        try {
-            locHost = U.resolveLocalHost(locAddr);
-        }
-        catch (IOException e) {
-            throw new IgniteSpiException("Unknown local address: " + locAddr, e);
-        }
-
-        if (log.isDebugEnabled()) {
-            log.debug(configInfo("localHost", locHost.getHostAddress()));
-            log.debug(configInfo("localPort", locPort));
-            log.debug(configInfo("localPortRange", locPortRange));
-            log.debug(configInfo("threadPri", threadPri));
-            log.debug(configInfo("networkTimeout", netTimeout));
-            log.debug(configInfo("sockTimeout", sockTimeout));
-            log.debug(configInfo("ackTimeout", ackTimeout));
-            log.debug(configInfo("maxAckTimeout", maxAckTimeout));
-            log.debug(configInfo("reconnectCount", reconCnt));
-            log.debug(configInfo("ipFinder", ipFinder));
-            log.debug(configInfo("ipFinderCleanFreq", ipFinderCleanFreq));
-            log.debug(configInfo("heartbeatFreq", hbFreq));
-            log.debug(configInfo("maxMissedHeartbeats", maxMissedHbs));
-            log.debug(configInfo("statsPrintFreq", statsPrintFreq));
-        }
-
-        // Warn on odd network timeout.
-        if (netTimeout < 3000)
-            U.warn(log, "Network timeout is too low (at least 3000 ms recommended): " + netTimeout);
-
-        // Warn on odd heartbeat frequency.
-        if (hbFreq < 2000)
-            U.warn(log, "Heartbeat frequency is too high (at least 2000 ms recommended): " + hbFreq);
-
-        registerMBean(gridName, this, TcpDiscoverySpiMBean.class);
-
-        if (ipFinder instanceof TcpDiscoveryMulticastIpFinder) {
-            TcpDiscoveryMulticastIpFinder mcastIpFinder = ((TcpDiscoveryMulticastIpFinder)ipFinder);
-
-            if (mcastIpFinder.getLocalAddress() == null)
-                mcastIpFinder.setLocalAddress(locAddr);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException {
-        super.onContextInitialized0(spiCtx);
-
-        ctxInitLatch.countDown();
-
-        spiCtx.registerPort(tcpSrvr.port, TCP);
-    }
-
-    /** {@inheritDoc} */
-    @Override public IgniteSpiContext getSpiContext() {
-        if (ctxInitLatch.getCount() > 0) {
-            if (log.isDebugEnabled())
-                log.debug("Waiting for context initialization.");
-
-            try {
-                U.await(ctxInitLatch);
-
-                if (log.isDebugEnabled())
-                    log.debug("Context has been initialized.");
-            }
-            catch (GridInterruptedException e) {
-                U.warn(log, "Thread has been interrupted while waiting for SPI context initialization.", e);
-            }
-        }
-
-        return super.getSpiContext();
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        spiStop0(false);
-    }
-
-    /**
-     * Stops SPI finally or stops SPI for restart.
-     *
-     * @param disconnect {@code True} if SPI is being disconnected.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    private void spiStop0(boolean disconnect) throws IgniteSpiException {
-        if (ctxInitLatch.getCount() > 0)
-            // Safety.
-            ctxInitLatch.countDown();
-
-        if (log.isDebugEnabled()) {
-            if (disconnect)
-                log.debug("Disconnecting SPI.");
-            else
-                log.debug("Preparing to start local node stop procedure.");
-        }
-
-        if (disconnect) {
-            synchronized (mux) {
-                spiState = DISCONNECTING;
-            }
-        }
-
-        if (msgWorker != null && msgWorker.isAlive() && !disconnect) {
-            // Send node left message only if it is final stop.
-            msgWorker.addMessage(new TcpDiscoveryNodeLeftMessage(locNodeId));
-
-            synchronized (mux) {
-                long threshold = U.currentTimeMillis() + netTimeout;
-
-                long timeout = netTimeout;
-
-                while (spiState != LEFT && timeout > 0) {
-                    try {
-                        mux.wait(timeout);
-
-                        timeout = threshold - U.currentTimeMillis();
-                    }
-                    catch (InterruptedException ignored) {
-                        Thread.currentThread().interrupt();
-
-                        break;
-                    }
-                }
-
-                if (spiState == LEFT) {
-                    if (log.isDebugEnabled())
-                        log.debug("Verification for local node leave has been received from coordinator" +
-                            " (continuing stop procedure).");
-                }
-                else if (log.isInfoEnabled()) {
-                    log.info("No verification for local node leave has been received from coordinator" +
-                        " (will stop node anyway).");
-                }
-            }
-        }
-
-        U.interrupt(tcpSrvr);
-        U.join(tcpSrvr, log);
-
-        Collection<SocketReader> tmp;
-
-        synchronized (mux) {
-            tmp = U.arrayList(readers);
-        }
-
-        U.interrupt(tmp);
-        U.joinThreads(tmp, log);
-
-        U.interrupt(hbsSnd);
-        U.join(hbsSnd, log);
-
-        U.interrupt(chkStatusSnd);
-        U.join(chkStatusSnd, log);
-
-        U.interrupt(ipFinderCleaner);
-        U.join(ipFinderCleaner, log);
-
-        U.interrupt(msgWorker);
-        U.join(msgWorker, log);
-
-        U.interrupt(sockTimeoutWorker);
-        U.join(sockTimeoutWorker, log);
-
-        U.interrupt(statsPrinter);
-        U.join(statsPrinter, log);
-
-        if (ipFinder != null)
-            ipFinder.close();
-
-        Collection<TcpDiscoveryNode> rmts = null;
-
-        if (!disconnect) {
-            // This is final stop.
-            unregisterMBean();
-
-            if (log.isDebugEnabled())
-                log.debug(stopInfo());
-        }
-        else {
-            getSpiContext().deregisterPorts();
-
-            rmts = ring.visibleRemoteNodes();
-        }
-
-        long topVer = ring.topologyVersion();
-
-        ring.clear();
-
-        if (rmts != null && !rmts.isEmpty()) {
-            // This is restart/disconnection and remote nodes are not empty.
-            // We need to fire FAIL event for each.
-            DiscoverySpiListener lsnr = this.lsnr;
-
-            if (lsnr != null) {
-                Collection<ClusterNode> processed = new LinkedList<>();
-
-                for (TcpDiscoveryNode n : rmts) {
-                    assert n.visible();
-
-                    processed.add(n);
-
-                    Collection<ClusterNode> top = F.viewReadOnly(rmts, F.<ClusterNode>identity(), F.notIn(processed));
-
-                    topVer++;
-
-                    Map<Long, Collection<ClusterNode>> hist = updateTopologyHistory(topVer, top);
-
-                    lsnr.onDiscovery(EVT_NODE_FAILED, topVer, n, top, hist);
-                }
-            }
-        }
-
-        printStatistics();
-
-        stats.clear();
-
-        synchronized (mux) {
-            // Clear stored data.
-            leavingNodes.clear();
-            failedNodes.clear();
-
-            spiState = DISCONNECTED;
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void onContextDestroyed0() {
-        super.onContextDestroyed0();
-
-        if (ctxInitLatch.getCount() > 0)
-            // Safety.
-            ctxInitLatch.countDown();
-
-        getSpiContext().deregisterPorts();
-    }
-
-    /**
-     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
-     * @return {@code true} if IP finder contains local address.
-     */
-    private boolean ipFinderHasLocalAddress() throws IgniteSpiException {
-        for (InetSocketAddress locAddr : locNodeAddrs) {
-            for (InetSocketAddress addr : registeredAddresses())
-                try {
-                    int port = addr.getPort();
-
-                    InetSocketAddress resolved = addr.isUnresolved() ?
-                        new InetSocketAddress(InetAddress.getByName(addr.getHostName()), port) :
-                        new InetSocketAddress(addr.getAddress(), port);
-
-                    if (resolved.equals(locAddr))
-                        return true;
-                }
-                catch (UnknownHostException ignored) {
-                    // No-op.
-                }
-        }
-
-        return false;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean pingNode(UUID nodeId) {
-        assert nodeId != null;
-
-        if (nodeId == locNodeId)
-            return true;
-
-        TcpDiscoveryNode node = ring.node(nodeId);
-
-        if (node == null || !node.visible())
-            return false;
-
-        boolean res = pingNode(node);
-
-        if (!res && !node.isClient()) {
-            LT.warn(log, null, "Failed to ping node (status check will be initiated): " + nodeId);
-
-            msgWorker.addMessage(new TcpDiscoveryStatusCheckMessage(locNode, node.id()));
-        }
-
-        return res;
-    }
-
-    /**
-     * Pings the remote node to see if it's alive.
-     *
-     * @param node Node.
-     * @return {@code True} if ping succeeds.
-     */
-    private boolean pingNode(TcpDiscoveryNode node) {
-        assert node != null;
-
-        if (node.id().equals(locNodeId))
-            return true;
-
-        UUID clientNodeId = null;
-
-        if (node.isClient()) {
-            clientNodeId = node.id();
-
-            node = ring.node(node.clientRouterNodeId());
-
-            if (node == null || !node.visible())
-                return false;
-        }
-
-        for (InetSocketAddress addr : getNodeAddresses(node, U.sameMacs(locNode, node))) {
-            try {
-                // ID returned by the node should be the same as ID of the parameter for ping to succeed.
-                IgniteBiTuple<UUID, Boolean> t = pingNode(addr, clientNodeId);
-
-                return node.id().equals(t.get1()) && (clientNodeId == null || t.get2());
-            }
-            catch (GridException e) {
-                if (log.isDebugEnabled())
-                    log.debug("Failed to ping node [node=" + node + ", err=" + e.getMessage() + ']');
-
-                // continue;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Pings the remote node by its address to see if it's alive.
-     *
-     * @param addr Address of the node.
-     * @return ID of the remote node if node alive.
-     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
-     */
-    private IgniteBiTuple<UUID, Boolean> pingNode(InetSocketAddress addr, @Nullable UUID clientNodeId)
-        throws GridException {
-        assert addr != null;
-
-        if (F.contains(locNodeAddrs, addr))
-            return F.t(locNodeId, false);
-
-        GridFutureAdapterEx<IgniteBiTuple<UUID, Boolean>> fut = new GridFutureAdapterEx<>();
-
-        IgniteFuture<IgniteBiTuple<UUID, Boolean>> oldFut = pingMap.putIfAbsent(addr, fut);
-
-        if (oldFut != null)
-            return oldFut.get();
-        else {
-            Collection<Throwable> errs = null;
-
-            try {
-                Socket sock = null;
-
-                for (int i = 0; i < reconCnt; i++) {
-                    try {
-                        if (addr.isUnresolved())
-                            addr = new InetSocketAddress(InetAddress.getByName(addr.getHostName()), addr.getPort());
-
-                        long tstamp = U.currentTimeMillis();
-
-                        sock = openSocket(addr);
-
-                        writeToSocket(sock, new TcpDiscoveryPingRequest(locNodeId, clientNodeId));
-
-                        TcpDiscoveryPingResponse res = readMessage(sock, null, netTimeout);
-
-                        if (locNodeId.equals(res.creatorNodeId())) {
-                            if (log.isDebugEnabled())
-                                log.debug("Ping response from local node: " + res);
-
-                            break;
-                        }
-
-                        stats.onClientSocketInitialized(U.currentTimeMillis() - tstamp);
-
-                        IgniteBiTuple<UUID, Boolean> t = F.t(res.creatorNodeId(), res.clientExists());
-
-                        fut.onDone(t);
-
-                        return t;
-                    }
-                    catch (IOException | GridException e) {
-                        if (errs == null)
-                            errs = new ArrayList<>();
-
-                        errs.add(e);
-                    }
-                    finally {
-                        U.closeQuiet(sock);
-                    }
-                }
-            }
-            catch (Throwable t) {
-                fut.onDone(t);
-
-                throw U.cast(t);
-            }
-            finally {
-                if (!fut.isDone())
-                    fut.onDone(U.exceptionWithSuppressed("Failed to ping node by address: " + addr, errs));
-
-                boolean b = pingMap.remove(addr, fut);
-
-                assert b;
-            }
-
-            return fut.get();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void disconnect() throws IgniteSpiException {
-        spiStop0(true);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void setAuthenticator(DiscoverySpiNodeAuthenticator nodeAuth) {
-        this.nodeAuth = nodeAuth;
-    }
-
-    /**
-     * Tries to join this node to topology.
-     *
-     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
-     */
-    private void joinTopology() throws IgniteSpiException {
-        synchronized (mux) {
-            assert spiState == CONNECTING || spiState == DISCONNECTED;
-
-            spiState = CONNECTING;
-        }
-
-        GridSecurityCredentials locCred = (GridSecurityCredentials)locNode.getAttributes()
-            .get(GridNodeAttributes.ATTR_SECURITY_CREDENTIALS);
-
-        // Marshal credentials for backward compatibility and security.
-        marshalCredentials(locNode);
-
-        while (true) {
-            if (!sendJoinRequestMessage()) {
-                if (log.isDebugEnabled())
-                    log.debug("Join request message has not been sent (local node is the first in the topology).");
-
-                // Authenticate local node.
-                try {
-                    GridSecurityContext subj = nodeAuth.authenticateNode(locNode, locCred);
-
-                    if (subj == null)
-                        throw new IgniteSpiException("Authentication failed for local node: " + locNode.id());
-
-                    Map<String, Object> attrs = new HashMap<>(locNode.attributes());
-
-                    attrs.put(GridNodeAttributes.ATTR_SECURITY_SUBJECT, gridMarsh.marshal(subj));
-                    attrs.remove(GridNodeAttributes.ATTR_SECURITY_CREDENTIALS);
-
-                    locNode.setAttributes(attrs);
-                }
-                catch (GridException e) {
-                    throw new IgniteSpiException("Failed to authenticate local node (will shutdown local node).", e);
-                }
-
-                locNode.order(1);
-                locNode.internalOrder(1);
-
-                gridStartTime = U.currentTimeMillis();
-
-                locNode.visible(true);
-
-                ring.clear();
-
-                ring.topologyVersion(1);
-
-                synchronized (mux) {
-                    topHist.clear();
-
-                    spiState = CONNECTED;
-
-                    mux.notifyAll();
-                }
-
-                notifyDiscovery(EVT_NODE_JOINED, 1, locNode);
-
-                break;
-            }
-
-            if (log.isDebugEnabled())
-                log.debug("Join request message has been sent (waiting for coordinator response).");
-
-            synchronized (mux) {
-                long threshold = U.currentTimeMillis() + netTimeout;
-
-                long timeout = netTimeout;
-
-                while (spiState == CONNECTING && timeout > 0) {
-                    try {
-                        mux.wait(timeout);
-
-                        timeout = threshold - U.currentTimeMillis();
-                    }
-                    catch (InterruptedException ignored) {
-                        Thread.currentThread().interrupt();
-
-                        throw new IgniteSpiException("Thread has been interrupted.");
-                    }
-                }
-
-                if (spiState == CONNECTED)
-                    break;
-                else if (spiState == DUPLICATE_ID)
-                    throw duplicateIdError((TcpDiscoveryDuplicateIdMessage)joinRes.get());
-                else if (spiState == AUTH_FAILED)
-                    throw authenticationFailedError((TcpDiscoveryAuthFailedMessage)joinRes.get());
-                else if (spiState == CHECK_FAILED)
-                    throw checkFailedError((TcpDiscoveryCheckFailedMessage)joinRes.get());
-                else if (spiState == LOOPBACK_PROBLEM) {
-                    TcpDiscoveryLoopbackProblemMessage msg = (TcpDiscoveryLoopbackProblemMessage)joinRes.get();
-
-                    boolean locHostLoopback = locHost.isLoopbackAddress();
-
-                    String firstNode = locHostLoopback ? "local" : "remote";
-
-                    String secondNode = locHostLoopback ? "remote" : "local";
-
-                    throw new IgniteSpiException("Failed to add node to topology because " + firstNode +
-                        " node is configured to use loopback address, but " + secondNode + " node is not " +
-                        "(consider changing 'localAddress' configuration parameter) " +
-                        "[locNodeAddrs=" + U.addressesAsString(locNode) + ", rmtNodeAddrs=" +
-                        U.addressesAsString(msg.addresses(), msg.hostNames()) + ']');
-                }
-                else
-                    LT.warn(log, null, "Node has not been connected to topology and will repeat join process. " +
-                        "Check remote nodes logs for possible error messages. " +
-                        "Note that large topology may require significant time to start. " +
-                        "Increase 'GridTcpDiscoverySpi.networkTimeout' configuration property " +
-                        "if getting this message on the starting nodes [networkTimeout=" + netTimeout + ']');
-            }
-        }
-
-        assert locNode.order() != 0;
-        assert locNode.internalOrder() != 0;
-
-        if (log.isDebugEnabled())
-            log.debug("Discovery SPI has been connected to topology with order: " + locNode.internalOrder());
-    }
-
-    /**
-     * @param msg Error message.
-     * @return Remote grid version parsed from error message.
-     * @deprecated This method was created for preserving backward compatibility. During major version update
-     *      parsing of error message should be replaced with new {@link org.gridgain.grid.spi.discovery.tcp.messages.TcpDiscoveryCheckFailedMessage}
-     *      which contains all necessary information.
-     */
-    @Deprecated
-    @Nullable private String parseRemoteVersion(String msg) {
-        msg = msg.replaceAll("\\s", "");
-
-        final String verPrefix = "rmtBuildVer=";
-
-        int startIdx = msg.indexOf(verPrefix);
-        int endIdx = msg.indexOf(',', startIdx);
-
-        if (endIdx < 0)
-            endIdx = msg.indexOf(']', startIdx);
-
-        if (startIdx < 0 || endIdx < 0)
-            return null;
-
-        return msg.substring(startIdx + verPrefix.length() - 1, endIdx);
-    }
-
-    /**
-     * Tries to send join request message to a random node presenting in topology.
-     * Address is provided by {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} and message is
-     * sent to first node connection succeeded to.
-     *
-     * @return {@code true} if send succeeded.
-     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
-     */
-    @SuppressWarnings({"BusyWait"})
-    private boolean sendJoinRequestMessage() throws IgniteSpiException {
-        TcpDiscoveryAbstractMessage joinReq = new TcpDiscoveryJoinRequestMessage(locNode,
-            exchange.collect(locNodeId));
-
-        // Time when it has been detected, that addresses from IP finder do not respond.
-        long noResStart = 0;
-
-        while (true) {
-            Collection<InetSocketAddress> addrs = resolvedAddresses();
-
-            if (F.isEmpty(addrs))
-                return false;
-
-            boolean retry = false;
-            GridException errs = null;
-
-            for (InetSocketAddress addr : addrs) {
-                try {
-                    Integer res = sendMessageDirectly(joinReq, addr);
-
-                    assert res != null;
-
-                    noResAddrs.remove(addr);
-
-                    // Address is responsive, reset period start.
-                    noResStart = 0;
-
-                    switch (res) {
-                        case RES_WAIT:
-                            // Concurrent startup, try sending join request again or wait if no success.
-                            retry = true;
-
-                            break;
-                        case RES_OK:
-                            if (log.isDebugEnabled())
-                                log.debug("Join request message has been sent to address [addr=" + addr +
-                                    ", req=" + joinReq + ']');
-
-                            // Join request sending succeeded, wait for response from topology.
-                            return true;
-
-                        default:
-                            // Concurrent startup, try next node.
-                            if (res == RES_CONTINUE_JOIN) {
-                                if (!fromAddrs.contains(addr))
-                                    retry = true;
-                            }
-                            else {
-                                if (log.isDebugEnabled())
-                                    log.debug("Unexpected response to join request: " + res);
-
-                                retry = true;
-                            }
-
-                            break;
-                    }
-                }
-                catch (IgniteSpiException e) {
-                    if (errs == null)
-                        errs = new GridException("Multiple connection attempts failed.");
-
-                    errs.addSuppressed(e);
-
-                    if (log.isDebugEnabled()) {
-                        IOException ioe = X.cause(e, IOException.class);
-
-                        log.debug("Failed to send join request message [addr=" + addr +
-                            ", msg=" + ioe != null ? ioe.getMessage() : e.getMessage() + ']');
-                    }
-
-                    noResAddrs.add(addr);
-                }
-            }
-
-            if (retry) {
-                if (log.isDebugEnabled())
-                    log.debug("Concurrent discovery SPI start has been detected (local node should wait).");
-
-                try {
-                    U.sleep(2000);
-                }
-                catch (GridInterruptedException e) {
-                    throw new IgniteSpiException("Thread has been interrupted.", e);
-                }
-            }
-            else if (!ipFinder.isShared() && !ipFinderHasLocAddr) {
-                if (errs != null && X.hasCause(errs, ConnectException.class))
-                    LT.warn(log, null, "Failed to connect to any address from IP finder " +
-                        "(make sure IP finder addresses are correct and firewalls are disabled on all host machines): " +
-                        addrs);
-
-                if (joinTimeout > 0) {
-                    if (noResStart == 0)
-                        noResStart = U.currentTimeMillis();
-                    else if (U.currentTimeMillis() - noResStart > joinTimeout)
-                        throw new IgniteSpiException(
-                            "Failed to connect to any address from IP finder within join timeout " +
-                                "(make sure IP finder addresses are correct, and operating system firewalls are disabled " +
-                                "on all host machines, or consider increasing 'joinTimeout' configuration property): " +
-                                addrs, errs);
-                }
-
-                try {
-                    U.sleep(2000);
-                }
-                catch (GridInterruptedException e) {
-                    throw new IgniteSpiException("Thread has been interrupted.", e);
-                }
-            }
-            else
-                break;
-        }
-
-        return false;
-    }
-
-    /**
-     * Establishes connection to an address, sends message and returns the response (if any).
-     *
-     * @param msg Message to send.
-     * @param addr Address to send message to.
-     * @return Response read from the recipient or {@code null} if no response is supposed.
-     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
-     */
-    @Nullable private Integer sendMessageDirectly(TcpDiscoveryAbstractMessage msg, InetSocketAddress addr)
-        throws IgniteSpiException {
-        assert msg != null;
-        assert addr != null;
-
-        Collection<Throwable> errs = null;
-
-        Socket sock = null;
-
-        long ackTimeout0 = ackTimeout;
-
-        int connectAttempts = 1;
-
-        boolean joinReqSent = false;
-
-        for (int i = 0; i < reconCnt; i++) {
-            // Need to set to false on each new iteration,
-            // since remote node may leave in the middle of the first iteration.
-            joinReqSent = false;
-
-            boolean openSock = false;
-
-            try {
-                long tstamp = U.currentTimeMillis();
-
-                sock = openSocket(addr);
-
-                openSock = true;
-
-                // Handshake.
-                writeToSocket(sock, new TcpDiscoveryHandshakeRequest(locNodeId));
-
-                TcpDiscoveryHandshakeResponse res = readMessage(sock, null, ackTimeout0);
-
-                if (locNodeId.equals(res.creatorNodeId())) {
-                    if (log.isDebugEnabled())
-                        log.debug("Handshake response from local node: " + res);
-
-                    break;
-                }
-
-                stats.onClientSocketInitialized(U.currentTimeMillis() - tstamp);
-
-                // Send message.
-                tstamp = U.currentTimeMillis();
-
-                writeToSocket(sock, msg);
-
-                stats.onMessageSent(msg, U.currentTimeMillis() - tstamp);
-
-                if (debugMode)
-                    debugLog("Message has been sent directly to address [msg=" + msg + ", addr=" + addr +
-                        ", rmtNodeId=" + res.creatorNodeId() + ']');
-
-                if (log.isDebugEnabled())
-                    log.debug("Message has been sent directly to address [msg=" + msg + ", addr=" + addr +
-                        ", rmtNodeId=" + res.creatorNodeId() + ']');
-
-                // Connection has been established, but
-                // join request may not be unmarshalled on remote host.
-                // E.g. due to class not found issue.
-                joinReqSent = msg instanceof TcpDiscoveryJoinRequestMessage;
-
-                return readReceipt(sock, ackTimeout0);
-            }
-            catch (ClassCastException e) {
-                // This issue is rarely reproducible on AmazonEC2, but never
-                // on dedicated machines.
-                if (log.isDebugEnabled())
-                    U.error(log, "Class cast exception on direct send: " + addr, e);
-
-                if (errs == null)
-                    errs = new ArrayList<>();
-
-                errs.add(e);
-            }
-            catch (IOException | GridException e) {
-                if (log.isDebugEnabled())
-                    log.error("Exception on direct send: " + e.getMessage(), e);
-
-                if (errs == null)
-                    errs = new ArrayList<>();
-
-                errs.add(e);
-
-                if (!openSock) {
-                    // Reconnect for the second time, if connection is not established.
-                    if (connectAttempts < 2) {
-                        connectAttempts++;
-
-                        continue;
-                    }
-
-                    break; // Don't retry if we can not establish connection.
-                }
-
-                if (e instanceof SocketTimeoutException || X.hasCause(e, SocketTimeoutException.class)) {
-                    ackTimeout0 *= 2;
-
-                    if (!checkAckTimeout(ackTimeout0))
-                        break;
-                }
-            }
-            finally {
-                U.closeQuiet(sock);
-            }
-        }
-
-        if (joinReqSent) {
-            if (log.isDebugEnabled())
-                log.debug("Join request has been sent, but receipt has not been read (returning RES_WAIT).");
-
-            // Topology will not include this node,
-            // however, warning on timed out join will be output.
-            return RES_OK;
-        }
-
-        throw new IgniteSpiException(
-            "Failed to send message to address [addr=" + addr + ", msg=" + msg + ']',
-            U.exceptionWithSuppressed("Failed to send message to address " +
-                "[addr=" + addr + ", msg=" + msg + ']', errs));
-    }
-
-    /**
-     * Marshalls credentials with discovery SPI marshaller (will replace attribute value).
-     *
-     * @param node Node to marshall credentials for.
-     * @throws org.apache.ignite.spi.IgniteSpiException If marshalling failed.
-     */
-    private void marshalCredentials(TcpDiscoveryNode node) throws IgniteSpiException {
-        try {
-            // Use security-unsafe getter.
-            Map<String, Object> attrs = new HashMap<>(node.getAttributes());
-
-            attrs.put(GridNodeAttributes.ATTR_SECURITY_CREDENTIALS,
-                marsh.marshal(attrs.get(GridNodeAttributes.ATTR_SECURITY_CREDENTIALS)));
-
-            node.setAttributes(attrs);
-        }
-        catch (GridException e) {
-            throw new IgniteSpiException("Failed to marshal node security credentials: " + node.id(), e);
-        }
-    }
-
-    /**
-     * Unmarshalls credentials with discovery SPI marshaller (will not replace attribute value).
-     *
-     * @param node Node to unmarshall credentials for.
-     * @return Security credentials.
-     * @throws org.apache.ignite.spi.IgniteSpiException If unmarshal fails.
-     */
-    private GridSecurityCredentials unmarshalCredentials(TcpDiscoveryNode node) throws IgniteSpiException {
-        try {
-            byte[] credBytes = (byte[])node.getAttributes().get(GridNodeAttributes.ATTR_SECURITY_CREDENTIALS);
-
-            if (credBytes == null)
-                return null;
-
-            return marsh.unmarshal(credBytes, null);
-        }
-        catch (GridException e) {
-            throw new IgniteSpiException("Failed to unmarshal node security credentials: " + node.id(), e);
-        }
-    }
-
-    /**
-     * @param ackTimeout Acknowledgement timeout.
-     * @return {@code True} if acknowledgement timeout is less or equal to
-     * maximum acknowledgement timeout, {@code false} otherwise.
-     */
-    private boolean checkAckTimeout(long ackTimeout) {
-        if (ackTimeout > maxAckTimeout) {
-            LT.warn(log, null, "Acknowledgement timeout is greater than maximum acknowledgement timeout " +
-                "(consider increasing 'maxAckTimeout' configuration property) " +
-                "[ackTimeout=" + ackTimeout + ", maxAckTimeout=" + maxAckTimeout + ']');
-
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Notify external listener on discovery event.
-     *
-     * @param type Discovery event type. See {@link org.apache.ignite.events.IgniteDiscoveryEvent} for more details.
-     * @param topVer Topology version.
-     * @param node Remote node this event is connected with.
-     */
-    private void notifyDiscovery(int type, long topVer, TcpDiscoveryNode node) {
-        assert type > 0;
-        assert node != null;
-
-        DiscoverySpiListener lsnr = this.lsnr;
-
-        TcpDiscoverySpiState spiState = spiStateCopy();
-
-        if (lsnr != null && node.visible() && (spiState == CONNECTED || spiState == DISCONNECTING)) {
-            if (log.isDebugEnabled())
-                log.debug("Discovery notification [node=" + node + ", spiState=" + spiState +
-                    ", type=" + U.gridEventName(type) + ", topVer=" + topVer + ']');
-
-            Collection<ClusterNode> top = F.<TcpDiscoveryNode, ClusterNode>upcast(ring.visibleNodes());
-
-            Map<Long, Collection<ClusterNode>> hist = updateTopologyHistory(topVer, top);
-
-            lsnr.onDiscovery(type, topVer, node, top, hist);
-        }
-        else if (log.isDebugEnabled())
-            log.debug("Skipped discovery notification [node=" + node + ", spiState=" + spiState +
-                ", type=" + U.gridEventName(type) + ", topVer=" + topVer + ']');
-    }
-
-    /**
-     * Update topology history with new topology snapshots.
-     *
-     * @param topVer Topology version.
-     * @param top Topology snapshot.
-     * @return Copy of updated topology history.
-     */
-    @Nullable private Map<Long, Collection<ClusterNode>> updateTopologyHistory(long topVer, Collection<ClusterNode> top) {
-        synchronized (mux) {
-            if (topHist.containsKey(topVer))
-                return null;
-
-            topHist.put(topVer, top);
-
-            while (topHist.size() > topHistSize)
-                topHist.remove(topHist.firstKey());
-
-            if (log.isDebugEnabled())
-                log.debug("Added topology snapshot to history, topVer=" + topVer + ", historySize=" + topHist.size());
-
-            return new TreeMap<>(topHist);
-        }
-    }
-
-    /**
-     * @param node Node.
-     * @return {@link LinkedHashSet} of internal and external addresses of provided node.
-     *      Internal addresses placed before external addresses.
-     */
-    @SuppressWarnings("TypeMayBeWeakened")
-    private LinkedHashSet<InetSocketAddress> getNodeAddresses(TcpDiscoveryNode node) {
-        LinkedHashSet<InetSocketAddress> res = new LinkedHashSet<>(node.socketAddresses());
-
-        Collection<InetSocketAddress> extAddrs = node.attribute(createSpiAttributeName(ATTR_EXT_ADDRS));
-
-        if (extAddrs != null)
-            res.addAll(extAddrs);
-
-        return res;
-    }
-
-    /**
-     * @param node Node.
-     * @param sameHost Same host flag.
-     * @return {@link LinkedHashSet} of internal and external addresses of provided node.
-     *      Internal addresses placed before external addresses.
-     *      Internal addresses will be sorted with {@code inetAddressesComparator(sameHost)}.
-     */
-    @SuppressWarnings("TypeMayBeWeakened")
-    private LinkedHashSet<InetSocketAddress> getNodeAddresses(TcpDiscoveryNode node, boolean sameHost) {
-        List<InetSocketAddress> addrs = U.arrayList(node.socketAddresses());
-
-        Collections.sort(addrs, U.inetAddressesComparator(sameHost));
-
-        LinkedHashSet<InetSocketAddress> res = new LinkedHashSet<>(addrs);
-
-        Collection<InetSocketAddress> extAddrs = node.attribute(createSpiAttributeName(ATTR_EXT_ADDRS));
-
-        if (extAddrs != null)
-            res.addAll(extAddrs);
-
-        return res;
-    }
-
-    /**
-     * Checks whether local node is coordinator. Nodes that are leaving or failed
-     * (but are still in topology) are removed from search.
-     *
-     * @return {@code true} if local node is coordinator.
-     */
-    private boolean isLocalNodeCoordinator() {
-        synchronized (mux) {
-            boolean crd = spiState == CONNECTED && locNode.equals(resolveCoordinator());
-
-            if (crd)
-                stats.onBecomingCoordinator();
-
-            return crd;
-        }
-    }
-
-    /**
-     * @return Spi state copy.
-     */
-    private TcpDiscoverySpiState spiStateCopy() {
-        TcpDiscoverySpiState state;
-
-        synchronized (mux) {
-            state = spiState;
-        }
-
-        return state;
-    }
-
-    /**
-     * Resolves coordinator. Nodes that are leaving or failed (but are still in
-     * topology) are removed from search.
-     *
-     * @return Coordinator node or {@code null} if there are no coordinator
-     * (i.e. local node is the last one and is currently stopping).
-     */
-    @Nullable private TcpDiscoveryNode resolveCoordinator() {
-        return resolveCoordinator(null);
-    }
-
-    /**
-     * Resolves coordinator. Nodes that are leaving or failed (but are still in
-     * topology) are removed from search as well as provided filter.
-     *
-     * @param filter Nodes to exclude when resolving coordinator (optional).
-     * @return Coordinator node or {@code null} if there are no coordinator
-     * (i.e. local node is the last one and is currently stopping).
-     */
-    @Nullable private TcpDiscoveryNode resolveCoordinator(
-        @Nullable Collection<TcpDiscoveryNode> filter) {
-        synchronized (mux) {
-            Collection<TcpDiscoveryNode> excluded = F.concat(false, failedNodes, leavingNodes);
-
-            if (!F.isEmpty(filter))
-                excluded = F.concat(false, excluded, filter);
-
-            return ring.coordinator(excluded);
-        }
-    }
-
-    /**
-     * Prints SPI statistics.
-     */
-    private void printStatistics() {
-        if (log.isInfoEnabled() && statsPrintFreq > 0) {
-            int failedNodesSize;
-            int leavingNodesSize;
-
-            synchronized (mux) {
-                failedNodesSize = failedNodes.size();
-                leavingNodesSize = leavingNodes.size();
-            }
-
-            Runtime runtime = Runtime.getRuntime();
-
-            TcpDiscoveryNode coord = resolveCoordinator();
-
-            log.info("Discovery SPI statistics [statistics=" + stats + ", spiState=" + spiStateCopy() +
-                ", coord=" + coord +
-                ", topSize=" + ring.allNodes().size() +
-                ", leavingNodesSize=" + leavingNodesSize + ", failedNodesSize=" + failedNodesSize +
-                ", msgWorker.queue.size=" + (msgWorker != null ? msgWorker.queueSize() : "N/A") +
-                ", lastUpdate=" + (locNode != null ? U.format(locNode.lastUpdateTime()) : "N/A") +
-                ", heapFree=" + runtime.freeMemory() / (1024 * 1024) +
-                "M, heapTotal=" + runtime.maxMemory() / (1024 * 1024) + "M]");
-        }
-    }
-
-    /**
-     * @param msg Message to prepare.
-     * @param destNodeId Destination node ID.
-     * @param msgs Messages to include.
-     * @param discardMsgId Discarded message ID.
-     */
-    private void prepareNodeAddedMessage(TcpDiscoveryAbstractMessage msg, UUID destNodeId,
-        @Nullable Collection<TcpDiscoveryAbstractMessage> msgs, @Nullable IgniteUuid discardMsgId) {
-        assert destNodeId != null;
-
-        if (msg instanceof TcpDiscoveryNodeAddedMessage) {
-            TcpDiscoveryNodeAddedMessage nodeAddedMsg = (TcpDiscoveryNodeAddedMessage)msg;
-
-            TcpDiscoveryNode node = nodeAddedMsg.node();
-
-            if (node.id().equals(destNodeId)) {
-                Collection<TcpDiscoveryNode> allNodes = ring.allNodes();
-                Collection<TcpDiscoveryNode> topToSend = new ArrayList<>(allNodes.size());
-
-                for (TcpDiscoveryNode n0 : allNodes) {
-                    assert n0.internalOrder() != 0 : n0;
-
-                    // Skip next node and nodes added after next
-                    // in case this message is resent due to failures/leaves.
-                    // There will be separate messages for nodes with greater
-                    // internal order.
-                    if (n0.internalOrder() < nodeAddedMsg.node().internalOrder())
-                        topToSend.add(n0);
-                }
-
-                nodeAddedMsg.topology(topToSend);
-                nodeAddedMsg.messages(msgs, discardMsgId);
-
-                Map<Long, Collection<ClusterNode>> hist;
-
-                synchronized (mux) {
-                    hist = new TreeMap<>(topHist);
-                }
-
-                nodeAddedMsg.topologyHistory(hist);
-            }
-        }
-    }
-
-    /**
-     * @param msg Message to clear.
-     */
-    private void clearNodeAddedMessage(TcpDiscoveryAbstractMessage msg) {
-        if (msg instanceof TcpDiscoveryNodeAddedMessage) {
-            // Nullify topology before registration.
-            TcpDiscoveryNodeAddedMessage nodeAddedMsg = (TcpDiscoveryNodeAddedMessage)msg;
-
-            nodeAddedMsg.topology(null);
-            nodeAddedMsg.topologyHistory(null);
-            nodeAddedMsg.messages(null, null);
-        }
-    }
-
-    /**
-     * <strong>FOR TEST ONLY!!!</strong>
-     * <p>
-     * Simulates this node failure by stopping service threads. So, node will become
-     * unresponsive.
-     * <p>
-     * This method is intended for test purposes only.
-     */
-    void simulateNodeFailure() {
-        U.warn(log, "Simulating node failure: " + locNodeId);
-
-        U.interrupt(tcpSrvr);
-        U.join(tcpSrvr, log);
-
-        U.interrupt(hbsSnd);
-        U.join(hbsSnd, log);
-
-        U.interrupt(chkStatusSnd);
-        U.join(chkStatusSnd, log);
-
-        U.interrupt(ipFinderCleaner);
-        U.join(ipFinderCleaner, log);
-
-        Collection<SocketReader> tmp;
-
-        synchronized (mux) {
-            tmp = U.arrayList(readers);
-        }
-
-        U.interrupt(tmp);
-        U.joinThreads(tmp, log);
-
-        U.interrupt(msgWorker);
-        U.join(msgWorker, log);
-
-        U.interrupt(statsPrinter);
-        U.join(statsPrinter, log);
-    }
-
-    /**
-     * <strong>FOR TEST ONLY!!!</strong>
-     * <p>
-     * Simulates situation when next node is still alive but is bypassed
-     * since it has been excluded from the ring, possibly, due to short time
-     * network problems.
-     * <p>
-     * This method is intended for test purposes only.
-     */
-    void forceNextNodeFailure() {
-        U.warn(log, "Next node will be forcibly failed (if any).");
-
-        TcpDiscoveryNode next;
-
-        synchronized (mux) {
-            next = ring.nextNode(failedNodes);
-        }
-
-        if (next != null)
-            msgWorker.addMessage(new TcpDiscoveryNodeFailedMessage(locNodeId, next.id(), next.internalOrder()));
-    }
-
-    /**
-     * <strong>FOR TEST ONLY!!!</strong>
-     * <p>
-     * This method is intended for test purposes only.
-     *
-     * @param msg Message.
-     */
-    void onBeforeMessageSentAcrossRing(Serializable msg) {
-        // No-op.
-    }
-
-    /**
-     * <strong>FOR TEST ONLY!!!</strong>
-     * <p>
-     * This method is intended for test purposes only.
-     *
-     * @return Nodes ring.
-     */
-    TcpDiscoveryNodesRing ring() {
-        return ring;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void dumpDebugInfo() {
-        dumpDebugInfo(log);
-    }
-
-    /**
-     * @param log Logger.
-     */
-    public void dumpDebugInfo(IgniteLogger log) {
-        if (!debugMode) {
-            U.quietAndWarn(log, "Failed to dump debug info (discovery SPI was not configured " +
-                "in debug mode, consider setting 'debugMode' configuration property to 'true').");
-
-            return;
-        }
-
-        assert log.isInfoEnabled();
-
-        synchronized (mux) {
-            StringBuilder b = new StringBuilder(U.nl());
-
-            b.append(">>>").append(U.nl());
-            b.append(">>>").append("Dumping discovery SPI debug info.").append(U.nl());
-            b.append(">>>").append(U.nl());
-
-            b.append("Local node ID: ").append(locNodeId).append(U.nl()).append(U.nl());
-            b.append("Local node: ").append(locNode).append(U.nl()).append(U.nl());
-            b.append("SPI state: ").append(spiState).append(U.nl()).append(U.nl());
-
-            b.append("Internal threads: ").append(U.nl());
-
-            b.append("    Message worker: ").append(threadStatus(msgWorker)).append(U.nl());
-            b.append("    Check status sender: ").append(threadStatus(chkStatusSnd)).append(U.nl());
-            b.append("    HB sender: ").append(threadStatus(hbsSnd)).append(U.nl());
-            b.append("    Socket timeout worker: ").append(threadStatus(sockTimeoutWorker)).append(U.nl());
-            b.append("    IP finder cleaner: ").append(threadStatus(ipFinderCleaner)).append(U.nl());
-            b.append("    Stats printer: ").append(threadStatus(statsPrinter)).append(U.nl());
-
-            b.append(U.nl());
-
-            b.append("Socket readers: ").append(U.nl());
-
-            for (SocketReader rdr : readers)
-                b.append("    ").append(rdr).append(U.nl());
-
-            b.append(U.nl());
-
-            b.append("In-memory log messages: ").append(U.nl());
-
-            for (String msg : debugLog)
-                b.append("    ").append(msg).append(U.nl());
-
-            b.append(U.nl());
-
-            b.append("Leaving nodes: ").append(U.nl());
-
-            for (TcpDiscoveryNode node : leavingNodes)
-                b.append("    ").append(node.id()).append(U.nl());
-
-            b.append(U.nl());
-
-            b.append("Failed nodes: ").append(U.nl());
-
-            for (TcpDiscoveryNode node : failedNodes)
-                b.append("    ").append(node.id()).append(U.nl());
-
-            b.append(U.nl());
-
-            b.append("Stats: ").append(stats).append(U.nl());
-
-            U.quietAndInfo(log, b.toString());
-        }
-    }
-
-    /**
-     * @param msg Message.
-     */
-    private void debugLog(String msg) {
-        assert debugMode;
-
-        String msg0 = new SimpleDateFormat("[HH:mm:ss,SSS]").format(new Date(System.currentTimeMillis())) +
-            '[' + Thread.currentThread().getName() + "][" + locNodeId + "-" + locNode.internalOrder() + "] " +
-            msg;
-
-        debugLog.add(msg0);
-
-        int delta = debugLog.size() - debugMsgHist;
-
-        for (int i = 0; i < delta && debugLog.size() > debugMsgHist; i++)
-            debugLog.poll();
-    }
-
-    /**
-     * @param msg Message.
-     * @return {@code True} if recordable in debug mode.
-     */
-    private boolean recordable(TcpDiscoveryAbstractMessage msg) {
-        return !(msg instanceof TcpDiscoveryHeartbeatMessage) &&
-            !(msg instanceof TcpDiscoveryStatusCheckMessage) &&
-            !(msg instanceof TcpDiscoveryDiscardMessage);
-    }
-
-    /**
-     * @param t Thread.
-     * @return Status as string.
-     */
-    private String threadStatus(Thread t) {
-        if (t == null)
-            return "N/A";
-
-        return t.isAlive() ? "alive" : "dead";
-    }
-
-    /**
-     * Checks if two given {@link GridSecurityPermissionSet} objects contain the same permissions.
-     * Each permission belongs to one of three groups : cache, task or system.
-     *
-     * @param locPerms The first set of permissions.
-     * @param rmtPerms The second set of permissions.
-     * @return {@code True} if given parameters contain the same permissions, {@code False} otherwise.
-     */
-    private boolean permissionsEqual(GridSecurityPermissionSet locPerms, GridSecurityPermissionSet rmtPerms) {
-        boolean dfltAllowMatch = !(locPerms.defaultAllowAll() ^ rmtPerms.defaultAllowAll());
-
-        boolean bothHaveSamePerms = F.eqNotOrdered(rmtPerms.systemPermissions(), locPerms.systemPermissions()) &&
-            F.eqNotOrdered(rmtPerms.cachePermissions(), locPerms.cachePermissions()) &&
-            F.eqNotOrdered(rmtPerms.taskPermissions(), locPerms.taskPermissions());
-
-        return dfltAllowMatch && bothHaveSamePerms;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoverySpi.class, this);
-    }
-
-    /**
-     * Thread that sends heartbeats.
-     */
-    private class HeartbeatsSender extends IgniteSpiThread {
-        /**
-         * Constructor.
-         */
-        private HeartbeatsSender() {
-            super(gridName, "tcp-disco-hb-sender", log);
-
-            setPriority(threadPri);
-        }
-
-        /** {@inheritDoc} */
-        @SuppressWarnings("BusyWait")
-        @Override protected void body() throws InterruptedException {
-            while (!isLocalNodeCoordinator())
-                Thread.sleep(1000);
-
-            if (log.isDebugEnabled())
-                log.debug("Heartbeats sender has been started.");
-
-            while (!isInterrupted()) {
-                if (spiStateCopy() != CONNECTED) {
-                    if (log.isDebugEnabled())
-                        log.debug("Stopping heartbeats sender (SPI is not connected to topology).");
-
-                    return;
-                }
-
-                TcpDiscoveryHeartbeatMessage msg = new TcpDiscoveryHeartbeatMessage(locNodeId);
-
-                msg.verify(locNodeId);
-
-                msgWorker.addMessage(msg);
-
-                Thread.sleep(hbFreq);
-            }
-        }
-    }
-
-    /**
-     * Thread that sends status check messages to next node if local node has not
-     * been receiving heartbeats ({@link org.gridgain.grid.spi.discovery.tcp.messages.TcpDiscoveryHeartbeatMessage})
-     * for {@link TcpDiscoverySpi#getMaxMissedHeartbeats()} *
-     * {@link TcpDiscoverySpi#getHeartbeatFrequency()}.
-     */
-    private class CheckStatusSender extends IgniteSpiThread {
-        /**
-         * Constructor.
-         */
-        private CheckStatusSender() {
-            super(gridName, "tcp-disco-status-check-sender", log);
-
-            setPriority(threadPri);
-        }
-
-        /** {@inheritDoc} */
-        @SuppressWarnings("BusyWait")
-        @Override protected void body() throws InterruptedException {
-            if (log.isDebugEnabled())
-                log.debug("Status check sender has been started.");
-
-            // Only 1 heartbeat missing is acceptable. 1 sec is added to avoid false alarm.
-            long checkTimeout = (long)maxMissedHbs * hbFreq + 1000;
-
-            long lastSent = 0;
-
-            while (!isInterrupted()) {
-                // 1. Determine timeout.
-                if (lastSent < locNode.lastUpdateTime())
-                    lastSent = locNode.lastUpdateTime();
-
-                long timeout = (lastSent + checkTimeout) - U.currentTimeMillis();
-
-                if (timeout > 0)
-                    Thread.sleep(timeout);
-
-                // 2. Check if SPI is still connected.
-                if (spiStateCopy() != CONNECTED) {
-                    if (log.isDebugEnabled())
-                        log.debug("Stopping status check sender (SPI is not connected to topology).");
-
-                    return;
-                }
-
-                // 3. Was there an update?
-                if (locNode.lastUpdateTime() > lastSent || !ring.hasRemoteNodes()) {
-                    if (log.isDebugEnabled())
-                        log.debug("Skipping status check send " +
-                            "[locNodeLastUpdate=" + U.format(locNode.lastUpdateTime()) +
-                            ", hasRmts=" + ring.hasRemoteNodes() + ']');
-
-                    continue;
-                }
-
-                // 4. Send status check message.
-                lastSent = U.currentTimeMillis();
-
-                msgWorker.addMessage(new TcpDiscoveryStatusCheckMessage(locNode, null));
-            }
-        }
-    }
-
-    /**
-     * Thread that cleans IP finder and keeps it in the correct state, unregistering
-     * addresses of the nodes that has left the topology.
-     * <p>
-     * This thread should run only on coordinator node and will clean IP finder
-     * if and only if {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()} is {@code true}.
-     */
-    private class IpFinderCleaner extends IgniteSpiThread {
-        /**
-         * Constructor.
-         */
-        private IpFinderCleaner() {
-            super(gridName, "tcp-disco-ip-finder-cleaner", log);
-
-            setPriority(threadPri);
-        }
-
-        /** {@inheritDoc} */
-        @SuppressWarnings("BusyWait")
-        @Override protected void body() throws InterruptedException {
-            if (log.isDebugEnabled())
-                log.debug("IP finder cleaner has been started.");
-
-            while (!isInterrupted()) {
-                Thread.sleep(ipFinderCleanFreq);
-
-                if (!isLocalNodeCoordinator())
-                    continue;
-
-                if (spiStateCopy() != CONNECTED) {
-                    if (log.isDebugEnabled())
-                        log.debug("Stopping IP finder cleaner (SPI is not connected to topology).");
-
-                    return;
-                }
-
-                if (ipFinder.isShared())
-                    cleanIpFinder();
-            }
-        }
-
-        /**
-         * Cleans IP finder.
-         */
-        private void cleanIpFinder() {
-            assert ipFinder.isShared();
-
-            try {
-                // Addresses that belongs to nodes in topology.
-                Collection<InetSocketAddress> currAddrs = F.flatCollections(
-                    F.viewReadOnly(
-                        ring.allNodes(),
-                        new C1<TcpDiscoveryNode, Collection<InetSocketAddress>>() {
-                            @Override public Collection<InetSocketAddress> apply(TcpDiscoveryNode node) {
-                                return !node.isClient() ? getNodeAddresses(node) :
-                                    Collections.<InetSocketAddress>emptyList();
-                            }
-                        }
-                    )
-                );
-
-                // Addresses registered in IP finder.
-                Collection<InetSocketAddress> regAddrs = registeredAddresses();
-
-                // Remove all addresses that belong to alive nodes, leave dead-node addresses.
-                Collection<InetSocketAddress> rmvAddrs = F.view(
-                    regAddrs,
-                    F.notContains(currAddrs),
-                    new P1<InetSocketAddress>() {
-                        private final Map<InetSocketAddress, Boolean> pingResMap =
-                            new HashMap<>();
-
-                        @Override public boolean apply(InetSocketAddress addr) {
-                            Boolean res = pingResMap.get(addr);
-
-                            if (res == null) {
-                                try {
-                                    res = pingNode(addr, null).get1() != null;
-                                }
-                                catch (GridException e) {
-                                    if (log.isDebugEnabled())
-                                        log.debug("Failed to ping node [addr=" + addr +
-                                            ", err=" + e.getMessage() + ']');
-
-                                    res = false;
-                                }
-                                finally {
-                                    pingResMap.put(addr, res);
-                                }
-                            }
-
-                            return !res;
-                        }
-                    }
-                );
-
-                // Unregister dead-nodes addresses.
-                if (!rmvAddrs.isEmpty()) {
-                    ipFinder.unregisterAddresses(rmvAddrs);
-
-                    if (log.isDebugEnabled())
-                        log.debug("Unregistered addresses from IP finder: " + rmvAddrs);
-                }
-
-                // Addresses that were removed by mistake (e.g. on segmentation).
-                Collection<InetSocketAddress> missingAddrs = F.view(
-                    currAddrs,
-                    F.notContains(regAddrs)
-                );
-
-                // Re-register missing addresses.
-                if (!missingAddrs.isEmpty()) {
-                    ipFinder.registerAddresses(missingAddrs);
-
-                    if (log.isDebugEnabled())
-                        log.debug("Registered missing addresses in IP finder: " + missingAddrs);
-                }
-            }
-            catch (IgniteSpiException e) {
-                LT.error(log, e, "Failed to clean IP finder up.");
-            }
-        }
-    }
-
-    /**
-     * Pending messages container.
-     */
-    private static class PendingMessages {
-        /** */
-        private static final int MAX = 1024;
-
-        /** Pending messages. */
-        private final Queue<TcpDiscoveryAbstractMessage> msgs = new ArrayDeque<>(MAX * 2);
-
-        /** Discarded message ID. */
-        private IgniteUuid discardId;
-
-        /**
-         * Adds pending message and shrinks queue if it exceeds limit
-         * (messages that were not discarded yet are never removed).
-         *
-         * @param msg Message to add.
-         */
-        void add(TcpDiscoveryAbstractMessage msg) {
-            msgs.add(msg);
-
-            while (msgs.size() > MAX) {
-                TcpDiscoveryAbstractMessage polled = msgs.poll();
-
-                assert polled != null;
-
-                if (polled.id().equals(discardId))
-                    break;
-            }
-        }
-
-        /**
-         * Gets messages starting from provided ID (exclusive). If such
-         * message is not found, {@code null} is returned (this indicates
-         * a failure condition when it was already removed from queue).
-         *
-         * @param lastMsgId Last message ID.
-         * @return Collection of messages.
-         */
-        @Nullable Collection<TcpDiscoveryAbstractMessage> messages(IgniteUuid lastMsgId) {
-            assert lastMsgId != null;
-
-            Collection<TcpDiscoveryAbstractMessage> copy = new ArrayList<>(msgs.size());
-
-            boolean skip = true;
-
-            for (TcpDiscoveryAbstractMessage msg : msgs) {
-                if (skip) {
-                    if (msg.id().equals(lastMsgId))
-                        skip = false;
-                }
-                else
-                    copy.add(msg);
-            }
-
-            return !skip ? copy : null;
-        }
-
-        /**
-         * Resets pending messages.
-         *
-         * @param msgs Message.
-         * @param discardId Discarded message ID.
-         */
-        void reset(@Nullable Collection<TcpDiscoveryAbstractMessage> msgs, @Nullable IgniteUuid discardId) {
-            this.msgs.clear();
-
-            if (msgs != null)
-                this.msgs.addAll(msgs);
-
-            this.discardId = discardId;
-        }
-
-        /**
-         * Clears pending messages.
-         */
-        void clear() {
-            msgs.clear();
-
-            discardId = null;
-        }
-
-        /**
-         * Discards message with provided ID and all before it.
-         *
-         * @param id Discarded message ID.
-         */
-        void discard(IgniteUuid id) {
-            discardId = id;
-        }
-    }
-
-    /**
-     * Message worker thread for mess

<TRUNCATED>

[52/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
# Renaming


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

Branch: refs/heads/master
Commit: 12837f35b619e2e9d19de9e0515a681124bf40e9
Parents: dec83ed
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 5 17:06:13 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 5 17:06:13 2014 +0300

----------------------------------------------------------------------
 .../configuration/IgniteConfiguration.java      |   6 +-
 .../ignite/spi/indexing/IndexDescriptor.java    |  42 +++++
 .../apache/ignite/spi/indexing/IndexType.java   |  24 +++
 .../ignite/spi/indexing/IndexingEntity.java     |  50 +++++
 .../spi/indexing/IndexingEntityAdapter.java     |  57 ++++++
 .../spi/indexing/IndexingFieldMetadata.java     |  46 +++++
 .../spi/indexing/IndexingFieldsResult.java      |  35 ++++
 .../indexing/IndexingFieldsResultAdapter.java   |  49 +++++
 .../spi/indexing/IndexingKeyValueRow.java       |  42 +++++
 .../indexing/IndexingKeyValueRowAdapter.java    |  82 ++++++++
 .../ignite/spi/indexing/IndexingMarshaller.java |  38 ++++
 .../spi/indexing/IndexingQueryFilter.java       |  27 +++
 .../apache/ignite/spi/indexing/IndexingSpi.java | 188 +++++++++++++++++++
 .../spi/indexing/IndexingTypeDescriptor.java    |  84 +++++++++
 .../ignite/spi/indexing/NoopIndexingSpi.java    | 119 ++++++++++++
 .../org/apache/ignite/spi/indexing/package.html |  15 ++
 .../grid/cache/GridCacheConfiguration.java      |   4 +-
 .../org/gridgain/grid/kernal/GridGainEx.java    |   2 +-
 .../managers/indexing/GridIndexingManager.java  |  10 +-
 .../GridCacheDistributedFieldsQueryFuture.java  |   2 +-
 .../query/GridCacheDistributedQueryManager.java |   2 +-
 .../query/GridCacheFieldsQueryErrorFuture.java  |   2 +-
 .../query/GridCacheLocalFieldsQueryFuture.java  |   2 +-
 .../cache/query/GridCacheLocalQueryManager.java |   2 +-
 .../cache/query/GridCacheQueryManager.java      |   2 +-
 .../query/GridCacheQueryMetadataAware.java      |   2 +-
 .../cache/query/GridCacheQueryResponse.java     |   2 +-
 .../cache/query/GridCacheSqlMetadata.java       |   2 +-
 .../query/jdbc/GridCacheQueryJdbcTask.java      |   2 +-
 .../grid/kernal/visor/query/VisorQueryTask.java |   2 +-
 .../grid/spi/indexing/IndexDescriptor.java      |  42 -----
 .../gridgain/grid/spi/indexing/IndexType.java   |  24 ---
 .../grid/spi/indexing/IndexingEntity.java       |  50 -----
 .../spi/indexing/IndexingEntityAdapter.java     |  57 ------
 .../spi/indexing/IndexingFieldMetadata.java     |  46 -----
 .../grid/spi/indexing/IndexingFieldsResult.java |  35 ----
 .../indexing/IndexingFieldsResultAdapter.java   |  49 -----
 .../grid/spi/indexing/IndexingKeyValueRow.java  |  42 -----
 .../indexing/IndexingKeyValueRowAdapter.java    |  82 --------
 .../grid/spi/indexing/IndexingMarshaller.java   |  38 ----
 .../grid/spi/indexing/IndexingQueryFilter.java  |  27 ---
 .../gridgain/grid/spi/indexing/IndexingSpi.java | 188 -------------------
 .../spi/indexing/IndexingTypeDescriptor.java    |  84 ---------
 .../grid/spi/indexing/NoopIndexingSpi.java      | 119 ------------
 .../org/gridgain/grid/spi/indexing/package.html |  15 --
 .../GridCacheTxExceptionAbstractSelfTest.java   |   2 +-
 .../grid/spi/indexing/h2/GridH2IndexingSpi.java |  12 +-
 .../h2/opt/GridH2AbstractKeyValueRow.java       |   2 +-
 .../spi/indexing/h2/opt/GridH2IndexBase.java    |   2 +-
 .../spi/indexing/h2/opt/GridH2TreeIndex.java    |   3 +-
 .../spi/indexing/h2/opt/GridLuceneIndex.java    |   2 +-
 .../GridCacheAbstractFieldsQuerySelfTest.java   |   2 +-
 .../GridCacheReplicatedFieldsQuerySelfTest.java |   2 +-
 .../GridCacheReplicatedQuerySelfTest.java       |   2 +-
 .../GridIndexingSpiAbstractSelfTest.java        |   1 +
 .../spi/indexing/h2/GridH2IndexRebuildTest.java |   2 +-
 .../h2/opt/GridLuceneIndexLoadTest.java         |   2 +-
 57 files changed, 938 insertions(+), 936 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 59a4fea..04f7634 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@ -19,6 +19,7 @@ import org.apache.ignite.marshaller.*;
 import org.apache.ignite.plugin.*;
 import org.apache.ignite.portables.*;
 import org.apache.ignite.spi.authentication.*;
+import org.apache.ignite.spi.indexing.*;
 import org.apache.ignite.streamer.*;
 import org.gridgain.client.ssl.*;
 import org.gridgain.grid.cache.*;
@@ -34,7 +35,6 @@ import org.apache.ignite.spi.deployment.*;
 import org.apache.ignite.spi.discovery.*;
 import org.apache.ignite.spi.eventstorage.*;
 import org.apache.ignite.spi.failover.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.spi.loadbalancing.*;
 import org.gridgain.grid.spi.loadbalancing.roundrobin.*;
 import org.gridgain.grid.spi.securesession.*;
@@ -2150,9 +2150,9 @@ public class IgniteConfiguration {
     }
 
     /**
-     * Sets fully configured instances of {@link org.gridgain.grid.spi.indexing.IndexingSpi}.
+     * Sets fully configured instances of {@link org.apache.ignite.spi.indexing.IndexingSpi}.
      *
-     * @param indexingSpi Fully configured instances of {@link org.gridgain.grid.spi.indexing.IndexingSpi}.
+     * @param indexingSpi Fully configured instances of {@link org.apache.ignite.spi.indexing.IndexingSpi}.
      * @see IgniteConfiguration#getIndexingSpi()
      */
     public void setIndexingSpi(IndexingSpi... indexingSpi) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexDescriptor.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexDescriptor.java
new file mode 100644
index 0000000..ada2cc1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexDescriptor.java
@@ -0,0 +1,42 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import java.util.*;
+
+/**
+ * Describes an index to be created for a certain type. It contains all necessary
+ * information about fields, order, uniqueness, and specified
+ * whether this is SQL or Text index.
+ * See also {@link IndexingTypeDescriptor#indexes()}.
+ */
+public interface IndexDescriptor {
+    /**
+     * Gets all fields to be indexed.
+     *
+     * @return Fields to be indexed.
+     */
+    public Collection<String> fields();
+
+    /**
+     * Specifies order of the index for each indexed field.
+     *
+     * @param field Field name.
+     * @return {@code True} if given field should be indexed in descending order.
+     */
+    public boolean descending(String field);
+
+    /**
+     * Gets index type.
+     *
+     * @return Type.
+     */
+    public IndexType type();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexType.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexType.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexType.java
new file mode 100644
index 0000000..dcab0a7
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexType.java
@@ -0,0 +1,24 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+/**
+ * Index types.
+ */
+public enum IndexType {
+    /** Sorted SQL index. */
+    SORTED,
+
+    /** Spatial SQL index. */
+    GEO_SPATIAL,
+
+    /** Fulltext index. */
+    FULLTEXT
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntity.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntity.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntity.java
new file mode 100644
index 0000000..0208b75
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntity.java
@@ -0,0 +1,50 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.spi.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Wrapper around indexed key or value which also may contain the value in
+ * unmarshalled form. It exists to avoid unnecessary unmarshalling whenever
+ * it is not needed.
+ * See also {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}.
+ */
+public interface IndexingEntity<T> {
+    /**
+     * Gets indexed value. This method may return {@code null} only
+     * if actual value is {@code null}. Otherwise, it will unmarshal
+     * the {@link #bytes()} and return the actual value.
+     *
+     * @return Indexed value.
+     * @throws org.apache.ignite.spi.IgniteSpiException If value de-serialization failed.
+     */
+    @Nullable public T value() throws IgniteSpiException;
+
+    /**
+     * Optional bytes for marshaled indexed value. Certain SPI implementations
+     * may keep objects in unmarshalled form and therefore will not provide
+     * marshaled bytes for them.
+     *
+     * @return Optional marshaled value.
+     */
+    @Nullable public byte[] bytes();
+
+    /**
+     * Flag indicating whether this entity contains unmarshalled value.
+     *
+     * @return {@code True} if entity contains unmarshalled value, {@code false}
+     *      otherwise.
+     */
+    public boolean hasValue();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntityAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntityAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntityAdapter.java
new file mode 100644
index 0000000..d0ca976
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntityAdapter.java
@@ -0,0 +1,57 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+import org.jetbrains.annotations.*;
+
+/**
+ * Convenience adapter for {@link IndexingEntity}.
+ */
+public class IndexingEntityAdapter<T> implements IndexingEntity<T> {
+    /** */
+    @GridToStringInclude
+    private final T val;
+
+    /** */
+    @GridToStringExclude
+    private final byte[] bytes;
+
+    /**
+     * @param val Value.
+     * @param bytes Value marshalled by {@link org.apache.ignite.marshaller.IgniteMarshaller}.
+     */
+    public IndexingEntityAdapter(T val, @Nullable byte[] bytes) {
+        this.val = val;
+        this.bytes = bytes;
+    }
+
+    /** {@inheritDoc} */
+    @Override public T value() {
+        return val;
+    }
+
+    /** {@inheritDoc} */
+    @Override public byte[] bytes() {
+        return bytes;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean hasValue() {
+        return val != null || (val == null && bytes == null);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(IndexingEntityAdapter.class, this,
+            "bytesLength", (bytes == null ? 0 : bytes.length));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldMetadata.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldMetadata.java
new file mode 100644
index 0000000..8b25c84
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldMetadata.java
@@ -0,0 +1,46 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import java.io.*;
+
+/**
+ * Query field descriptor. This descriptor is used to provide metadata
+ * about fields returned in query result.
+ */
+public interface IndexingFieldMetadata extends Externalizable {
+    /**
+     * Gets schema name.
+     *
+     * @return Schema name.
+     */
+    public String schemaName();
+
+    /**
+     * Gets name of type to which this field belongs.
+     *
+     * @return Gets type name.
+     */
+    public String typeName();
+
+    /**
+     * Gets field name.
+     *
+     * @return Field name.
+     */
+    public String fieldName();
+
+    /**
+     * Gets field type name.
+     *
+     * @return Field type name.
+     */
+    public String fieldTypeName();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResult.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResult.java
new file mode 100644
index 0000000..62e6ce1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResult.java
@@ -0,0 +1,35 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.spi.*;
+
+import java.util.*;
+
+/**
+ * Field query result. It is composed of
+ * fields metadata and iterator over queried fields.
+ * See also {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter)}.
+ */
+public interface IndexingFieldsResult {
+    /**
+     * Gets metadata for queried fields.
+     *
+     * @return Meta data for queried fields.
+     */
+    List<IndexingFieldMetadata> metaData();
+
+    /**
+     * Gets iterator over queried fields.
+     *
+     * @return Iterator over queried fields.
+     */
+    IgniteSpiCloseableIterator<List<IndexingEntity<?>>> iterator();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResultAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResultAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResultAdapter.java
new file mode 100644
index 0000000..c583b76
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResultAdapter.java
@@ -0,0 +1,49 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.spi.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Convenience adapter for {@link IndexingFieldsResult}.
+ */
+public class IndexingFieldsResultAdapter implements IndexingFieldsResult {
+    /** Meta data. */
+    private final List<IndexingFieldMetadata> metaData;
+
+    /** Result iterator. */
+    private final IgniteSpiCloseableIterator<List<IndexingEntity<?>>> it;
+
+    /**
+     * Creates query field result composed of field metadata and iterator
+     * over queried fields.
+     *
+     * @param metaData Meta data.
+     * @param it Result iterator.
+     */
+    public IndexingFieldsResultAdapter(@Nullable List<IndexingFieldMetadata> metaData,
+                                       IgniteSpiCloseableIterator<List<IndexingEntity<?>>> it) {
+        this.metaData = metaData != null ? Collections.unmodifiableList(metaData) : null;
+        this.it = it;
+    }
+
+    /** {@inheritDoc} */
+    @Override public List<IndexingFieldMetadata> metaData() {
+        return metaData;
+    }
+
+    /** {@inheritDoc} */
+    @Override public IgniteSpiCloseableIterator<List<IndexingEntity<?>>> iterator() {
+        return it;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRow.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRow.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRow.java
new file mode 100644
index 0000000..7b075ed
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRow.java
@@ -0,0 +1,42 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import java.util.*;
+
+/**
+ * This class represents a single row returned by key-value query. For example, it is returned
+ * by query such as {@link IndexingSpi#query(String, String, Collection, IndexingTypeDescriptor, IndexingQueryFilter[])}
+ * method. Key-value queries are different from fields query in a way that they
+ * return the whole cached value, not its individual fields.
+ * See also {@link IndexingSpi#query(String, String, Collection, IndexingTypeDescriptor, IndexingQueryFilter[])}.
+ */
+public interface IndexingKeyValueRow<K, V> {
+    /**
+     * Gets cache key.
+     *
+     * @return Cache key.
+     */
+    public IndexingEntity<K> key();
+
+    /**
+     * Gets cache value.
+     *
+     * @return Cache value.
+     */
+    public IndexingEntity<V> value();
+
+    /**
+     * Gets version of cache value.
+     *
+     * @return Version of cache value.
+     */
+    public byte[] version();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRowAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRowAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRowAdapter.java
new file mode 100644
index 0000000..f703c51
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRowAdapter.java
@@ -0,0 +1,82 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+*  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+*  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+*  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+*  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+*/
+
+package org.apache.ignite.spi.indexing;
+
+import org.gridgain.grid.kernal.processors.cache.query.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+import org.jetbrains.annotations.*;
+
+/**
+ * Convenience adapter for {@link IndexingKeyValueRow}.
+ */
+public class IndexingKeyValueRowAdapter<K, V> implements IndexingKeyValueRow<K, V> {
+    /** Key. */
+    @GridToStringInclude
+    private IndexingEntity<K> key;
+
+    /** Value. */
+    @GridToStringInclude
+    private IndexingEntity<V> val;
+
+    /** Version. */
+    @GridToStringInclude
+    private byte[] ver;
+
+    /**
+     * Constructor.
+     *
+     * @param key Key.
+     * @param val Value.
+     */
+    public IndexingKeyValueRowAdapter(K key, V val) {
+        assert key != null;
+        assert val != null;
+
+        this.key = new IndexingEntityAdapter<>(key, null);
+        this.val = new IndexingEntityAdapter<>(val, null);
+    }
+
+    /**
+     * Constructs query index row.
+     *
+     * @param key Key.
+     * @param val Value.
+     * @param ver Version. It is {@code null} in case of {@link GridCacheQueryType#SCAN} query.
+     */
+    public IndexingKeyValueRowAdapter(IndexingEntity<K> key, @Nullable IndexingEntity<V> val,
+                                      @Nullable byte[] ver) {
+        assert key != null;
+
+        this.key = key;
+        this.val = val;
+        this.ver = ver;
+    }
+
+    /** {@inheritDoc} */
+    @Override public IndexingEntity<K> key() {
+        return key;
+    }
+
+    /** {@inheritDoc} */
+    @Override public IndexingEntity<V> value() {
+        return val;
+    }
+
+    /** {@inheritDoc} */
+    @Override public byte[] version() {
+        return ver;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(IndexingKeyValueRowAdapter.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingMarshaller.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingMarshaller.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingMarshaller.java
new file mode 100644
index 0000000..e04c6a1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingMarshaller.java
@@ -0,0 +1,38 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.spi.*;
+
+/**
+ * Marshaller to be used in indexing SPI. This marshaller automatically
+ * takes care of class loading of unmarshalled classes.
+ * See also {@link IndexingSpi#registerMarshaller(IndexingMarshaller)}.
+ */
+public interface IndexingMarshaller {
+    /**
+     * Unmarshalls bytes to object.
+     *
+     * @param bytes Bytes.
+     * @param <T> Value type.
+     * @return Value.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <T> IndexingEntity<T> unmarshal(byte[] bytes) throws IgniteSpiException;
+
+    /**
+     * Marshals object to bytes.
+     *
+     * @param entity Entity.
+     * @return Bytes.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public byte[] marshal(IndexingEntity<?> entity) throws IgniteSpiException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java
new file mode 100644
index 0000000..bbdcdf6
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java
@@ -0,0 +1,27 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.*;
+import org.jetbrains.annotations.*;
+
+/**
+ * Space name and key filter.
+ */
+public interface IndexingQueryFilter {
+    /**
+     * Creates optional predicate for space.
+     *
+     * @param spaceName Space name.
+     * @return Predicate or {@code null} if no filtering is needed.
+     */
+    @Nullable public <K, V> IgniteBiPredicate<K, V> forSpace(String spaceName) throws GridException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java
new file mode 100644
index 0000000..74de3dd
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java
@@ -0,0 +1,188 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.cache.*;
+import org.gridgain.grid.cache.query.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Indexing SPI allows user to index cache content. Using indexing SPI user can index data in cache and run SQL,
+ * TEXT or individual field queries against these indexes. Usually indexing SPI is used by caches by name
+ * (see {@link GridCacheConfiguration#getIndexingSpiName()}). Logically storage is organized into separate spaces.
+ * Usually cache name will be used as space name, so multiple caches can write to single indexing SPI instance.
+ * <p>
+ * Functionality of this SPI is exposed to {@link GridCacheQueries} interface:
+ * <ul>
+ *      <li>{@link GridCacheQueries#createSqlQuery(Class, String)}</li>
+ *      <li>{@link GridCacheQueries#createSqlFieldsQuery(String)}</li>
+ *      <li>{@link GridCacheQueries#createFullTextQuery(Class, String)}</li>
+ * </ul>
+ * <p>
+ * The default indexing SPI implementation is
+ * {@gglink org.gridgain.grid.spi.indexing.h2.GridH2IndexingSpi} which uses H2 database engine
+ * for data indexing and querying. User can implement his own indexing SPI and use his own data structures
+ * and query language instead of SQL. SPI can be configured for grid using {@link org.apache.ignite.configuration.IgniteConfiguration#getIndexingSpi()}.
+ * <p>
+ * GridGain comes with following built-in indexing SPI implementations:
+ * <ul>
+ *      <li>{@gglink org.gridgain.grid.spi.indexing.h2.GridH2IndexingSpi}</li>
+ * </ul>
+ * <p>
+ * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
+ * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
+ * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
+ * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
+ * methods. Note again that calling methods from this interface on the obtained instance can lead
+ * to undefined behavior and explicitly not supported.
+ */
+public interface IndexingSpi extends IgniteSpi {
+    /**
+     * Queries individual fields (generally used by JDBC drivers).
+     *
+     * @param spaceName Space name.
+     * @param qry Query.
+     * @param params Query parameters.
+     * @param filters Space name and key filters.
+     * @return Query result.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> IndexingFieldsResult queryFields(@Nullable String spaceName, String qry,
+        Collection<Object> params, IndexingQueryFilter filters) throws IgniteSpiException;
+
+    /**
+     * Executes regular query.
+     *
+     * @param spaceName Space name.
+     * @param qry Query.
+     * @param params Query parameters.
+     * @param type Query return type.
+     * @param filters Space name and key filters.
+     * @return Queried rows.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> query(@Nullable String spaceName, String qry,
+        Collection<Object> params, IndexingTypeDescriptor type, IndexingQueryFilter filters)
+        throws IgniteSpiException;
+
+    /**
+     * Executes text query.
+     *
+     * @param spaceName Space name.
+     * @param qry Text query.
+     * @param type Query return type.
+     * @param filters Space name and key filter.
+     * @return Queried rows.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> queryText(@Nullable String spaceName, String qry,
+        IndexingTypeDescriptor type, IndexingQueryFilter filters) throws IgniteSpiException;
+
+    /**
+     * Gets size of index for given type or -1 if it is a unknown type.
+     *
+     * @param spaceName Space name.
+     * @param desc Type descriptor.
+     * @return Objects number.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public long size(@Nullable String spaceName, IndexingTypeDescriptor desc) throws IgniteSpiException;
+
+    /**
+     * Registers type if it was not known before or updates it otherwise.
+     *
+     * @param spaceName Space name.
+     * @param desc Type descriptor.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     * @return {@code True} if type was registered, {@code false} if for some reason it was rejected.
+     */
+    public boolean registerType(@Nullable String spaceName, IndexingTypeDescriptor desc) throws IgniteSpiException;
+
+    /**
+     * Unregisters type and removes all corresponding data.
+     *
+     * @param spaceName Space name.
+     * @param type Type descriptor.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public void unregisterType(@Nullable String spaceName, IndexingTypeDescriptor type) throws IgniteSpiException;
+
+    /**
+     * Updates index. Note that key is unique for space, so if space contains multiple indexes
+     * the key should be removed from indexes other than one being updated.
+     *
+     * @param spaceName Space name.
+     * @param type Value type.
+     * @param key Key.
+     * @param val Value.
+     * @param ver Version.
+     * @param expirationTime Expiration time or 0 if never expires.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> void store(@Nullable String spaceName, IndexingTypeDescriptor type, IndexingEntity<K> key,
+        IndexingEntity<V> val, byte[] ver, long expirationTime) throws IgniteSpiException;
+
+    /**
+     * Removes index entry by key.
+     *
+     * @param spaceName Space name.
+     * @param key Key.
+     * @return {@code True} if removed by this operation, {@code false} otherwise.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K> boolean remove(@Nullable String spaceName, IndexingEntity<K> key) throws IgniteSpiException;
+
+    /**
+     * Will be called when entry with given key is swapped.
+     *
+     * @param spaceName Space name.
+     * @param swapSpaceName Swap space name.
+     * @param key Key.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K> void onSwap(@Nullable String spaceName, String swapSpaceName, K key) throws IgniteSpiException;
+
+    /**
+     * Will be called when entry with given key is unswapped.
+     *
+     * @param spaceName Space name.
+     * @param key Key.
+     * @param val Value.
+     * @param valBytes Value bytes.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> void onUnswap(@Nullable String spaceName, K key, V val, byte[] valBytes) throws IgniteSpiException;
+
+    /**
+     * Marshaller to be used by SPI.
+     *
+     * @param marshaller Marshaller.
+     */
+    public void registerMarshaller(IndexingMarshaller marshaller);
+
+    /**
+     * Registers space in this SPI.
+     *
+     * @param spaceName Space name.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public void registerSpace(String spaceName) throws IgniteSpiException;
+
+    /**
+     * Rebuilds all indexes of given type.
+     *
+     * @param spaceName Space name.
+     * @param type Type descriptor.
+     */
+    public void rebuildIndexes(@Nullable String spaceName, IndexingTypeDescriptor type);
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingTypeDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingTypeDescriptor.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingTypeDescriptor.java
new file mode 100644
index 0000000..3f96b1c
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingTypeDescriptor.java
@@ -0,0 +1,84 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+
+import org.apache.ignite.spi.*;
+
+import java.util.*;
+
+/**
+ * Value descriptor which allows to extract fields from value object of given type.
+ * See also {@link IndexingSpi#registerType(String, IndexingTypeDescriptor)}.
+ */
+public interface IndexingTypeDescriptor {
+    /**
+     * Gets type name which uniquely identifies this type.
+     *
+     * @return Type name which uniquely identifies this type.
+     */
+    public String name();
+
+    /**
+     * Gets mapping from values field name to its type.
+     *
+     * @return Fields that can be indexed, participate in queries and can be queried using
+     *      {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}
+     *      method.
+     */
+    public Map<String, Class<?>> valueFields();
+
+    /**
+     * Gets mapping from keys field name to its type.
+     *
+     * @return Fields that can be indexed, participate in queries and can be queried using
+     *      {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}
+     *      method.
+     */
+    public Map<String, Class<?>> keyFields();
+
+    /**
+     * Gets field value for given object.
+     *
+     * @param obj Object to get field value from.
+     * @param field Field name.
+     * @return Value for given field.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <T> T value(Object obj, String field) throws IgniteSpiException;
+
+    /**
+     * Gets indexes for this type.
+     *
+     * @return Indexes for this type.
+     */
+    public Map<String, IndexDescriptor> indexes();
+
+    /**
+     * Gets value class.
+     *
+     * @return Value class.
+     */
+    public Class<?> valueClass();
+
+    /**
+     * Gets key class.
+     *
+     * @return Key class.
+     */
+    public Class<?> keyClass();
+
+    /**
+     * Returns {@code true} if string representation of value should be indexed as text.
+     *
+     * @return If string representation of value should be full-text indexed.
+     */
+    public boolean valueTextIndex();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/NoopIndexingSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/NoopIndexingSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/NoopIndexingSpi.java
new file mode 100644
index 0000000..9fba743
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/NoopIndexingSpi.java
@@ -0,0 +1,119 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * No-op implementation of {@link IndexingSpi}, throws exception on query attempt.
+ */
+@IgniteSpiNoop
+public class NoopIndexingSpi extends IgniteSpiAdapter implements IndexingSpi {
+    /** */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** {@inheritDoc} */
+    @Override public <K, V> IndexingFieldsResult queryFields(@Nullable String spaceName, String qry,
+        Collection<Object> params, IndexingQueryFilter filters) throws IgniteSpiException {
+        throw spiException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> query(@Nullable String spaceName,
+        String qry, Collection<Object> params, IndexingTypeDescriptor type,
+        IndexingQueryFilter filters) throws IgniteSpiException {
+        throw spiException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> queryText(@Nullable
+        String spaceName, String qry, IndexingTypeDescriptor type, IndexingQueryFilter filters)
+        throws IgniteSpiException {
+        throw spiException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long size(@Nullable String spaceName, IndexingTypeDescriptor desc) throws IgniteSpiException {
+        throw spiException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean registerType(@Nullable String spaceName, IndexingTypeDescriptor desc)
+        throws IgniteSpiException {
+        return false;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void unregisterType(@Nullable String spaceName, IndexingTypeDescriptor type)
+        throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K, V> void store(@Nullable String spaceName, IndexingTypeDescriptor type,
+        IndexingEntity<K> key, IndexingEntity<V> val, byte[] ver, long expirationTime) throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K> boolean remove(@Nullable String spaceName, IndexingEntity<K> key) throws IgniteSpiException {
+        return false;
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K> void onSwap(@Nullable String spaceName, String swapSpaceName, K key) throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K, V> void onUnswap(@Nullable String spaceName, K key, V val, byte[] valBytes)
+        throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void registerMarshaller(IndexingMarshaller marshaller) {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void registerSpace(String spaceName) throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void rebuildIndexes(@Nullable String spaceName, IndexingTypeDescriptor type) {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(@Nullable String gridName) throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        // No-op.
+    }
+
+    /**
+     * @return No-op SPI usage exception.
+     */
+    private IgniteSpiException spiException() {
+        return new IgniteSpiException("Current grid configuration does not support queries " +
+            "(please configure GridH2IndexingSpi).");
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/package.html b/modules/core/src/main/java/org/apache/ignite/spi/indexing/package.html
new file mode 100644
index 0000000..9929a70
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains APIs for indexing SPI.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java
index 3e0b225..f2c5682 100644
--- a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java
+++ b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java
@@ -1557,7 +1557,7 @@ public class GridCacheConfiguration {
      * SPI is configured. In majority of the cases default value should be used.
      *
      * @return Name of SPI to use for indexing.
-     * @see org.gridgain.grid.spi.indexing.IndexingSpi
+     * @see org.apache.ignite.spi.indexing.IndexingSpi
      */
     public String getIndexingSpiName() {
         return indexingSpiName;
@@ -1571,7 +1571,7 @@ public class GridCacheConfiguration {
      * SPI is configured. In majority of the cases default value should be used.
      *
      * @param indexingSpiName Name.
-     * @see org.gridgain.grid.spi.indexing.IndexingSpi
+     * @see org.apache.ignite.spi.indexing.IndexingSpi
      */
     public void setIndexingSpiName(String indexingSpiName) {
         this.indexingSpiName = indexingSpiName;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
index 999a66f..12b2deb 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
@@ -23,6 +23,7 @@ import org.apache.ignite.mbean.*;
 import org.apache.ignite.spi.*;
 import org.apache.ignite.spi.authentication.*;
 import org.apache.ignite.spi.authentication.noop.*;
+import org.apache.ignite.spi.indexing.*;
 import org.apache.ignite.streamer.*;
 import org.apache.ignite.thread.*;
 import org.gridgain.grid.*;
@@ -47,7 +48,6 @@ import org.apache.ignite.spi.eventstorage.*;
 import org.apache.ignite.spi.eventstorage.memory.*;
 import org.apache.ignite.spi.failover.*;
 import org.apache.ignite.spi.failover.always.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.spi.loadbalancing.*;
 import org.gridgain.grid.spi.loadbalancing.roundrobin.*;
 import org.gridgain.grid.spi.securesession.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java
index 8599c68..3cbeea1 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java
@@ -13,13 +13,13 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.*;
 import org.apache.ignite.portables.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.lang.*;
@@ -36,7 +36,7 @@ import java.util.*;
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
-import static org.gridgain.grid.spi.indexing.IndexType.*;
+import static org.apache.ignite.spi.indexing.IndexType.*;
 
 /**
  * Manages cache indexing.
@@ -1480,8 +1480,8 @@ public class GridIndexingManager extends GridManagerAdapter<IndexingSpi> {
         }
 
         /** {@inheritDoc} */
-        @Override public Map<String, org.gridgain.grid.spi.indexing.IndexDescriptor> indexes() {
-            return Collections.<String, org.gridgain.grid.spi.indexing.IndexDescriptor>unmodifiableMap(indexes);
+        @Override public Map<String, org.apache.ignite.spi.indexing.IndexDescriptor> indexes() {
+            return Collections.<String, org.apache.ignite.spi.indexing.IndexDescriptor>unmodifiableMap(indexes);
         }
 
         /**
@@ -1606,7 +1606,7 @@ public class GridIndexingManager extends GridManagerAdapter<IndexingSpi> {
     /**
      * Index descriptor.
      */
-    private static class IndexDescriptor implements org.gridgain.grid.spi.indexing.IndexDescriptor {
+    private static class IndexDescriptor implements org.apache.ignite.spi.indexing.IndexDescriptor {
         /** Fields sorted by order number. */
         private final Collection<T2<String, Integer>> fields = new TreeSet<>(
             new Comparator<T2<String, Integer>>() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java
index 4472798..67d8393 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java
@@ -11,8 +11,8 @@ package org.gridgain.grid.kernal.processors.cache.query;
 
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.future.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java
index 45f9efe..ebbfa6c 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java
@@ -12,11 +12,11 @@ package org.gridgain.grid.kernal.processors.cache.query;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.managers.eventstorage.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java
index e1cc799..9834ff8 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java
@@ -10,8 +10,8 @@
 package org.gridgain.grid.kernal.processors.cache.query;
 
 import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.future.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java
index 475305f..cc8ed19 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java
@@ -10,8 +10,8 @@
 package org.gridgain.grid.kernal.processors.cache.query;
 
 import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.future.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java
index ec3abac..85cab07 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java
@@ -10,9 +10,9 @@
 package org.gridgain.grid.kernal.processors.cache.query;
 
 import org.apache.ignite.cluster.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
index 08e9556..d221c47 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
@@ -15,6 +15,7 @@ import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
@@ -25,7 +26,6 @@ import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.datastructures.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.gridgain.grid.kernal.processors.task.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java
index 030aee0..2507369 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java
@@ -10,7 +10,7 @@
 package org.gridgain.grid.kernal.processors.cache.query;
 
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.spi.indexing.*;
+import org.apache.ignite.spi.indexing.*;
 
 import java.util.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java
index 377af43..0564d2a 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java
@@ -10,10 +10,10 @@
 package org.gridgain.grid.kernal.processors.cache.query;
 
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java
index 4797878..cd47b0d 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java
@@ -34,7 +34,7 @@ public interface GridCacheSqlMetadata extends Externalizable {
      * <p>
      * By default, type name is equal to simple class name
      * of stored object, but it can depend on implementation
-     * of {@link org.gridgain.grid.spi.indexing.IndexingSpi}.
+     * of {@link org.apache.ignite.spi.indexing.IndexingSpi}.
      *
      * @return Collection of available types.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java
index 7ce674d..ccfadec 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java
@@ -16,12 +16,12 @@ import org.apache.ignite.marshaller.*;
 import org.apache.ignite.marshaller.jdk.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.query.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java
index 6b9d546..87ce34b 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java
@@ -19,7 +19,7 @@ import org.gridgain.grid.kernal.processors.task.GridInternal;
 import org.gridgain.grid.kernal.processors.timeout.GridTimeoutObjectAdapter;
 import org.gridgain.grid.kernal.visor.*;
 import org.apache.ignite.lang.IgniteBiTuple;
-import org.gridgain.grid.spi.indexing.IndexingFieldMetadata;
+import org.apache.ignite.spi.indexing.IndexingFieldMetadata;
 import org.gridgain.grid.util.typedef.internal.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexDescriptor.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexDescriptor.java
deleted file mode 100644
index 7fecd56..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexDescriptor.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import java.util.*;
-
-/**
- * Describes an index to be created for a certain type. It contains all necessary
- * information about fields, order, uniqueness, and specified
- * whether this is SQL or Text index.
- * See also {@link IndexingTypeDescriptor#indexes()}.
- */
-public interface IndexDescriptor {
-    /**
-     * Gets all fields to be indexed.
-     *
-     * @return Fields to be indexed.
-     */
-    public Collection<String> fields();
-
-    /**
-     * Specifies order of the index for each indexed field.
-     *
-     * @param field Field name.
-     * @return {@code True} if given field should be indexed in descending order.
-     */
-    public boolean descending(String field);
-
-    /**
-     * Gets index type.
-     *
-     * @return Type.
-     */
-    public IndexType type();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexType.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexType.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexType.java
deleted file mode 100644
index f7f0ea2..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexType.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-/**
- * Index types.
- */
-public enum IndexType {
-    /** Sorted SQL index. */
-    SORTED,
-
-    /** Spatial SQL index. */
-    GEO_SPATIAL,
-
-    /** Fulltext index. */
-    FULLTEXT
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntity.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntity.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntity.java
deleted file mode 100644
index 556d4f0..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntity.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Wrapper around indexed key or value which also may contain the value in
- * unmarshalled form. It exists to avoid unnecessary unmarshalling whenever
- * it is not needed.
- * See also {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}.
- */
-public interface IndexingEntity<T> {
-    /**
-     * Gets indexed value. This method may return {@code null} only
-     * if actual value is {@code null}. Otherwise, it will unmarshal
-     * the {@link #bytes()} and return the actual value.
-     *
-     * @return Indexed value.
-     * @throws org.apache.ignite.spi.IgniteSpiException If value de-serialization failed.
-     */
-    @Nullable public T value() throws IgniteSpiException;
-
-    /**
-     * Optional bytes for marshaled indexed value. Certain SPI implementations
-     * may keep objects in unmarshalled form and therefore will not provide
-     * marshaled bytes for them.
-     *
-     * @return Optional marshaled value.
-     */
-    @Nullable public byte[] bytes();
-
-    /**
-     * Flag indicating whether this entity contains unmarshalled value.
-     *
-     * @return {@code True} if entity contains unmarshalled value, {@code false}
-     *      otherwise.
-     */
-    public boolean hasValue();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntityAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntityAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntityAdapter.java
deleted file mode 100644
index 1effa99..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntityAdapter.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-import org.jetbrains.annotations.*;
-
-/**
- * Convenience adapter for {@link IndexingEntity}.
- */
-public class IndexingEntityAdapter<T> implements IndexingEntity<T> {
-    /** */
-    @GridToStringInclude
-    private final T val;
-
-    /** */
-    @GridToStringExclude
-    private final byte[] bytes;
-
-    /**
-     * @param val Value.
-     * @param bytes Value marshalled by {@link org.apache.ignite.marshaller.IgniteMarshaller}.
-     */
-    public IndexingEntityAdapter(T val, @Nullable byte[] bytes) {
-        this.val = val;
-        this.bytes = bytes;
-    }
-
-    /** {@inheritDoc} */
-    @Override public T value() {
-        return val;
-    }
-
-    /** {@inheritDoc} */
-    @Override public byte[] bytes() {
-        return bytes;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasValue() {
-        return val != null || (val == null && bytes == null);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(IndexingEntityAdapter.class, this,
-            "bytesLength", (bytes == null ? 0 : bytes.length));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldMetadata.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldMetadata.java
deleted file mode 100644
index f530b20..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldMetadata.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import java.io.*;
-
-/**
- * Query field descriptor. This descriptor is used to provide metadata
- * about fields returned in query result.
- */
-public interface IndexingFieldMetadata extends Externalizable {
-    /**
-     * Gets schema name.
-     *
-     * @return Schema name.
-     */
-    public String schemaName();
-
-    /**
-     * Gets name of type to which this field belongs.
-     *
-     * @return Gets type name.
-     */
-    public String typeName();
-
-    /**
-     * Gets field name.
-     *
-     * @return Field name.
-     */
-    public String fieldName();
-
-    /**
-     * Gets field type name.
-     *
-     * @return Field type name.
-     */
-    public String fieldTypeName();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResult.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResult.java
deleted file mode 100644
index ede3278..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResult.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-
-import java.util.*;
-
-/**
- * Field query result. It is composed of
- * fields metadata and iterator over queried fields.
- * See also {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter)}.
- */
-public interface IndexingFieldsResult {
-    /**
-     * Gets metadata for queried fields.
-     *
-     * @return Meta data for queried fields.
-     */
-    List<IndexingFieldMetadata> metaData();
-
-    /**
-     * Gets iterator over queried fields.
-     *
-     * @return Iterator over queried fields.
-     */
-    IgniteSpiCloseableIterator<List<IndexingEntity<?>>> iterator();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResultAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResultAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResultAdapter.java
deleted file mode 100644
index 348f344..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResultAdapter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Convenience adapter for {@link IndexingFieldsResult}.
- */
-public class IndexingFieldsResultAdapter implements IndexingFieldsResult {
-    /** Meta data. */
-    private final List<IndexingFieldMetadata> metaData;
-
-    /** Result iterator. */
-    private final IgniteSpiCloseableIterator<List<IndexingEntity<?>>> it;
-
-    /**
-     * Creates query field result composed of field metadata and iterator
-     * over queried fields.
-     *
-     * @param metaData Meta data.
-     * @param it Result iterator.
-     */
-    public IndexingFieldsResultAdapter(@Nullable List<IndexingFieldMetadata> metaData,
-                                       IgniteSpiCloseableIterator<List<IndexingEntity<?>>> it) {
-        this.metaData = metaData != null ? Collections.unmodifiableList(metaData) : null;
-        this.it = it;
-    }
-
-    /** {@inheritDoc} */
-    @Override public List<IndexingFieldMetadata> metaData() {
-        return metaData;
-    }
-
-    /** {@inheritDoc} */
-    @Override public IgniteSpiCloseableIterator<List<IndexingEntity<?>>> iterator() {
-        return it;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRow.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRow.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRow.java
deleted file mode 100644
index 841130e..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRow.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import java.util.*;
-
-/**
- * This class represents a single row returned by key-value query. For example, it is returned
- * by query such as {@link IndexingSpi#query(String, String, Collection, IndexingTypeDescriptor, IndexingQueryFilter[])}
- * method. Key-value queries are different from fields query in a way that they
- * return the whole cached value, not its individual fields.
- * See also {@link IndexingSpi#query(String, String, Collection, IndexingTypeDescriptor, IndexingQueryFilter[])}.
- */
-public interface IndexingKeyValueRow<K, V> {
-    /**
-     * Gets cache key.
-     *
-     * @return Cache key.
-     */
-    public IndexingEntity<K> key();
-
-    /**
-     * Gets cache value.
-     *
-     * @return Cache value.
-     */
-    public IndexingEntity<V> value();
-
-    /**
-     * Gets version of cache value.
-     *
-     * @return Version of cache value.
-     */
-    public byte[] version();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRowAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRowAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRowAdapter.java
deleted file mode 100644
index 8b95aa3..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRowAdapter.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
-*  __  ____/___________(_)______  /__  ____/______ ____(_)_______
-*  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-*  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-*  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
-*/
-
-package org.gridgain.grid.spi.indexing;
-
-import org.gridgain.grid.kernal.processors.cache.query.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-import org.jetbrains.annotations.*;
-
-/**
- * Convenience adapter for {@link IndexingKeyValueRow}.
- */
-public class IndexingKeyValueRowAdapter<K, V> implements IndexingKeyValueRow<K, V> {
-    /** Key. */
-    @GridToStringInclude
-    private IndexingEntity<K> key;
-
-    /** Value. */
-    @GridToStringInclude
-    private IndexingEntity<V> val;
-
-    /** Version. */
-    @GridToStringInclude
-    private byte[] ver;
-
-    /**
-     * Constructor.
-     *
-     * @param key Key.
-     * @param val Value.
-     */
-    public IndexingKeyValueRowAdapter(K key, V val) {
-        assert key != null;
-        assert val != null;
-
-        this.key = new IndexingEntityAdapter<>(key, null);
-        this.val = new IndexingEntityAdapter<>(val, null);
-    }
-
-    /**
-     * Constructs query index row.
-     *
-     * @param key Key.
-     * @param val Value.
-     * @param ver Version. It is {@code null} in case of {@link GridCacheQueryType#SCAN} query.
-     */
-    public IndexingKeyValueRowAdapter(IndexingEntity<K> key, @Nullable IndexingEntity<V> val,
-                                      @Nullable byte[] ver) {
-        assert key != null;
-
-        this.key = key;
-        this.val = val;
-        this.ver = ver;
-    }
-
-    /** {@inheritDoc} */
-    @Override public IndexingEntity<K> key() {
-        return key;
-    }
-
-    /** {@inheritDoc} */
-    @Override public IndexingEntity<V> value() {
-        return val;
-    }
-
-    /** {@inheritDoc} */
-    @Override public byte[] version() {
-        return ver;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(IndexingKeyValueRowAdapter.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingMarshaller.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingMarshaller.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingMarshaller.java
deleted file mode 100644
index 403b871..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingMarshaller.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-
-/**
- * Marshaller to be used in indexing SPI. This marshaller automatically
- * takes care of class loading of unmarshalled classes.
- * See also {@link IndexingSpi#registerMarshaller(IndexingMarshaller)}.
- */
-public interface IndexingMarshaller {
-    /**
-     * Unmarshalls bytes to object.
-     *
-     * @param bytes Bytes.
-     * @param <T> Value type.
-     * @return Value.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <T> IndexingEntity<T> unmarshal(byte[] bytes) throws IgniteSpiException;
-
-    /**
-     * Marshals object to bytes.
-     *
-     * @param entity Entity.
-     * @return Bytes.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public byte[] marshal(IndexingEntity<?> entity) throws IgniteSpiException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingQueryFilter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingQueryFilter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingQueryFilter.java
deleted file mode 100644
index 4424734..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingQueryFilter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
-import org.jetbrains.annotations.*;
-
-/**
- * Space name and key filter.
- */
-public interface IndexingQueryFilter {
-    /**
-     * Creates optional predicate for space.
-     *
-     * @param spaceName Space name.
-     * @return Predicate or {@code null} if no filtering is needed.
-     */
-    @Nullable public <K, V> IgniteBiPredicate<K, V> forSpace(String spaceName) throws GridException;
-}


[36/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
new file mode 100644
index 0000000..5377e18
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -0,0 +1,996 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.marshaller.*;
+import org.apache.ignite.marshaller.jdk.*;
+import org.apache.ignite.product.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.internal.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.messages.*;
+import org.gridgain.grid.util.*;
+import org.gridgain.grid.util.io.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+import static org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoverySpiState.*;
+
+/**
+ * Base class for TCP discovery SPIs.
+ */
+abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements DiscoverySpi {
+    /** Default port to listen (value is <tt>47500</tt>). */
+    public static final int DFLT_PORT = 47500;
+
+    /** Default socket operations timeout in milliseconds (value is <tt>2,000ms</tt>). */
+    public static final long DFLT_SOCK_TIMEOUT = 2000;
+
+    /** Default timeout for receiving message acknowledgement in milliseconds (value is <tt>5,000ms</tt>). */
+    public static final long DFLT_ACK_TIMEOUT = 5000;
+
+    /** Default network timeout in milliseconds (value is <tt>5,000ms</tt>). */
+    public static final long DFLT_NETWORK_TIMEOUT = 5000;
+
+    /** Default value for thread priority (value is <tt>10</tt>). */
+    public static final int DFLT_THREAD_PRI = 10;
+
+    /** Default heartbeat messages issuing frequency (value is <tt>2,000ms</tt>). */
+    public static final long DFLT_HEARTBEAT_FREQ = 2000;
+
+    /** Default size of topology snapshots history. */
+    public static final int DFLT_TOP_HISTORY_SIZE = 1000;
+
+    /** Response OK. */
+    protected static final int RES_OK = 1;
+
+    /** Response CONTINUE JOIN. */
+    protected static final int RES_CONTINUE_JOIN = 100;
+
+    /** Response WAIT. */
+    protected static final int RES_WAIT = 200;
+
+    /** Local address. */
+    protected String locAddr;
+
+    /** IP finder. */
+    protected TcpDiscoveryIpFinder ipFinder;
+
+    /** Socket operations timeout. */
+    protected long sockTimeout = DFLT_SOCK_TIMEOUT;
+
+    /** Message acknowledgement timeout. */
+    protected long ackTimeout = DFLT_ACK_TIMEOUT;
+
+    /** Network timeout. */
+    protected long netTimeout = DFLT_NETWORK_TIMEOUT;
+
+    /** Thread priority for all threads started by SPI. */
+    protected int threadPri = DFLT_THREAD_PRI;
+
+    /** Heartbeat messages issuing frequency. */
+    protected long hbFreq = DFLT_HEARTBEAT_FREQ;
+
+    /** Size of topology snapshots history. */
+    protected int topHistSize = DFLT_TOP_HISTORY_SIZE;
+
+    /** Grid discovery listener. */
+    protected volatile DiscoverySpiListener lsnr;
+
+    /** Data exchange. */
+    protected DiscoverySpiDataExchange exchange;
+
+    /** Metrics provider. */
+    protected DiscoveryMetricsProvider metricsProvider;
+
+    /** Local node attributes. */
+    protected Map<String, Object> locNodeAttrs;
+
+    /** Local node version. */
+    protected IgniteProductVersion locNodeVer;
+
+    /** Local node. */
+    protected TcpDiscoveryNode locNode;
+
+    /** Local host. */
+    protected InetAddress locHost;
+
+    /** Internal and external addresses of local node. */
+    protected Collection<InetSocketAddress> locNodeAddrs;
+
+    /** Socket timeout worker. */
+    protected SocketTimeoutWorker sockTimeoutWorker;
+
+    /** Discovery state. */
+    protected TcpDiscoverySpiState spiState = DISCONNECTED;
+
+    /** Start time of the very first grid node. */
+    protected volatile long gridStartTime;
+
+    /** Marshaller. */
+    protected final IgniteMarshaller marsh = new IgniteJdkMarshaller();
+
+    /** Statistics. */
+    protected final TcpDiscoveryStatistics stats = new TcpDiscoveryStatistics();
+
+    /** Local node ID. */
+    @IgniteLocalNodeIdResource
+    protected UUID locNodeId;
+
+    /** Name of the grid. */
+    @IgniteNameResource
+    protected String gridName;
+
+    /** Logger. */
+    @IgniteLoggerResource
+    protected IgniteLogger log;
+
+    /**
+     * Sets local host IP address that discovery SPI uses.
+     * <p>
+     * If not provided, by default a first found non-loopback address
+     * will be used. If there is no non-loopback address available,
+     * then {@link InetAddress#getLocalHost()} will be used.
+     *
+     * @param locAddr IP address.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    @IgniteLocalHostResource
+    public void setLocalAddress(String locAddr) {
+        // Injection should not override value already set by Spring or user.
+        if (this.locAddr == null)
+            this.locAddr = locAddr;
+    }
+
+    /**
+     * Gets local address that was set to SPI with {@link #setLocalAddress(String)} method.
+     *
+     * @return local address.
+     */
+    public String getLocalAddress() {
+        return locAddr;
+    }
+
+    /**
+     * Gets IP finder for IP addresses sharing and storing.
+     *
+     * @return IP finder for IP addresses sharing and storing.
+     */
+    public TcpDiscoveryIpFinder getIpFinder() {
+        return ipFinder;
+    }
+
+    /**
+     * Sets IP finder for IP addresses sharing and storing.
+     * <p>
+     * If not provided {@link org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder} will be used by default.
+     *
+     * @param ipFinder IP finder.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setIpFinder(TcpDiscoveryIpFinder ipFinder) {
+        this.ipFinder = ipFinder;
+    }
+
+    /**
+     * Sets socket operations timeout. This timeout is used to limit connection time and
+     * write-to-socket time.
+     * <p>
+     * Note that when running GridGain on Amazon EC2, socket timeout must be set to a value
+     * significantly greater than the default (e.g. to {@code 30000}).
+     * <p>
+     * If not specified, default is {@link #DFLT_SOCK_TIMEOUT}.
+     *
+     * @param sockTimeout Socket connection timeout.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setSocketTimeout(long sockTimeout) {
+        this.sockTimeout = sockTimeout;
+    }
+
+    /**
+     * Sets timeout for receiving acknowledgement for sent message.
+     * <p>
+     * If acknowledgement is not received within this timeout, sending is considered as failed
+     * and SPI tries to repeat message sending.
+     * <p>
+     * If not specified, default is {@link #DFLT_ACK_TIMEOUT}.
+     *
+     * @param ackTimeout Acknowledgement timeout.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setAckTimeout(long ackTimeout) {
+        this.ackTimeout = ackTimeout;
+    }
+
+    /**
+     * Sets maximum network timeout to use for network operations.
+     * <p>
+     * If not specified, default is {@link #DFLT_NETWORK_TIMEOUT}.
+     *
+     * @param netTimeout Network timeout.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setNetworkTimeout(long netTimeout) {
+        this.netTimeout = netTimeout;
+    }
+
+    /**
+     * Sets thread priority. All threads within SPI will be started with it.
+     * <p>
+     * If not provided, default value is {@link #DFLT_THREAD_PRI}
+     *
+     * @param threadPri Thread priority.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setThreadPriority(int threadPri) {
+        this.threadPri = threadPri;
+    }
+
+    /**
+     * Sets delay between issuing of heartbeat messages. SPI sends heartbeat messages
+     * in configurable time interval to other nodes to notify them about its state.
+     * <p>
+     * If not provided, default value is {@link #DFLT_HEARTBEAT_FREQ}.
+     *
+     * @param hbFreq Heartbeat frequency in milliseconds.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setHeartbeatFrequency(long hbFreq) {
+        this.hbFreq = hbFreq;
+    }
+
+    /**
+     * @return Size of topology snapshots history.
+     */
+    public long getTopHistorySize() {
+        return topHistSize;
+    }
+
+    /**
+     * Sets size of topology snapshots history. Specified size should be greater than or equal to default size
+     * {@link #DFLT_TOP_HISTORY_SIZE}.
+     *
+     * @param topHistSize Size of topology snapshots history.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setTopHistorySize(int topHistSize) {
+        if (topHistSize < DFLT_TOP_HISTORY_SIZE) {
+            U.warn(log, "Topology history size should be greater than or equal to default size. " +
+                "Specified size will not be set [curSize=" + this.topHistSize + ", specifiedSize=" + topHistSize +
+                ", defaultSize=" + DFLT_TOP_HISTORY_SIZE + ']');
+
+            return;
+        }
+
+        this.topHistSize = topHistSize;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void setNodeAttributes(Map<String, Object> attrs, IgniteProductVersion ver) {
+        assert locNodeAttrs == null;
+        assert locNodeVer == null;
+
+        if (log.isDebugEnabled()) {
+            log.debug("Node attributes to set: " + attrs);
+            log.debug("Node version to set: " + ver);
+        }
+
+        locNodeAttrs = attrs;
+        locNodeVer = ver;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException {
+        super.onContextInitialized0(spiCtx);
+
+        ipFinder.onSpiContextInitialized(spiCtx);
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void onContextDestroyed0() {
+        super.onContextDestroyed0();
+
+        ipFinder.onSpiContextDestroyed();
+    }
+
+    /** {@inheritDoc} */
+    @Override public ClusterNode getLocalNode() {
+        return locNode;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void setListener(@Nullable DiscoverySpiListener lsnr) {
+        this.lsnr = lsnr;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void setDataExchange(DiscoverySpiDataExchange exchange) {
+        this.exchange = exchange;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void setMetricsProvider(DiscoveryMetricsProvider metricsProvider) {
+        this.metricsProvider = metricsProvider;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getGridStartTime() {
+        assert gridStartTime != 0;
+
+        return gridStartTime;
+    }
+
+    /**
+     * @param sockAddr Remote address.
+     * @return Opened socket.
+     * @throws IOException If failed.
+     */
+    protected Socket openSocket(InetSocketAddress sockAddr) throws IOException {
+        assert sockAddr != null;
+
+        InetSocketAddress resolved = sockAddr.isUnresolved() ?
+            new InetSocketAddress(InetAddress.getByName(sockAddr.getHostName()), sockAddr.getPort()) : sockAddr;
+
+        InetAddress addr = resolved.getAddress();
+
+        assert addr != null;
+
+        Socket sock = new Socket();
+
+        sock.bind(new InetSocketAddress(locHost, 0));
+
+        sock.setTcpNoDelay(true);
+
+        sock.connect(resolved, (int)sockTimeout);
+
+        writeToSocket(sock, U.GG_HEADER);
+
+        return sock;
+    }
+
+    /**
+     * Writes message to the socket.
+     *
+     * @param sock Socket.
+     * @param data Raw data to write.
+     * @throws IOException If IO failed or write timed out.
+     */
+    @SuppressWarnings("ThrowFromFinallyBlock")
+    protected void writeToSocket(Socket sock, byte[] data) throws IOException {
+        assert sock != null;
+        assert data != null;
+
+        SocketTimeoutObject obj = new SocketTimeoutObject(sock, U.currentTimeMillis() + sockTimeout);
+
+        sockTimeoutWorker.addTimeoutObject(obj);
+
+        IOException err = null;
+
+        try {
+            OutputStream out = sock.getOutputStream();
+
+            out.write(data);
+
+            out.flush();
+        }
+        catch (IOException e) {
+            err = e;
+        }
+        finally {
+            boolean cancelled = obj.cancel();
+
+            if (cancelled)
+                sockTimeoutWorker.removeTimeoutObject(obj);
+
+            // Throw original exception.
+            if (err != null)
+                throw err;
+
+            if (!cancelled)
+                throw new SocketTimeoutException("Write timed out (socket was concurrently closed).");
+        }
+    }
+
+    /**
+     * Writes message to the socket.
+     *
+     * @param sock Socket.
+     * @param msg Message.
+     * @throws IOException If IO failed or write timed out.
+     * @throws GridException If marshalling failed.
+     */
+    protected void writeToSocket(Socket sock, TcpDiscoveryAbstractMessage msg) throws IOException, GridException {
+        writeToSocket(sock, msg, new GridByteArrayOutputStream(8 * 1024)); // 8K.
+    }
+
+    /**
+     * Writes message to the socket.
+     *
+     * @param sock Socket.
+     * @param msg Message.
+     * @param bout Byte array output stream.
+     * @throws IOException If IO failed or write timed out.
+     * @throws GridException If marshalling failed.
+     */
+    @SuppressWarnings("ThrowFromFinallyBlock")
+    protected void writeToSocket(Socket sock, TcpDiscoveryAbstractMessage msg, GridByteArrayOutputStream bout)
+        throws IOException, GridException {
+        assert sock != null;
+        assert msg != null;
+        assert bout != null;
+
+        // Marshall message first to perform only write after.
+        marsh.marshal(msg, bout);
+
+        SocketTimeoutObject obj = new SocketTimeoutObject(sock, U.currentTimeMillis() + sockTimeout);
+
+        sockTimeoutWorker.addTimeoutObject(obj);
+
+        IOException err = null;
+
+        try {
+            OutputStream out = sock.getOutputStream();
+
+            bout.writeTo(out);
+
+            out.flush();
+        }
+        catch (IOException e) {
+            err = e;
+        }
+        finally {
+            boolean cancelled = obj.cancel();
+
+            if (cancelled)
+                sockTimeoutWorker.removeTimeoutObject(obj);
+
+            // Throw original exception.
+            if (err != null)
+                throw err;
+
+            if (!cancelled)
+                throw new SocketTimeoutException("Write timed out (socket was concurrently closed).");
+        }
+    }
+
+    /**
+     * Writes response to the socket.
+     *
+     * @param sock Socket.
+     * @param res Integer response.
+     * @throws IOException If IO failed or write timed out.
+     */
+    @SuppressWarnings("ThrowFromFinallyBlock")
+    protected void writeToSocket(Socket sock, int res) throws IOException {
+        assert sock != null;
+
+        SocketTimeoutObject obj = new SocketTimeoutObject(sock, U.currentTimeMillis() + sockTimeout);
+
+        sockTimeoutWorker.addTimeoutObject(obj);
+
+        OutputStream out = sock.getOutputStream();
+
+        IOException err = null;
+
+        try {
+            out.write(res);
+
+            out.flush();
+        }
+        catch (IOException e) {
+            err = e;
+        }
+        finally {
+            boolean cancelled = obj.cancel();
+
+            if (cancelled)
+                sockTimeoutWorker.removeTimeoutObject(obj);
+
+            // Throw original exception.
+            if (err != null)
+                throw err;
+
+            if (!cancelled)
+                throw new SocketTimeoutException("Write timed out (socket was concurrently closed).");
+        }
+    }
+
+    /**
+     * Reads message from the socket limiting read time.
+     *
+     * @param sock Socket.
+     * @param in Input stream (in case socket stream was wrapped).
+     * @param timeout Socket timeout for this operation.
+     * @return Message.
+     * @throws IOException If IO failed or read timed out.
+     * @throws GridException If unmarshalling failed.
+     */
+    protected <T> T readMessage(Socket sock, @Nullable InputStream in, long timeout) throws IOException, GridException {
+        assert sock != null;
+
+        int oldTimeout = sock.getSoTimeout();
+
+        try {
+            sock.setSoTimeout((int)timeout);
+
+            return marsh.unmarshal(in == null ? sock.getInputStream() : in, U.gridClassLoader());
+        }
+        catch (IOException | GridException e) {
+            if (X.hasCause(e, SocketTimeoutException.class))
+                LT.warn(log, null, "Timed out waiting for message to be read (most probably, the reason is " +
+                    "in long GC pauses on remote node. Current timeout: " + timeout + '.');
+
+            throw e;
+        }
+        finally {
+            // Quietly restore timeout.
+            try {
+                sock.setSoTimeout(oldTimeout);
+            }
+            catch (SocketException ignored) {
+                // No-op.
+            }
+        }
+    }
+
+    /**
+     * Reads message delivery receipt from the socket.
+     *
+     * @param sock Socket.
+     * @param timeout Socket timeout for this operation.
+     * @return Receipt.
+     * @throws IOException If IO failed or read timed out.
+     */
+    protected int readReceipt(Socket sock, long timeout) throws IOException {
+        assert sock != null;
+
+        int oldTimeout = sock.getSoTimeout();
+
+        try {
+            sock.setSoTimeout((int)timeout);
+
+            int res = sock.getInputStream().read();
+
+            if (res == -1)
+                throw new EOFException();
+
+            return res;
+        }
+        catch (SocketTimeoutException e) {
+            LT.warn(log, null, "Timed out waiting for message delivery receipt (most probably, the reason is " +
+                "in long GC pauses on remote node; consider tuning GC and increasing 'ackTimeout' " +
+                "configuration property). Will retry to send message with increased timeout. " +
+                "Current timeout: " + timeout + '.');
+
+            stats.onAckTimeout();
+
+            throw e;
+        }
+        finally {
+            // Quietly restore timeout.
+            try {
+                sock.setSoTimeout(oldTimeout);
+            }
+            catch (SocketException ignored) {
+                // No-op.
+            }
+        }
+    }
+
+    /**
+     * Resolves addresses registered in the IP finder, removes duplicates and local host
+     * address and returns the collection of.
+     *
+     * @return Resolved addresses without duplicates and local address (potentially
+     *      empty but never null).
+     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
+     */
+    protected Collection<InetSocketAddress> resolvedAddresses() throws IgniteSpiException {
+        List<InetSocketAddress> res = new ArrayList<>();
+
+        Collection<InetSocketAddress> addrs;
+
+        // Get consistent addresses collection.
+        while (true) {
+            try {
+                addrs = registeredAddresses();
+
+                break;
+            }
+            catch (IgniteSpiException e) {
+                LT.error(log, e, "Failed to get registered addresses from IP finder on start " +
+                    "(retrying every 2000 ms).");
+            }
+
+            try {
+                U.sleep(2000);
+            }
+            catch (GridInterruptedException e) {
+                throw new IgniteSpiException("Thread has been interrupted.", e);
+            }
+        }
+
+        for (InetSocketAddress addr : addrs) {
+            assert addr != null;
+
+            try {
+                InetSocketAddress resolved = addr.isUnresolved() ?
+                    new InetSocketAddress(InetAddress.getByName(addr.getHostName()), addr.getPort()) : addr;
+
+                if (locNodeAddrs == null || !locNodeAddrs.contains(resolved))
+                    res.add(resolved);
+            }
+            catch (UnknownHostException ignored) {
+                LT.warn(log, null, "Failed to resolve address from IP finder (host is unknown): " + addr);
+
+                // Add address in any case.
+                res.add(addr);
+            }
+        }
+
+        if (!res.isEmpty())
+            Collections.shuffle(res);
+
+        return res;
+    }
+
+    /**
+     * Gets addresses registered in the IP finder, initializes addresses having no
+     * port (or 0 port) with {@link #DFLT_PORT}.
+     *
+     * @return Registered addresses.
+     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
+     */
+    protected Collection<InetSocketAddress> registeredAddresses() throws IgniteSpiException {
+        Collection<InetSocketAddress> res = new LinkedList<>();
+
+        for (InetSocketAddress addr : ipFinder.getRegisteredAddresses()) {
+            if (addr.getPort() == 0)
+                addr = addr.isUnresolved() ? new InetSocketAddress(addr.getHostName(), DFLT_PORT) :
+                    new InetSocketAddress(addr.getAddress(), DFLT_PORT);
+
+            res.add(addr);
+        }
+
+        return res;
+    }
+
+    /**
+     * @param msg Message.
+     * @return Error.
+     */
+    protected IgniteSpiException duplicateIdError(TcpDiscoveryDuplicateIdMessage msg) {
+        assert msg != null;
+
+        return new IgniteSpiException("Local node has the same ID as existing node in topology " +
+            "(fix configuration and restart local node) [localNode=" + locNode +
+            ", existingNode=" + msg.node() + ']');
+    }
+
+    /**
+     * @param msg Message.
+     * @return Error.
+     */
+    protected IgniteSpiException authenticationFailedError(TcpDiscoveryAuthFailedMessage msg) {
+        assert msg != null;
+
+        return new IgniteSpiException(new GridAuthenticationException("Authentication failed [nodeId=" +
+            msg.creatorNodeId() + ", addr=" + msg.address().getHostAddress() + ']'));
+    }
+
+    /**
+     * @param msg Message.
+     * @return Error.
+     */
+    protected IgniteSpiException checkFailedError(TcpDiscoveryCheckFailedMessage msg) {
+        assert msg != null;
+
+        return versionCheckFailed(msg) ? new IgniteSpiVersionCheckException(msg.error()) :
+            new IgniteSpiException(msg.error());
+    }
+
+    /**
+     * @param msg Message.
+     * @return Whether delivery of the message is ensured.
+     */
+    protected boolean ensured(TcpDiscoveryAbstractMessage msg) {
+        return U.getAnnotation(msg.getClass(), TcpDiscoveryEnsureDelivery.class) != null;
+    }
+
+    /**
+     * @param msg Failed message.
+     * @return {@code True} if specified failed message relates to version incompatibility, {@code false} otherwise.
+     * @deprecated Parsing of error message was used for preserving backward compatibility. We should remove it
+     *      and create separate message for failed version check with next major release.
+     */
+    @Deprecated
+    private static boolean versionCheckFailed(TcpDiscoveryCheckFailedMessage msg) {
+        return msg.error().contains("versions are not compatible");
+    }
+
+    /**
+     * Handles sockets timeouts.
+     */
+    protected class SocketTimeoutWorker extends IgniteSpiThread {
+        /** Time-based sorted set for timeout objects. */
+        private final GridConcurrentSkipListSet<SocketTimeoutObject> timeoutObjs =
+            new GridConcurrentSkipListSet<>(new Comparator<SocketTimeoutObject>() {
+                @Override public int compare(SocketTimeoutObject o1, SocketTimeoutObject o2) {
+                    long time1 = o1.endTime();
+                    long time2 = o2.endTime();
+
+                    long id1 = o1.id();
+                    long id2 = o2.id();
+
+                    return time1 < time2 ? -1 : time1 > time2 ? 1 :
+                        id1 < id2 ? -1 : id1 > id2 ? 1 : 0;
+                }
+            });
+
+        /** Mutex. */
+        private final Object mux0 = new Object();
+
+        /**
+         *
+         */
+        SocketTimeoutWorker() {
+            super(gridName, "tcp-disco-sock-timeout-worker", log);
+
+            setPriority(threadPri);
+        }
+
+        /**
+         * @param timeoutObj Timeout object to add.
+         */
+        @SuppressWarnings({"NakedNotify"})
+        public void addTimeoutObject(SocketTimeoutObject timeoutObj) {
+            assert timeoutObj != null && timeoutObj.endTime() > 0 && timeoutObj.endTime() != Long.MAX_VALUE;
+
+            timeoutObjs.add(timeoutObj);
+
+            if (timeoutObjs.firstx() == timeoutObj) {
+                synchronized (mux0) {
+                    mux0.notifyAll();
+                }
+            }
+        }
+
+        /**
+         * @param timeoutObj Timeout object to remove.
+         */
+        public void removeTimeoutObject(SocketTimeoutObject timeoutObj) {
+            assert timeoutObj != null;
+
+            timeoutObjs.remove(timeoutObj);
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void body() throws InterruptedException {
+            if (log.isDebugEnabled())
+                log.debug("Socket timeout worker has been started.");
+
+            while (!isInterrupted()) {
+                long now = U.currentTimeMillis();
+
+                for (Iterator<SocketTimeoutObject> iter = timeoutObjs.iterator(); iter.hasNext(); ) {
+                    SocketTimeoutObject timeoutObj = iter.next();
+
+                    if (timeoutObj.endTime() <= now) {
+                        iter.remove();
+
+                        if (timeoutObj.onTimeout()) {
+                            LT.warn(log, null, "Socket write has timed out (consider increasing " +
+                                "'sockTimeout' configuration property) [sockTimeout=" + sockTimeout + ']');
+
+                            stats.onSocketTimeout();
+                        }
+                    }
+                    else
+                        break;
+                }
+
+                synchronized (mux0) {
+                    while (true) {
+                        // Access of the first element must be inside of
+                        // synchronization block, so we don't miss out
+                        // on thread notification events sent from
+                        // 'addTimeoutObject(..)' method.
+                        SocketTimeoutObject first = timeoutObjs.firstx();
+
+                        if (first != null) {
+                            long waitTime = first.endTime() - U.currentTimeMillis();
+
+                            if (waitTime > 0)
+                                mux0.wait(waitTime);
+                            else
+                                break;
+                        }
+                        else
+                            mux0.wait(5000);
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Socket timeout object.
+     */
+    protected static class SocketTimeoutObject {
+        /** */
+        private static final AtomicLong idGen = new AtomicLong();
+
+        /** */
+        private final long id = idGen.incrementAndGet();
+
+        /** */
+        private final Socket sock;
+
+        /** */
+        private final long endTime;
+
+        /** */
+        private final AtomicBoolean done = new AtomicBoolean();
+
+        /**
+         * @param sock Socket.
+         * @param endTime End time.
+         */
+        SocketTimeoutObject(Socket sock, long endTime) {
+            assert sock != null;
+            assert endTime > 0;
+
+            this.sock = sock;
+            this.endTime = endTime;
+        }
+
+        /**
+         * @return {@code True} if object has not yet been processed.
+         */
+        boolean cancel() {
+            return done.compareAndSet(false, true);
+        }
+
+        /**
+         * @return {@code True} if object has not yet been canceled.
+         */
+        boolean onTimeout() {
+            if (done.compareAndSet(false, true)) {
+                // Close socket - timeout occurred.
+                U.closeQuiet(sock);
+
+                return true;
+            }
+
+            return false;
+        }
+
+        /**
+         * @return End time.
+         */
+        long endTime() {
+            return endTime;
+        }
+
+        /**
+         * @return ID.
+         */
+        long id() {
+            return id;
+        }
+
+        /** {@inheritDoc} */
+        @Override public String toString() {
+            return S.toString(SocketTimeoutObject.class, this);
+        }
+    }
+
+    /**
+     * Base class for message workers.
+     */
+    protected abstract class MessageWorkerAdapter extends IgniteSpiThread {
+        /** Pre-allocated output stream (100K). */
+        private final GridByteArrayOutputStream bout = new GridByteArrayOutputStream(100 * 1024);
+
+        /** Message queue. */
+        private final BlockingDeque<TcpDiscoveryAbstractMessage> queue = new LinkedBlockingDeque<>();
+
+        /** Backed interrupted flag. */
+        private volatile boolean interrupted;
+
+        /**
+         * @param name Thread name.
+         */
+        protected MessageWorkerAdapter(String name) {
+            super(gridName, name, log);
+
+            setPriority(threadPri);
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void body() throws InterruptedException {
+            if (log.isDebugEnabled())
+                log.debug("Message worker started [locNodeId=" + locNodeId + ']');
+
+            while (!isInterrupted()) {
+                TcpDiscoveryAbstractMessage msg = queue.poll(2000, TimeUnit.MILLISECONDS);
+
+                if (msg == null)
+                    continue;
+
+                processMessage(msg);
+            }
+        }
+
+        /** {@inheritDoc} */
+        @Override public void interrupt() {
+            interrupted = true;
+
+            super.interrupt();
+        }
+
+        /** {@inheritDoc} */
+        @Override public boolean isInterrupted() {
+            return interrupted || super.isInterrupted();
+        }
+
+        /**
+         * @return Current queue size.
+         */
+        int queueSize() {
+            return queue.size();
+        }
+
+        /**
+         * Adds message to queue.
+         *
+         * @param msg Message to add.
+         */
+        void addMessage(TcpDiscoveryAbstractMessage msg) {
+            assert msg != null;
+
+            if (msg instanceof TcpDiscoveryHeartbeatMessage)
+                queue.addFirst(msg);
+            else
+                queue.add(msg);
+
+            if (log.isDebugEnabled())
+                log.debug("Message has been added to queue: " + msg);
+        }
+
+        protected abstract void processMessage(TcpDiscoveryAbstractMessage msg);
+
+        /**
+         * @param sock Socket.
+         * @param msg Message.
+         * @throws IOException If IO failed.
+         * @throws GridException If marshalling failed.
+         */
+        protected final void writeToSocket(Socket sock, TcpDiscoveryAbstractMessage msg)
+            throws IOException, GridException {
+            bout.reset();
+
+            TcpDiscoverySpiAdapter.this.writeToSocket(sock, msg, bout);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiMBean.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiMBean.java
new file mode 100644
index 0000000..5043d78
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiMBean.java
@@ -0,0 +1,267 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.mbean.*;
+import org.apache.ignite.spi.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Management bean for {@link TcpDiscoverySpi}.
+ */
+public interface TcpDiscoverySpiMBean extends IgniteSpiManagementMBean {
+    /**
+     * Gets delay between heartbeat messages sent by coordinator.
+     *
+     * @return Time period in milliseconds.
+     */
+    @IgniteMBeanDescription("Heartbeat frequency.")
+    public long getHeartbeatFrequency();
+
+    /**
+     * Gets current SPI state.
+     *
+     * @return Current SPI state.
+     */
+    @IgniteMBeanDescription("SPI state.")
+    public String getSpiState();
+
+    /**
+     * Gets {@link org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} (string representation).
+     *
+     * @return IPFinder (string representation).
+     */
+    @IgniteMBeanDescription("IP Finder.")
+    public String getIpFinderFormatted();
+
+    /**
+     * Gets number of connection attempts.
+     *
+     * @return Number of connection attempts.
+     */
+    @IgniteMBeanDescription("Reconnect count.")
+    public int getReconnectCount();
+
+    /**
+     * Gets network timeout.
+     *
+     * @return Network timeout.
+     */
+    @IgniteMBeanDescription("Network timeout.")
+    public long getNetworkTimeout();
+
+    /**
+     * Gets local TCP port SPI listens to.
+     *
+     * @return Local port range.
+     */
+    @IgniteMBeanDescription("Local TCP port.")
+    public int getLocalPort();
+
+    /**
+     * Gets local TCP port range.
+     *
+     * @return Local port range.
+     */
+    @IgniteMBeanDescription("Local TCP port range.")
+    public int getLocalPortRange();
+
+    /**
+     * Gets max heartbeats count node can miss without initiating status check.
+     *
+     * @return Max missed heartbeats.
+     */
+    @IgniteMBeanDescription("Max missed heartbeats.")
+    public int getMaxMissedHeartbeats();
+
+    /**
+     * Gets max heartbeats count node can miss without failing client node.
+     *
+     * @return Max missed client heartbeats.
+     */
+    @IgniteMBeanDescription("Max missed client heartbeats.")
+    public int getMaxMissedClientHeartbeats();
+
+    /**
+     * Gets thread priority. All threads within SPI will be started with it.
+     *
+     * @return Thread priority.
+     */
+    @IgniteMBeanDescription("Threads priority.")
+    public int getThreadPriority();
+
+    /**
+     * Gets IP finder clean frequency.
+     *
+     * @return IP finder clean frequency.
+     */
+    @IgniteMBeanDescription("IP finder clean frequency.")
+    public long getIpFinderCleanFrequency();
+
+    /**
+     * Gets statistics print frequency.
+     *
+     * @return Statistics print frequency in milliseconds.
+     */
+    @IgniteMBeanDescription("Statistics print frequency.")
+    public long getStatisticsPrintFrequency();
+
+    /**
+     * Gets message worker queue current size.
+     *
+     * @return Message worker queue current size.
+     */
+    @IgniteMBeanDescription("Message worker queue current size.")
+    public int getMessageWorkerQueueSize();
+
+    /**
+     * Gets joined nodes count.
+     *
+     * @return Nodes joined count.
+     */
+    @IgniteMBeanDescription("Nodes joined count.")
+    public long getNodesJoined();
+
+    /**
+     * Gets left nodes count.
+     *
+     * @return Left nodes count.
+     */
+    @IgniteMBeanDescription("Nodes left count.")
+    public long getNodesLeft();
+
+    /**
+     * Gets failed nodes count.
+     *
+     * @return Failed nodes count.
+     */
+    @IgniteMBeanDescription("Nodes failed count.")
+    public long getNodesFailed();
+
+    /**
+     * Gets pending messages registered count.
+     *
+     * @return Pending messages registered count.
+     */
+    @IgniteMBeanDescription("Pending messages registered.")
+    public long getPendingMessagesRegistered();
+
+    /**
+     * Gets pending messages discarded count.
+     *
+     * @return Pending messages registered count.
+     */
+    @IgniteMBeanDescription("Pending messages discarded.")
+    public long getPendingMessagesDiscarded();
+
+    /**
+     * Gets avg message processing time.
+     *
+     * @return Avg message processing time.
+     */
+    @IgniteMBeanDescription("Avg message processing time.")
+    public long getAvgMessageProcessingTime();
+
+    /**
+     * Gets max message processing time.
+     *
+     * @return Max message processing time.
+     */
+    @IgniteMBeanDescription("Max message processing time.")
+    public long getMaxMessageProcessingTime();
+
+    /**
+     * Gets total received messages count.
+     *
+     * @return Total received messages count.
+     */
+    @IgniteMBeanDescription("Total received messages count.")
+    public int getTotalReceivedMessages();
+
+    /**
+     * Gets received messages counts (grouped by type).
+     *
+     * @return Map containing message types and respective counts.
+     */
+    @IgniteMBeanDescription("Received messages by type.")
+    public Map<String, Integer> getReceivedMessages();
+
+    /**
+     * Gets total processed messages count.
+     *
+     * @return Total processed messages count.
+     */
+    @IgniteMBeanDescription("Total processed messages count.")
+    public int getTotalProcessedMessages();
+
+    /**
+     * Gets processed messages counts (grouped by type).
+     *
+     * @return Map containing message types and respective counts.
+     */
+    @IgniteMBeanDescription("Received messages by type.")
+    public Map<String, Integer> getProcessedMessages();
+
+    /**
+     * Gets time local node has been coordinator since.
+     *
+     * @return Time local node is coordinator since.
+     */
+    @IgniteMBeanDescription("Local node is coordinator since.")
+    public long getCoordinatorSinceTimestamp();
+
+    /**
+     * Gets current coordinator.
+     *
+     * @return Gets current coordinator.
+     */
+    @IgniteMBeanDescription("Coordinator node ID.")
+    @Nullable public UUID getCoordinator();
+
+    /**
+     * Gets message acknowledgement timeout.
+     *
+     * @return Message acknowledgement timeout.
+     */
+    @IgniteMBeanDescription("Message acknowledgement timeout.")
+    public long getAckTimeout();
+
+    /**
+     * Gets maximum message acknowledgement timeout.
+     *
+     * @return Maximum message acknowledgement timeout.
+     */
+    @IgniteMBeanDescription("Maximum message acknowledgement timeout.")
+    public long getMaxAckTimeout();
+
+    /**
+     * Gets socket timeout.
+     *
+     * @return Socket timeout.
+     */
+    @IgniteMBeanDescription("Socket timeout.")
+    public long getSocketTimeout();
+
+    /**
+     * Gets join timeout.
+     *
+     * @return Join timeout.
+     */
+    @IgniteMBeanDescription("Join timeout.")
+    public long getJoinTimeout();
+
+    /**
+     * Dumps debug info using configured logger.
+     */
+    @IgniteMBeanDescription("Dump debug info.")
+    public void dumpDebugInfo();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
new file mode 100644
index 0000000..5658545
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java
@@ -0,0 +1,443 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.internal;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.product.*;
+import org.gridgain.grid.kernal.*;
+import org.apache.ignite.spi.discovery.*;
+import org.gridgain.grid.util.lang.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import static org.gridgain.grid.kernal.GridNodeAttributes.*;
+
+/**
+ * Node for {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}.
+ * <p>
+ * <strong>This class is not intended for public use</strong> and has been made
+ * <tt>public</tt> due to certain limitations of Java technology.
+ */
+public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements ClusterNode,
+    Comparable<TcpDiscoveryNode>, Externalizable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Node ID. */
+    private UUID id;
+
+    /** Consistent ID. */
+    private Object consistentId;
+
+    /** Node attributes. */
+    @GridToStringExclude
+    private Map<String, Object> attrs;
+
+    /** Internal discovery addresses as strings. */
+    @GridToStringInclude
+    private Collection<String> addrs;
+
+    /** Internal discovery host names as strings. */
+    private Collection<String> hostNames;
+
+    /** */
+    @GridToStringInclude
+    private Collection<InetSocketAddress> sockAddrs;
+
+    /** */
+    @GridToStringInclude
+    private int discPort;
+
+    /** Node metrics. */
+    @GridToStringExclude
+    private volatile ClusterNodeMetrics metrics;
+
+    /** Node order in the topology. */
+    private volatile long order;
+
+    /** Node order in the topology (internal). */
+    private volatile long intOrder;
+
+    /** The most recent time when heartbeat message was received from the node. */
+    @GridToStringExclude
+    private volatile long lastUpdateTime = U.currentTimeMillis();
+
+    /** Metrics provider (transient). */
+    @GridToStringExclude
+    private DiscoveryMetricsProvider metricsProvider;
+
+    /** Visible flag (transient). */
+    @GridToStringExclude
+    private boolean visible;
+
+    /** Grid local node flag (transient). */
+    private boolean loc;
+
+    /** Version. */
+    private IgniteProductVersion ver;
+
+    /** Alive check (used by clients). */
+    @GridToStringExclude
+    private transient int aliveCheck;
+
+    /** Client router node ID. */
+    @GridToStringExclude
+    private UUID clientRouterNodeId;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryNode() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param id Node Id.
+     * @param addrs Addresses.
+     * @param hostNames Host names.
+     * @param discPort Port.
+     * @param metricsProvider Metrics provider.
+     * @param ver Version.
+     */
+    public TcpDiscoveryNode(UUID id, Collection<String> addrs, Collection<String> hostNames, int discPort,
+                            DiscoveryMetricsProvider metricsProvider, IgniteProductVersion ver) {
+        assert id != null;
+        assert !F.isEmpty(addrs);
+        assert metricsProvider != null;
+        assert ver != null;
+
+        this.id = id;
+        this.addrs = addrs;
+        this.hostNames = hostNames;
+        this.discPort = discPort;
+        this.metricsProvider = metricsProvider;
+        this.ver = ver;
+
+        consistentId = U.consistentId(addrs, discPort);
+
+        metrics = metricsProvider.getMetrics();
+        sockAddrs = U.toSocketAddresses(this, discPort);
+    }
+
+    /** {@inheritDoc} */
+    @Override public UUID id() {
+        return id;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Object consistentId() {
+        return consistentId;
+    }
+
+    /** {@inheritDoc} */
+    @SuppressWarnings("unchecked")
+    @Override public <T> T attribute(String name) {
+        // Even though discovery SPI removes this attribute after authentication, keep this check for safety.
+        if (GridNodeAttributes.ATTR_SECURITY_CREDENTIALS.equals(name))
+            return null;
+
+        return (T)attrs.get(name);
+    }
+
+    /** {@inheritDoc} */
+    @Override public Map<String, Object> attributes() {
+        // Even though discovery SPI removes this attribute after authentication, keep this check for safety.
+        return F.view(attrs, new IgnitePredicate<String>() {
+            @Override public boolean apply(String s) {
+                return !GridNodeAttributes.ATTR_SECURITY_CREDENTIALS.equals(s);
+            }
+        });
+    }
+
+    /**
+     * Sets node attributes.
+     *
+     * @param attrs Node attributes.
+     */
+    public void setAttributes(Map<String, Object> attrs) {
+        this.attrs = U.sealMap(attrs);
+    }
+
+    /**
+     * Gets node attributes without filtering.
+     *
+     * @return Node attributes without filtering.
+     */
+    public Map<String, Object> getAttributes() {
+        return attrs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public ClusterNodeMetrics metrics() {
+        if (metricsProvider != null)
+            metrics = metricsProvider.getMetrics();
+
+        return metrics;
+    }
+
+    /**
+     * Sets node metrics.
+     *
+     * @param metrics Node metrics.
+     */
+    public void setMetrics(ClusterNodeMetrics metrics) {
+        assert metrics != null;
+
+        this.metrics = metrics;
+    }
+
+    /**
+     * @return Internal order.
+     */
+    public long internalOrder() {
+        return intOrder;
+    }
+
+    /**
+     * @param intOrder Internal order of the node.
+     */
+    public void internalOrder(long intOrder) {
+        assert intOrder > 0;
+
+        this.intOrder = intOrder;
+    }
+
+    /**
+     * @return Order.
+     */
+    @Override public long order() {
+        return order;
+    }
+
+    /**
+     * @param order Order of the node.
+     */
+    public void order(long order) {
+        assert order >= 0 : "Order is invalid: " + this;
+
+        this.order = order;
+    }
+
+    /** {@inheritDoc} */
+    @Override public IgniteProductVersion version() {
+        return ver;
+    }
+
+    /**
+     * @param ver Version.
+     */
+    public void version(IgniteProductVersion ver) {
+        assert ver != null;
+
+        this.ver = ver;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<String> addresses() {
+        return addrs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isLocal() {
+        return loc;
+    }
+
+    /**
+     * @param loc Grid local node flag.
+     */
+    public void local(boolean loc) {
+        this.loc = loc;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isDaemon() {
+        return "true".equalsIgnoreCase((String)attribute(ATTR_DAEMON));
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<String> hostNames() {
+        return hostNames;
+    }
+
+    /**
+     * @return Discovery port.
+     */
+    public int discoveryPort() {
+        return discPort;
+    }
+
+    /**
+     * @return Addresses that could be used by discovery.
+     */
+    public Collection<InetSocketAddress> socketAddresses() {
+        return sockAddrs;
+    }
+
+    /**
+     * Gets node last update time.
+     *
+     * @return Time of the last heartbeat.
+     */
+    public long lastUpdateTime() {
+        return lastUpdateTime;
+    }
+
+    /**
+     * Sets node last update.
+     *
+     * @param lastUpdateTime Time of last metrics update.
+     */
+    public void lastUpdateTime(long lastUpdateTime) {
+        assert lastUpdateTime > 0;
+
+        this.lastUpdateTime = lastUpdateTime;
+    }
+
+    /**
+     * Gets visible flag.
+     *
+     * @return {@code true} if node is in visible state.
+     */
+    public boolean visible() {
+        return visible;
+    }
+
+    /**
+     * Sets visible flag.
+     *
+     * @param visible {@code true} if node is in visible state.
+     */
+    public void visible(boolean visible) {
+        this.visible = visible;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isClient() {
+        return clientRouterNodeId != null;
+    }
+
+    /**
+     * Decrements alive check value and returns new one.
+     *
+     * @return Alive check value.
+     */
+    public int decrementAliveCheck() {
+        assert isClient();
+
+        return --aliveCheck;
+    }
+
+    /**
+     * @param aliveCheck Alive check value.
+     */
+    public void aliveCheck(int aliveCheck) {
+        assert isClient();
+
+        this.aliveCheck = aliveCheck;
+    }
+
+    /**
+     * @return Client router node ID.
+     */
+    public UUID clientRouterNodeId() {
+        return clientRouterNodeId;
+    }
+
+    /**
+     * @param clientRouterNodeId Client router node ID.
+     */
+    public void clientRouterNodeId(UUID clientRouterNodeId) {
+        this.clientRouterNodeId = clientRouterNodeId;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int compareTo(@Nullable TcpDiscoveryNode node) {
+        if (node == null)
+            return 1;
+
+        if (internalOrder() == node.internalOrder())
+            assert id().equals(node.id()) : "Duplicate order [this=" + this + ", other=" + node + ']';
+
+        return internalOrder() < node.internalOrder() ? -1 : internalOrder() > node.internalOrder() ? 1 :
+            id().compareTo(node.id());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        U.writeUuid(out, id);
+        U.writeMap(out, attrs);
+        U.writeCollection(out, addrs);
+        U.writeCollection(out, hostNames);
+        out.writeInt(discPort);
+
+        byte[] mtr = null;
+
+        if (metrics != null) {
+            mtr = new byte[DiscoveryMetricsHelper.METRICS_SIZE];
+
+            DiscoveryMetricsHelper.serialize(mtr, 0, metrics);
+        }
+
+        U.writeByteArray(out, mtr);
+
+        out.writeLong(order);
+        out.writeLong(intOrder);
+        out.writeObject(ver);
+        U.writeUuid(out, clientRouterNodeId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        id = U.readUuid(in);
+
+        attrs = U.sealMap(U.<String, Object>readMap(in));
+        addrs = U.readCollection(in);
+        hostNames = U.readCollection(in);
+        discPort = in.readInt();
+
+        sockAddrs = U.toSocketAddresses(this, discPort);
+
+        consistentId = U.consistentId(addrs, discPort);
+
+        byte[] mtr = U.readByteArray(in);
+
+        if (mtr != null)
+            metrics = DiscoveryMetricsHelper.deserialize(mtr, 0);
+
+        order = in.readLong();
+        intOrder = in.readLong();
+        ver = (IgniteProductVersion)in.readObject();
+        clientRouterNodeId = U.readUuid(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        return id.hashCode();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        return F.eqNodes(this, o);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryNode.class, this, "isClient", isClient());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
new file mode 100644
index 0000000..9c57f4e
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
@@ -0,0 +1,636 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.internal;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+import java.util.concurrent.locks.*;
+
+/**
+ * Convenient way to represent topology for {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}
+ */
+public class TcpDiscoveryNodesRing {
+    /** Visible nodes filter. */
+    private static final IgnitePredicate<TcpDiscoveryNode> VISIBLE_NODES = new P1<TcpDiscoveryNode>() {
+        @Override public boolean apply(TcpDiscoveryNode node) {
+            return node.visible();
+        }
+    };
+
+    /** Client nodes filter. */
+    private static final PN CLIENT_NODES = new PN() {
+        @Override public boolean apply(ClusterNode node) {
+            return node.isClient();
+        }
+    };
+
+    /** Local node. */
+    private TcpDiscoveryNode locNode;
+
+    /** All nodes in topology. */
+    @GridToStringInclude
+    private NavigableSet<TcpDiscoveryNode> nodes = new TreeSet<>();
+
+    /** All started nodes. */
+    @GridToStringExclude
+    private Map<UUID, TcpDiscoveryNode> nodesMap = new HashMap<>();
+
+    /** Current topology version */
+    private long topVer;
+
+    /** */
+    private long nodeOrder;
+
+    /** Lock. */
+    @GridToStringExclude
+    private final ReadWriteLock rwLock = new ReentrantReadWriteLock();
+
+    /**
+     * Sets local node.
+     *
+     * @param locNode Local node.
+     */
+    public void localNode(TcpDiscoveryNode locNode) {
+        assert locNode != null;
+
+        rwLock.writeLock().lock();
+
+        try {
+            this.locNode = locNode;
+
+            clear();
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Gets all nodes in the topology.
+     *
+     * @return Collection of all nodes.
+     */
+    public Collection<TcpDiscoveryNode> allNodes() {
+        return nodes();
+    }
+
+    /**
+     * Gets visible nodes in the topology.
+     *
+     * @return Collection of visible nodes.
+     */
+    public Collection<TcpDiscoveryNode> visibleNodes() {
+        return nodes(VISIBLE_NODES);
+    }
+
+    /**
+     * Gets remote nodes.
+     *
+     * @return Collection of remote nodes in grid.
+     */
+    public Collection<TcpDiscoveryNode> remoteNodes() {
+        return nodes(F.remoteNodes(locNode.id()));
+    }
+
+    /**
+     * Gets visible remote nodes in the topology.
+     *
+     * @return Collection of visible remote nodes.
+     */
+    public Collection<TcpDiscoveryNode> visibleRemoteNodes() {
+        return nodes(VISIBLE_NODES, F.remoteNodes(locNode.id()));
+    }
+
+    /**
+     * @return Client nodes.
+     */
+    public Collection<TcpDiscoveryNode> clientNodes() {
+        return nodes(CLIENT_NODES);
+    }
+
+    /**
+     * Checks whether the topology has remote nodes in.
+     *
+     * @return {@code true} if the topology has remote nodes in.
+     */
+    public boolean hasRemoteNodes() {
+        rwLock.readLock().lock();
+
+        try {
+            return nodes.size() > 1;
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Adds node to topology, also initializes node last update time with current
+     * system time.
+     *
+     * @param node Node to add.
+     * @return {@code true} if such node was added and did not present previously in the topology.
+     */
+    public boolean add(TcpDiscoveryNode node) {
+        assert node != null;
+        assert node.internalOrder() > 0;
+
+        rwLock.writeLock().lock();
+
+        try {
+            if (nodesMap.containsKey(node.id()))
+                return false;
+
+            assert node.internalOrder() > maxInternalOrder() : "Adding node to the middle of the ring " +
+                "[ring=" + this + ", node=" + node + ']';
+
+            nodesMap.put(node.id(), node);
+
+            nodes = new TreeSet<>(nodes);
+
+            node.lastUpdateTime(U.currentTimeMillis());
+
+            nodes.add(node);
+
+            nodeOrder = node.internalOrder();
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+
+        return true;
+    }
+
+    /**
+     * @return Max internal order.
+     */
+    public long maxInternalOrder() {
+        rwLock.readLock().lock();
+
+        try {
+            TcpDiscoveryNode last = nodes.last();
+
+            return last != null ? last.internalOrder() : -1;
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Restores topology from parameters values.
+     * <p>
+     * This method is called when new node receives topology from coordinator.
+     * In this case all nodes received are remote for local.
+     * <p>
+     * Also initializes nodes last update time with current system time.
+     *
+     * @param nodes List of remote nodes.
+     * @param topVer Topology version.
+     */
+    public void restoreTopology(Iterable<TcpDiscoveryNode> nodes, long topVer) {
+        assert !F.isEmpty(nodes);
+        assert topVer > 0;
+
+        rwLock.writeLock().lock();
+
+        try {
+            locNode.internalOrder(topVer);
+
+            clear();
+
+            boolean firstAdd = true;
+
+            for (TcpDiscoveryNode node : nodes) {
+                if (nodesMap.containsKey(node.id()))
+                    continue;
+
+                nodesMap.put(node.id(), node);
+
+                if (firstAdd) {
+                    this.nodes = new TreeSet<>(this.nodes);
+
+                    firstAdd = false;
+                }
+
+                node.lastUpdateTime(U.currentTimeMillis());
+
+                this.nodes.add(node);
+            }
+
+            nodeOrder = topVer;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Finds node by ID.
+     *
+     * @param nodeId Node id to find.
+     * @return Node with ID provided or {@code null} if not found.
+     */
+    @Nullable public TcpDiscoveryNode node(UUID nodeId) {
+        assert nodeId != null;
+
+        rwLock.readLock().lock();
+
+        try {
+            return nodesMap.get(nodeId);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Removes node from the topology.
+     *
+     * @param nodeId ID of the node to remove.
+     * @return {@code true} if node was removed.
+     */
+    @Nullable public TcpDiscoveryNode removeNode(UUID nodeId) {
+        assert nodeId != null;
+        assert !locNode.id().equals(nodeId);
+
+        rwLock.writeLock().lock();
+
+        try {
+            TcpDiscoveryNode rmv = nodesMap.remove(nodeId);
+
+            if (rmv != null) {
+                nodes = new TreeSet<>(nodes);
+
+                nodes.remove(rmv);
+            }
+
+            return rmv;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Removes nodes from the topology.
+     *
+     * @param nodeIds IDs of the nodes to remove.
+     * @return Collection of removed nodes.
+     */
+    public Collection<TcpDiscoveryNode> removeNodes(Collection<UUID> nodeIds) {
+        assert !F.isEmpty(nodeIds);
+
+        rwLock.writeLock().lock();
+
+        try {
+            boolean firstRmv = true;
+
+            Collection<TcpDiscoveryNode> res = null;
+
+            for (UUID id : nodeIds) {
+                TcpDiscoveryNode rmv = nodesMap.remove(id);
+
+                if (rmv != null) {
+                    if (firstRmv) {
+                        nodes = new TreeSet<>(nodes);
+
+                        res = new ArrayList<>(nodeIds.size());
+
+                        firstRmv = false;
+                    }
+
+                    nodes.remove(rmv);
+
+                    res.add(rmv);
+                }
+            }
+
+            return res == null ? Collections.<TcpDiscoveryNode>emptyList() : res;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Removes all remote nodes, leaves only local node.
+     * <p>
+     * This should be called when SPI should be disconnected from topology and
+     * reconnected back after.
+     */
+    public void clear() {
+        rwLock.writeLock().lock();
+
+        try {
+            nodes = new TreeSet<>();
+
+            if (locNode != null)
+                nodes.add(locNode);
+
+            nodesMap = new HashMap<>();
+
+            if (locNode != null)
+                nodesMap.put(locNode.id(), locNode);
+
+            nodeOrder = 0;
+
+            topVer = 0;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Finds coordinator in the topology.
+     *
+     * @return Coordinator node that gives versions to topology (node with the smallest order).
+     */
+    @Nullable public TcpDiscoveryNode coordinator() {
+        rwLock.readLock().lock();
+
+        try {
+            if (F.isEmpty(nodes))
+                return null;
+
+            return coordinator(null);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Finds coordinator in the topology filtering excluded nodes from the search.
+     * <p>
+     * This may be used when handling current coordinator leave or failure.
+     *
+     * @param excluded Nodes to exclude from the search (optional).
+     * @return Coordinator node among remaining nodes or {@code null} if all nodes are excluded.
+     */
+    @Nullable public TcpDiscoveryNode coordinator(@Nullable Collection<TcpDiscoveryNode> excluded) {
+        rwLock.readLock().lock();
+
+        try {
+            Collection<TcpDiscoveryNode> filtered = serverNodes(excluded);
+
+            if (F.isEmpty(filtered))
+                return null;
+
+            return Collections.min(filtered);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Finds next node in the topology.
+     *
+     * @return Next node.
+     */
+    @Nullable public TcpDiscoveryNode nextNode() {
+        rwLock.readLock().lock();
+
+        try {
+            if (nodes.size() < 2)
+                return null;
+
+            return nextNode(null);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Finds next node in the topology filtering excluded nodes from search.
+     * <p>
+     * This may be used when detecting and handling nodes failure.
+     *
+     * @param excluded Nodes to exclude from the search (optional). If provided,
+     * cannot contain local node.
+     * @return Next node or {@code null} if all nodes were filtered out or
+     * topology contains less than two nodes.
+     */
+    @Nullable public TcpDiscoveryNode nextNode(@Nullable Collection<TcpDiscoveryNode> excluded) {
+        assert excluded == null || excluded.isEmpty() || !excluded.contains(locNode);
+
+        rwLock.readLock().lock();
+
+        try {
+            Collection<TcpDiscoveryNode> filtered = serverNodes(excluded);
+
+            if (filtered.size() < 2)
+                return null;
+
+            Iterator<TcpDiscoveryNode> iter = filtered.iterator();
+
+            while (iter.hasNext()) {
+                TcpDiscoveryNode node = iter.next();
+
+                if (locNode.equals(node))
+                    break;
+            }
+
+            return iter.hasNext() ? iter.next() : F.first(filtered);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Finds previous node in the topology.
+     *
+     * @return Previous node.
+     */
+    @Nullable public TcpDiscoveryNode previousNode() {
+        rwLock.readLock().lock();
+
+        try {
+            if (nodes.size() < 2)
+                return null;
+
+            return previousNode(null);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Finds previous node in the topology filtering excluded nodes from search.
+     *
+     * @param excluded Nodes to exclude from the search (optional). If provided,
+     * cannot contain local node.
+     * @return Previous node or {@code null} if all nodes were filtered out or
+     * topology contains less than two nodes.
+     */
+    @Nullable public TcpDiscoveryNode previousNode(@Nullable Collection<TcpDiscoveryNode> excluded) {
+        assert excluded == null || excluded.isEmpty() || !excluded.contains(locNode);
+
+        rwLock.readLock().lock();
+
+        try {
+            Collection<TcpDiscoveryNode> filtered = serverNodes(excluded);
+
+            if (filtered.size() < 2)
+                return null;
+
+            Iterator<TcpDiscoveryNode> iter = filtered.iterator();
+
+            while (iter.hasNext()) {
+                TcpDiscoveryNode node = iter.next();
+
+                if (locNode.equals(node))
+                    break;
+            }
+
+            return iter.hasNext() ? iter.next() : F.first(filtered);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Gets current topology version.
+     *
+     * @return Current topology version.
+     */
+    public long topologyVersion() {
+        rwLock.readLock().lock();
+
+        try {
+            return topVer;
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Sets new topology version.
+     *
+     * @param topVer New topology version (should be greater than current, otherwise no-op).
+     * @return {@code True} if topology has been changed.
+     */
+    public boolean topologyVersion(long topVer) {
+        rwLock.writeLock().lock();
+
+        try {
+            if (this.topVer < topVer) {
+                this.topVer = topVer;
+
+                return true;
+            }
+
+            U.debug("KARAMBA [old=" + this.topVer + ", new=" + topVer + ']');
+
+            return false;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Increments topology version and gets new value.
+     *
+     * @return Topology version (incremented).
+     */
+    public long incrementTopologyVersion() {
+        rwLock.writeLock().lock();
+
+        try {
+            return ++topVer;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Increments topology version and gets new value.
+     *
+     * @return Topology version (incremented).
+     */
+    public long nextNodeOrder() {
+        rwLock.writeLock().lock();
+
+        try {
+            if (nodeOrder == 0) {
+                TcpDiscoveryNode last = nodes.last();
+
+                assert last != null;
+
+                nodeOrder = last.internalOrder();
+            }
+
+            return ++nodeOrder;
+        }
+        finally {
+            rwLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * @param p Filters.
+     * @return Unmodifiable collection of nodes.
+     */
+    private Collection<TcpDiscoveryNode> nodes(IgnitePredicate<? super TcpDiscoveryNode>... p) {
+        rwLock.readLock().lock();
+
+        try {
+            List<TcpDiscoveryNode> list = U.arrayList(nodes, p);
+
+            return Collections.unmodifiableCollection(list);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+
+    /**
+     * Gets server nodes from topology.
+     *
+     * @param excluded Nodes to exclude from the search (optional).
+     * @return Collection of server nodes.
+     */
+    private Collection<TcpDiscoveryNode> serverNodes(@Nullable final Collection<TcpDiscoveryNode> excluded) {
+        final boolean excludedEmpty = F.isEmpty(excluded);
+
+        return F.view(nodes, new P1<TcpDiscoveryNode>() {
+            @Override public boolean apply(TcpDiscoveryNode node) {
+                return !node.isClient() && (excludedEmpty || !excluded.contains(node));
+            }
+        });
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        rwLock.readLock().lock();
+
+        try {
+            return S.toString(TcpDiscoveryNodesRing.class, this);
+        }
+        finally {
+            rwLock.readLock().unlock();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoverySpiState.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoverySpiState.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoverySpiState.java
new file mode 100644
index 0000000..693ec41
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoverySpiState.java
@@ -0,0 +1,45 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.internal;
+
+/**
+ * State of local node {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}.
+ */
+public enum TcpDiscoverySpiState {
+    /** */
+    DISCONNECTED,
+
+    /** */
+    CONNECTING,
+
+    /** */
+    CONNECTED,
+
+    /** */
+    DISCONNECTING,
+
+    /** */
+    STOPPING,
+
+    /** */
+    LEFT,
+
+    /** */
+    DUPLICATE_ID,
+
+    /** */
+    AUTH_FAILED,
+
+    /** */
+    CHECK_FAILED,
+
+    /** */
+    LOOPBACK_PROBLEM
+}


[46/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpi.java
deleted file mode 100644
index 3364320..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpi.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.eventstorage.memory;
-
-import org.apache.ignite.*;
-import org.apache.ignite.events.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.spi.eventstorage.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jdk8.backport.*;
-
-import java.util.*;
-
-import static org.apache.ignite.events.IgniteEventType.*;
-
-/**
- * In-memory {@link org.gridgain.grid.spi.eventstorage.EventStorageSpi} implementation. All events are
- * kept in the FIFO queue. If no configuration is provided a default expiration
- * {@link #DFLT_EXPIRE_AGE_MS} and default count {@link #DFLT_EXPIRE_COUNT} will
- * be used.
- * <p>
- * It's recommended not to set huge size and unlimited TTL because this might
- * lead to consuming a lot of memory and result in {@link OutOfMemoryError}.
- * Both event expiration time and maximum queue size could be changed at
- * runtime.
- * <p>
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * This SPI has no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * The following configuration parameters are optional:
- * <ul>
- * <li>Event queue size (see {@link #setExpireCount(long)})</li>
- * <li>Event time-to-live value (see {@link #setExpireAgeMs(long)})</li>
- * <li>{@link #setFilter(org.apache.ignite.lang.IgnitePredicate)} - Event filter that should be used for decision to accept event.</li>
- * </ul>
- * <h2 class="header">Java Example</h2>
- * GridMemoryEventStorageSpi is used by default and should be explicitly configured only
- * if some SPI configuration parameters need to be overridden. Examples below insert own
- * events queue size value that differs from default 10000.
- * <pre name="code" class="java">
- * GridMemoryEventStorageSpi = new GridMemoryEventStorageSpi();
- *
- * // Init own events size.
- * spi.setExpireCount(2000);
- *
- * GridConfiguration cfg = new GridConfiguration();
- *
- * // Override default event storage SPI.
- * cfg.setEventStorageSpi(spi);
- *
- * // Starts grid.
- * G.start(cfg);
- * </pre>
- * <h2 class="header">Spring Example</h2>
- * GridMemoryEventStorageSpi can be configured from Spring XML configuration file:
- * <pre name="code" class="xml">
- * &lt;bean id="grid.custom.cfg" class="org.gridgain.grid.GridConfiguration" singleton="true"&gt;
- *         ...
- *         &lt;property name="discoverySpi"&gt;
- *             &lt;bean class="org.gridgain.grid.spi.eventStorage.memory.GridMemoryEventStorageSpi"&gt;
- *                 &lt;property name="expireCount" value="2000"/&gt;
- *             &lt;/bean&gt;
- *         &lt;/property&gt;
- *         ...
- * &lt;/bean&gt;
- * </pre>
- * <p>
- * <img src="http://www.gridgain.com/images/spring-small.png">
- * <br>
- * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
- * @see org.gridgain.grid.spi.eventstorage.EventStorageSpi
- */
-@IgniteSpiMultipleInstancesSupport(true)
-public class MemoryEventStorageSpi extends IgniteSpiAdapter implements EventStorageSpi,
-    MemoryEventStorageSpiMBean {
-    /** Default event time to live value in milliseconds (value is {@link Long#MAX_VALUE}). */
-    public static final long DFLT_EXPIRE_AGE_MS = Long.MAX_VALUE;
-
-    /** Default expire count (value is {@code 10000}). */
-    public static final int DFLT_EXPIRE_COUNT = 10000;
-
-    /** */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Event time-to-live value in milliseconds. */
-    private long expireAgeMs = DFLT_EXPIRE_AGE_MS;
-
-    /** Maximum queue size. */
-    private long expireCnt = DFLT_EXPIRE_COUNT;
-
-    /** Events queue. */
-    private ConcurrentLinkedDeque8<IgniteEvent> evts = new ConcurrentLinkedDeque8<>();
-
-    /** Configured event predicate filter. */
-    private IgnitePredicate<IgniteEvent> filter;
-
-    /**
-     * Gets filter for events to be recorded.
-     *
-     * @return Filter to use.
-     */
-    public IgnitePredicate<IgniteEvent> getFilter() {
-        return filter;
-    }
-
-    /**
-     * Sets filter for events to be recorded.
-     *
-     * @param filter Filter to use.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setFilter(IgnitePredicate<IgniteEvent> filter) {
-        this.filter = filter;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(String gridName) throws IgniteSpiException {
-        // Start SPI start stopwatch.
-        startStopwatch();
-
-        assertParameter(expireCnt > 0, "expireCnt > 0");
-        assertParameter(expireAgeMs > 0, "expireAgeMs > 0");
-
-        // Ack parameters.
-        if (log.isDebugEnabled()) {
-            log.debug(configInfo("expireAgeMs", expireAgeMs));
-            log.debug(configInfo("expireCnt", expireCnt));
-        }
-
-        registerMBean(gridName, this, MemoryEventStorageSpiMBean.class);
-
-        // Ack ok start.
-        if (log.isDebugEnabled())
-            log.debug(startInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        unregisterMBean();
-
-        // Reset events.
-        evts.clear();
-
-        // Ack ok stop.
-        if (log.isDebugEnabled())
-            log.debug(stopInfo());
-    }
-
-    /**
-     * Sets events expiration time. All events that exceed this value
-     * will be removed from the queue when next event comes.
-     * <p>
-     * If not provided, default value is {@link #DFLT_EXPIRE_AGE_MS}.
-     *
-     * @param expireAgeMs Expiration time in milliseconds.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setExpireAgeMs(long expireAgeMs) {
-        this.expireAgeMs = expireAgeMs;
-    }
-
-    /**
-     * Sets events queue size. Events will be filtered out when new request comes.
-     * <p>
-     * If not provided, default value {@link #DFLT_EXPIRE_COUNT} will be used.
-     *
-     * @param expireCnt Maximum queue size.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setExpireCount(long expireCnt) {
-        this.expireCnt = expireCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getExpireAgeMs() {
-        return expireAgeMs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getExpireCount() {
-        return expireCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getQueueSize() {
-        return evts.sizex();
-    }
-
-    /** {@inheritDoc} */
-    @Override public void clearAll() {
-        evts.clear();
-    }
-
-    /** {@inheritDoc} */
-    @Override public <T extends IgniteEvent> Collection<T> localEvents(IgnitePredicate<T> p) {
-        A.notNull(p, "p");
-
-        cleanupQueue();
-
-        return F.retain((Collection<T>)evts, true, p);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void record(IgniteEvent evt) throws IgniteSpiException {
-        assert evt != null;
-
-        // Filter out events.
-        if (filter == null || filter.apply(evt)) {
-            cleanupQueue();
-
-            evts.add(evt);
-
-            // Make sure to filter out metrics updates to prevent log from flooding.
-            if (evt.type() != EVT_NODE_METRICS_UPDATED && log.isDebugEnabled())
-                log.debug("Event recorded: " + evt);
-        }
-    }
-
-    /**
-     * Method cleans up all events that either outnumber queue size
-     * or exceeds time-to-live value. It does none if someone else
-     * cleans up queue (lock is locked) or if there are queue readers
-     * (readersNum > 0).
-     */
-    private void cleanupQueue() {
-        long now = U.currentTimeMillis();
-
-        long queueOversize = evts.sizex() - expireCnt;
-
-        for (int i = 0; i < queueOversize && evts.sizex() > expireCnt; i++) {
-            IgniteEvent expired = evts.poll();
-
-            if (log.isDebugEnabled())
-                log.debug("Event expired by count: " + expired);
-        }
-
-        while (true) {
-            ConcurrentLinkedDeque8.Node<IgniteEvent> node = evts.peekx();
-
-            if (node == null) // Queue is empty.
-                break;
-
-            IgniteEvent evt = node.item();
-
-            if (evt == null) // Competing with another thread.
-                continue;
-
-            if (now - evt.timestamp() < expireAgeMs)
-                break;
-
-            if (evts.unlinkx(node) && log.isDebugEnabled())
-                log.debug("Event expired by age: " + node.item());
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(MemoryEventStorageSpi.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpiMBean.java
deleted file mode 100644
index eab8a92..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpiMBean.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.eventstorage.memory;
-
-import org.apache.ignite.mbean.*;
-import org.apache.ignite.spi.*;
-
-/**
- * Management bean for {@link MemoryEventStorageSpi}.
- * Beside properties defined for every SPI bean this one gives access to:
- * <ul>
- * <li>Event expiration time (see {@link #getExpireAgeMs()})</li>
- * <li>Maximum queue size (see {@link #getExpireCount()})</li>
- * <li>Method that removes all items from queue (see {@link #clearAll()})</li>
- * </ul>
- */
-@IgniteMBeanDescription("MBean that provides access to memory event storage SPI configuration.")
-public interface MemoryEventStorageSpiMBean extends IgniteSpiManagementMBean {
-    /**
-     * Gets event time-to-live value. Implementation must guarantee
-     * that event would not be accessible if its lifetime exceeds this value.
-     *
-     * @return Event time-to-live.
-     */
-    @IgniteMBeanDescription("Event time-to-live value.")
-    public long getExpireAgeMs();
-
-    /**
-     * Gets maximum event queue size. New incoming events will oust
-     * oldest ones if queue size exceeds this limit.
-     *
-     * @return Maximum event queue size.
-     */
-    @IgniteMBeanDescription("Maximum event queue size.")
-    public long getExpireCount();
-
-    /**
-     * Gets current queue size of the event queue.
-     *
-     * @return Current queue size of the event queue.
-     */
-    @IgniteMBeanDescription("Current event queue size.")
-    public long getQueueSize();
-
-    /**
-     * Removes all events from the event queue.
-     */
-    @IgniteMBeanDescription("Removes all events from the event queue.")
-    public void clearAll();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/package.html
deleted file mode 100644
index 7b8a251..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains <b>default</b> in-memory implementation for event storage SPI.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/package.html
deleted file mode 100644
index 83f8dd9..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains APIs for event storage SPI.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverContext.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverContext.java
deleted file mode 100644
index 7db8c1c..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverContext.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.compute.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.loadbalancing.*;
-import java.util.*;
-
-/**
- * This interface defines a set of operations available to failover SPI
- * one a given failed job.
- */
-public interface FailoverContext {
-    /**
-     * Gets current task session.
-     *
-     * @return Grid task session.
-     */
-    public ComputeTaskSession getTaskSession();
-
-    /**
-     * Gets failed result of job execution.
-     *
-     * @return Result of a failed job.
-     */
-    public ComputeJobResult getJobResult();
-
-    /**
-     * Gets the next balanced node for failed job. Internally this method will
-     * delegate to load balancing SPI (see {@link GridLoadBalancingSpi} to
-     * determine the optimal node for execution.
-     *
-     * @param top Topology to pick balanced node from.
-     * @return The next balanced node.
-     * @throws GridException If anything failed.
-     */
-    public ClusterNode getBalancedNode(List<ClusterNode> top) throws GridException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverSpi.java
deleted file mode 100644
index 393391d..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverSpi.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.spi.*;
-
-import java.util.*;
-
-/**
- * Failover SPI provides developer with ability to supply custom logic for handling
- * failed execution of a grid job. Job execution can fail for a number of reasons:
- * <ul>
- *      <li>Job execution threw an exception (runtime, assertion or error)</li>
- *      <li>Node on which job was execution left topology (crashed or stopped)</li>
- *      <li>Collision SPI on remote node cancelled a job before it got a chance to execute (job rejection).</li>
- * </ul>
- * In all cases failover SPI takes failed job (as failover context) and list of all
- * grid nodes and provides another node on which the job execution will be retried.
- * It is up to failover SPI to make sure that job is not mapped to the node it
- * failed on. The failed node can be retrieved from
- * {@link org.apache.ignite.compute.ComputeJobResult#getNode() GridFailoverContext.getJobResult().node()}
- * method.
- * <p>
- * GridGain comes with the following built-in failover SPI implementations:
- * <ul>
- *      <li>{@link org.gridgain.grid.spi.failover.never.NeverFailoverSpi}</li>
- *      <li>{@link org.gridgain.grid.spi.failover.always.AlwaysFailoverSpi}</li>
- *      <li>{@link org.gridgain.grid.spi.failover.jobstealing.JobStealingFailoverSpi}</li>
- * </ul>
- * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
- * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
- * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
- * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
- * methods. Note again that calling methods from this interface on the obtained instance can lead
- * to undefined behavior and explicitly not supported.
- */
-public interface FailoverSpi extends IgniteSpi {
-    /**
-     * This method is called when method {@link org.apache.ignite.compute.ComputeTask#result(org.apache.ignite.compute.ComputeJobResult, List)} returns
-     * value {@link org.apache.ignite.compute.ComputeJobResultPolicy#FAILOVER} policy indicating that the result of
-     * job execution must be failed over. Implementation of this method should examine failover
-     * context and choose one of the grid nodes from supplied {@code topology} to retry job execution
-     * on it. For best performance it is advised that {@link FailoverContext#getBalancedNode(List)}
-     * method is used to select node for execution of failed job.
-     *
-     * @param ctx Failover context.
-     * @param top Collection of all grid nodes within task topology (may include failed node).
-     * @return New node to route this job to or {@code null} if new node cannot be picked.
-     *      If job failover fails (returns {@code null}) the whole task will be failed.
-     */
-    public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpi.java
deleted file mode 100644
index a33e519..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpi.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.always;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.util.*;
-
-/**
- * Failover SPI that always reroutes a failed job to another node.
- * Note, that at first an attempt will be made to reroute the failed job
- * to a node that was not part of initial split for a better chance of
- * success. If no such nodes are available, then an attempt will be made to
- * reroute the failed job to the nodes in the initial split minus the node
- * the job is failed on. If none of the above attempts succeeded, then the
- * job will not be failed over and {@code null} will be returned.
- * <p>
- * <h1 class="header">Configuration</h1>
- * This SPI is default failover SPI and does not have to be explicitly
- * configured unless configuration parameters need to be changed.
- * <h2 class="header">Mandatory</h2>
- * This SPI has no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * This SPI has following optional configuration parameters:
- * <ul>
- *      <li>
- *          Maximum failover attempts for a single job (see {@link #setMaximumFailoverAttempts(int)}).
- *          If maximum failover attempts is reached, then job will not be failed-over and,
- *          hence, will fail.
- *      </li>
- * </ul>
- * Here is a Java example how to configure grid with {@code GridAlwaysFailoverSpi} failover SPI.
- * <pre name="code" class="java">
- * GridAlwaysFailoverSpi spi = new GridAlwaysFailoverSpi();
- *
- * // Override maximum failover attempts.
- * spi.setMaximumFailoverAttempts(5);
- *
- * GridConfiguration cfg = new GridConfiguration();
- *
- * // Override default failover SPI.
- * cfg.setFailoverSpiSpi(spi);
- *
- * // Starts grid.
- * G.start(cfg);
- * </pre>
- * Here is an example of how to configure {@code GridAlwaysFailoverSpi} from Spring XML configuration file.
- * <pre name="code" class="xml">
- * &lt;property name="failoverSpi"&gt;
- *     &lt;bean class="org.gridgain.grid.spi.failover.always.GridAlwaysFailoverSpi"&gt;
- *         &lt;property name="maximumFailoverAttempts" value="5"/&gt;
- *     &lt;/bean&gt;
- * &lt;/property&gt;
- * </pre>
- * <p>
- * <img src="http://www.gridgain.com/images/spring-small.png">
- * <br>
- * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
- * @see org.gridgain.grid.spi.failover.FailoverSpi
- */
-@IgniteSpiMultipleInstancesSupport(true)
-@IgniteSpiConsistencyChecked(optional = true)
-public class AlwaysFailoverSpi extends IgniteSpiAdapter implements FailoverSpi, AlwaysFailoverSpiMBean {
-    /** Maximum number of attempts to execute a failed job on another node (default is {@code 5}). */
-    public static final int DFLT_MAX_FAILOVER_ATTEMPTS = 5;
-
-    /**
-     * Name of job context attribute containing all nodes a job failed on.
-     *
-     * @see org.apache.ignite.compute.ComputeJobContext
-     */
-    public static final String FAILED_NODE_LIST_ATTR = "gg:failover:failednodelist";
-
-    /** Maximum attempts attribute key should be the same on all nodes. */
-    public static final String MAX_FAILOVER_ATTEMPT_ATTR = "gg:failover:maxattempts";
-
-    /** Injected grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Maximum number of attempts to execute a failed job on another node. */
-    private int maxFailoverAttempts = DFLT_MAX_FAILOVER_ATTEMPTS;
-
-    /** Number of jobs that were failed over. */
-    private int totalFailoverJobs;
-
-    /** {@inheritDoc} */
-    @Override public int getMaximumFailoverAttempts() {
-        return maxFailoverAttempts;
-    }
-
-    /**
-     * Sets maximum number of attempts to execute a failed job on another node.
-     * If not specified, {@link #DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
-     *
-     * @param maxFailoverAttempts Maximum number of attempts to execute a failed job on another node.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setMaximumFailoverAttempts(int maxFailoverAttempts) {
-        this.maxFailoverAttempts = maxFailoverAttempts;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalFailoverJobsCount() {
-        return totalFailoverJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Map<String, Object> getNodeAttributes() throws IgniteSpiException {
-        return F.<String, Object>asMap(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR), maxFailoverAttempts);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(String gridName) throws IgniteSpiException {
-        // Start SPI start stopwatch.
-        startStopwatch();
-
-        assertParameter(maxFailoverAttempts >= 0, "maxFailoverAttempts >= 0");
-
-        if (log.isDebugEnabled())
-            log.debug(configInfo("maximumFailoverAttempts", maxFailoverAttempts));
-
-        registerMBean(gridName, this, AlwaysFailoverSpiMBean.class);
-
-        // Ack ok start.
-        if (log.isDebugEnabled())
-            log.debug(startInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        unregisterMBean();
-
-        // Ack ok stop.
-        if (log.isDebugEnabled())
-            log.debug(stopInfo());
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top) {
-        assert ctx != null;
-        assert top != null;
-
-        if (log.isDebugEnabled())
-            log.debug("Received failed job result: " + ctx.getJobResult());
-
-        if (top.isEmpty()) {
-            U.warn(log, "Received empty topology for failover and is forced to fail.");
-
-            // Nowhere to failover to.
-            return null;
-        }
-
-        Collection<UUID> failedNodes = ctx.getJobResult().getJobContext().getAttribute(FAILED_NODE_LIST_ATTR);
-
-        if (failedNodes == null)
-            failedNodes = U.newHashSet(1);
-
-        Integer failoverCnt = failedNodes.size();
-
-        if (failoverCnt >= maxFailoverAttempts) {
-            U.warn(log, "Job failover failed because number of maximum failover attempts is exceeded [failedJob=" +
-                ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']');
-
-            return null;
-        }
-
-        failedNodes.add(ctx.getJobResult().getNode().id());
-
-        // Copy.
-        List<ClusterNode> newTop = new ArrayList<>(top.size());
-
-        for (ClusterNode node : top)
-            if (!failedNodes.contains(node.id()))
-                newTop.add(node);
-
-        if (newTop.isEmpty()) {
-            U.warn(log, "Received topology with only nodes that job had failed on (forced to fail) [failedNodes=" +
-                failedNodes + ']');
-
-            // Nowhere to failover to.
-            return null;
-        }
-
-        try {
-            ClusterNode node = ctx.getBalancedNode(newTop);
-
-            if (node == null)
-                U.warn(log, "Load balancer returned null node for topology: " + newTop);
-            else {
-                // Increment failover count.
-                ctx.getJobResult().getJobContext().setAttribute(FAILED_NODE_LIST_ATTR, failedNodes);
-
-                totalFailoverJobs++;
-            }
-
-            if (node != null)
-                U.warn(log, "Failed over job to a new node [newNode=" + node.id() +
-                    ", oldNode=" + ctx.getJobResult().getNode().id() +
-                    ", sesId=" + ctx.getTaskSession().getId() +
-                    ", job=" + ctx.getJobResult().getJob() +
-                    ", jobCtx=" + ctx.getJobResult().getJobContext() +
-                    ", task=" + ctx.getTaskSession().getTaskName() + ']');
-
-            return node;
-        }
-        catch (GridException e) {
-            U.error(log, "Failed to get next balanced node for failover: " + ctx, e);
-
-            return null;
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override protected List<String> getConsistentAttributeNames() {
-        return Collections.singletonList(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR));
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(AlwaysFailoverSpi.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpiMBean.java
deleted file mode 100644
index d91be08..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpiMBean.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.always;
-
-import org.apache.ignite.mbean.*;
-import org.apache.ignite.spi.*;
-
-/**
- * Management bean for {@link AlwaysFailoverSpi}.
- */
-@IgniteMBeanDescription("MBean that provides access to always failover SPI configuration.")
-public interface AlwaysFailoverSpiMBean extends IgniteSpiManagementMBean {
-    /**
-     * Gets maximum number of attempts to execute a failed job on another node.
-     * If not specified, {@link AlwaysFailoverSpi#DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
-     *
-     * @return Maximum number of attempts to execute a failed job on another node.
-     */
-    @IgniteMBeanDescription("Maximum number of attempts to execute a failed job on another node.")
-    public int getMaximumFailoverAttempts();
-
-    /**
-     * Get total number of jobs that were failed over.
-     *
-     * @return Total number of failed over jobs.
-     */
-    @IgniteMBeanDescription("Total number of jobs that were failed over.")
-    public int getTotalFailoverJobsCount();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/package.html
deleted file mode 100644
index 6299303..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains <b>default</b> "always" failover SPI.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpi.java
deleted file mode 100644
index e7e7445..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpi.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.jobstealing;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.util.*;
-
-import static org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi.*;
-
-/**
- * Job stealing failover SPI needs to always be used in conjunction with
- * {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi} SPI. When {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi}
- * receives a <b>steal</b> request and rejects jobs so they can be routed to the
- * appropriate node, it is the responsibility of this {@code GridJobStealingFailoverSpi}
- * SPI to make sure that the job is indeed re-routed to the node that has sent the initial
- * request to <b>steal</b> it.
- * <p>
- * {@code GridJobStealingFailoverSpi} knows where to route a job based on the
- * {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi#THIEF_NODE_ATTR} job context attribute (see {@link org.apache.ignite.compute.ComputeJobContext}).
- * Prior to rejecting a job,  {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi} will populate this
- * attribute with the ID of the node that wants to <b>steal</b> this job.
- * Then {@code GridJobStealingFailoverSpi} will read the value of this attribute and
- * route the job to the node specified.
- * <p>
- * If failure is caused by a node crash, and not by <b>steal</b> request, then this
- * SPI behaves identically to {@link org.gridgain.grid.spi.failover.always.AlwaysFailoverSpi}, and tries to find the
- * next balanced node to fail-over a job to.
- * <p>
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * This SPI has no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * This SPI has following optional configuration parameters:
- * <ul>
- * <li>Maximum failover attempts for a single job (see {@link #setMaximumFailoverAttempts(int)}).</li>
- * </ul>
- * Here is a Java example on how to configure grid with {@code GridJobStealingFailoverSpi}.
- * <pre name="code" class="java">
- * GridJobStealingFailoverSpi spi = new GridJobStealingFailoverSpi();
- *
- * // Override maximum failover attempts.
- * spi.setMaximumFailoverAttempts(5);
- *
- * GridConfiguration cfg = new GridConfiguration();
- *
- * // Override default failover SPI.
- * cfg.setFailoverSpiSpi(spi);
- *
- * // Starts grid.
- * G.start(cfg);
- </pre>
- * Here is an example of how to configure {@code GridJobStealingFailoverSpi} from Spring XML configuration file.
- * <pre name="code" class="xml">
- * &lt;property name="failoverSpi"&gt;
- *     &lt;bean class="org.gridgain.grid.spi.failover.jobstealing.GridJobStealingFailoverSpi"&gt;
- *         &lt;property name="maximumFailoverAttempts" value="5"/&gt;
- *     &lt;/bean&gt;
- * &lt;/property&gt;
- * </pre>
- * <p>
- * <img src="http://www.gridgain.com/images/spring-small.png">
- * <br>
- * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
- * @see org.gridgain.grid.spi.failover.FailoverSpi
- */
-@IgniteSpiMultipleInstancesSupport(true)
-@IgniteSpiConsistencyChecked(optional = true)
-public class JobStealingFailoverSpi extends IgniteSpiAdapter implements FailoverSpi,
-    JobStealingFailoverSpiMBean {
-    /** Maximum number of attempts to execute a failed job on another node (default is {@code 5}). */
-    public static final int DFLT_MAX_FAILOVER_ATTEMPTS = 5;
-
-    /**
-     * Name of job context attribute containing all nodes a job failed on. Note
-     * that this list does not include nodes that a job was stolen from.
-     *
-     * @see org.apache.ignite.compute.ComputeJobContext
-     */
-    static final String FAILED_NODE_LIST_ATTR = "gg:failover:failednodelist";
-
-    /**
-     * Name of job context attribute containing current failover attempt count.
-     * This count is incremented every time the same job gets failed over to
-     * another node for execution if it was not successfully stolen.
-     *
-     * @see org.apache.ignite.compute.ComputeJobContext
-     */
-    static final String FAILOVER_ATTEMPT_COUNT_ATTR = "gg:failover:attemptcount";
-
-    /** Maximum failover attempts job context attribute name. */
-    private static final String MAX_FAILOVER_ATTEMPT_ATTR = "gg:failover:maxattempts";
-
-    /** Injected grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Maximum number of attempts to execute a failed job on another node. */
-    private int maxFailoverAttempts = DFLT_MAX_FAILOVER_ATTEMPTS;
-
-    /** Number of jobs that were failed over. */
-    private int totalFailedOverJobs;
-
-    /** Number of jobs that were stolen. */
-    private int totalStolenJobs;
-
-    /** {@inheritDoc} */
-    @Override public int getMaximumFailoverAttempts() {
-        return maxFailoverAttempts;
-    }
-
-    /**
-     * Sets maximum number of attempts to execute a failed job on another node.
-     * If job gets stolen and thief node exists then it is not considered as
-     * failed job.
-     * If not specified, {@link #DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
-     * <p>
-     * Note this value must be identical for all grid nodes in the grid.
-     *
-     * @param maxFailoverAttempts Maximum number of attempts to execute a failed
-     *      job on another node.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setMaximumFailoverAttempts(int maxFailoverAttempts) {
-        this.maxFailoverAttempts = maxFailoverAttempts;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalFailedOverJobsCount() {
-        return totalFailedOverJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalStolenJobsCount() {
-        return totalStolenJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Map<String, Object> getNodeAttributes() throws IgniteSpiException {
-        return F.<String, Object>asMap(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR), maxFailoverAttempts);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(String gridName) throws IgniteSpiException {
-        // Start SPI start stopwatch.
-        startStopwatch();
-
-        assertParameter(maxFailoverAttempts >= 0, "maximumFailoverAttempts >= 0");
-
-        if (log.isDebugEnabled())
-            log.debug(configInfo("maxFailoverAttempts", maxFailoverAttempts));
-
-        registerMBean(gridName, this, JobStealingFailoverSpiMBean.class);
-
-        // Ack ok start.
-        if (log.isDebugEnabled())
-            log.debug(startInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        unregisterMBean();
-
-        // Ack ok stop.
-        if (log.isDebugEnabled())
-            log.debug(stopInfo());
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top) {
-        assert ctx != null;
-        assert top != null;
-
-        if (top.isEmpty()) {
-            U.warn(log, "Received empty subgrid and is forced to fail.");
-
-            // Nowhere to failover to.
-            return null;
-        }
-
-        Integer failoverCnt = ctx.getJobResult().getJobContext().getAttribute(FAILOVER_ATTEMPT_COUNT_ATTR);
-
-        if (failoverCnt == null)
-            failoverCnt = 0;
-
-        if (failoverCnt > maxFailoverAttempts) {
-            U.error(log, "Failover count exceeded maximum failover attempts parameter [failedJob=" +
-                ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']');
-
-            return null;
-        }
-
-        if (failoverCnt == maxFailoverAttempts) {
-            U.warn(log, "Job failover failed because number of maximum failover attempts is exceeded [failedJob=" +
-                ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']');
-
-            return null;
-        }
-
-        try {
-            ClusterNode thief = null;
-            boolean isNodeFailed = false;
-
-            UUID thiefId = ctx.getJobResult().getJobContext().getAttribute(THIEF_NODE_ATTR);
-
-            if (thiefId != null) {
-                // Clear attribute.
-                ctx.getJobResult().getJobContext().setAttribute(THIEF_NODE_ATTR, null);
-
-                thief = getSpiContext().node(thiefId);
-
-                if (thief != null) {
-                    // If sender != receiver.
-                    if (thief.equals(ctx.getJobResult().getNode())) {
-                        U.error(log, "Job stealer node is equal to job node (will fail-over using " +
-                            "load-balancing): " + thief.id());
-
-                        isNodeFailed = true;
-
-                        thief = null;
-                    }
-                    else if (!top.contains(thief)) {
-                        U.warn(log, "Thief node is not part of task topology  (will fail-over using load-balancing) " +
-                            "[thief=" + thiefId + ", topSize=" + top.size() + ']');
-
-                        thief = null;
-                    }
-
-                    if (log.isDebugEnabled())
-                        log.debug("Failing-over stolen job [from=" + ctx.getJobResult().getNode() + ", to=" +
-                            thief + ']');
-                }
-                else {
-                    isNodeFailed = true;
-
-                    U.warn(log, "Thief node left grid (will fail-over using load balancing): " + thiefId);
-                }
-            }
-            else
-                isNodeFailed = true;
-
-            // If job was not stolen or stolen node is not part of topology,
-            // then failover the regular way.
-            if (thief == null) {
-                Collection<UUID> failedNodes = ctx.getJobResult().getJobContext().getAttribute(FAILED_NODE_LIST_ATTR);
-
-                if (failedNodes == null)
-                    failedNodes = U.newHashSet(1);
-
-                if (isNodeFailed)
-                    failedNodes.add(ctx.getJobResult().getNode().id());
-
-                // Set updated failed node set into job context.
-                ctx.getJobResult().getJobContext().setAttribute(FAILED_NODE_LIST_ATTR, failedNodes);
-
-                // Copy.
-                List<ClusterNode> newTop = new ArrayList<>(top.size());
-
-                for (ClusterNode n : top) {
-                    // Add non-failed nodes to topology.
-                    if (!failedNodes.contains(n.id()))
-                        newTop.add(n);
-                }
-
-                if (newTop.isEmpty()) {
-                    U.warn(log, "Received topology with only nodes that job had failed on (forced to fail) " +
-                        "[failedNodes=" + failedNodes + ']');
-
-                    // Nowhere to failover to.
-                    return null;
-                }
-
-                thief = ctx.getBalancedNode(newTop);
-
-                if (thief == null)
-                    U.warn(log, "Load balancer returned null node for topology: " + newTop);
-            }
-
-            if (isNodeFailed)
-                // This is a failover, not stealing.
-                failoverCnt++;
-
-            // Even if it was stealing and thief node left grid we assume
-            // that it is failover because of the fail.
-            ctx.getJobResult().getJobContext().setAttribute(FAILOVER_ATTEMPT_COUNT_ATTR, failoverCnt);
-
-            if (thief != null) {
-                totalFailedOverJobs++;
-
-                if (isNodeFailed) {
-                    U.warn(log, "Failed over job to a new node [newNode=" + thief.id() +
-                        ", oldNode=" + ctx.getJobResult().getNode().id() +
-                        ", sesId=" + ctx.getTaskSession().getId() +
-                        ", job=" + ctx.getJobResult().getJob() +
-                        ", jobCtx=" + ctx.getJobResult().getJobContext() +
-                        ", task=" + ctx.getTaskSession().getTaskName() + ']');
-                }
-                else {
-                    totalStolenJobs++;
-                    if (log.isInfoEnabled())
-                        log.info("Stealing job to a new node [newNode=" + thief.id() +
-                            ", oldNode=" + ctx.getJobResult().getNode().id() +
-                            ", sesId=" + ctx.getTaskSession().getId() +
-                            ", job=" + ctx.getJobResult().getJob() +
-                            ", jobCtx=" + ctx.getJobResult().getJobContext() +
-                            ", task=" + ctx.getTaskSession().getTaskName() + ']');
-                }
-            }
-
-            return thief;
-        }
-        catch (GridException e) {
-            U.error(log, "Failed to get next balanced node for failover: " + ctx, e);
-
-            return null;
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override protected List<String> getConsistentAttributeNames() {
-        return Collections.singletonList(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR));
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(JobStealingFailoverSpi.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpiMBean.java
deleted file mode 100644
index 38d9534..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpiMBean.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.jobstealing;
-
-import org.apache.ignite.mbean.*;
-import org.apache.ignite.spi.*;
-
-/**
- * Management bean for {@link JobStealingFailoverSpi}.
- */
-@IgniteMBeanDescription("MBean that provides access to job stealing failover SPI configuration.")
-public interface JobStealingFailoverSpiMBean extends IgniteSpiManagementMBean {
-    /**
-     * Gets maximum number of attempts to execute a failed job on another node.
-     * If job gets stolen and thief node exists then it is not considered as
-     * failed job.
-     * If not specified, {@link JobStealingFailoverSpi#DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
-     *
-     * @return Maximum number of attempts to execute a failed job on another node.
-     */
-    @IgniteMBeanDescription("Maximum number of attempts to execute a failed job on another node.")
-    public int getMaximumFailoverAttempts();
-
-    /**
-     * Get total number of jobs that were failed over including stolen ones.
-     *
-     * @return Total number of failed over jobs.
-     */
-    @IgniteMBeanDescription("Total number of jobs that were failed over including stolen ones.")
-    public int getTotalFailedOverJobsCount();
-
-    /**
-     * Get total number of jobs that were stolen.
-     *
-     * @return Total number of stolen jobs.
-     */
-    @IgniteMBeanDescription("Total number of jobs that were stolen.")
-    public int getTotalStolenJobsCount();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/package.html
deleted file mode 100644
index ebb77c2..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains job stealing failover SPI.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpi.java
deleted file mode 100644
index 945b2a5..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpi.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.never;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import java.util.*;
-
-/**
- * This class provides failover SPI implementation that never fails over. This implementation
- * never fails over a failed job by always returning {@code null} out of
- * {@link org.gridgain.grid.spi.failover.FailoverSpi#failover(org.gridgain.grid.spi.failover.FailoverContext, List)} method.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * This SPI has no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * This SPI has no optional configuration parameters.
- * <p>
- * Here is a Java example on how to configure grid with {@code GridNeverFailoverSpi}:
- * <pre name="code" class="java">
- * GridNeverFailoverSpi spi = new GridNeverFailoverSpi();
- *
- * GridConfiguration cfg = new GridConfiguration();
- *
- * // Override default failover SPI.
- * cfg.setFailoverSpiSpi(spi);
- *
- * // Starts grid.
- * G.start(cfg);
- * </pre>
- * Here is an example on how to configure grid with {@code GridNeverFailoverSpi} from Spring XML configuration file:
- * <pre name="code" class="xml">
- * &lt;property name="failoverSpi"&gt;
- *     &lt;bean class="org.gridgain.grid.spi.failover.never.GridNeverFailoverSpi"/&gt;
- * &lt;/property&gt;
- * </pre>
- * <p>
- * <img src="http://www.gridgain.com/images/spring-small.png">
- * <br>
- * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
- * @see org.gridgain.grid.spi.failover.FailoverSpi
- */
-@IgniteSpiMultipleInstancesSupport(true)
-public class NeverFailoverSpi extends IgniteSpiAdapter implements FailoverSpi, NeverFailoverSpiMBean {
-    /** Injected grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(String gridName) throws IgniteSpiException {
-        // Start SPI start stopwatch.
-        startStopwatch();
-
-        registerMBean(gridName, this, NeverFailoverSpiMBean.class);
-
-        // Ack ok start.
-        if (log.isDebugEnabled())
-            log.debug(startInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        unregisterMBean();
-
-        // Ack ok stop.
-        if (log.isDebugEnabled())
-            log.debug(stopInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top) {
-        U.warn(log, "Returning 'null' node for failed job (failover will not happen) [job=" +
-            ctx.getJobResult().getJob() + ", task=" +  ctx.getTaskSession().getTaskName() +
-            ", sessionId=" + ctx.getTaskSession().getId() + ']');
-
-        return null;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(NeverFailoverSpi.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpiMBean.java
deleted file mode 100644
index 30651c4..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpiMBean.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.never;
-
-import org.apache.ignite.mbean.*;
-import org.apache.ignite.spi.*;
-
-/**
- * Management bean for {@link NeverFailoverSpi}.
- */
-@IgniteMBeanDescription("MBean that provides access to never failover SPI configuration.")
-public interface NeverFailoverSpiMBean extends IgniteSpiManagementMBean {
-    // No-op.
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/package.html
deleted file mode 100644
index 81e38aa..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains "never" failover SPI.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/failover/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/failover/package.html
deleted file mode 100644
index 3b28cd2..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains APIs for failover SPI.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/config/job-loadtest/client.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/job-loadtest/client.xml b/modules/core/src/test/config/job-loadtest/client.xml
index ce6b718..e828a47 100644
--- a/modules/core/src/test/config/job-loadtest/client.xml
+++ b/modules/core/src/test/config/job-loadtest/client.xml
@@ -23,7 +23,7 @@
         <property name="deploymentMode" value="CONTINUOUS"/>
 
         <property name="failoverSpi">
-            <bean class="org.gridgain.grid.spi.failover.jobstealing.JobStealingFailoverSpi">
+            <bean class="org.apache.ignite.spi.failover.jobstealing.JobStealingFailoverSpi">
                 <property name="maximumFailoverAttempts" value="10"/>
             </bean>
         </property>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/config/job-loadtest/server.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/job-loadtest/server.xml b/modules/core/src/test/config/job-loadtest/server.xml
index 5546e20..1a4bf96 100644
--- a/modules/core/src/test/config/job-loadtest/server.xml
+++ b/modules/core/src/test/config/job-loadtest/server.xml
@@ -36,7 +36,7 @@
         </property>
 
         <property name="failoverSpi">
-            <bean class="org.gridgain.grid.spi.failover.jobstealing.JobStealingFailoverSpi">
+            <bean class="org.apache.ignite.spi.failover.jobstealing.JobStealingFailoverSpi">
                 <property name="maximumFailoverAttempts" value="10"/>
             </bean>
         </property>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/config/load/dsi-load-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/dsi-load-base.xml b/modules/core/src/test/config/load/dsi-load-base.xml
index 8b49076..cb3009c 100644
--- a/modules/core/src/test/config/load/dsi-load-base.xml
+++ b/modules/core/src/test/config/load/dsi-load-base.xml
@@ -97,7 +97,7 @@
         </property>
 
         <property name="failoverSpi">
-            <bean class="org.gridgain.grid.spi.failover.always.AlwaysFailoverSpi">
+            <bean class="org.apache.ignite.spi.failover.always.AlwaysFailoverSpi">
                 <property name="maximumFailoverAttempts" value="1"/>
             </bean>
         </property>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java
index 73567e2..4a9495e 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java
@@ -12,7 +12,7 @@ package org.apache.ignite.spi.collision.jobstealing;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.spi.collision.*;
 import org.apache.ignite.spi.discovery.*;
-import org.gridgain.grid.spi.failover.jobstealing.*;
+import org.apache.ignite.spi.failover.jobstealing.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java
index e94a937..73c777c 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java
@@ -14,7 +14,7 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.collision.*;
 import org.apache.ignite.spi.discovery.*;
-import org.gridgain.grid.spi.failover.jobstealing.*;
+import org.apache.ignite.spi.failover.jobstealing.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.spi.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java
index 3040afb..68bbc5b 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java
@@ -14,7 +14,7 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.collision.*;
 import org.apache.ignite.spi.discovery.*;
-import org.gridgain.grid.spi.failover.jobstealing.*;
+import org.apache.ignite.spi.failover.jobstealing.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiStartStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiStartStopSelfTest.java
index b00f760..8d8a6b0 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiStartStopSelfTest.java
@@ -10,7 +10,7 @@
 package org.apache.ignite.spi.collision.jobstealing;
 
 import org.gridgain.grid.spi.*;
-import org.gridgain.grid.spi.failover.jobstealing.*;
+import org.apache.ignite.spi.failover.jobstealing.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.spi.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java
new file mode 100644
index 0000000..bdc5996
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java
@@ -0,0 +1,43 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.eventstorage.memory;
+
+import org.apache.ignite.events.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.testframework.*;
+import org.gridgain.testframework.junits.spi.*;
+import java.util.*;
+import java.util.concurrent.*;
+
+/**
+ * Memory event storage load test.
+ */
+@GridSpiTest(spi = MemoryEventStorageSpi.class, group = "EventStorage SPI")
+public class GridMemoryEventStorageMultiThreadedSelfTest extends GridSpiAbstractTest<MemoryEventStorageSpi> {
+    /**
+     * @throws Exception If test failed
+     */
+    public void testMultiThreaded() throws Exception {
+        GridTestUtils.runMultiThreaded(new Callable<Object>() {
+            @Override public Object call() throws Exception {
+                for (int i = 0; i < 100000; i++)
+                    getSpi().record(new IgniteDiscoveryEvent(null, "Test event", 1, null));
+
+                return null;
+            }
+        }, 10, "event-thread");
+
+        Collection<IgniteEvent> evts = getSpi().localEvents(F.<IgniteEvent>alwaysTrue());
+
+        info("Events count in memory: " + evts.size());
+
+        assert evts.size() <= 10000 : "Incorrect number of events: " + evts.size();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java
new file mode 100644
index 0000000..c808ddc
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java
@@ -0,0 +1,26 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.eventstorage.memory;
+
+import org.gridgain.testframework.junits.spi.*;
+
+/**
+ * Memory event storage SPI config test.
+ */
+@GridSpiTest(spi = MemoryEventStorageSpi.class, group = "Event Storage SPI")
+public class GridMemoryEventStorageSpiConfigSelfTest extends GridSpiAbstractConfigTest<MemoryEventStorageSpi> {
+    /**
+     * @throws Exception If failed.
+     */
+    public void testNegativeConfig() throws Exception {
+        checkNegativeSpiProperty(new MemoryEventStorageSpi(), "expireCount", 0);
+        checkNegativeSpiProperty(new MemoryEventStorageSpi(), "expireAgeMs", 0);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java
new file mode 100644
index 0000000..3b4dc60
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java
@@ -0,0 +1,130 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.eventstorage.memory;
+
+import org.apache.ignite.events.*;
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.testframework.junits.spi.*;
+
+import java.util.*;
+
+import static org.apache.ignite.events.IgniteEventType.*;
+
+/**
+ * Tests for {@link MemoryEventStorageSpi}.
+ */
+@GridSpiTest(spi = MemoryEventStorageSpi.class, group = "Event Storage SPI")
+public class GridMemoryEventStorageSpiSelfTest extends GridSpiAbstractTest<MemoryEventStorageSpi> {
+    /** */
+    private static final int EXPIRE_CNT = 100;
+
+    /**
+     * @return Maximum events queue size.
+     */
+    @GridSpiTestConfig
+    public long getExpireCount() {
+        return EXPIRE_CNT;
+    }
+
+    /**
+     * @return Events expiration time.
+     */
+    @GridSpiTestConfig
+    public long getExpireAgeMs() {
+        return 1000;
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testMemoryEventStorage() throws Exception {
+        MemoryEventStorageSpi spi = getSpi();
+
+        IgnitePredicate<IgniteEvent> filter = F.alwaysTrue();
+
+        // Get all events.
+        Collection<IgniteEvent> evts = spi.localEvents(filter);
+
+        // Check.
+        assert evts != null : "Events can't be null.";
+        assert evts.isEmpty() : "Invalid events count.";
+
+        // Store.
+        spi.record(createEvent());
+
+        // Get all events.
+        evts = spi.localEvents(filter);
+
+        // Check stored events.
+        assert evts != null : "Events can't be null.";
+        assert evts.size() == 1 : "Invalid events count.";
+
+        // Sleep a bit more than expire age configuration property.
+        Thread.sleep(getExpireAgeMs() * 2);
+
+        // Get all events.
+        evts = spi.localEvents(filter);
+
+        // Check expired by age.
+        assert evts != null : "Events can't be null.";
+        assert evts.isEmpty() : "Invalid events count.";
+
+        // Clear.
+        spi.clearAll();
+
+        // Get all events.
+        evts = spi.localEvents(filter);
+
+        // Check events cleared.
+        assert evts != null : "Events can't be null.";
+        assert evts.isEmpty() : "Invalid events count.";
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @SuppressWarnings({"NullableProblems"})
+    public void testFilter() throws Exception {
+        MemoryEventStorageSpi spi = getSpi();
+
+        try {
+            spi.clearAll();
+
+            spi.setFilter(F.<IgniteEvent>alwaysFalse());
+
+            // This event should not record.
+            spi.record(createEvent());
+
+            spi.setFilter(null);
+
+            spi.record(createEvent());
+
+            // Get all events.
+            Collection<IgniteEvent> evts = spi.localEvents(F.<IgniteEvent>alwaysTrue());
+
+            assert evts != null : "Events can't be null.";
+            assert evts.size() == 1 : "Invalid events count: " + evts.size();
+        }
+        finally {
+            if (spi != null)
+                spi.clearAll();
+        }
+    }
+
+    /**
+     * @return Discovery event.
+     * @throws Exception If error occurred.
+     */
+    private IgniteEvent createEvent() throws Exception {
+        return new IgniteDiscoveryEvent(null, "Test Event", EVT_NODE_METRICS_UPDATED, null);
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java
new file mode 100644
index 0000000..1339fe5
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java
@@ -0,0 +1,21 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.eventstorage.memory;
+
+import org.gridgain.grid.spi.*;
+import org.gridgain.testframework.junits.spi.*;
+
+/**
+ * Memory event storage SPI start-stop test.
+ */
+@GridSpiTest(spi = MemoryEventStorageSpi.class, group = "Event Storage SPI")
+public class GridMemoryEventStorageSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<MemoryEventStorageSpi> {
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/package.html b/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/package.html
new file mode 100644
index 0000000..5cad80a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/eventstorage/memory/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal tests or test related classes and interfaces.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/GridFailoverTestContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/GridFailoverTestContext.java b/modules/core/src/test/java/org/apache/ignite/spi/failover/GridFailoverTestContext.java
new file mode 100644
index 0000000..cace3e2
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/GridFailoverTestContext.java
@@ -0,0 +1,62 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.compute.*;
+import org.gridgain.grid.*;
+
+import java.util.*;
+
+/**
+ * Failover test context.
+ */
+public class GridFailoverTestContext implements FailoverContext {
+    /** */
+    private static final Random RAND = new Random();
+
+    /** Grid task session. */
+    private final ComputeTaskSession taskSes;
+
+    /** Failed job result. */
+    private final ComputeJobResult jobRes;
+
+    /** */
+    public GridFailoverTestContext() {
+        taskSes = null;
+        jobRes = null;
+    }
+
+    /**
+     * Initializes failover context.
+     *
+     * @param taskSes Grid task session.
+     * @param jobRes Failed job result.
+     */
+    public GridFailoverTestContext(ComputeTaskSession taskSes, ComputeJobResult jobRes) {
+        this.taskSes = taskSes;
+        this.jobRes = jobRes;
+    }
+
+    /** {@inheritDoc} */
+    @Override public ComputeTaskSession getTaskSession() {
+        return taskSes;
+    }
+
+    /** {@inheritDoc} */
+    @Override public ComputeJobResult getJobResult() {
+        return jobRes;
+    }
+
+    /** {@inheritDoc} */
+    @Override public ClusterNode getBalancedNode(List<ClusterNode> grid) throws GridException {
+        return grid.get(RAND.nextInt(grid.size()));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java
new file mode 100644
index 0000000..2b75e16
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java
@@ -0,0 +1,25 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.always;
+
+import org.gridgain.testframework.junits.spi.*;
+
+/**
+ * Always-failover SPI config test.
+ */
+@GridSpiTest(spi = AlwaysFailoverSpi.class, group = "Collision SPI")
+public class GridAlwaysFailoverSpiConfigSelfTest extends GridSpiAbstractConfigTest<AlwaysFailoverSpi> {
+    /**
+     * @throws Exception If failed.
+     */
+    public void testNegativeConfig() throws Exception {
+        checkNegativeSpiProperty(new AlwaysFailoverSpi(), "maximumFailoverAttempts", -1);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java
new file mode 100644
index 0000000..46a0ab4
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java
@@ -0,0 +1,110 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.always;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.compute.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.failover.*;
+import org.gridgain.testframework.*;
+import org.gridgain.testframework.junits.spi.*;
+
+import java.util.*;
+
+import static org.apache.ignite.spi.failover.always.AlwaysFailoverSpi.*;
+
+/**
+ * Always-failover SPI test.
+ */
+@GridSpiTest(spi = AlwaysFailoverSpi.class, group = "Failover SPI")
+public class GridAlwaysFailoverSpiSelfTest extends GridSpiAbstractTest<AlwaysFailoverSpi> {
+    /**
+     * @throws Exception If failed.
+     */
+    public void testSingleNode() throws Exception {
+        AlwaysFailoverSpi spi = getSpi();
+
+        List<ClusterNode> nodes = new ArrayList<>();
+
+        ClusterNode node = new GridTestNode(UUID.randomUUID());
+
+        nodes.add(node);
+
+        node = spi.failover(new GridFailoverTestContext(new GridTestTaskSession(), new GridTestJobResult(node)), nodes);
+
+        assert node == null;
+    }
+
+    /**
+     * @throws Exception If test failed.
+     */
+    @SuppressWarnings("unchecked")
+    public void testTwoNodes() throws Exception {
+        AlwaysFailoverSpi spi = getSpi();
+
+        List<ClusterNode> nodes = new ArrayList<>();
+
+        nodes.add(new GridTestNode(UUID.randomUUID()));
+        nodes.add(new GridTestNode(UUID.randomUUID()));
+
+        ComputeJobResult jobRes = new GridTestJobResult(nodes.get(0));
+
+        ClusterNode node = spi.failover(new GridFailoverTestContext(new GridTestTaskSession(), jobRes), nodes);
+
+        assert node != null;
+        assert node.equals(nodes.get(1));
+
+        checkFailedNodes(jobRes, 1);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testMaxAttempts() throws Exception {
+        AlwaysFailoverSpi spi = getSpi();
+
+        spi.setMaximumFailoverAttempts(1);
+
+        List<ClusterNode> nodes = new ArrayList<>();
+
+        nodes.add(new GridTestNode(UUID.randomUUID()));
+        nodes.add(new GridTestNode(UUID.randomUUID()));
+
+        ComputeJobResult jobRes = new GridTestJobResult(nodes.get(0));
+
+        // First attempt.
+        ClusterNode node = spi.failover(new GridFailoverTestContext(new GridTestTaskSession(), jobRes), nodes);
+
+        assert node != null;
+        assert node.equals(nodes.get(1));
+
+        checkFailedNodes(jobRes, 1);
+
+        // Second attempt (exceeds default max attempts of 1).
+        node = spi.failover(new GridFailoverTestContext(new GridTestTaskSession(), jobRes), nodes);
+
+        assert node == null;
+
+        checkFailedNodes(jobRes, 1);
+    }
+
+    /**
+     * @param res Job result.
+     * @param cnt Failure count.
+     */
+    @SuppressWarnings("unchecked")
+    private void checkFailedNodes(ComputeJobResult res, int cnt) {
+        Collection<UUID> failedNodes =
+            (Collection<UUID>)res.getJobContext().getAttribute(FAILED_NODE_LIST_ATTR);
+
+        assert failedNodes != null;
+        assert failedNodes.size() == cnt;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java
new file mode 100644
index 0000000..c3c075a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java
@@ -0,0 +1,22 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.always;
+
+import org.gridgain.grid.spi.*;
+import org.apache.ignite.spi.failover.*;
+import org.gridgain.testframework.junits.spi.*;
+
+/**
+ * Always-failover SPI start-stop test.
+ */
+@GridSpiTest(spi = AlwaysFailoverSpi.class, group = "Failover SPI")
+public class GridAlwaysFailoverSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<FailoverSpi> {
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/always/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/always/package.html b/modules/core/src/test/java/org/apache/ignite/spi/failover/always/package.html
new file mode 100644
index 0000000..5cad80a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/always/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal tests or test related classes and interfaces.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java
new file mode 100644
index 0000000..b2d655e
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java
@@ -0,0 +1,25 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.jobstealing;
+
+import org.gridgain.testframework.junits.spi.*;
+
+/**
+ * Job stealing failover SPI config test.
+ */
+@GridSpiTest(spi = JobStealingFailoverSpi.class, group = "Collision SPI")
+public class GridJobStealingFailoverSpiConfigSelfTest extends GridSpiAbstractConfigTest<JobStealingFailoverSpi> {
+    /**
+     * @throws Exception If failed.
+     */
+    public void testNegativeConfig() throws Exception {
+        checkNegativeSpiProperty(new JobStealingFailoverSpi(), "maximumFailoverAttempts", -1);
+    }
+}


[07/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
# Renaming


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

Branch: refs/heads/master
Commit: 805377cc776cdbb9bbb77dbe4ab5f78d36e468e9
Parents: 191aae2
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 5 16:45:14 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 5 16:45:33 2014 +0300

----------------------------------------------------------------------
 .../ipfinder/s3/GridTcpDiscoveryS3IpFinder.java |  6 +-
 .../gridgain/grid/GridBasicWarmupClosure.java   |  2 +-
 .../discovery/tcp/TcpClientDiscoverySpi.java    |  3 +-
 .../tcp/TcpClientDiscoverySpiMBean.java         |  3 +-
 .../grid/spi/discovery/tcp/TcpDiscoverySpi.java | 11 ++-
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |  6 +-
 .../spi/discovery/tcp/TcpDiscoverySpiMBean.java |  3 +-
 .../tcp/ipfinder/GridTcpDiscoveryIpFinder.java  | 90 --------------------
 .../GridTcpDiscoveryIpFinderAdapter.java        | 77 -----------------
 .../tcp/ipfinder/TcpDiscoveryIpFinder.java      | 90 ++++++++++++++++++++
 .../ipfinder/TcpDiscoveryIpFinderAdapter.java   | 77 +++++++++++++++++
 .../jdbc/GridTcpDiscoveryJdbcIpFinder.java      |  2 +-
 .../GridTcpDiscoverySharedFsIpFinder.java       |  4 +-
 .../ipfinder/vm/GridTcpDiscoveryVmIpFinder.java |  2 +-
 .../optimized/GridOptimizedMarshallerTest.java  |  6 +-
 .../GridTestTcpDiscoveryIpFinderAdapter.java    |  4 +-
 ...idCacheCheckpointSpiSecondCacheSelfTest.java |  2 +-
 .../tcp/GridCacheDhtLockBackupSelfTest.java     |  2 +-
 .../tcp/GridOrderedMessageCancelSelfTest.java   |  2 +-
 ...CachePartitionFairAffinityNodesSelfTest.java |  2 +-
 ...CacheJdbcBlobStoreMultithreadedSelfTest.java |  2 +-
 .../GridGgfsFragmentizerAbstractSelfTest.java   |  2 +-
 .../grid/kernal/GridAffinityMappedTest.java     |  2 +-
 .../grid/kernal/GridAffinityP2PSelfTest.java    |  2 +-
 .../grid/kernal/GridAffinitySelfTest.java       |  2 +-
 .../grid/kernal/GridDiscoveryEventSelfTest.java |  2 +-
 .../grid/kernal/GridDiscoverySelfTest.java      |  2 +-
 .../kernal/GridJobMasterLeaveAwareSelfTest.java |  2 +-
 .../grid/kernal/GridManagementJobSelfTest.java  |  2 +-
 .../grid/kernal/GridMultipleJobsSelfTest.java   |  2 +-
 .../kernal/GridProjectionForCachesSelfTest.java |  2 +-
 ...ectionLocalJobMultipleArgumentsSelfTest.java |  2 +-
 .../grid/kernal/GridReleaseTypeSelfTest.java    |  2 +-
 .../GridTopologyBuildVersionSelfTest.java       |  2 +-
 .../GridCheckpointManagerAbstractSelfTest.java  |  2 +-
 .../checkpoint/GridCheckpointTaskSelfTest.java  |  2 +-
 .../GridCommunicationSendMessageSelfTest.java   |  2 +-
 .../GridDeploymentMessageCountSelfTest.java     |  2 +-
 .../GridDiscoveryManagerAliveCacheSelfTest.java |  2 +-
 .../GridDiscoveryManagerAttributesSelfTest.java |  2 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |  2 +-
 .../GridAffinityProcessorAbstractSelfTest.java  |  2 +-
 ...ridCacheAbstractByteArrayValuesSelfTest.java |  2 +-
 .../cache/GridCacheAbstractSelfTest.java        |  2 +-
 .../cache/GridCacheAffinityRoutingSelfTest.java |  2 +-
 .../GridCacheAtomicMessageCountSelfTest.java    |  2 +-
 .../cache/GridCacheBasicStoreAbstractTest.java  |  2 +-
 .../cache/GridCacheClearAllSelfTest.java        |  2 +-
 .../cache/GridCacheConcurrentMapSelfTest.java   |  2 +-
 .../GridCacheConcurrentTxMultiNodeTest.java     |  2 +-
 ...idCacheConfigurationConsistencySelfTest.java |  2 +-
 ...ridCacheConfigurationValidationSelfTest.java |  2 +-
 .../GridCacheDaemonNodeAbstractSelfTest.java    |  2 +-
 .../cache/GridCacheDeploymentSelfTest.java      |  2 +-
 .../cache/GridCacheEntryMemorySizeSelfTest.java |  2 +-
 .../cache/GridCacheEntryVersionSelfTest.java    |  2 +-
 .../GridCacheEvictionEventAbstractTest.java     |  2 +-
 .../GridCacheFieldsQueryNoDataSelfTest.java     |  2 +-
 ...idCacheGetAndTransformStoreAbstractTest.java |  2 +-
 .../cache/GridCacheGlobalClearAllSelfTest.java  |  2 +-
 .../GridCacheGroupLockAbstractSelfTest.java     |  2 +-
 .../GridCacheGroupLockFailoverSelfTest.java     |  2 +-
 .../cache/GridCacheIncrementTransformTest.java  |  2 +-
 .../cache/GridCacheIteratorPerformanceTest.java |  2 +-
 .../cache/GridCacheKeyCheckSelfTest.java        |  2 +-
 .../processors/cache/GridCacheLeakTest.java     |  2 +-
 .../cache/GridCacheLuceneQueryIndexTest.java    |  2 +-
 .../GridCacheMarshallerTxAbstractTest.java      |  2 +-
 .../cache/GridCacheMemoryModeSelfTest.java      |  2 +-
 .../cache/GridCacheMultiUpdateLockSelfTest.java |  2 +-
 .../cache/GridCacheMvccManagerSelfTest.java     |  2 +-
 .../cache/GridCacheMvccPartitionedSelfTest.java |  2 +-
 .../processors/cache/GridCacheMvccSelfTest.java |  2 +-
 .../cache/GridCacheNestedTxAbstractTest.java    |  2 +-
 .../cache/GridCacheObjectToStringSelfTest.java  |  2 +-
 .../cache/GridCacheOffHeapSelfTest.java         |  2 +-
 .../processors/cache/GridCacheOffHeapTest.java  |  2 +-
 .../GridCacheOrderedPreloadingSelfTest.java     |  2 +-
 .../cache/GridCacheP2PUndeploySelfTest.java     |  2 +-
 .../cache/GridCachePartitionedGetSelfTest.java  |  2 +-
 ...hePartitionedProjectionAffinitySelfTest.java |  2 +-
 .../GridCachePreloadingEvictionsSelfTest.java   |  2 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |  2 +-
 .../GridCacheReferenceCleanupSelfTest.java      |  2 +-
 .../GridCacheRefreshAheadAbstractSelfTest.java  |  2 +-
 ...ridCacheReplicatedSynchronousCommitTest.java |  2 +-
 .../cache/GridCacheSlowTxWarnTest.java          |  2 +-
 .../cache/GridCacheStorePutxSelfTest.java       |  2 +-
 .../cache/GridCacheStoreValueBytesSelfTest.java |  2 +-
 .../cache/GridCacheSwapPreloadSelfTest.java     |  2 +-
 .../cache/GridCacheSwapReloadSelfTest.java      |  2 +-
 .../cache/GridCacheTtlManagerSelfTest.java      |  2 +-
 .../cache/GridCacheTxAbstractTest.java          |  2 +-
 .../GridCacheTxConcurrentGetAbstractTest.java   |  2 +-
 .../cache/GridCacheTxMultiNodeAbstractTest.java |  2 +-
 .../GridCacheTxReentryAbstractSelfTest.java     |  2 +-
 .../GridCacheVariableTopologySelfTest.java      |  2 +-
 ...BehindStorePartitionedMultiNodeSelfTest.java |  2 +-
 .../GridCacheAtomicLongApiSelfTest.java         |  2 +-
 ...CacheAtomicReferenceApiSelfAbstractTest.java |  2 +-
 ...cheAtomicReferenceMultiNodeAbstractTest.java |  2 +-
 ...idCacheAtomicStampedApiSelfAbstractTest.java |  2 +-
 .../GridCacheCountDownLatchSelfTest.java        |  2 +-
 .../GridCacheQueueApiSelfAbstractTest.java      |  2 +-
 ...ridCacheQueueJoinedNodeSelfAbstractTest.java |  2 +-
 ...GridCacheQueueMultiNodeAbstractSelfTest.java |  2 +-
 ...dCacheQueueMultiNodeConsistencySelfTest.java |  2 +-
 ...CacheQueueRotativeMultiNodeAbstractTest.java |  2 +-
 .../GridCacheSequenceApiSelfAbstractTest.java   |  2 +-
 ...dCacheSequenceMultiNodeAbstractSelfTest.java |  2 +-
 ...titionedAtomicSequenceMultiThreadedTest.java |  2 +-
 ...GridCachePartitionedNodeRestartSelfTest.java |  2 +-
 ...idCachePartitionedNodeRestartTxSelfTest.java |  2 +-
 ...PartitionedQueueCreateMultiNodeSelfTest.java |  2 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |  2 +-
 .../GridCacheAbstractJobExecutionTest.java      |  2 +-
 .../GridCacheAbstractNodeRestartSelfTest.java   |  2 +-
 .../GridCacheAbstractPrimarySyncSelfTest.java   |  2 +-
 .../GridCacheBasicOpAbstractTest.java           |  2 +-
 .../distributed/GridCacheLockAbstractTest.java  |  2 +-
 .../GridCacheMultiNodeAbstractTest.java         |  2 +-
 .../GridCacheMultiNodeLockAbstractTest.java     |  2 +-
 ...dCacheMultithreadedFailoverAbstractTest.java |  2 +-
 .../GridCacheNodeFailureAbstractTest.java       |  2 +-
 ...dCachePartitionedAffinityFilterSelfTest.java |  2 +-
 ...chePartitionedReloadAllAbstractSelfTest.java |  2 +-
 .../GridCachePreloadEventsAbstractSelfTest.java |  2 +-
 .../GridCachePreloadLifecycleAbstractTest.java  |  2 +-
 ...GridCachePreloadRestartAbstractSelfTest.java |  2 +-
 .../GridCacheTransformEventSelfTest.java        |  2 +-
 ...cheTxConsistencyRestartAbstractSelfTest.java |  2 +-
 ...heAbstractTransformWriteThroughSelfTest.java |  2 +-
 .../dht/GridCacheColocatedDebugTest.java        |  2 +-
 ...eColocatedOptimisticTransactionSelfTest.java |  2 +-
 ...dCacheColocatedTxSingleThreadedSelfTest.java |  2 +-
 .../dht/GridCacheDhtEntrySelfTest.java          |  2 +-
 ...GridCacheDhtEvictionNearReadersSelfTest.java |  2 +-
 .../dht/GridCacheDhtEvictionSelfTest.java       |  2 +-
 .../GridCacheDhtEvictionsDisabledSelfTest.java  |  2 +-
 .../dht/GridCacheDhtInternalEntrySelfTest.java  |  2 +-
 .../dht/GridCacheDhtMappingSelfTest.java        |  2 +-
 .../dht/GridCacheDhtPreloadBigDataSelfTest.java |  2 +-
 .../dht/GridCacheDhtPreloadDelayedSelfTest.java |  2 +-
 .../GridCacheDhtPreloadDisabledSelfTest.java    |  2 +-
 .../GridCacheDhtPreloadMessageCountTest.java    |  2 +-
 ...ridCacheDhtPreloadMultiThreadedSelfTest.java |  2 +-
 .../dht/GridCacheDhtPreloadPutGetSelfTest.java  |  2 +-
 .../dht/GridCacheDhtPreloadSelfTest.java        |  2 +-
 .../GridCacheDhtPreloadStartStopSelfTest.java   |  2 +-
 .../dht/GridCacheDhtPreloadUnloadSelfTest.java  |  2 +-
 ...dCachePartitionedTopologyChangeSelfTest.java |  2 +-
 ...ridCachePartitionedUnloadEventsSelfTest.java |  2 +-
 ...eAtomicInvalidPartitionHandlingSelfTest.java |  2 +-
 ...unctionExcludeNeighborsAbstractSelfTest.java |  2 +-
 .../near/GridCacheGetStoreErrorSelfTest.java    |  2 +-
 .../near/GridCacheNearEvictionSelfTest.java     |  2 +-
 .../near/GridCacheNearMultiGetSelfTest.java     |  2 +-
 .../near/GridCacheNearMultiNodeSelfTest.java    |  2 +-
 .../near/GridCacheNearOnlyTopologySelfTest.java |  2 +-
 .../GridCacheNearReaderPreloadSelfTest.java     |  4 +-
 .../near/GridCacheNearReadersSelfTest.java      |  2 +-
 .../near/GridCacheNearTxMultiNodeSelfTest.java  |  2 +-
 ...AffinityExcludeNeighborsPerformanceTest.java |  2 +-
 ...rtitionedAffinityHashIdResolverSelfTest.java |  2 +-
 .../GridCachePartitionedAffinitySelfTest.java   |  2 +-
 ...ePartitionedBasicStoreMultiNodeSelfTest.java |  2 +-
 .../GridCachePartitionedEvictionSelfTest.java   |  2 +-
 ...titionedExplicitLockNodeFailureSelfTest.java |  2 +-
 ...GridCachePartitionedFilteredPutSelfTest.java |  2 +-
 .../GridCachePartitionedLoadCacheSelfTest.java  |  2 +-
 ...achePartitionedMultiNodeCounterSelfTest.java |  2 +-
 ...ePartitionedMultiThreadedPutGetSelfTest.java |  2 +-
 ...hePartitionedQueryMultiThreadedSelfTest.java |  2 +-
 .../GridCachePartitionedStorePutSelfTest.java   |  2 +-
 ...CachePartitionedTxMultiThreadedSelfTest.java |  2 +-
 .../GridCachePartitionedTxSalvageSelfTest.java  |  2 +-
 ...achePartitionedTxSingleThreadedSelfTest.java |  2 +-
 .../GridCachePartitionedTxTimeoutSelfTest.java  |  2 +-
 .../near/GridPartitionedBackupLoadSelfTest.java |  2 +-
 .../GridCacheReplicatedInvalidateSelfTest.java  |  2 +-
 ...dCacheReplicatedTxMultiThreadedSelfTest.java |  2 +-
 ...CacheReplicatedTxSingleThreadedSelfTest.java |  2 +-
 .../GridCacheReplicatedTxTimeoutSelfTest.java   |  2 +-
 ...idCacheReplicatedUnswapAdvancedSelfTest.java |  2 +-
 .../GridCacheSyncReplicatedPreloadSelfTest.java |  2 +-
 .../GridCacheReplicatedPreloadSelfTest.java     |  2 +-
 ...eplicatedPreloadStartStopEventsSelfTest.java |  2 +-
 ...heConcurrentEvictionConsistencySelfTest.java |  2 +-
 .../GridCacheConcurrentEvictionsSelfTest.java   |  2 +-
 .../GridCacheDistributedEvictionsSelfTest.java  |  2 +-
 .../GridCacheEmptyEntriesAbstractSelfTest.java  |  4 +-
 .../eviction/GridCacheEvictionAbstractTest.java |  2 +-
 .../GridCacheEvictionFilterSelfTest.java        |  2 +-
 .../GridCacheEvictionLockUnlockSelfTest.java    |  2 +-
 .../GridCacheEvictionTouchSelfTest.java         |  2 +-
 .../GridCacheLruNearEvictionPolicySelfTest.java |  2 +-
 ...heNearOnlyLruNearEvictionPolicySelfTest.java |  2 +-
 .../GridCacheSwapScanQueryAbstractSelfTest.java |  2 +-
 ...ridCacheContinuousQueryAbstractSelfTest.java |  2 +-
 ...dCacheAbstractReduceFieldsQuerySelfTest.java |  2 +-
 .../clock/GridTimeSyncProcessorSelfTest.java    |  2 +-
 .../closure/GridClosureProcessorSelfTest.java   |  2 +-
 .../dataload/GridDataLoaderImplSelfTest.java    |  2 +-
 .../dataload/GridDataLoaderPerformanceTest.java |  2 +-
 .../GridDataLoaderProcessorSelfTest.java        |  2 +-
 .../ggfs/GridGgfsDataManagerSelfTest.java       |  2 +-
 .../ggfs/GridGgfsMetaManagerSelfTest.java       |  2 +-
 .../ggfs/GridGgfsMetricsSelfTest.java           |  2 +-
 .../ggfs/GridGgfsProcessorSelfTest.java         |  2 +-
 .../GridGgfsProcessorValidationSelfTest.java    |  2 +-
 ...IpcEndpointRegistrationAbstractSelfTest.java |  2 +-
 .../processors/ggfs/GridGgfsSizeSelfTest.java   |  2 +-
 .../ggfs/GridGgfsStreamsSelfTest.java           |  2 +-
 .../processors/ggfs/GridGgfsTaskSelfTest.java   |  2 +-
 .../GridGgfsAbstractRecordResolverSelfTest.java |  2 +-
 .../GridServiceProcessorAbstractSelfTest.java   |  2 +-
 .../streamer/GridStreamerEvictionSelfTest.java  |  2 +-
 .../streamer/GridStreamerFailoverSelfTest.java  |  2 +-
 .../streamer/GridStreamerSelfTest.java          |  2 +-
 .../grid/messaging/GridMessagingSelfTest.java   |  2 +-
 .../GridP2PContinuousDeploymentSelfTest.java    |  2 +-
 .../p2p/GridP2PDoubleDeploymentSelfTest.java    |  2 +-
 .../GridP2PMissedResourceCacheSizeSelfTest.java |  2 +-
 .../tcp/GridTcpClientDiscoverySelfTest.java     |  2 +-
 .../GridTcpDiscoveryConcurrentStartTest.java    |  2 +-
 ...GridTcpDiscoveryMarshallerCheckSelfTest.java |  2 +-
 .../tcp/GridTcpDiscoveryMultiThreadedTest.java  |  2 +-
 .../GridTcpDiscoverySpiRandomStartStopTest.java |  2 +-
 .../tcp/GridTcpDiscoverySpiSelfTest.java        |  2 +-
 .../GridTcpDiscoverySpiStartStopSelfTest.java   |  2 +-
 .../GridTcpDiscoverySpiWildcardSelfTest.java    |  2 +-
 ...ridTcpDiscoveryIpFinderAbstractSelfTest.java |  2 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |  2 +-
 ...tartupWithUndefinedGridGainHomeSelfTest.java |  2 +-
 .../grid/util/GridTopologyHeapSizeSelfTest.java |  2 +-
 .../loadtests/GridCacheMultiNodeLoadTest.java   |  2 +-
 ...ridCacheAffinityTransactionsOffHeapTest.java |  2 +-
 .../communication/GridIoManagerBenchmark0.java  |  2 +-
 .../GridCachePartitionedAtomicLongLoadTest.java |  2 +-
 .../swap/GridSwapEvictAllBenchmark.java         |  2 +-
 .../junits/spi/GridSpiAbstractTest.java         |  2 +-
 ...dGgfsHadoop20FileSystemAbstractSelfTest.java |  2 +-
 ...ridGgfsHadoopFileSystemAbstractSelfTest.java |  2 +-
 ...idGgfsHadoopFileSystemHandshakeSelfTest.java |  2 +-
 ...ridGgfsHadoopFileSystemIpcCacheSelfTest.java |  2 +-
 .../ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java |  2 +-
 .../hibernate/GridHibernateL2CacheSelfTest.java |  2 +-
 .../GridCacheAbstractFieldsQuerySelfTest.java   |  2 +-
 .../cache/GridCacheAbstractQuerySelfTest.java   |  2 +-
 .../cache/GridCacheCrossCacheQuerySelfTest.java |  2 +-
 .../cache/GridCacheOffHeapAndSwapSelfTest.java  |  2 +-
 .../cache/GridCacheQueryLoadSelfTest.java       |  2 +-
 .../cache/GridCacheQueryMetricsSelfTest.java    |  2 +-
 .../GridCacheQueryMultiThreadedSelfTest.java    |  2 +-
 .../GridCacheQueryUserResourceSelfTest.java     |  2 +-
 .../GridCacheSqlQueryMultiThreadedSelfTest.java |  2 +-
 .../processors/cache/GridCacheSwapSelfTest.java |  2 +-
 .../cache/GridIndexingWithNoopSwapSelfTest.java |  2 +-
 ...idCachePartitionedHitsAndMissesSelfTest.java |  2 +-
 .../near/GridCacheQueryNodeRestartSelfTest.java |  2 +-
 .../spring/GridSpringCacheManagerSelfTest.java  |  2 +-
 .../GridSpringBeanSerializationSelfTest.java    |  2 +-
 .../p2p/GridP2PUserVersionChangeSelfTest.java   |  2 +-
 263 files changed, 440 insertions(+), 444 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java b/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java
index db0943a..69f9aa6 100644
--- a/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java
+++ b/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java
@@ -48,12 +48,12 @@ import java.util.concurrent.atomic.*;
  * like the following: {@code 192.168.1.136#1001}.
  * <p>
  * Note that storing data in AWS S3 service will result in charges to your AWS account.
- * Choose another implementation of {@link GridTcpDiscoveryIpFinder} for local
+ * Choose another implementation of {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} for local
  * or home network tests.
  * <p>
- * Note that this finder is shared by default (see {@link GridTcpDiscoveryIpFinder#isShared()}.
+ * Note that this finder is shared by default (see {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()}.
  */
-public class GridTcpDiscoveryS3IpFinder extends GridTcpDiscoveryIpFinderAdapter {
+public class GridTcpDiscoveryS3IpFinder extends TcpDiscoveryIpFinderAdapter {
     /** Delimiter to use in S3 entries name. */
     public static final String DELIM = "#";
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java b/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java
index 684e585..d692178 100644
--- a/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java
+++ b/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java
@@ -188,7 +188,7 @@ public class GridBasicWarmupClosure implements IgniteInClosure<IgniteConfigurati
         try {
             System.setProperty(IgniteSystemProperties.GG_UPDATE_NOTIFIER, "false");
 
-            GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+            TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
             for (int i = 0; i < gridCnt; i++) {
                 IgniteConfiguration cfg0 = new IgniteConfiguration(cfg);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
index 33ec848..ff50969 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -16,7 +16,6 @@ import org.apache.ignite.spi.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.spi.discovery.*;
 import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
 import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
 import org.gridgain.grid.spi.discovery.tcp.messages.*;
 import org.gridgain.grid.util.typedef.*;
@@ -38,7 +37,7 @@ import static org.gridgain.grid.spi.discovery.tcp.messages.GridTcpDiscoveryHeart
  * <p>
  * This discovery SPI requires at least on server node configured with
  * {@link TcpDiscoverySpi}. It will try to connect to random IP taken from
- * {@link GridTcpDiscoveryIpFinder} which should point to one of these server
+ * {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} which should point to one of these server
  * nodes and will maintain connection only with this node (will not enter the ring).
  * If this connection is broken, it will try to reconnect using addresses from
  * the same IP finder.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java
index 5d45ec7..38e8e0c 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java
@@ -11,7 +11,6 @@ package org.gridgain.grid.spi.discovery.tcp;
 
 import org.apache.ignite.mbean.*;
 import org.apache.ignite.spi.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
 
 import java.util.*;
 
@@ -68,7 +67,7 @@ public interface TcpClientDiscoverySpiMBean extends IgniteSpiManagementMBean {
     public long getHeartbeatFrequency();
 
     /**
-     * Gets {@link GridTcpDiscoveryIpFinder} (string representation).
+     * Gets {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} (string representation).
      *
      * @return IPFinder (string representation).
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
index 4541e94..beb725d 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -22,7 +22,6 @@ import org.gridgain.grid.kernal.managers.security.*;
 import org.gridgain.grid.security.*;
 import org.gridgain.grid.spi.discovery.*;
 import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
 import org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc.*;
 import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
 import org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs.*;
@@ -57,7 +56,7 @@ import static org.gridgain.grid.spi.discovery.tcp.messages.GridTcpDiscoveryStatu
  * done across it.
  * <p>
  * At startup SPI tries to send messages to random IP taken from
- * {@link GridTcpDiscoveryIpFinder} about self start (stops when send succeeds)
+ * {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} about self start (stops when send succeeds)
  * and then this info goes to coordinator. When coordinator processes join request
  * and issues node added messages and all other nodes then receive info about new node.
  * <h1 class="header">Configuration</h1>
@@ -67,7 +66,7 @@ import static org.gridgain.grid.spi.discovery.tcp.messages.GridTcpDiscoveryStatu
  * The following configuration parameters are optional:
  * <ul>
  * <li>IP finder to share info about nodes IP addresses
- * (see {@link #setIpFinder(GridTcpDiscoveryIpFinder)}).
+ * (see {@link #setIpFinder(org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder)}).
  * See the following IP finder implementations for details on configuration:
  * <ul>
  * <li>{@link GridTcpDiscoverySharedFsIpFinder}</li>
@@ -365,7 +364,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
      *
      * @param joinTimeout Join timeout ({@code 0} means wait forever).
      *
-     * @see GridTcpDiscoveryIpFinder#isShared()
+     * @see org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()
      */
     @IgniteSpiConfiguration(optional = true)
     public void setJoinTimeout(long joinTimeout) {
@@ -1389,7 +1388,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
     /**
      * Tries to send join request message to a random node presenting in topology.
-     * Address is provided by {@link GridTcpDiscoveryIpFinder} and message is
+     * Address is provided by {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} and message is
      * sent to first node connection succeeded to.
      *
      * @return {@code true} if send succeeded.
@@ -2272,7 +2271,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
      * addresses of the nodes that has left the topology.
      * <p>
      * This thread should run only on coordinator node and will clean IP finder
-     * if and only if {@link GridTcpDiscoveryIpFinder#isShared()} is {@code true}.
+     * if and only if {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()} is {@code true}.
      */
     private class IpFinderCleaner extends IgniteSpiThread {
         /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 2945352..03b422a 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -74,7 +74,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
     protected String locAddr;
 
     /** IP finder. */
-    protected GridTcpDiscoveryIpFinder ipFinder;
+    protected TcpDiscoveryIpFinder ipFinder;
 
     /** Socket operations timeout. */
     protected long sockTimeout = DFLT_SOCK_TIMEOUT;
@@ -176,7 +176,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
      *
      * @return IP finder for IP addresses sharing and storing.
      */
-    public GridTcpDiscoveryIpFinder getIpFinder() {
+    public TcpDiscoveryIpFinder getIpFinder() {
         return ipFinder;
     }
 
@@ -188,7 +188,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
      * @param ipFinder IP finder.
      */
     @IgniteSpiConfiguration(optional = true)
-    public void setIpFinder(GridTcpDiscoveryIpFinder ipFinder) {
+    public void setIpFinder(TcpDiscoveryIpFinder ipFinder) {
         this.ipFinder = ipFinder;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java
index 0f9212d..6e6a33f 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java
@@ -11,7 +11,6 @@ package org.gridgain.grid.spi.discovery.tcp;
 
 import org.apache.ignite.mbean.*;
 import org.apache.ignite.spi.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;
@@ -37,7 +36,7 @@ public interface TcpDiscoverySpiMBean extends IgniteSpiManagementMBean {
     public String getSpiState();
 
     /**
-     * Gets {@link GridTcpDiscoveryIpFinder} (string representation).
+     * Gets {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} (string representation).
      *
      * @return IPFinder (string representation).
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinder.java
deleted file mode 100644
index 4622122..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinder.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder;
-
-import org.apache.ignite.spi.*;
-
-import java.net.*;
-import java.util.*;
-
-/**
- * IP finder interface for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
- */
-public interface GridTcpDiscoveryIpFinder {
-    /**
-     * Callback invoked when SPI context is initialized after {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi#spiStart(String)}
-     * method is completed, SPI context can be stored for future access.
-     *
-     * @param spiCtx Spi context.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException;
-
-    /**
-     * Callback invoked prior to stopping grid before SPI context is destroyed.
-     * Note that invoking SPI context after this callback is complete is considered
-     * illegal and may produce unknown results.
-     */
-    public void onSpiContextDestroyed();
-
-    /**
-     * Initializes addresses discovery SPI binds to.
-     *
-     * @param addrs Addresses discovery SPI binds to.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
-
-    /**
-     * Gets all addresses registered in this finder.
-     *
-     * @return All known addresses, potentially empty, but never {@code null}.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException;
-
-    /**
-     * Checks whether IP finder is shared or not.
-     * <p>
-     * If it is shared then only coordinator can unregister addresses.
-     * <p>
-     * All nodes should register their address themselves, as early as possible on node start.
-     *
-     * @return {@code true} if IP finder is shared.
-     */
-    public boolean isShared();
-
-    /**
-     * Registers new addresses.
-     * <p>
-     * Implementation should accept duplicates quietly, but should not register address if it
-     * is already registered.
-     *
-     * @param addrs Addresses to register. Not {@code null} and not empty.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
-
-    /**
-     * Unregisters provided addresses.
-     * <p>
-     * Implementation should accept addresses that are currently not
-     * registered quietly (just no-op).
-     *
-     * @param addrs Addresses to unregister. Not {@code null} and not empty.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
-
-    /**
-     * Closes this IP finder and releases any system resources associated with it.
-     */
-    public void close();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAdapter.java
deleted file mode 100644
index 65bd879..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAdapter.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder;
-
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.net.*;
-import java.util.*;
-
-/**
- * IP finder interface implementation adapter.
- */
-public abstract class GridTcpDiscoveryIpFinderAdapter implements GridTcpDiscoveryIpFinder {
-    /** Shared flag. */
-    private boolean shared;
-
-    /** SPI context. */
-    @GridToStringExclude
-    private volatile IgniteSpiContext spiCtx;
-
-    /** {@inheritDoc} */
-    @Override public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException {
-        this.spiCtx = spiCtx;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void onSpiContextDestroyed() {
-        spiCtx = null;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        registerAddresses(addrs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isShared() {
-        return shared;
-    }
-
-    /**
-     * Sets shared flag. If {@code true} then it is expected that IP addresses registered
-     * with IP finder will be seen by IP finders on all other nodes.
-     *
-     * @param shared {@code true} if this IP finder is shared.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setShared(boolean shared) {
-        this.shared = shared;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryIpFinderAdapter.class, this);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void close() {
-        // No-op.
-    }
-
-    /**
-     * @return SPI context.
-     */
-    protected IgniteSpiContext spiContext() {
-        return spiCtx;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java
new file mode 100644
index 0000000..b5ff462
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java
@@ -0,0 +1,90 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.ipfinder;
+
+import org.apache.ignite.spi.*;
+
+import java.net.*;
+import java.util.*;
+
+/**
+ * IP finder interface for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
+ */
+public interface TcpDiscoveryIpFinder {
+    /**
+     * Callback invoked when SPI context is initialized after {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi#spiStart(String)}
+     * method is completed, SPI context can be stored for future access.
+     *
+     * @param spiCtx Spi context.
+     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+     */
+    public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException;
+
+    /**
+     * Callback invoked prior to stopping grid before SPI context is destroyed.
+     * Note that invoking SPI context after this callback is complete is considered
+     * illegal and may produce unknown results.
+     */
+    public void onSpiContextDestroyed();
+
+    /**
+     * Initializes addresses discovery SPI binds to.
+     *
+     * @param addrs Addresses discovery SPI binds to.
+     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+     */
+    public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
+
+    /**
+     * Gets all addresses registered in this finder.
+     *
+     * @return All known addresses, potentially empty, but never {@code null}.
+     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+     */
+    public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException;
+
+    /**
+     * Checks whether IP finder is shared or not.
+     * <p>
+     * If it is shared then only coordinator can unregister addresses.
+     * <p>
+     * All nodes should register their address themselves, as early as possible on node start.
+     *
+     * @return {@code true} if IP finder is shared.
+     */
+    public boolean isShared();
+
+    /**
+     * Registers new addresses.
+     * <p>
+     * Implementation should accept duplicates quietly, but should not register address if it
+     * is already registered.
+     *
+     * @param addrs Addresses to register. Not {@code null} and not empty.
+     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+     */
+    public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
+
+    /**
+     * Unregisters provided addresses.
+     * <p>
+     * Implementation should accept addresses that are currently not
+     * registered quietly (just no-op).
+     *
+     * @param addrs Addresses to unregister. Not {@code null} and not empty.
+     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+     */
+    public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
+
+    /**
+     * Closes this IP finder and releases any system resources associated with it.
+     */
+    public void close();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
new file mode 100644
index 0000000..27eb5ed
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
@@ -0,0 +1,77 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.ipfinder;
+
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.net.*;
+import java.util.*;
+
+/**
+ * IP finder interface implementation adapter.
+ */
+public abstract class TcpDiscoveryIpFinderAdapter implements TcpDiscoveryIpFinder {
+    /** Shared flag. */
+    private boolean shared;
+
+    /** SPI context. */
+    @GridToStringExclude
+    private volatile IgniteSpiContext spiCtx;
+
+    /** {@inheritDoc} */
+    @Override public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException {
+        this.spiCtx = spiCtx;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void onSpiContextDestroyed() {
+        spiCtx = null;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        registerAddresses(addrs);
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isShared() {
+        return shared;
+    }
+
+    /**
+     * Sets shared flag. If {@code true} then it is expected that IP addresses registered
+     * with IP finder will be seen by IP finders on all other nodes.
+     *
+     * @param shared {@code true} if this IP finder is shared.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setShared(boolean shared) {
+        this.shared = shared;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryIpFinderAdapter.class, this);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void close() {
+        // No-op.
+    }
+
+    /**
+     * @return SPI context.
+     */
+    protected IgniteSpiContext spiContext() {
+        return spiCtx;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinder.java
index c721ea5..0e1a15b 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinder.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinder.java
@@ -43,7 +43,7 @@ import static java.sql.Connection.*;
  * <p>
  * The database will contain 1 table which will hold IP addresses.
  */
-public class GridTcpDiscoveryJdbcIpFinder extends GridTcpDiscoveryIpFinderAdapter {
+public class GridTcpDiscoveryJdbcIpFinder extends TcpDiscoveryIpFinderAdapter {
     /** Query to get addresses. */
     public static final String GET_ADDRS_QRY = "select hostname, port from tbl_addrs";
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinder.java
index 8e1207a..3778c3f 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinder.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinder.java
@@ -41,9 +41,9 @@ import java.util.concurrent.atomic.*;
  * <p>
  * The directory will contain empty files named like the following 192.168.1.136#1001.
  * <p>
- * Note that this finder is shared by default (see {@link GridTcpDiscoveryIpFinder#isShared()}.
+ * Note that this finder is shared by default (see {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()}.
  */
-public class GridTcpDiscoverySharedFsIpFinder extends GridTcpDiscoveryIpFinderAdapter {
+public class GridTcpDiscoverySharedFsIpFinder extends TcpDiscoveryIpFinderAdapter {
     /**
      * Default path for discovering of local nodes (testing only). Note that this path is relative to
      * {@code GRIDGAIN_HOME/work} folder if {@code GRIDGAIN_HOME} system or environment variable specified,

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinder.java
index 9482c33..f993de7 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinder.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinder.java
@@ -37,7 +37,7 @@ import static org.apache.ignite.IgniteSystemProperties.*;
  *      <li>Shared flag (see {@link #setShared(boolean)})</li>
  * </ul>
  */
-public class GridTcpDiscoveryVmIpFinder extends GridTcpDiscoveryIpFinderAdapter {
+public class GridTcpDiscoveryVmIpFinder extends TcpDiscoveryIpFinderAdapter {
     /** Grid logger. */
     @IgniteLoggerResource
     private IgniteLogger log;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java
index d17c792..7fbed15 100644
--- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java
@@ -49,7 +49,7 @@ public class GridOptimizedMarshallerTest extends GridCommonAbstractTest {
 
         byte[] bytes = marsh.marshal(new GridTcpDiscoveryVmIpFinder());
 
-        GridTcpDiscoveryIpFinder ipFinder = marsh.unmarshal(bytes, null);
+        TcpDiscoveryIpFinder ipFinder = marsh.unmarshal(bytes, null);
 
         assertFalse(ipFinder.isShared());
 
@@ -68,7 +68,7 @@ public class GridOptimizedMarshallerTest extends GridCommonAbstractTest {
 
         marsh.setRequireSerializable(false);
 
-        GridTcpDiscoveryIpFinderAdapter ipFinder = new GridTcpDiscoveryIpFinderAdapter() {
+        TcpDiscoveryIpFinderAdapter ipFinder = new TcpDiscoveryIpFinderAdapter() {
             @Override public Collection<InetSocketAddress> getRegisteredAddresses() {
                 return null;
             }
@@ -103,7 +103,7 @@ public class GridOptimizedMarshallerTest extends GridCommonAbstractTest {
 
         byte[] bytes = marsh.marshal(new GridTestTcpDiscoveryIpFinderAdapter());
 
-        GridTcpDiscoveryIpFinder ipFinder = marsh.unmarshal(bytes, null);
+        TcpDiscoveryIpFinder ipFinder = marsh.unmarshal(bytes, null);
 
         assertFalse(ipFinder.isShared());
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridTestTcpDiscoveryIpFinderAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridTestTcpDiscoveryIpFinderAdapter.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridTestTcpDiscoveryIpFinderAdapter.java
index f62fd3f..26f0fc7 100644
--- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridTestTcpDiscoveryIpFinderAdapter.java
+++ b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridTestTcpDiscoveryIpFinderAdapter.java
@@ -10,7 +10,7 @@
 package org.apache.ignite.marshaller.optimized;
 
 import org.apache.ignite.spi.IgniteSpiException;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.GridTcpDiscoveryIpFinderAdapter;
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAdapter;
 
 import java.net.InetSocketAddress;
 import java.util.Collection;
@@ -18,7 +18,7 @@ import java.util.Collection;
 /**
  * Test TCP discovery IP finder adapter.
  */
-public class GridTestTcpDiscoveryIpFinderAdapter extends GridTcpDiscoveryIpFinderAdapter {
+public class GridTestTcpDiscoveryIpFinderAdapter extends TcpDiscoveryIpFinderAdapter {
     /** {@inheritDoc} */
     @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
         return null;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java
index d88886e..9058f8d 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java
@@ -24,7 +24,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheCheckpointSpiSecondCacheSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Data cache name. */
     private static final String DATA_CACHE = null;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java
index d890ee6..5d7c240 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java
@@ -40,7 +40,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheDhtLockBackupSelfTest extends GridCommonAbstractTest {
     /** Ip-finder. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Communication spi for grid start. */
     private CommunicationSpi commSpi;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java
index 6d6e6ec..09b484c 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java
@@ -39,7 +39,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridOrderedMessageCancelSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Cancel latch. */
     private static CountDownLatch cancelLatch;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java
index 3623a21..4184c89 100644
--- a/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java
@@ -25,7 +25,7 @@ import java.util.*;
  */
 public class GridCachePartitionFairAffinityNodesSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Number of backups. */
     private int backups;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
index 921652d..1b9b49e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.testframework.GridTestUtils.*;
  */
 public class GridCacheJdbcBlobStoreMultithreadedSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Number of grids to start. */
     private static final int GRID_CNT = 5;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java
index 0ef209a..dfb9713 100644
--- a/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java
@@ -27,7 +27,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridGgfsFragmentizerAbstractSelfTest extends GridGgfsCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Test nodes count. */
     protected static final int NODE_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java
index 2aff782..82a9370 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridAffinityMappedTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java
index 7508d6e..b39beaf 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridAffinityP2PSelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final String EXT_AFFINITY_MAPPER_CLS_NAME = "org.gridgain.grid.tests.p2p.GridExternalAffinityMapper";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java
index aa9cc01..014b5c2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridAffinitySelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java
index a5fd26e..8474d52 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java
@@ -33,7 +33,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridDiscoveryEventSelfTest extends GridCommonAbstractTest {
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Daemon flag. */
     private boolean daemon;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
index bab4277..b669b98 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
@@ -38,7 +38,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridDiscoverySelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static Ignite ignite;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java
index 3dba698..681f0ed 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java
@@ -48,7 +48,7 @@ public class GridJobMasterLeaveAwareSelfTest extends GridCommonAbstractTest {
     private static final int GRID_CNT = 2;
 
     /** Default IP finder for single-JVM cloud grid. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Counts how many times master-leave interface implementation was called. */
     private static volatile CountDownLatch invokeLatch;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java
index aebf5f9..aa219eb 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java
@@ -30,7 +30,7 @@ public class GridManagementJobSelfTest extends GridCommonAbstractTest {
     private static final String TASK_NAME = "task";
 
     /** IP finder. */
-    private final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * Do not start grid initially.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java
index 59faab9..99ff28f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java
@@ -39,7 +39,7 @@ public class GridMultipleJobsSelfTest extends GridCommonAbstractTest {
     private static final int TEST_TIMEOUT = 60 * 1000;
 
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java
index 8e62911..38e133c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridProjectionForCachesSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final String CACHE_NAME = "cache";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
index 8de9022..6842d16 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridProjectionLocalJobMultipleArgumentsSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static Collection<Integer> ids;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
index 23a64be..5eb18d4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
@@ -26,7 +26,7 @@ import java.util.concurrent.atomic.*;
  */
 public class GridReleaseTypeSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Counter. */
     private static final AtomicInteger cnt = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
index f2b7ebe..8103061 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
@@ -26,7 +26,7 @@ import java.util.concurrent.atomic.*;
  */
 public class GridTopologyBuildVersionSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Counter. */
     private static final AtomicInteger cnt = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
index ffc4e9b..1932bff 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
@@ -87,7 +87,7 @@ public abstract class GridCheckpointManagerAbstractSelfTest extends GridCommonAb
     private static final String SES_VAL_OVERWRITTEN = SES_VAL + "-overwritten";
 
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * Static variable to control whether test should retry checkpoint read attempts.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java
index 947ee00..4f22297 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCheckpointTaskSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Checkpoints cache name. */
     private static final String CACHE_NAME = "checkpoints.cache";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java
index 176ab9d..3838256 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java
@@ -29,7 +29,7 @@ import static java.util.concurrent.TimeUnit.*;
  */
 public class GridCommunicationSendMessageSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Sample count. */
     private static final int SAMPLE_CNT = 1;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java
index cf22d19..cafe28f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridDeploymentMessageCountSelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Test p2p task. */
     private static final String TEST_TASK = "org.gridgain.grid.tests.p2p.GridSingleSplitTestTask";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
index ed5cd5a..a0a246b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridDiscoveryManagerAliveCacheSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int PERM_NODES_CNT = 5;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
index d907af0..ae6483b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
@@ -27,7 +27,7 @@ public class GridDiscoveryManagerAttributesSelfTest extends GridCommonAbstractTe
     private static final String PREFER_IPV4 = "java.net.preferIPv4Stack";
 
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static IgniteDeploymentMode mode = SHARED;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java
index 4b99627..f6983f9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java
@@ -28,7 +28,7 @@ public class GridDiscoveryManagerSelfTest extends GridCommonAbstractTest {
     private static final String CACHE_NAME = "cache";
 
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
index 6421893..bf2d1d6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
@@ -37,7 +37,7 @@ public abstract class GridAffinityProcessorAbstractSelfTest extends GridCommonAb
     private static final String CACHE_NAME = "cache";
 
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Flag to start grid with cache. */
     private boolean withCache;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
index dddb399..3d2d21f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
@@ -38,7 +38,7 @@ public abstract class GridCacheAbstractByteArrayValuesSelfTest extends GridCommo
     protected static final Integer SWAP_TEST_KEY = 3;
 
     /** Shared IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java
index 51e9caa..04d5921 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java
@@ -48,7 +48,7 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest {
     protected static final Map<Object, Object> map = new ConcurrentHashMap8<>();
 
     /** VM ip finder for TCP discovery. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * @return Grids count to start.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java
index 29a5572..6d70f67 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java
@@ -46,7 +46,7 @@ public class GridCacheAffinityRoutingSelfTest extends GridCommonAbstractTest {
     private static final int KEY_CNT = 50;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
index 4f3c31c..d676285 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheAtomicMessageCountSelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Starting grid index. */
     private int idx;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java
index 46ec33e..af3ed16 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public abstract class GridCacheBasicStoreAbstractTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Cache store. */
     private static final GridCacheTestStore store = new GridCacheTestStore();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
index f0c89fd..ea36a1b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
@@ -45,7 +45,7 @@ public class GridCacheClearAllSelfTest extends GridCommonAbstractTest {
     private static final int GRID_CNT = 3;
 
     /** VM IP finder for TCP discovery SPI. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Local caches. */
     private GridCache<Integer, Integer>[] cachesLoc;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java
index e7d498c..b6e48ca 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java
@@ -29,7 +29,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheConcurrentMapSelfTest extends GridCommonAbstractTest {
     /** Ip finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
index 30b17c6..fa9b379 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
@@ -49,7 +49,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheConcurrentTxMultiNodeTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Timers. */
     private static final ConcurrentMap<Thread, ConcurrentMap<String, T5<Long, Long, Long, IgniteUuid, Object>>> timers =


[45/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java
new file mode 100644
index 0000000..cc7f86f
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java
@@ -0,0 +1,88 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.jobstealing;
+
+import org.apache.ignite.cluster.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.kernal.*;
+import org.apache.ignite.spi.collision.jobstealing.*;
+import org.apache.ignite.spi.failover.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.testframework.*;
+import org.gridgain.testframework.junits.spi.*;
+
+import java.util.*;
+
+/**
+ * Job stealing failover SPI test for one node.
+ */
+@GridSpiTest(spi = JobStealingFailoverSpi.class, group = "Failover SPI")
+public class GridJobStealingFailoverSpiOneNodeSelfTest extends GridSpiAbstractTest<JobStealingFailoverSpi> {
+    /** {@inheritDoc} */
+    @Override protected GridSpiTestContext initSpiContext() throws Exception {
+        GridSpiTestContext ctx = super.initSpiContext();
+
+        ctx.setLocalNode(addSpiDependency(new GridTestNode(UUID.randomUUID())));
+
+        ctx.addNode(addSpiDependency(new GridTestNode(UUID.randomUUID())));
+
+        return ctx;
+    }
+
+    /**
+     * Adds Collision SPI attribute.
+     *
+     * @param node Node to add attribute to.
+     * @return Passed in node.
+     * @throws Exception If failed.
+     */
+    private ClusterNode addSpiDependency(GridTestNode node) throws Exception {
+        node.addAttribute(
+            U.spiAttribute(getSpi(), GridNodeAttributes.ATTR_SPI_CLASS),
+            JobStealingCollisionSpi.class.getName());
+
+        node.addAttribute(
+            U.spiAttribute(getSpi(), GridNodeAttributes.ATTR_SPI_CLASS),
+            JobStealingCollisionSpi.class.getName());
+
+        return node;
+    }
+
+    /**
+     * @throws Exception If test failed.
+     */
+    public void testFailover() throws Exception {
+        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
+
+        GridTestJobResult failed = new GridTestJobResult(rmt);
+
+        failed.getJobContext().setAttribute(JobStealingCollisionSpi.THIEF_NODE_ATTR,
+            getSpiContext().localNode().id());
+
+        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
+            Collections.singletonList(getSpiContext().remoteNodes().iterator().next()));
+
+        assert other == rmt : "Invalid failed-over node: " + other;
+    }
+
+    /**
+     * @throws Exception If test failed.
+     */
+    public void testNoFailover() throws Exception {
+        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
+
+        GridTestJobResult failed = new GridTestJobResult(rmt);
+
+        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
+            Collections.singletonList(getSpiContext().remoteNodes().iterator().next()));
+
+        assert other == null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java
new file mode 100644
index 0000000..321a95b
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java
@@ -0,0 +1,217 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.jobstealing;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.compute.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.collision.jobstealing.*;
+import org.apache.ignite.spi.failover.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.testframework.*;
+import org.gridgain.testframework.junits.spi.*;
+
+import java.util.*;
+
+import static org.gridgain.grid.kernal.GridNodeAttributes.*;
+import static org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi.*;
+import static org.apache.ignite.spi.failover.jobstealing.JobStealingFailoverSpi.*;
+
+/**
+ * Self test for {@link JobStealingFailoverSpi} SPI.
+ */
+@GridSpiTest(spi = JobStealingFailoverSpi.class, group = "Failover SPI")
+public class GridJobStealingFailoverSpiSelfTest extends GridSpiAbstractTest<JobStealingFailoverSpi> {
+    /** {@inheritDoc} */
+    @Override protected GridSpiTestContext initSpiContext() throws Exception {
+        GridSpiTestContext ctx = super.initSpiContext();
+
+        GridTestNode loc = new GridTestNode(UUID.randomUUID());
+
+        addSpiDependency(loc);
+
+        ctx.setLocalNode(loc);
+
+        GridTestNode rmt = new GridTestNode(UUID.randomUUID());
+
+        ctx.addNode(rmt);
+
+        addSpiDependency(rmt);
+
+        return ctx;
+    }
+
+    /**
+     * Adds Collision SPI attribute.
+     *
+     * @param node Node to add attribute to.
+     * @throws Exception If failed.
+     */
+    private void addSpiDependency(GridTestNode node) throws Exception {
+        node.addAttribute(ATTR_SPI_CLASS, JobStealingCollisionSpi.class.getName());
+
+        node.setAttribute(U.spiAttribute(getSpi(), ATTR_SPI_CLASS), getSpi().getClass().getName());
+    }
+
+    /**
+     * @throws Exception If test failed.
+     */
+    public void testFailover() throws Exception {
+        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
+
+        GridTestJobResult failed = new GridTestJobResult(rmt);
+
+        failed.getJobContext().setAttribute(THIEF_NODE_ATTR,
+            getSpiContext().localNode().id());
+
+        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
+            new ArrayList<>(getSpiContext().nodes()));
+
+        assert other == getSpiContext().localNode();
+
+        // This is not a failover but stealing.
+        checkAttributes(failed.getJobContext(), null, 0);
+    }
+
+    /**
+     * @throws Exception If test failed.
+     */
+    public void testMaxHopsExceeded() throws Exception {
+        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
+
+        GridTestJobResult failed = new GridTestJobResult(rmt);
+
+        failed.getJobContext().setAttribute(THIEF_NODE_ATTR,
+            getSpiContext().localNode().id());
+        failed.getJobContext().setAttribute(FAILOVER_ATTEMPT_COUNT_ATTR,
+            getSpi().getMaximumFailoverAttempts());
+
+        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
+            new ArrayList<>(getSpiContext().nodes()));
+
+        assert other == null;
+    }
+
+    /**
+     * @throws Exception If test failed.
+     */
+    public void testMaxHopsExceededThiefNotSet() throws Exception {
+        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
+
+        GridTestJobResult failed = new GridTestJobResult(rmt);
+
+        failed.getJobContext().setAttribute(FAILOVER_ATTEMPT_COUNT_ATTR,
+            getSpi().getMaximumFailoverAttempts());
+
+        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
+            new ArrayList<>(getSpiContext().nodes()));
+
+        assert other == null;
+    }
+
+    /**
+     * @throws Exception If test failed.
+     */
+    public void testNonZeroFailoverCount() throws Exception {
+        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
+
+        GridTestJobResult failed = new GridTestJobResult(rmt);
+
+        failed.getJobContext().setAttribute(FAILOVER_ATTEMPT_COUNT_ATTR,
+            getSpi().getMaximumFailoverAttempts() - 1);
+
+        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
+            new ArrayList<>(getSpiContext().nodes()));
+
+        assert other != null;
+        assert other != rmt;
+
+        assert other == getSpiContext().localNode();
+
+        checkAttributes(failed.getJobContext(), rmt, getSpi().getMaximumFailoverAttempts());
+    }
+
+    /**
+     * @throws Exception If test failed.
+     */
+    public void testThiefNotInTopology() throws Exception {
+        ClusterNode rmt = new GridTestNode(UUID.randomUUID());
+
+        GridTestJobResult failed = new GridTestJobResult(rmt);
+
+        failed.getJobContext().setAttribute(THIEF_NODE_ATTR, rmt.id());
+
+        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
+            new ArrayList<>(getSpiContext().nodes()));
+
+        assert other != null;
+        assert other != rmt;
+
+        assert getSpiContext().nodes().contains(other);
+
+        checkAttributes(failed.getJobContext(), rmt, 1);
+    }
+
+    /**
+     * @throws Exception If test failed.
+     */
+    public void testThiefEqualsVictim() throws Exception {
+        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
+
+        GridTestJobResult failed = new GridTestJobResult(rmt);
+
+        failed.getJobContext().setAttribute(THIEF_NODE_ATTR, rmt.id());
+
+        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
+            new ArrayList<>(getSpiContext().nodes()));
+
+        assert other != null;
+        assert other != rmt;
+
+        assert other.equals(getSpiContext().localNode());
+
+        checkAttributes(failed.getJobContext(), rmt, 1);
+    }
+
+    /**
+     * @throws Exception If test failed.
+     */
+    public void testThiefIdNotSet() throws Exception {
+        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
+
+        GridTestJobResult failed = new GridTestJobResult(rmt);
+
+        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
+            new ArrayList<>(getSpiContext().nodes()));
+
+        assert other != null;
+        assert other != rmt;
+
+        assert other.equals(getSpiContext().localNode());
+
+        checkAttributes(failed.getJobContext(), rmt, 1);
+    }
+
+    /**
+     * @param ctx Failed job context.
+     * @param failed Failed node.
+     * @param failCnt Failover count.
+     */
+    @SuppressWarnings("unchecked")
+    private void checkAttributes(ComputeJobContext ctx, ClusterNode failed, int failCnt) {
+        assert (Integer)ctx.getAttribute(FAILOVER_ATTEMPT_COUNT_ATTR) == failCnt;
+
+        if (failed != null) {
+            Collection<UUID> failedSet = (Collection<UUID>)ctx.getAttribute(FAILED_NODE_LIST_ATTR);
+
+            assert failedSet.contains(failed.id());
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java
new file mode 100644
index 0000000..d8e12dc
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java
@@ -0,0 +1,46 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.jobstealing;
+
+import org.gridgain.grid.kernal.*;
+import org.gridgain.grid.spi.*;
+import org.apache.ignite.spi.collision.jobstealing.*;
+import org.apache.ignite.spi.failover.*;
+import org.gridgain.testframework.*;
+import org.gridgain.testframework.junits.spi.*;
+import java.util.*;
+
+/**
+ * Job stealing failover SPI start-stop test.
+ */
+@GridSpiTest(spi = JobStealingFailoverSpi.class, group = "Failover SPI")
+public class GridJobStealingFailoverSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<FailoverSpi> {
+    /** {@inheritDoc} */
+    @Override protected GridSpiTestContext initSpiContext() throws Exception {
+        GridSpiTestContext ctx = super.initSpiContext();
+
+        GridTestNode locNode = new GridTestNode(UUID.randomUUID());
+
+        addSpiDependency(locNode);
+
+        ctx.setLocalNode(locNode);
+
+        return ctx;
+    }
+
+    /**
+     * Adds Failover SPI attribute.
+     *
+     * @param node Node to add attribute to.
+     */
+    private void addSpiDependency(GridTestNode node) {
+        node.addAttribute(GridNodeAttributes.ATTR_SPI_CLASS, JobStealingCollisionSpi.class.getName());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/package.html b/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/package.html
new file mode 100644
index 0000000..5cad80a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/jobstealing/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal tests or test related classes and interfaces.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/never/GridNeverFailoverSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/never/GridNeverFailoverSpiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/failover/never/GridNeverFailoverSpiSelfTest.java
new file mode 100644
index 0000000..c5ab621
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/never/GridNeverFailoverSpiSelfTest.java
@@ -0,0 +1,37 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.never;
+
+import org.apache.ignite.cluster.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.failover.*;
+import org.gridgain.testframework.*;
+import org.gridgain.testframework.junits.spi.*;
+import java.util.*;
+
+/**
+ * Never failover SPI test.
+ */
+@GridSpiTest(spi = NeverFailoverSpi.class, group = "Failover SPI")
+public class GridNeverFailoverSpiSelfTest extends GridSpiAbstractTest<NeverFailoverSpi> {
+    /**
+     * @throws Exception If failed.
+     */
+    public void testAlwaysNull() throws Exception {
+        List<ClusterNode> nodes = new ArrayList<>();
+
+        ClusterNode node = new GridTestNode(UUID.randomUUID());
+
+        nodes.add(node);
+
+        assert getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), new GridTestJobResult(node)),
+            nodes) == null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java
new file mode 100644
index 0000000..87cd0d0
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java
@@ -0,0 +1,22 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.never;
+
+import org.gridgain.grid.spi.*;
+import org.apache.ignite.spi.failover.*;
+import org.gridgain.testframework.junits.spi.*;
+
+/**
+ * Never-failover SPI start-stop test.
+ */
+@GridSpiTest(spi = NeverFailoverSpi.class, group = "Failover SPI")
+public class GridNeverFailoverSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<FailoverSpi> {
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/never/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/never/package.html b/modules/core/src/test/java/org/apache/ignite/spi/failover/never/package.html
new file mode 100644
index 0000000..5cad80a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/never/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal tests or test related classes and interfaces.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/apache/ignite/spi/failover/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/failover/package.html b/modules/core/src/test/java/org/apache/ignite/spi/failover/package.html
new file mode 100644
index 0000000..5cad80a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/failover/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal tests or test related classes and interfaces.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/GridAlwaysFailoverSpiFailSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAlwaysFailoverSpiFailSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAlwaysFailoverSpiFailSelfTest.java
index 9167dac..6854d72 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAlwaysFailoverSpiFailSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAlwaysFailoverSpiFailSelfTest.java
@@ -14,8 +14,8 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.spi.failover.always.*;
+import org.apache.ignite.spi.failover.*;
+import org.apache.ignite.spi.failover.always.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverCustomTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverCustomTopologySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverCustomTopologySelfTest.java
index 1535a8c..a70907b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverCustomTopologySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverCustomTopologySelfTest.java
@@ -15,8 +15,8 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.spi.failover.always.*;
+import org.apache.ignite.spi.failover.*;
+import org.apache.ignite.spi.failover.always.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverSelfTest.java
index e800413..9a5c38f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverSelfTest.java
@@ -15,7 +15,7 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.always.*;
+import org.apache.ignite.spi.failover.always.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTaskWithPredicateSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTaskWithPredicateSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTaskWithPredicateSelfTest.java
index 284d38b..4658fa1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTaskWithPredicateSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTaskWithPredicateSelfTest.java
@@ -8,8 +8,8 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.spi.failover.always.*;
+import org.apache.ignite.spi.failover.*;
+import org.apache.ignite.spi.failover.always.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTopologySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTopologySelfTest.java
index b92bc2f..e04990e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTopologySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTopologySelfTest.java
@@ -15,8 +15,8 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.spi.failover.always.*;
+import org.apache.ignite.spi.failover.*;
+import org.apache.ignite.spi.failover.always.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingSelfTest.java
index 463e14a..89ec9d7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingSelfTest.java
@@ -18,7 +18,7 @@ import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.collision.jobstealing.*;
-import org.gridgain.grid.spi.failover.jobstealing.*;
+import org.apache.ignite.spi.failover.jobstealing.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.config.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingZeroActiveJobsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingZeroActiveJobsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingZeroActiveJobsSelfTest.java
index 4855ae4..11f4f04 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingZeroActiveJobsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingZeroActiveJobsSelfTest.java
@@ -16,7 +16,7 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.collision.jobstealing.*;
-import org.gridgain.grid.spi.failover.jobstealing.*;
+import org.apache.ignite.spi.failover.jobstealing.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleSpisSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleSpisSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleSpisSelfTest.java
index 6a999ec..33b1086 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleSpisSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleSpisSelfTest.java
@@ -17,8 +17,8 @@ import org.apache.ignite.resources.*;
 import org.apache.ignite.spi.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.checkpoint.sharedfs.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.spi.failover.always.*;
+import org.apache.ignite.spi.failover.*;
+import org.apache.ignite.spi.failover.always.*;
 import org.gridgain.grid.spi.loadbalancing.roundrobin.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultithreadedJobStealingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultithreadedJobStealingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultithreadedJobStealingSelfTest.java
index a5da434..aa11dce 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultithreadedJobStealingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultithreadedJobStealingSelfTest.java
@@ -16,7 +16,7 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.collision.jobstealing.*;
-import org.gridgain.grid.spi.failover.jobstealing.*;
+import org.apache.ignite.spi.failover.jobstealing.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/GridSpiExceptionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridSpiExceptionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridSpiExceptionSelfTest.java
index de78b44..ca2905a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridSpiExceptionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridSpiExceptionSelfTest.java
@@ -16,7 +16,7 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.spi.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.deployment.*;
-import org.gridgain.grid.spi.eventstorage.*;
+import org.apache.ignite.spi.eventstorage.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/GridStopWithWaitSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridStopWithWaitSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridStopWithWaitSelfTest.java
index 5ca4f9d..5fac96b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridStopWithWaitSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridStopWithWaitSelfTest.java
@@ -15,7 +15,7 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.always.*;
+import org.apache.ignite.spi.failover.always.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java
index 053056b..1776054 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java
@@ -32,9 +32,9 @@ import org.apache.ignite.spi.deployment.*;
 import org.apache.ignite.spi.deployment.local.*;
 import org.apache.ignite.spi.discovery.*;
 import org.apache.ignite.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.eventstorage.*;
-import org.gridgain.grid.spi.eventstorage.memory.*;
-import org.gridgain.grid.spi.failover.always.*;
+import org.apache.ignite.spi.eventstorage.*;
+import org.apache.ignite.spi.eventstorage.memory.*;
+import org.apache.ignite.spi.failover.always.*;
 import org.gridgain.grid.spi.loadbalancing.roundrobin.*;
 import org.gridgain.grid.spi.swapspace.*;
 import org.gridgain.grid.spi.swapspace.file.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
index 52465fd..be6065b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
@@ -20,8 +20,8 @@ import org.gridgain.grid.cache.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.spi.failover.always.*;
+import org.apache.ignite.spi.failover.*;
+import org.apache.ignite.spi.failover.always.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
index 14e38cf..56b19e8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
@@ -13,8 +13,8 @@ import org.gridgain.grid.cache.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.spi.failover.always.*;
+import org.apache.ignite.spi.failover.*;
+import org.apache.ignite.spi.failover.always.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
index f03aa0c..2e87587 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
@@ -16,7 +16,7 @@ import org.gridgain.grid.cache.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.grid.spi.eventstorage.memory.*;
+import org.apache.ignite.spi.eventstorage.memory.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
index bd32dd4..5628d11 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
@@ -19,7 +19,7 @@ import org.gridgain.grid.cache.affinity.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.grid.spi.eventstorage.memory.*;
+import org.apache.ignite.spi.eventstorage.memory.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/p2p/GridAbstractMultinodeRedeployTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridAbstractMultinodeRedeployTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridAbstractMultinodeRedeployTest.java
index 0eb7b79..69bdef7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridAbstractMultinodeRedeployTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridAbstractMultinodeRedeployTest.java
@@ -13,7 +13,7 @@ import org.apache.ignite.*;
 import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.never.*;
+import org.apache.ignite.spi.failover.never.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.config.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobFailoverSelfTest.java
index f61b906..d558bec 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobFailoverSelfTest.java
@@ -15,7 +15,7 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.always.*;
+import org.apache.ignite.spi.failover.always.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java
deleted file mode 100644
index 5ab8dfd..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.eventstorage.memory;
-
-import org.apache.ignite.events.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.testframework.*;
-import org.gridgain.testframework.junits.spi.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-/**
- * Memory event storage load test.
- */
-@GridSpiTest(spi = MemoryEventStorageSpi.class, group = "EventStorage SPI")
-public class GridMemoryEventStorageMultiThreadedSelfTest extends GridSpiAbstractTest<MemoryEventStorageSpi> {
-    /**
-     * @throws Exception If test failed
-     */
-    public void testMultiThreaded() throws Exception {
-        GridTestUtils.runMultiThreaded(new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                for (int i = 0; i < 100000; i++)
-                    getSpi().record(new IgniteDiscoveryEvent(null, "Test event", 1, null));
-
-                return null;
-            }
-        }, 10, "event-thread");
-
-        Collection<IgniteEvent> evts = getSpi().localEvents(F.<IgniteEvent>alwaysTrue());
-
-        info("Events count in memory: " + evts.size());
-
-        assert evts.size() <= 10000 : "Incorrect number of events: " + evts.size();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java
deleted file mode 100644
index dd4ffb2..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.eventstorage.memory;
-
-import org.gridgain.testframework.junits.spi.*;
-
-/**
- * Memory event storage SPI config test.
- */
-@GridSpiTest(spi = MemoryEventStorageSpi.class, group = "Event Storage SPI")
-public class GridMemoryEventStorageSpiConfigSelfTest extends GridSpiAbstractConfigTest<MemoryEventStorageSpi> {
-    /**
-     * @throws Exception If failed.
-     */
-    public void testNegativeConfig() throws Exception {
-        checkNegativeSpiProperty(new MemoryEventStorageSpi(), "expireCount", 0);
-        checkNegativeSpiProperty(new MemoryEventStorageSpi(), "expireAgeMs", 0);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java
deleted file mode 100644
index 97b5833..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.eventstorage.memory;
-
-import org.apache.ignite.events.*;
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.testframework.junits.spi.*;
-
-import java.util.*;
-
-import static org.apache.ignite.events.IgniteEventType.*;
-
-/**
- * Tests for {@link MemoryEventStorageSpi}.
- */
-@GridSpiTest(spi = MemoryEventStorageSpi.class, group = "Event Storage SPI")
-public class GridMemoryEventStorageSpiSelfTest extends GridSpiAbstractTest<MemoryEventStorageSpi> {
-    /** */
-    private static final int EXPIRE_CNT = 100;
-
-    /**
-     * @return Maximum events queue size.
-     */
-    @GridSpiTestConfig
-    public long getExpireCount() {
-        return EXPIRE_CNT;
-    }
-
-    /**
-     * @return Events expiration time.
-     */
-    @GridSpiTestConfig
-    public long getExpireAgeMs() {
-        return 1000;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testMemoryEventStorage() throws Exception {
-        MemoryEventStorageSpi spi = getSpi();
-
-        IgnitePredicate<IgniteEvent> filter = F.alwaysTrue();
-
-        // Get all events.
-        Collection<IgniteEvent> evts = spi.localEvents(filter);
-
-        // Check.
-        assert evts != null : "Events can't be null.";
-        assert evts.isEmpty() : "Invalid events count.";
-
-        // Store.
-        spi.record(createEvent());
-
-        // Get all events.
-        evts = spi.localEvents(filter);
-
-        // Check stored events.
-        assert evts != null : "Events can't be null.";
-        assert evts.size() == 1 : "Invalid events count.";
-
-        // Sleep a bit more than expire age configuration property.
-        Thread.sleep(getExpireAgeMs() * 2);
-
-        // Get all events.
-        evts = spi.localEvents(filter);
-
-        // Check expired by age.
-        assert evts != null : "Events can't be null.";
-        assert evts.isEmpty() : "Invalid events count.";
-
-        // Clear.
-        spi.clearAll();
-
-        // Get all events.
-        evts = spi.localEvents(filter);
-
-        // Check events cleared.
-        assert evts != null : "Events can't be null.";
-        assert evts.isEmpty() : "Invalid events count.";
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    @SuppressWarnings({"NullableProblems"})
-    public void testFilter() throws Exception {
-        MemoryEventStorageSpi spi = getSpi();
-
-        try {
-            spi.clearAll();
-
-            spi.setFilter(F.<IgniteEvent>alwaysFalse());
-
-            // This event should not record.
-            spi.record(createEvent());
-
-            spi.setFilter(null);
-
-            spi.record(createEvent());
-
-            // Get all events.
-            Collection<IgniteEvent> evts = spi.localEvents(F.<IgniteEvent>alwaysTrue());
-
-            assert evts != null : "Events can't be null.";
-            assert evts.size() == 1 : "Invalid events count: " + evts.size();
-        }
-        finally {
-            if (spi != null)
-                spi.clearAll();
-        }
-    }
-
-    /**
-     * @return Discovery event.
-     * @throws Exception If error occurred.
-     */
-    private IgniteEvent createEvent() throws Exception {
-        return new IgniteDiscoveryEvent(null, "Test Event", EVT_NODE_METRICS_UPDATED, null);
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java
deleted file mode 100644
index 5f5d05d..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.eventstorage.memory;
-
-import org.gridgain.grid.spi.*;
-import org.gridgain.testframework.junits.spi.*;
-
-/**
- * Memory event storage SPI start-stop test.
- */
-@GridSpiTest(spi = MemoryEventStorageSpi.class, group = "Event Storage SPI")
-public class GridMemoryEventStorageSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<MemoryEventStorageSpi> {
-    // No-op.
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/package.html b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal tests or test related classes and interfaces.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/GridFailoverTestContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/GridFailoverTestContext.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/GridFailoverTestContext.java
deleted file mode 100644
index d89a7e8..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/GridFailoverTestContext.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.compute.*;
-import org.gridgain.grid.*;
-
-import java.util.*;
-
-/**
- * Failover test context.
- */
-public class GridFailoverTestContext implements FailoverContext {
-    /** */
-    private static final Random RAND = new Random();
-
-    /** Grid task session. */
-    private final ComputeTaskSession taskSes;
-
-    /** Failed job result. */
-    private final ComputeJobResult jobRes;
-
-    /** */
-    public GridFailoverTestContext() {
-        taskSes = null;
-        jobRes = null;
-    }
-
-    /**
-     * Initializes failover context.
-     *
-     * @param taskSes Grid task session.
-     * @param jobRes Failed job result.
-     */
-    public GridFailoverTestContext(ComputeTaskSession taskSes, ComputeJobResult jobRes) {
-        this.taskSes = taskSes;
-        this.jobRes = jobRes;
-    }
-
-    /** {@inheritDoc} */
-    @Override public ComputeTaskSession getTaskSession() {
-        return taskSes;
-    }
-
-    /** {@inheritDoc} */
-    @Override public ComputeJobResult getJobResult() {
-        return jobRes;
-    }
-
-    /** {@inheritDoc} */
-    @Override public ClusterNode getBalancedNode(List<ClusterNode> grid) throws GridException {
-        return grid.get(RAND.nextInt(grid.size()));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java
deleted file mode 100644
index 79d5946..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.always;
-
-import org.gridgain.testframework.junits.spi.*;
-
-/**
- * Always-failover SPI config test.
- */
-@GridSpiTest(spi = AlwaysFailoverSpi.class, group = "Collision SPI")
-public class GridAlwaysFailoverSpiConfigSelfTest extends GridSpiAbstractConfigTest<AlwaysFailoverSpi> {
-    /**
-     * @throws Exception If failed.
-     */
-    public void testNegativeConfig() throws Exception {
-        checkNegativeSpiProperty(new AlwaysFailoverSpi(), "maximumFailoverAttempts", -1);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java
deleted file mode 100644
index f8df7b2..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.always;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.compute.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.testframework.*;
-import org.gridgain.testframework.junits.spi.*;
-
-import java.util.*;
-
-import static org.gridgain.grid.spi.failover.always.AlwaysFailoverSpi.*;
-
-/**
- * Always-failover SPI test.
- */
-@GridSpiTest(spi = AlwaysFailoverSpi.class, group = "Failover SPI")
-public class GridAlwaysFailoverSpiSelfTest extends GridSpiAbstractTest<AlwaysFailoverSpi> {
-    /**
-     * @throws Exception If failed.
-     */
-    public void testSingleNode() throws Exception {
-        AlwaysFailoverSpi spi = getSpi();
-
-        List<ClusterNode> nodes = new ArrayList<>();
-
-        ClusterNode node = new GridTestNode(UUID.randomUUID());
-
-        nodes.add(node);
-
-        node = spi.failover(new GridFailoverTestContext(new GridTestTaskSession(), new GridTestJobResult(node)), nodes);
-
-        assert node == null;
-    }
-
-    /**
-     * @throws Exception If test failed.
-     */
-    @SuppressWarnings("unchecked")
-    public void testTwoNodes() throws Exception {
-        AlwaysFailoverSpi spi = getSpi();
-
-        List<ClusterNode> nodes = new ArrayList<>();
-
-        nodes.add(new GridTestNode(UUID.randomUUID()));
-        nodes.add(new GridTestNode(UUID.randomUUID()));
-
-        ComputeJobResult jobRes = new GridTestJobResult(nodes.get(0));
-
-        ClusterNode node = spi.failover(new GridFailoverTestContext(new GridTestTaskSession(), jobRes), nodes);
-
-        assert node != null;
-        assert node.equals(nodes.get(1));
-
-        checkFailedNodes(jobRes, 1);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testMaxAttempts() throws Exception {
-        AlwaysFailoverSpi spi = getSpi();
-
-        spi.setMaximumFailoverAttempts(1);
-
-        List<ClusterNode> nodes = new ArrayList<>();
-
-        nodes.add(new GridTestNode(UUID.randomUUID()));
-        nodes.add(new GridTestNode(UUID.randomUUID()));
-
-        ComputeJobResult jobRes = new GridTestJobResult(nodes.get(0));
-
-        // First attempt.
-        ClusterNode node = spi.failover(new GridFailoverTestContext(new GridTestTaskSession(), jobRes), nodes);
-
-        assert node != null;
-        assert node.equals(nodes.get(1));
-
-        checkFailedNodes(jobRes, 1);
-
-        // Second attempt (exceeds default max attempts of 1).
-        node = spi.failover(new GridFailoverTestContext(new GridTestTaskSession(), jobRes), nodes);
-
-        assert node == null;
-
-        checkFailedNodes(jobRes, 1);
-    }
-
-    /**
-     * @param res Job result.
-     * @param cnt Failure count.
-     */
-    @SuppressWarnings("unchecked")
-    private void checkFailedNodes(ComputeJobResult res, int cnt) {
-        Collection<UUID> failedNodes =
-            (Collection<UUID>)res.getJobContext().getAttribute(FAILED_NODE_LIST_ATTR);
-
-        assert failedNodes != null;
-        assert failedNodes.size() == cnt;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java
deleted file mode 100644
index b675067..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.always;
-
-import org.gridgain.grid.spi.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.testframework.junits.spi.*;
-
-/**
- * Always-failover SPI start-stop test.
- */
-@GridSpiTest(spi = AlwaysFailoverSpi.class, group = "Failover SPI")
-public class GridAlwaysFailoverSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<FailoverSpi> {
-    // No-op.
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/package.html b/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal tests or test related classes and interfaces.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java
deleted file mode 100644
index 9935dde..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.jobstealing;
-
-import org.gridgain.testframework.junits.spi.*;
-
-/**
- * Job stealing failover SPI config test.
- */
-@GridSpiTest(spi = JobStealingFailoverSpi.class, group = "Collision SPI")
-public class GridJobStealingFailoverSpiConfigSelfTest extends GridSpiAbstractConfigTest<JobStealingFailoverSpi> {
-    /**
-     * @throws Exception If failed.
-     */
-    public void testNegativeConfig() throws Exception {
-        checkNegativeSpiProperty(new JobStealingFailoverSpi(), "maximumFailoverAttempts", -1);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java
deleted file mode 100644
index 347a00d..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.jobstealing;
-
-import org.apache.ignite.cluster.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.kernal.*;
-import org.apache.ignite.spi.collision.jobstealing.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.testframework.*;
-import org.gridgain.testframework.junits.spi.*;
-
-import java.util.*;
-
-/**
- * Job stealing failover SPI test for one node.
- */
-@GridSpiTest(spi = JobStealingFailoverSpi.class, group = "Failover SPI")
-public class GridJobStealingFailoverSpiOneNodeSelfTest extends GridSpiAbstractTest<JobStealingFailoverSpi> {
-    /** {@inheritDoc} */
-    @Override protected GridSpiTestContext initSpiContext() throws Exception {
-        GridSpiTestContext ctx = super.initSpiContext();
-
-        ctx.setLocalNode(addSpiDependency(new GridTestNode(UUID.randomUUID())));
-
-        ctx.addNode(addSpiDependency(new GridTestNode(UUID.randomUUID())));
-
-        return ctx;
-    }
-
-    /**
-     * Adds Collision SPI attribute.
-     *
-     * @param node Node to add attribute to.
-     * @return Passed in node.
-     * @throws Exception If failed.
-     */
-    private ClusterNode addSpiDependency(GridTestNode node) throws Exception {
-        node.addAttribute(
-            U.spiAttribute(getSpi(), GridNodeAttributes.ATTR_SPI_CLASS),
-            JobStealingCollisionSpi.class.getName());
-
-        node.addAttribute(
-            U.spiAttribute(getSpi(), GridNodeAttributes.ATTR_SPI_CLASS),
-            JobStealingCollisionSpi.class.getName());
-
-        return node;
-    }
-
-    /**
-     * @throws Exception If test failed.
-     */
-    public void testFailover() throws Exception {
-        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
-
-        GridTestJobResult failed = new GridTestJobResult(rmt);
-
-        failed.getJobContext().setAttribute(JobStealingCollisionSpi.THIEF_NODE_ATTR,
-            getSpiContext().localNode().id());
-
-        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
-            Collections.singletonList(getSpiContext().remoteNodes().iterator().next()));
-
-        assert other == rmt : "Invalid failed-over node: " + other;
-    }
-
-    /**
-     * @throws Exception If test failed.
-     */
-    public void testNoFailover() throws Exception {
-        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
-
-        GridTestJobResult failed = new GridTestJobResult(rmt);
-
-        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
-            Collections.singletonList(getSpiContext().remoteNodes().iterator().next()));
-
-        assert other == null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java
deleted file mode 100644
index e2c1b4f..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.jobstealing;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.compute.*;
-import org.gridgain.grid.*;
-import org.apache.ignite.spi.collision.jobstealing.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.testframework.*;
-import org.gridgain.testframework.junits.spi.*;
-
-import java.util.*;
-
-import static org.gridgain.grid.kernal.GridNodeAttributes.*;
-import static org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi.*;
-import static org.gridgain.grid.spi.failover.jobstealing.JobStealingFailoverSpi.*;
-
-/**
- * Self test for {@link JobStealingFailoverSpi} SPI.
- */
-@GridSpiTest(spi = JobStealingFailoverSpi.class, group = "Failover SPI")
-public class GridJobStealingFailoverSpiSelfTest extends GridSpiAbstractTest<JobStealingFailoverSpi> {
-    /** {@inheritDoc} */
-    @Override protected GridSpiTestContext initSpiContext() throws Exception {
-        GridSpiTestContext ctx = super.initSpiContext();
-
-        GridTestNode loc = new GridTestNode(UUID.randomUUID());
-
-        addSpiDependency(loc);
-
-        ctx.setLocalNode(loc);
-
-        GridTestNode rmt = new GridTestNode(UUID.randomUUID());
-
-        ctx.addNode(rmt);
-
-        addSpiDependency(rmt);
-
-        return ctx;
-    }
-
-    /**
-     * Adds Collision SPI attribute.
-     *
-     * @param node Node to add attribute to.
-     * @throws Exception If failed.
-     */
-    private void addSpiDependency(GridTestNode node) throws Exception {
-        node.addAttribute(ATTR_SPI_CLASS, JobStealingCollisionSpi.class.getName());
-
-        node.setAttribute(U.spiAttribute(getSpi(), ATTR_SPI_CLASS), getSpi().getClass().getName());
-    }
-
-    /**
-     * @throws Exception If test failed.
-     */
-    public void testFailover() throws Exception {
-        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
-
-        GridTestJobResult failed = new GridTestJobResult(rmt);
-
-        failed.getJobContext().setAttribute(THIEF_NODE_ATTR,
-            getSpiContext().localNode().id());
-
-        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
-            new ArrayList<>(getSpiContext().nodes()));
-
-        assert other == getSpiContext().localNode();
-
-        // This is not a failover but stealing.
-        checkAttributes(failed.getJobContext(), null, 0);
-    }
-
-    /**
-     * @throws Exception If test failed.
-     */
-    public void testMaxHopsExceeded() throws Exception {
-        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
-
-        GridTestJobResult failed = new GridTestJobResult(rmt);
-
-        failed.getJobContext().setAttribute(THIEF_NODE_ATTR,
-            getSpiContext().localNode().id());
-        failed.getJobContext().setAttribute(FAILOVER_ATTEMPT_COUNT_ATTR,
-            getSpi().getMaximumFailoverAttempts());
-
-        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
-            new ArrayList<>(getSpiContext().nodes()));
-
-        assert other == null;
-    }
-
-    /**
-     * @throws Exception If test failed.
-     */
-    public void testMaxHopsExceededThiefNotSet() throws Exception {
-        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
-
-        GridTestJobResult failed = new GridTestJobResult(rmt);
-
-        failed.getJobContext().setAttribute(FAILOVER_ATTEMPT_COUNT_ATTR,
-            getSpi().getMaximumFailoverAttempts());
-
-        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
-            new ArrayList<>(getSpiContext().nodes()));
-
-        assert other == null;
-    }
-
-    /**
-     * @throws Exception If test failed.
-     */
-    public void testNonZeroFailoverCount() throws Exception {
-        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
-
-        GridTestJobResult failed = new GridTestJobResult(rmt);
-
-        failed.getJobContext().setAttribute(FAILOVER_ATTEMPT_COUNT_ATTR,
-            getSpi().getMaximumFailoverAttempts() - 1);
-
-        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
-            new ArrayList<>(getSpiContext().nodes()));
-
-        assert other != null;
-        assert other != rmt;
-
-        assert other == getSpiContext().localNode();
-
-        checkAttributes(failed.getJobContext(), rmt, getSpi().getMaximumFailoverAttempts());
-    }
-
-    /**
-     * @throws Exception If test failed.
-     */
-    public void testThiefNotInTopology() throws Exception {
-        ClusterNode rmt = new GridTestNode(UUID.randomUUID());
-
-        GridTestJobResult failed = new GridTestJobResult(rmt);
-
-        failed.getJobContext().setAttribute(THIEF_NODE_ATTR, rmt.id());
-
-        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
-            new ArrayList<>(getSpiContext().nodes()));
-
-        assert other != null;
-        assert other != rmt;
-
-        assert getSpiContext().nodes().contains(other);
-
-        checkAttributes(failed.getJobContext(), rmt, 1);
-    }
-
-    /**
-     * @throws Exception If test failed.
-     */
-    public void testThiefEqualsVictim() throws Exception {
-        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
-
-        GridTestJobResult failed = new GridTestJobResult(rmt);
-
-        failed.getJobContext().setAttribute(THIEF_NODE_ATTR, rmt.id());
-
-        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
-            new ArrayList<>(getSpiContext().nodes()));
-
-        assert other != null;
-        assert other != rmt;
-
-        assert other.equals(getSpiContext().localNode());
-
-        checkAttributes(failed.getJobContext(), rmt, 1);
-    }
-
-    /**
-     * @throws Exception If test failed.
-     */
-    public void testThiefIdNotSet() throws Exception {
-        ClusterNode rmt = getSpiContext().remoteNodes().iterator().next();
-
-        GridTestJobResult failed = new GridTestJobResult(rmt);
-
-        ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed),
-            new ArrayList<>(getSpiContext().nodes()));
-
-        assert other != null;
-        assert other != rmt;
-
-        assert other.equals(getSpiContext().localNode());
-
-        checkAttributes(failed.getJobContext(), rmt, 1);
-    }
-
-    /**
-     * @param ctx Failed job context.
-     * @param failed Failed node.
-     * @param failCnt Failover count.
-     */
-    @SuppressWarnings("unchecked")
-    private void checkAttributes(ComputeJobContext ctx, ClusterNode failed, int failCnt) {
-        assert (Integer)ctx.getAttribute(FAILOVER_ATTEMPT_COUNT_ATTR) == failCnt;
-
-        if (failed != null) {
-            Collection<UUID> failedSet = (Collection<UUID>)ctx.getAttribute(FAILED_NODE_LIST_ATTR);
-
-            assert failedSet.contains(failed.id());
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java
deleted file mode 100644
index 871fbb7..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.jobstealing;
-
-import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.*;
-import org.apache.ignite.spi.collision.jobstealing.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.testframework.*;
-import org.gridgain.testframework.junits.spi.*;
-import java.util.*;
-
-/**
- * Job stealing failover SPI start-stop test.
- */
-@GridSpiTest(spi = JobStealingFailoverSpi.class, group = "Failover SPI")
-public class GridJobStealingFailoverSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<FailoverSpi> {
-    /** {@inheritDoc} */
-    @Override protected GridSpiTestContext initSpiContext() throws Exception {
-        GridSpiTestContext ctx = super.initSpiContext();
-
-        GridTestNode locNode = new GridTestNode(UUID.randomUUID());
-
-        addSpiDependency(locNode);
-
-        ctx.setLocalNode(locNode);
-
-        return ctx;
-    }
-
-    /**
-     * Adds Failover SPI attribute.
-     *
-     * @param node Node to add attribute to.
-     */
-    private void addSpiDependency(GridTestNode node) {
-        node.addAttribute(GridNodeAttributes.ATTR_SPI_CLASS, JobStealingCollisionSpi.class.getName());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/package.html b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal tests or test related classes and interfaces.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiSelfTest.java
deleted file mode 100644
index 089d25e..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiSelfTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.never;
-
-import org.apache.ignite.cluster.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.testframework.*;
-import org.gridgain.testframework.junits.spi.*;
-import java.util.*;
-
-/**
- * Never failover SPI test.
- */
-@GridSpiTest(spi = NeverFailoverSpi.class, group = "Failover SPI")
-public class GridNeverFailoverSpiSelfTest extends GridSpiAbstractTest<NeverFailoverSpi> {
-    /**
-     * @throws Exception If failed.
-     */
-    public void testAlwaysNull() throws Exception {
-        List<ClusterNode> nodes = new ArrayList<>();
-
-        ClusterNode node = new GridTestNode(UUID.randomUUID());
-
-        nodes.add(node);
-
-        assert getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), new GridTestJobResult(node)),
-            nodes) == null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java
deleted file mode 100644
index f7063d8..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.never;
-
-import org.gridgain.grid.spi.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.testframework.junits.spi.*;
-
-/**
- * Never-failover SPI start-stop test.
- */
-@GridSpiTest(spi = NeverFailoverSpi.class, group = "Failover SPI")
-public class GridNeverFailoverSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<FailoverSpi> {
-    // No-op.
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/package.html b/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal tests or test related classes and interfaces.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/grid/spi/failover/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/package.html b/modules/core/src/test/java/org/gridgain/grid/spi/failover/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal tests or test related classes and interfaces.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java
index 630f959..8340e9c 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java
@@ -16,7 +16,7 @@ import org.gridgain.grid.loadtest.*;
 import org.apache.ignite.spi.collision.jobstealing.*;
 import org.apache.ignite.spi.discovery.*;
 import org.apache.ignite.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.failover.jobstealing.*;
+import org.apache.ignite.spi.failover.jobstealing.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.config.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/testsuites/GridSpiEventStorageSelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testsuites/GridSpiEventStorageSelfTestSuite.java b/modules/core/src/test/java/org/gridgain/testsuites/GridSpiEventStorageSelfTestSuite.java
index 38add54..9b09a6a 100644
--- a/modules/core/src/test/java/org/gridgain/testsuites/GridSpiEventStorageSelfTestSuite.java
+++ b/modules/core/src/test/java/org/gridgain/testsuites/GridSpiEventStorageSelfTestSuite.java
@@ -10,7 +10,7 @@
 package org.gridgain.testsuites;
 
 import junit.framework.*;
-import org.gridgain.grid.spi.eventstorage.memory.*;
+import org.apache.ignite.spi.eventstorage.memory.*;
 
 /**
  * Event storage test suite.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/test/java/org/gridgain/testsuites/GridSpiFailoverSelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testsuites/GridSpiFailoverSelfTestSuite.java b/modules/core/src/test/java/org/gridgain/testsuites/GridSpiFailoverSelfTestSuite.java
index 4c6a13f..2193839 100644
--- a/modules/core/src/test/java/org/gridgain/testsuites/GridSpiFailoverSelfTestSuite.java
+++ b/modules/core/src/test/java/org/gridgain/testsuites/GridSpiFailoverSelfTestSuite.java
@@ -10,9 +10,9 @@
 package org.gridgain.testsuites;
 
 import junit.framework.*;
-import org.gridgain.grid.spi.failover.always.*;
-import org.gridgain.grid.spi.failover.jobstealing.*;
-import org.gridgain.grid.spi.failover.never.*;
+import org.apache.ignite.spi.failover.always.*;
+import org.apache.ignite.spi.failover.jobstealing.*;
+import org.apache.ignite.spi.failover.never.*;
 
 /**
  * Failover SPI self-test suite.


[38/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
new file mode 100644
index 0000000..955a305
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiDataExchange.java
@@ -0,0 +1,36 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import java.util.*;
+
+/**
+ * Handler for initial data exchange between GridGain nodes. Data exchange
+ * is initiated by a new node when it tries to join topology and finishes
+ * before it actually joins.
+ */
+public interface DiscoverySpiDataExchange {
+    /**
+     * Collects data from all components. This method is called both
+     * on new node that joins topology to transfer its data to existing
+     * nodes and on all existing nodes to transfer their data to new node.
+     *
+     * @param nodeId ID of new node that joins topology.
+     * @return Collection of discovery data objects from different components.
+     */
+    public List<Object> collect(UUID nodeId);
+
+    /**
+     * Notifies discovery manager about data received from remote node.
+     *
+     * @param data Collection of discovery data objects from different components.
+     */
+    public void onExchange(List<Object> data);
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiHistorySupport.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiHistorySupport.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiHistorySupport.java
new file mode 100644
index 0000000..cd6ecf9
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiHistorySupport.java
@@ -0,0 +1,28 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import java.lang.annotation.*;
+
+/**
+ * This annotation is for all implementations of {@link DiscoverySpi} that support
+ * topology snapshots history.
+ */
+@Documented
+@Inherited
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE})
+public @interface DiscoverySpiHistorySupport {
+    /**
+     * Whether or not target SPI supports topology snapshots history.
+     */
+    @SuppressWarnings({"JavaDoc"})
+    public boolean value();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiListener.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiListener.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiListener.java
new file mode 100644
index 0000000..acc0ee1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiListener.java
@@ -0,0 +1,35 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import org.apache.ignite.cluster.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Listener for grid node discovery events. See
+ * {@link DiscoverySpi} for information on how grid nodes get discovered.
+ */
+public interface DiscoverySpiListener {
+    /**
+     * Notification for grid node discovery events.
+     *
+     * @param type Node discovery event type. See {@link org.apache.ignite.events.IgniteDiscoveryEvent}
+     * @param topVer Topology version or {@code 0} if configured discovery SPI implementation
+     *      does not support versioning.
+     * @param node Node affected (e.g. newly joined node, left node, failed node or local node).
+     * @param topSnapshot Topology snapshot after event has been occurred (e.g. if event is
+     *      {@code EVT_NODE_JOINED}, then joined node will be in snapshot).
+     * @param topHist Topology snapshots history.
+     */
+    public void onDiscovery(int type, long topVer, ClusterNode node, Collection<ClusterNode> topSnapshot,
+        @Nullable Map<Long, Collection<ClusterNode>> topHist);
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiNodeAuthenticator.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiNodeAuthenticator.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiNodeAuthenticator.java
new file mode 100644
index 0000000..dd9fc3a
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiNodeAuthenticator.java
@@ -0,0 +1,39 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import org.apache.ignite.cluster.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.kernal.managers.security.*;
+import org.gridgain.grid.security.*;
+
+/**
+ * Node authenticator.
+ */
+public interface DiscoverySpiNodeAuthenticator {
+    /**
+     * Security credentials.
+     *
+     * @param node Node to authenticate.
+     * @param cred Security credentials.
+     * @return Security context if authentication succeeded or {@code null} if authentication failed.
+     * @throws GridException If authentication process failed
+     *      (invalid credentials should not lead to this exception).
+     */
+    public GridSecurityContext authenticateNode(ClusterNode node, GridSecurityCredentials cred) throws GridException;
+
+    /**
+     * Gets global node authentication flag.
+     *
+     * @return {@code True} if all nodes in topology should authenticate joining node, {@code false} if only
+     *      coordinator should do the authentication.
+     */
+    public boolean isGlobalNodeAuthentication();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiOrderSupport.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiOrderSupport.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiOrderSupport.java
new file mode 100644
index 0000000..aee8b3f
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiOrderSupport.java
@@ -0,0 +1,39 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import java.lang.annotation.*;
+
+/**
+ * This annotation is for all implementations of {@link DiscoverySpi} that support
+ * proper node ordering. This includes:
+ * <ul>
+ * <li>
+ * Every node gets an order number assigned to it which is provided via {@link org.apache.ignite.cluster.ClusterNode#order()}
+ * method. There is no requirement about order value other than that nodes that join grid
+ * at later point of time have order values greater than previous nodes.
+ * </li>
+ * <li>
+ * All {@link org.apache.ignite.events.IgniteEventType#EVT_NODE_JOINED} events come in proper order. This means that all
+ * listeners to discovery events will receive discovery notifications in proper order.
+ * </li>
+ * </ul>
+ */
+@Documented
+@Inherited
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE})
+public @interface DiscoverySpiOrderSupport {
+    /**
+     * Whether or not target SPI supports node startup order.
+     */
+    @SuppressWarnings({"JavaDoc"})
+    public boolean value();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/package.html b/modules/core/src/main/java/org/apache/ignite/spi/discovery/package.html
new file mode 100644
index 0000000..77f45f1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains APIs for topology manager SPI.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
new file mode 100644
index 0000000..b474852
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -0,0 +1,1219 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.events.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.internal.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.*;
+import org.apache.ignite.spi.discovery.tcp.messages.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jdk8.backport.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+import java.util.concurrent.*;
+
+import static java.util.concurrent.TimeUnit.*;
+import static org.apache.ignite.events.IgniteEventType.*;
+import static org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHeartbeatMessage.*;
+
+/**
+ * Client discovery SPI implementation that uses TCP/IP for node discovery.
+ * <p>
+ * This discovery SPI requires at least on server node configured with
+ * {@link TcpDiscoverySpi}. It will try to connect to random IP taken from
+ * {@link org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} which should point to one of these server
+ * nodes and will maintain connection only with this node (will not enter the ring).
+ * If this connection is broken, it will try to reconnect using addresses from
+ * the same IP finder.
+ */
+@SuppressWarnings("NonPrivateFieldAccessedInSynchronizedContext")
+@IgniteSpiMultipleInstancesSupport(true)
+@DiscoverySpiOrderSupport(true)
+@DiscoverySpiHistorySupport(true)
+public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpClientDiscoverySpiMBean {
+    /** Default disconnect check interval. */
+    public static final long DFLT_DISCONNECT_CHECK_INT = 2000;
+
+    /** Remote nodes. */
+    private final ConcurrentMap<UUID, TcpDiscoveryNode> rmtNodes = new ConcurrentHashMap8<>();
+
+    /** Socket. */
+    private volatile Socket sock;
+
+    /** Socket reader. */
+    private volatile SocketReader sockRdr;
+
+    /** Heartbeat sender. */
+    private volatile HeartbeatSender hbSender;
+
+    /** Disconnect handler. */
+    private volatile DisconnectHandler disconnectHnd;
+
+    /** Last message ID. */
+    private volatile IgniteUuid lastMsgId;
+
+    /** Current topology version. */
+    private volatile long topVer;
+
+    /** Join error. */
+    private IgniteSpiException joinErr;
+
+    /** Whether reconnect failed. */
+    private boolean reconFailed;
+
+    /** Joined latch. */
+    private CountDownLatch joinLatch;
+
+    /** Left latch. */
+    private volatile CountDownLatch leaveLatch;
+
+    /** Disconnect check interval. */
+    private long disconnectCheckInt = DFLT_DISCONNECT_CHECK_INT;
+
+    /** {@inheritDoc} */
+    @Override public long getDisconnectCheckInterval() {
+        return disconnectCheckInt;
+    }
+
+    /**
+     * Sets disconnect check interval.
+     *
+     * @param disconnectCheckInt Disconnect check interval.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setDisconnectCheckInterval(long disconnectCheckInt) {
+        this.disconnectCheckInt = disconnectCheckInt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getSocketTimeout() {
+        return sockTimeout;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getAckTimeout() {
+        return ackTimeout;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNetworkTimeout() {
+        return netTimeout;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getThreadPriority() {
+        return threadPri;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getHeartbeatFrequency() {
+        return hbFreq;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String getIpFinderFormatted() {
+        return ipFinder.toString();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getMessageWorkerQueueSize() {
+        SocketReader sockRdr0 = sockRdr;
+
+        return sockRdr0 != null ? sockRdr0.msgWrk.queueSize() : 0;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNodesJoined() {
+        return stats.joinedNodesCount();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNodesLeft() {
+        return stats.leftNodesCount();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNodesFailed() {
+        return stats.failedNodesCount();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getAvgMessageProcessingTime() {
+        return stats.avgMessageProcessingTime();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getMaxMessageProcessingTime() {
+        return stats.maxMessageProcessingTime();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalReceivedMessages() {
+        return stats.totalReceivedMessages();
+    }
+
+    /** {@inheritDoc} */
+    @Override public Map<String, Integer> getReceivedMessages() {
+        return stats.receivedMessages();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalProcessedMessages() {
+        return stats.totalProcessedMessages();
+    }
+
+    /** {@inheritDoc} */
+    @Override public Map<String, Integer> getProcessedMessages() {
+        return stats.processedMessages();
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(@Nullable String gridName) throws IgniteSpiException {
+        startStopwatch();
+
+        assertParameter(ipFinder != null, "ipFinder != null");
+        assertParameter(netTimeout > 0, "networkTimeout > 0");
+        assertParameter(sockTimeout > 0, "sockTimeout > 0");
+        assertParameter(ackTimeout > 0, "ackTimeout > 0");
+        assertParameter(hbFreq > 0, "heartbeatFreq > 0");
+        assertParameter(threadPri > 0, "threadPri > 0");
+
+        try {
+            locHost = U.resolveLocalHost(locAddr);
+        }
+        catch (IOException e) {
+            throw new IgniteSpiException("Unknown local address: " + locAddr, e);
+        }
+
+        if (log.isDebugEnabled()) {
+            log.debug(configInfo("localHost", locHost.getHostAddress()));
+            log.debug(configInfo("threadPri", threadPri));
+            log.debug(configInfo("networkTimeout", netTimeout));
+            log.debug(configInfo("sockTimeout", sockTimeout));
+            log.debug(configInfo("ackTimeout", ackTimeout));
+            log.debug(configInfo("ipFinder", ipFinder));
+            log.debug(configInfo("heartbeatFreq", hbFreq));
+        }
+
+        // Warn on odd network timeout.
+        if (netTimeout < 3000)
+            U.warn(log, "Network timeout is too low (at least 3000 ms recommended): " + netTimeout);
+
+        // Warn on odd heartbeat frequency.
+        if (hbFreq < 2000)
+            U.warn(log, "Heartbeat frequency is too high (at least 2000 ms recommended): " + hbFreq);
+
+        registerMBean(gridName, this, TcpClientDiscoverySpiMBean.class);
+
+        try {
+            locHost = U.resolveLocalHost(locAddr);
+        }
+        catch (IOException e) {
+            throw new IgniteSpiException("Unknown local address: " + locAddr, e);
+        }
+
+        if (ipFinder instanceof TcpDiscoveryMulticastIpFinder) {
+            TcpDiscoveryMulticastIpFinder mcastIpFinder = ((TcpDiscoveryMulticastIpFinder)ipFinder);
+
+            if (mcastIpFinder.getLocalAddress() == null)
+                mcastIpFinder.setLocalAddress(locAddr);
+        }
+
+        IgniteBiTuple<Collection<String>, Collection<String>> addrs;
+
+        try {
+            addrs = U.resolveLocalAddresses(locHost);
+        }
+        catch (IOException | GridException e) {
+            throw new IgniteSpiException("Failed to resolve local host to set of external addresses: " + locHost, e);
+        }
+
+        locNode = new TcpDiscoveryNode(
+            locNodeId,
+            addrs.get1(),
+            addrs.get2(),
+            0,
+            metricsProvider,
+            locNodeVer);
+
+        locNode.setAttributes(locNodeAttrs);
+        locNode.local(true);
+
+        sockTimeoutWorker = new SocketTimeoutWorker();
+        sockTimeoutWorker.start();
+
+        joinTopology(false);
+
+        disconnectHnd = new DisconnectHandler();
+        disconnectHnd.start();
+
+        if (log.isDebugEnabled())
+            log.debug(startInfo());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        rmtNodes.clear();
+
+        U.interrupt(disconnectHnd);
+        U.join(disconnectHnd, log);
+
+        U.interrupt(hbSender);
+        U.join(hbSender, log);
+
+        Socket sock0 = sock;
+
+        sock = null;
+
+        if (sock0 != null) {
+            leaveLatch = new CountDownLatch(1);
+
+            try {
+                TcpDiscoveryNodeLeftMessage msg = new TcpDiscoveryNodeLeftMessage(locNodeId);
+
+                msg.client(true);
+
+                writeToSocket(sock0, msg);
+
+                if (!U.await(leaveLatch, netTimeout, MILLISECONDS)) {
+                    if (log.isDebugEnabled())
+                        log.debug("Did not receive node left message for local node (will stop anyway) [sock=" +
+                            sock0 + ']');
+                }
+            }
+            catch (IOException | GridException e) {
+                if (log.isDebugEnabled())
+                    U.error(log, "Failed to send node left message (will stop anyway) [sock=" + sock0 + ']', e);
+            }
+            finally {
+                U.closeQuiet(sock0);
+            }
+        }
+
+        U.interrupt(sockRdr);
+        U.join(sockRdr, log);
+
+        U.interrupt(sockTimeoutWorker);
+        U.join(sockTimeoutWorker, log);
+
+        unregisterMBean();
+
+        if (log.isDebugEnabled())
+            log.debug(stopInfo());
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<Object> injectables() {
+        return Arrays.<Object>asList(ipFinder);
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<ClusterNode> getRemoteNodes() {
+        return F.view(U.<TcpDiscoveryNode, ClusterNode>arrayList(rmtNodes.values(), new P1<TcpDiscoveryNode>() {
+            @Override public boolean apply(TcpDiscoveryNode node) {
+                return node.visible();
+            }
+        }));
+    }
+
+    /** {@inheritDoc} */
+    @Nullable @Override public ClusterNode getNode(UUID nodeId) {
+        if (locNodeId.equals(nodeId))
+            return locNode;
+
+        TcpDiscoveryNode node = rmtNodes.get(nodeId);
+
+        return node != null && node.visible() ? node : null;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean pingNode(UUID nodeId) {
+        assert nodeId != null;
+
+        if (nodeId.equals(locNodeId))
+            return true;
+
+        TcpDiscoveryNode node = rmtNodes.get(nodeId);
+
+        return node != null && node.visible();
+    }
+
+    /** {@inheritDoc} */
+    @Override public void disconnect() throws IgniteSpiException {
+        throw new UnsupportedOperationException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public void setAuthenticator(DiscoverySpiNodeAuthenticator auth) {
+        // No-op.
+    }
+
+    /**
+     * @param recon Reconnect flag.
+     * @return Whether joined successfully.
+     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+     */
+    private boolean joinTopology(boolean recon) throws IgniteSpiException {
+        if (!recon)
+            stats.onJoinStarted();
+
+        Collection<InetSocketAddress> addrs = null;
+
+        while (!Thread.currentThread().isInterrupted()) {
+            try {
+                while (addrs == null || addrs.isEmpty()) {
+                    addrs = resolvedAddresses();
+
+                    if (!F.isEmpty(addrs)) {
+                        if (log.isDebugEnabled())
+                            log.debug("Resolved addresses from IP finder: " + addrs);
+                    }
+                    else {
+                        U.warn(log, "No addresses registered in the IP finder (will retry in 2000ms): " + ipFinder);
+
+                        U.sleep(2000);
+                    }
+                }
+
+                Iterator<InetSocketAddress> it = addrs.iterator();
+
+                while (it.hasNext() && !Thread.currentThread().isInterrupted()) {
+                    InetSocketAddress addr = it.next();
+
+                    Socket sock = null;
+
+                    try {
+                        long ts = U.currentTimeMillis();
+
+                        IgniteBiTuple<Socket, UUID> t = initConnection(addr);
+
+                        sock = t.get1();
+
+                        UUID rmtNodeId = t.get2();
+
+                        stats.onClientSocketInitialized(U.currentTimeMillis() - ts);
+
+                        locNode.clientRouterNodeId(rmtNodeId);
+
+                        TcpDiscoveryAbstractMessage msg = recon ?
+                            new TcpDiscoveryClientReconnectMessage(locNodeId, rmtNodeId, lastMsgId) :
+                            new TcpDiscoveryJoinRequestMessage(locNode, null);
+
+                        msg.client(true);
+
+                        writeToSocket(sock, msg);
+
+                        int res = readReceipt(sock, ackTimeout);
+
+                        switch (res) {
+                            case RES_OK:
+                                this.sock = sock;
+
+                                sockRdr = new SocketReader(rmtNodeId, new MessageWorker(recon));
+                                sockRdr.start();
+
+                                if (U.await(joinLatch, netTimeout, MILLISECONDS)) {
+                                    IgniteSpiException joinErr0 = joinErr;
+
+                                    if (joinErr0 != null)
+                                        throw joinErr0;
+
+                                    if (reconFailed) {
+                                        if (log.isDebugEnabled())
+                                            log.debug("Failed to reconnect, will try to rejoin [locNode=" +
+                                                locNode + ']');
+
+                                        U.closeQuiet(sock);
+
+                                        U.interrupt(sockRdr);
+                                        U.join(sockRdr, log);
+
+                                        this.sock = null;
+
+                                        return false;
+                                    }
+
+                                    if (log.isDebugEnabled())
+                                        log.debug("Successfully connected to topology [sock=" + sock + ']');
+
+                                    hbSender = new HeartbeatSender();
+                                    hbSender.start();
+
+                                    stats.onJoinFinished();
+
+                                    return true;
+                                }
+                                else {
+                                    U.warn(log, "Join process timed out (will try other address) [sock=" + sock +
+                                        ", timeout=" + netTimeout + ']');
+
+                                    U.closeQuiet(sock);
+
+                                    U.interrupt(sockRdr);
+                                    U.join(sockRdr, log);
+
+                                    it.remove();
+
+                                    break;
+                                }
+
+                            case RES_CONTINUE_JOIN:
+                            case RES_WAIT:
+                                U.closeQuiet(sock);
+
+                                break;
+
+                            default:
+                                if (log.isDebugEnabled())
+                                    log.debug("Received unexpected response to join request: " + res);
+
+                                U.closeQuiet(sock);
+                        }
+                    }
+                    catch (GridInterruptedException ignored) {
+                        if (log.isDebugEnabled())
+                            log.debug("Joining thread was interrupted.");
+
+                        return false;
+                    }
+                    catch (IOException | GridException e) {
+                        if (log.isDebugEnabled())
+                            U.error(log, "Failed to establish connection with address: " + addr, e);
+
+                        U.closeQuiet(sock);
+
+                        it.remove();
+                    }
+                }
+
+                if (addrs.isEmpty()) {
+                    U.warn(log, "Failed to connect to any address from IP finder (will retry to join topology " +
+                        "in 2000ms): " + addrs);
+
+                    U.sleep(2000);
+                }
+            }
+            catch (GridInterruptedException ignored) {
+                if (log.isDebugEnabled())
+                    log.debug("Joining thread was interrupted.");
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * @param addr Address.
+     * @return Remote node ID.
+     * @throws IOException In case of I/O error.
+     * @throws GridException In case of other error.
+     */
+    private IgniteBiTuple<Socket, UUID> initConnection(InetSocketAddress addr) throws IOException, GridException {
+        assert addr != null;
+
+        joinLatch = new CountDownLatch(1);
+
+        Socket sock = openSocket(addr);
+
+        TcpDiscoveryHandshakeRequest req = new TcpDiscoveryHandshakeRequest(locNodeId);
+
+        req.client(true);
+
+        writeToSocket(sock, req);
+
+        TcpDiscoveryHandshakeResponse res = readMessage(sock, null, ackTimeout);
+
+        UUID nodeId = res.creatorNodeId();
+
+        assert nodeId != null;
+        assert !locNodeId.equals(nodeId);
+
+        return F.t(sock, nodeId);
+    }
+
+    /**
+     * FOR TEST PURPOSE ONLY!
+     */
+    void simulateNodeFailure() {
+        U.warn(log, "Simulating client node failure: " + locNodeId);
+
+        U.closeQuiet(sock);
+
+        U.interrupt(disconnectHnd);
+        U.join(disconnectHnd, log);
+
+        U.interrupt(hbSender);
+        U.join(hbSender, log);
+
+        U.interrupt(sockRdr);
+        U.join(sockRdr, log);
+
+        U.interrupt(sockTimeoutWorker);
+        U.join(sockTimeoutWorker, log);
+    }
+
+    /**
+     * Disconnect handler.
+     */
+    private class DisconnectHandler extends IgniteSpiThread {
+        /**
+         */
+        protected DisconnectHandler() {
+            super(gridName, "tcp-client-disco-disconnect-hnd", log);
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void body() throws InterruptedException {
+            while (!isInterrupted()) {
+                try {
+                    U.sleep(disconnectCheckInt);
+
+                    if (sock == null) {
+                        if (log.isDebugEnabled())
+                            log.debug("Node is disconnected from topology, will try to reconnect.");
+
+                        U.interrupt(hbSender);
+                        U.join(hbSender, log);
+
+                        U.interrupt(sockRdr);
+                        U.join(sockRdr, log);
+
+                        // If reconnection fails, try to rejoin.
+                        if (!joinTopology(true)) {
+                            rmtNodes.clear();
+
+                            locNode.order(0);
+
+                            joinTopology(false);
+
+                            getSpiContext().recordEvent(new IgniteDiscoveryEvent(locNode,
+                                "Client node reconnected: " + locNode,
+                                EVT_CLIENT_NODE_RECONNECTED, locNode));
+                        }
+                    }
+                }
+                catch (GridInterruptedException ignored) {
+                    if (log.isDebugEnabled())
+                        log.debug("Disconnect handler was interrupted.");
+
+                    return;
+                }
+                catch (IgniteSpiException e) {
+                    U.error(log, "Failed to reconnect to topology after failure.", e);
+                }
+            }
+        }
+    }
+
+    /**
+     * Heartbeat sender.
+     */
+    private class HeartbeatSender extends IgniteSpiThread {
+        /**
+         */
+        protected HeartbeatSender() {
+            super(gridName, "tcp-client-disco-heartbeat-sender", log);
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void body() throws InterruptedException {
+            Socket sock0 = sock;
+
+            if (sock0 == null) {
+                if (log.isDebugEnabled())
+                    log.debug("Failed to start heartbeat sender, node is already disconnected.");
+
+                return;
+            }
+
+            try {
+                while (!isInterrupted()) {
+                    U.sleep(hbFreq);
+
+                    TcpDiscoveryHeartbeatMessage msg = new TcpDiscoveryHeartbeatMessage(locNodeId);
+
+                    msg.client(true);
+
+                    sockRdr.addMessage(msg);
+                }
+            }
+            catch (GridInterruptedException ignored) {
+                if (log.isDebugEnabled())
+                    log.debug("Heartbeat sender was interrupted.");
+            }
+        }
+    }
+
+    /**
+     * Socket reader.
+     */
+    private class SocketReader extends IgniteSpiThread {
+        /** Remote node ID. */
+        private final UUID nodeId;
+
+        /** Message worker. */
+        private final MessageWorker msgWrk;
+
+        /**
+         * @param nodeId Node ID.
+         * @param msgWrk Message worker.
+         */
+        protected SocketReader(UUID nodeId, MessageWorker msgWrk) {
+            super(gridName, "tcp-client-disco-sock-reader", log);
+
+            assert nodeId != null;
+            assert msgWrk != null;
+
+            this.nodeId = nodeId;
+            this.msgWrk = msgWrk;
+        }
+
+        /** {@inheritDoc} */
+        @Override public synchronized void start() {
+            super.start();
+
+            msgWrk.start();
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void body() throws InterruptedException {
+            Socket sock0 = sock;
+
+            if (sock0 == null) {
+                if (log.isDebugEnabled())
+                    log.debug("Failed to start socket reader, node is already disconnected.");
+
+                return;
+            }
+
+            try {
+                InputStream in = new BufferedInputStream(sock0.getInputStream());
+
+                sock0.setKeepAlive(true);
+                sock0.setTcpNoDelay(true);
+
+                while (!isInterrupted()) {
+                    try {
+                        TcpDiscoveryAbstractMessage msg = marsh.unmarshal(in, U.gridClassLoader());
+
+                        msg.senderNodeId(nodeId);
+
+                        if (log.isDebugEnabled())
+                            log.debug("Message has been received: " + msg);
+
+                        stats.onMessageReceived(msg);
+
+                        IgniteSpiException err = null;
+
+                        if (joinLatch.getCount() > 0) {
+                            if (msg instanceof TcpDiscoveryDuplicateIdMessage)
+                                err = duplicateIdError((TcpDiscoveryDuplicateIdMessage)msg);
+                            else if (msg instanceof TcpDiscoveryAuthFailedMessage)
+                                err = authenticationFailedError((TcpDiscoveryAuthFailedMessage)msg);
+                            else if (msg instanceof TcpDiscoveryCheckFailedMessage)
+                                err = checkFailedError((TcpDiscoveryCheckFailedMessage)msg);
+
+                            if (err != null) {
+                                joinErr = err;
+
+                                joinLatch.countDown();
+
+                                return;
+                            }
+                        }
+
+                        msgWrk.addMessage(msg);
+                    }
+                    catch (GridException e) {
+                        if (log.isDebugEnabled())
+                            U.error(log, "Failed to read message [sock=" + sock0 + ", locNodeId=" + locNodeId +
+                                ", rmtNodeId=" + nodeId + ']', e);
+
+                        IOException ioEx = X.cause(e, IOException.class);
+
+                        if (ioEx != null)
+                            throw ioEx;
+
+                        ClassNotFoundException clsNotFoundEx = X.cause(e, ClassNotFoundException.class);
+
+                        if (clsNotFoundEx != null)
+                            LT.warn(log, null, "Failed to read message due to ClassNotFoundException " +
+                                "(make sure same versions of all classes are available on all nodes) " +
+                                "[rmtNodeId=" + nodeId + ", err=" + clsNotFoundEx.getMessage() + ']');
+                        else
+                            LT.error(log, e, "Failed to read message [sock=" + sock0 + ", locNodeId=" + locNodeId +
+                                ", rmtNodeId=" + nodeId + ']');
+                    }
+                }
+            }
+            catch (IOException e) {
+                if (log.isDebugEnabled())
+                    U.error(log, "Connection failed [sock=" + sock0 + ", locNodeId=" + locNodeId +
+                        ", rmtNodeId=" + nodeId + ']', e);
+            }
+            finally {
+                U.closeQuiet(sock0);
+
+                U.interrupt(msgWrk);
+
+                try {
+                    U.join(msgWrk);
+                }
+                catch (GridInterruptedException ignored) {
+                    // No-op.
+                }
+
+                sock = null;
+            }
+        }
+
+        /**
+         * @param msg Message.
+         */
+        void addMessage(TcpDiscoveryAbstractMessage msg) {
+            assert msg != null;
+
+            msgWrk.addMessage(msg);
+        }
+    }
+
+    /**
+     * Message worker.
+     */
+    private class MessageWorker extends MessageWorkerAdapter {
+        /** Topology history. */
+        private final NavigableMap<Long, Collection<ClusterNode>> topHist = new TreeMap<>();
+
+        /** Indicates that reconnection is in progress. */
+        private boolean recon;
+
+        /** Indicates that pending messages are currently processed. */
+        private boolean pending;
+
+        /**
+         * @param recon Whether reconnection is in progress.
+         */
+        protected MessageWorker(boolean recon) {
+            super("tcp-client-disco-msg-worker");
+
+            this.recon = recon;
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void processMessage(TcpDiscoveryAbstractMessage msg) {
+            assert msg != null;
+            assert msg.verified() || msg.senderNodeId() == null;
+
+            stats.onMessageProcessingStarted(msg);
+
+            if (msg instanceof TcpDiscoveryClientReconnectMessage)
+                processClientReconnectMessage((TcpDiscoveryClientReconnectMessage)msg);
+            else {
+                if (recon && !pending) {
+                    if (log.isDebugEnabled())
+                        log.debug("Discarding message received during reconnection: " + msg);
+                }
+                else {
+                    if (msg instanceof TcpDiscoveryNodeAddedMessage)
+                        processNodeAddedMessage((TcpDiscoveryNodeAddedMessage)msg);
+                    else if (msg instanceof TcpDiscoveryNodeAddFinishedMessage)
+                        processNodeAddFinishedMessage((TcpDiscoveryNodeAddFinishedMessage)msg);
+                    else if (msg instanceof TcpDiscoveryNodeLeftMessage)
+                        processNodeLeftMessage((TcpDiscoveryNodeLeftMessage)msg);
+                    else if (msg instanceof TcpDiscoveryNodeFailedMessage)
+                        processNodeFailedMessage((TcpDiscoveryNodeFailedMessage)msg);
+                    else if (msg instanceof TcpDiscoveryHeartbeatMessage)
+                        processHeartbeatMessage((TcpDiscoveryHeartbeatMessage)msg);
+
+                    if (ensured(msg))
+                        lastMsgId = msg.id();
+                }
+            }
+
+            stats.onMessageProcessingFinished(msg);
+        }
+
+        /**
+         * @param msg Message.
+         */
+        private void processNodeAddedMessage(TcpDiscoveryNodeAddedMessage msg) {
+            if (leaveLatch != null)
+                return;
+
+            TcpDiscoveryNode node = msg.node();
+
+            UUID newNodeId = node.id();
+
+            if (locNodeId.equals(newNodeId)) {
+                if (joinLatch.getCount() > 0) {
+                    Collection<TcpDiscoveryNode> top = msg.topology();
+
+                    if (top != null) {
+                        for (TcpDiscoveryNode n : top) {
+                            if (n.order() > 0)
+                                n.visible(true);
+
+                            rmtNodes.put(n.id(), n);
+                        }
+
+                        topHist.clear();
+
+                        if (msg.topologyHistory() != null)
+                            topHist.putAll(msg.topologyHistory());
+
+                        Collection<List<Object>> dataList = msg.oldNodesDiscoveryData();
+
+                        if (dataList != null) {
+                            for (List<Object> discoData : dataList)
+                                exchange.onExchange(discoData);
+                        }
+
+                        locNode.setAttributes(node.attributes());
+                        locNode.visible(true);
+                    }
+                    else if (log.isDebugEnabled())
+                        log.debug("Discarding node added message with empty topology: " + msg);
+                }
+                else if (log.isDebugEnabled())
+                    log.debug("Discarding node added message (this message has already been processed) " +
+                        "[msg=" + msg + ", locNode=" + locNode + ']');
+            }
+            else {
+                boolean topChanged = rmtNodes.putIfAbsent(newNodeId, node) == null;
+
+                if (topChanged) {
+                    if (log.isDebugEnabled())
+                        log.debug("Added new node to topology: " + node);
+
+                    List<Object> data = msg.newNodeDiscoveryData();
+
+                    if (data != null)
+                        exchange.onExchange(data);
+                }
+            }
+        }
+
+        /**
+         * @param msg Message.
+         */
+        private void processNodeAddFinishedMessage(TcpDiscoveryNodeAddFinishedMessage msg) {
+            if (leaveLatch != null)
+                return;
+
+            if (locNodeId.equals(msg.nodeId())) {
+                if (joinLatch.getCount() > 0) {
+                    long topVer = msg.topologyVersion();
+
+                    locNode.order(topVer);
+
+                    notifyDiscovery(EVT_NODE_JOINED, topVer, locNode, updateTopologyHistory(topVer));
+
+                    joinErr = null;
+
+                    joinLatch.countDown();
+                }
+                else if (log.isDebugEnabled())
+                    log.debug("Discarding node add finished message (this message has already been processed) " +
+                        "[msg=" + msg + ", locNode=" + locNode + ']');
+            }
+            else {
+                TcpDiscoveryNode node = rmtNodes.get(msg.nodeId());
+
+                if (node == null) {
+                    if (log.isDebugEnabled())
+                        log.debug("Discarding node add finished message since node is not found [msg=" + msg + ']');
+
+                    return;
+                }
+
+                long topVer = msg.topologyVersion();
+
+                node.order(topVer);
+                node.visible(true);
+
+                if (locNodeVer.equals(node.version()))
+                    node.version(locNodeVer);
+
+                Collection<ClusterNode> top = updateTopologyHistory(topVer);
+
+                if (!pending && joinLatch.getCount() > 0) {
+                    if (log.isDebugEnabled())
+                        log.debug("Discarding node add finished message (join process is not finished): " + msg);
+
+                    return;
+                }
+
+                notifyDiscovery(EVT_NODE_JOINED, topVer, node, top);
+
+                stats.onNodeJoined();
+            }
+        }
+
+        /**
+         * @param msg Message.
+         */
+        private void processNodeLeftMessage(TcpDiscoveryNodeLeftMessage msg) {
+            if (locNodeId.equals(msg.creatorNodeId())) {
+                if (log.isDebugEnabled())
+                    log.debug("Received node left message for local node: " + msg);
+
+                CountDownLatch leaveLatch0 = leaveLatch;
+
+                assert leaveLatch0 != null;
+
+                leaveLatch0.countDown();
+            }
+            else {
+                if (leaveLatch != null)
+                    return;
+
+                TcpDiscoveryNode node = rmtNodes.remove(msg.creatorNodeId());
+
+                if (node == null) {
+                    if (log.isDebugEnabled())
+                        log.debug("Discarding node left message since node is not found [msg=" + msg + ']');
+
+                    return;
+                }
+
+                Collection<ClusterNode> top = updateTopologyHistory(msg.topologyVersion());
+
+                if (!pending && joinLatch.getCount() > 0) {
+                    if (log.isDebugEnabled())
+                        log.debug("Discarding node left message (join process is not finished): " + msg);
+
+                    return;
+                }
+
+                notifyDiscovery(EVT_NODE_LEFT, msg.topologyVersion(), node, top);
+
+                stats.onNodeLeft();
+            }
+        }
+
+        /**
+         * @param msg Message.
+         */
+        private void processNodeFailedMessage(TcpDiscoveryNodeFailedMessage msg) {
+            if (leaveLatch != null)
+                return;
+
+            if (!locNodeId.equals(msg.creatorNodeId())) {
+                TcpDiscoveryNode node = rmtNodes.remove(msg.failedNodeId());
+
+                if (node == null) {
+                    if (log.isDebugEnabled())
+                        log.debug("Discarding node failed message since node is not found [msg=" + msg + ']');
+
+                    return;
+                }
+
+                Collection<ClusterNode> top = updateTopologyHistory(msg.topologyVersion());
+
+                if (!pending && joinLatch.getCount() > 0) {
+                    if (log.isDebugEnabled())
+                        log.debug("Discarding node failed message (join process is not finished): " + msg);
+
+                    return;
+                }
+
+                notifyDiscovery(EVT_NODE_FAILED, msg.topologyVersion(), node, top);
+
+                stats.onNodeFailed();
+            }
+        }
+
+        /**
+         * @param msg Message.
+         */
+        private void processHeartbeatMessage(TcpDiscoveryHeartbeatMessage msg) {
+            if (leaveLatch != null)
+                return;
+
+            if (locNodeId.equals(msg.creatorNodeId())) {
+                if (msg.senderNodeId() == null) {
+                    Socket sock0 = sock;
+
+                    if (sock0 != null) {
+                        msg.setMetrics(locNodeId, metricsProvider.getMetrics());
+
+                        try {
+                            writeToSocket(sock0, msg);
+
+                            if (log.isDebugEnabled())
+                                log.debug("Heartbeat message sent [sock=" + sock0 + ", msg=" + msg + ']');
+                        }
+                        catch (IOException | GridException e) {
+                            if (log.isDebugEnabled())
+                                U.error(log, "Failed to send heartbeat message [sock=" + sock0 +
+                                    ", msg=" + msg + ']', e);
+
+                            U.closeQuiet(sock0);
+
+                            sock = null;
+
+                            interrupt();
+                        }
+                    }
+                    else if (log.isDebugEnabled())
+                        log.debug("Failed to send heartbeat message (node is disconnected): " + msg);
+                }
+                else if (log.isDebugEnabled())
+                    log.debug("Received heartbeat response: " + msg);
+            }
+            else {
+                if (msg.hasMetrics()) {
+                    long tstamp = U.currentTimeMillis();
+
+                    for (Map.Entry<UUID, MetricsSet> e : msg.metrics().entrySet()) {
+                        MetricsSet metricsSet = e.getValue();
+
+                        updateMetrics(e.getKey(), metricsSet.metrics(), tstamp);
+
+                        for (T2<UUID, ClusterNodeMetrics> t : metricsSet.clientMetrics())
+                            updateMetrics(t.get1(), t.get2(), tstamp);
+                    }
+                }
+            }
+        }
+
+        /**
+         * @param msg Message.
+         */
+        private void processClientReconnectMessage(TcpDiscoveryClientReconnectMessage msg) {
+            if (leaveLatch != null)
+                return;
+
+            if (locNodeId.equals(msg.creatorNodeId())) {
+                if (msg.success()) {
+                    pending = true;
+
+                    try {
+                        for (TcpDiscoveryAbstractMessage pendingMsg : msg.pendingMessages())
+                            processMessage(pendingMsg);
+                    }
+                    finally {
+                        pending = false;
+                    }
+
+                    joinErr = null;
+                    reconFailed = false;
+
+                    joinLatch.countDown();
+                }
+                else {
+                    joinErr = null;
+                    reconFailed = true;
+
+                    getSpiContext().recordEvent(new IgniteDiscoveryEvent(locNode,
+                        "Client node disconnected: " + locNode,
+                        EVT_CLIENT_NODE_DISCONNECTED, locNode));
+
+                    joinLatch.countDown();
+                }
+            }
+            else if (log.isDebugEnabled())
+                log.debug("Discarding reconnect message for another client: " + msg);
+        }
+
+        /**
+         * @param nodeId Node ID.
+         * @param metrics Metrics.
+         * @param tstamp Timestamp.
+         */
+        private void updateMetrics(UUID nodeId, ClusterNodeMetrics metrics, long tstamp) {
+            assert nodeId != null;
+            assert metrics != null;
+
+            TcpDiscoveryNode node = nodeId.equals(locNodeId) ? locNode : rmtNodes.get(nodeId);
+
+            if (node != null && node.visible()) {
+                node.setMetrics(metrics);
+
+                node.lastUpdateTime(tstamp);
+
+                notifyDiscovery(EVT_NODE_METRICS_UPDATED, topVer, node, allNodes());
+            }
+            else if (log.isDebugEnabled())
+                log.debug("Received metrics from unknown node: " + nodeId);
+        }
+
+        /**
+         * @param topVer New topology version.
+         * @return Latest topology snapshot.
+         */
+        private Collection<ClusterNode> updateTopologyHistory(long topVer) {
+            TcpClientDiscoverySpi.this.topVer = topVer;
+
+            Collection<ClusterNode> allNodes = allNodes();
+
+            if (!topHist.containsKey(topVer)) {
+                assert topHist.isEmpty() || topHist.lastKey() == topVer - 1 :
+                    "lastVer=" + topHist.lastKey() + ", newVer=" + topVer;
+
+                topHist.put(topVer, allNodes);
+
+                if (topHist.size() > topHistSize)
+                    topHist.pollFirstEntry();
+
+                assert topHist.lastKey() == topVer;
+                assert topHist.size() <= topHistSize;
+            }
+
+            return allNodes;
+        }
+
+        /**
+         * @return All nodes.
+         */
+        private Collection<ClusterNode> allNodes() {
+            Collection<ClusterNode> allNodes = new TreeSet<>();
+
+            for (TcpDiscoveryNode node : rmtNodes.values()) {
+                if (node.visible())
+                    allNodes.add(node);
+            }
+
+            allNodes.add(locNode);
+
+            return allNodes;
+        }
+
+        /**
+         * @param type Event type.
+         * @param topVer Topology version.
+         * @param node Node.
+         * @param top Topology snapshot.
+         */
+        private void notifyDiscovery(int type, long topVer, ClusterNode node, Collection<ClusterNode> top) {
+            DiscoverySpiListener lsnr = TcpClientDiscoverySpi.this.lsnr;
+
+            if (lsnr != null) {
+                if (log.isDebugEnabled())
+                    log.debug("Discovery notification [node=" + node + ", type=" + U.gridEventName(type) +
+                        ", topVer=" + topVer + ']');
+
+                lsnr.onDiscovery(type, topVer, node, top, new TreeMap<>(topHist));
+            }
+            else if (log.isDebugEnabled())
+                log.debug("Skipped discovery notification [node=" + node + ", type=" + U.gridEventName(type) +
+                    ", topVer=" + topVer + ']');
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java
new file mode 100644
index 0000000..95c7fb9
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java
@@ -0,0 +1,156 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.mbean.*;
+import org.apache.ignite.spi.*;
+
+import java.util.*;
+
+/**
+ * Management bean for {@link TcpClientDiscoverySpi}.
+ */
+public interface TcpClientDiscoverySpiMBean extends IgniteSpiManagementMBean {
+    /**
+     * Gets disconnect check interval.
+     *
+     * @return Disconnect check interval.
+     */
+    @IgniteMBeanDescription("Disconnect check interval.")
+    public long getDisconnectCheckInterval();
+
+    /**
+     * Gets socket timeout.
+     *
+     * @return Socket timeout.
+     */
+    @IgniteMBeanDescription("Socket timeout.")
+    public long getSocketTimeout();
+
+    /**
+     * Gets message acknowledgement timeout.
+     *
+     * @return Message acknowledgement timeout.
+     */
+    @IgniteMBeanDescription("Message acknowledgement timeout.")
+    public long getAckTimeout();
+
+    /**
+     * Gets network timeout.
+     *
+     * @return Network timeout.
+     */
+    @IgniteMBeanDescription("Network timeout.")
+    public long getNetworkTimeout();
+
+    /**
+     * Gets thread priority. All threads within SPI will be started with it.
+     *
+     * @return Thread priority.
+     */
+    @IgniteMBeanDescription("Threads priority.")
+    public int getThreadPriority();
+
+    /**
+     * Gets delay between heartbeat messages sent by coordinator.
+     *
+     * @return Time period in milliseconds.
+     */
+    @IgniteMBeanDescription("Heartbeat frequency.")
+    public long getHeartbeatFrequency();
+
+    /**
+     * Gets {@link org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} (string representation).
+     *
+     * @return IPFinder (string representation).
+     */
+    @IgniteMBeanDescription("IP Finder.")
+    public String getIpFinderFormatted();
+
+    /**
+     * Gets message worker queue current size.
+     *
+     * @return Message worker queue current size.
+     */
+    @IgniteMBeanDescription("Message worker queue current size.")
+    public int getMessageWorkerQueueSize();
+
+    /**
+     * Gets joined nodes count.
+     *
+     * @return Nodes joined count.
+     */
+    @IgniteMBeanDescription("Nodes joined count.")
+    public long getNodesJoined();
+
+    /**
+     * Gets left nodes count.
+     *
+     * @return Left nodes count.
+     */
+    @IgniteMBeanDescription("Nodes left count.")
+    public long getNodesLeft();
+
+    /**
+     * Gets failed nodes count.
+     *
+     * @return Failed nodes count.
+     */
+    @IgniteMBeanDescription("Nodes failed count.")
+    public long getNodesFailed();
+
+    /**
+     * Gets avg message processing time.
+     *
+     * @return Avg message processing time.
+     */
+    @IgniteMBeanDescription("Avg message processing time.")
+    public long getAvgMessageProcessingTime();
+
+    /**
+     * Gets max message processing time.
+     *
+     * @return Max message processing time.
+     */
+    @IgniteMBeanDescription("Max message processing time.")
+    public long getMaxMessageProcessingTime();
+
+    /**
+     * Gets total received messages count.
+     *
+     * @return Total received messages count.
+     */
+    @IgniteMBeanDescription("Total received messages count.")
+    public int getTotalReceivedMessages();
+
+    /**
+     * Gets received messages counts (grouped by type).
+     *
+     * @return Map containing message types and respective counts.
+     */
+    @IgniteMBeanDescription("Received messages by type.")
+    public Map<String, Integer> getReceivedMessages();
+
+    /**
+     * Gets total processed messages count.
+     *
+     * @return Total processed messages count.
+     */
+    @IgniteMBeanDescription("Total processed messages count.")
+    public int getTotalProcessedMessages();
+
+    /**
+     * Gets processed messages counts (grouped by type).
+     *
+     * @return Map containing message types and respective counts.
+     */
+    @IgniteMBeanDescription("Received messages by type.")
+    public Map<String, Integer> getProcessedMessages();
+}


[21/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoveryTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoveryTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoveryTest.java
deleted file mode 100644
index 62242d7..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoveryTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.events.*;
-import org.gridgain.grid.kernal.managers.eventstorage.*;
-import org.gridgain.testframework.junits.spi.*;
-
-import javax.swing.*;
-import java.io.*;
-import java.util.*;
-
-/**
- * Base discovery test class.
- * @param <T> SPI implementation class.
- */
-@SuppressWarnings({"JUnitAbstractTestClassNamingConvention"})
-public abstract class GridAbstractDiscoveryTest<T extends DiscoverySpi> extends GridSpiAbstractTest<T> {
-    /** */
-    @SuppressWarnings({"ClassExplicitlyExtendsThread"})
-    private class Pinger extends Thread {
-        /** */
-        private final Object mux = new Object();
-
-        /** */
-        @SuppressWarnings({"FieldAccessedSynchronizedAndUnsynchronized"})
-        private boolean isCanceled;
-
-        /** {@inheritDoc} */
-        @SuppressWarnings({"UnusedCatchParameter"})
-        @Override public void run() {
-            Random rnd = new Random();
-
-            while (isCanceled) {
-                try {
-                    Collection<ClusterNode> nodes = getSpi().getRemoteNodes();
-
-                    pingNode(UUID.randomUUID(), false);
-
-                    for (ClusterNode item : nodes) {
-                        pingNode(item.id(), true);
-                    }
-
-                    pingNode(UUID.randomUUID(), false);
-                }
-                catch (Exception e) {
-                    error("Can't get SPI.", e);
-                }
-
-                synchronized (mux) {
-                    if (isCanceled) {
-                        try {
-                            mux.wait(getPingFrequency() * (1 + rnd.nextInt(10)));
-                        }
-                        catch (InterruptedException e) {
-                            //No-op.
-                        }
-                    }
-                }
-            }
-        }
-
-        /**
-         * @param nodeId Node UUID.
-         * @param exists Exists flag.
-         * @throws Exception If failed.
-         */
-        private void pingNode(UUID nodeId, boolean exists) throws Exception {
-            boolean flag = getSpi().pingNode(nodeId);
-
-            info((flag != exists ? "***Error*** " : "") + "Ping " + (exists ? "exist" : "random") +
-                " node [nodeId=" + nodeId + ", pingResult=" + flag + ']');
-        }
-
-        /** {@inheritDoc} */
-        @Override public void interrupt() {
-            synchronized (mux) {
-                isCanceled = true;
-
-                mux.notifyAll();
-            }
-
-            super.interrupt();
-        }
-    }
-
-    /**
-     * @return Ping frequency.
-     */
-    public abstract long getPingFrequency();
-
-    /**
-     * @return Pinger start flag.
-     */
-    public boolean isPingerStart() {
-        return true;
-    }
-
-    /** */
-    private class DiscoveryListener implements GridLocalEventListener {
-        /** {@inheritDoc} */
-        @Override public void onEvent(IgniteEvent evt) {
-            info("Discovery event [event=" + evt + ']');
-        }
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDiscovery() throws Exception {
-        GridLocalEventListener discoLsnr = new DiscoveryListener();
-
-        getSpiContext().addLocalEventListener(discoLsnr);
-
-        Pinger pinger = null;
-
-        if (isPingerStart()) {
-            pinger = new Pinger();
-
-            pinger.start();
-        }
-
-        JOptionPane.showMessageDialog(null, "Press OK to end test.");
-
-        if (pinger != null)
-            pinger.interrupt();
-    }
-
-    /** {@inheritDoc} */
-    @Override protected Map<String, Serializable> getNodeAttributes() {
-        Map<String, Serializable> attrs = new HashMap<>(1);
-
-        attrs.put("testDiscoveryAttribute", new Date());
-
-        return attrs;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridDiscoveryMetricsHelperSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridDiscoveryMetricsHelperSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridDiscoveryMetricsHelperSelfTest.java
deleted file mode 100644
index 2829011..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridDiscoveryMetricsHelperSelfTest.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import org.apache.ignite.cluster.*;
-import org.gridgain.testframework.junits.common.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Grid discovery metrics test.
- */
-@GridCommonTest(group = "Utils")
-public class GridDiscoveryMetricsHelperSelfTest extends GridCommonAbstractTest {
-    /** */
-    private static final int METRICS_COUNT = 500;
-
-    /** */
-    public GridDiscoveryMetricsHelperSelfTest() {
-        super(false /*don't start grid*/);
-    }
-
-    /** */
-    public void testMetricsSize() {
-        byte[] data = new byte[DiscoveryMetricsHelper.METRICS_SIZE];
-
-        // Test serialization.
-        int off = DiscoveryMetricsHelper.serialize(data, 0, createMetrics());
-
-        assert off == DiscoveryMetricsHelper.METRICS_SIZE;
-
-        // Test deserialization.
-        ClusterNodeMetrics res = DiscoveryMetricsHelper.deserialize(data, 0);
-
-        assert res != null;
-    }
-
-    /** */
-    public void testSerialization() {
-        byte[] data = new byte[DiscoveryMetricsHelper.METRICS_SIZE];
-
-        ClusterNodeMetrics metrics1 = createMetrics();
-
-        // Test serialization.
-        int off = DiscoveryMetricsHelper.serialize(data, 0, metrics1);
-
-        assert off == DiscoveryMetricsHelper.METRICS_SIZE;
-
-        // Test deserialization.
-        ClusterNodeMetrics metrics2 = DiscoveryMetricsHelper.deserialize(data, 0);
-
-        assert metrics2 != null;
-
-        assert metrics1.equals(metrics2);
-    }
-
-    /**
-     * @throws IOException If I/O error occurs.
-     */
-    public void testMultipleMetricsSerialization() throws IOException {
-        Map<UUID, ClusterNodeMetrics> metrics = new HashMap<>(METRICS_COUNT);
-
-        for (int i = 0; i < METRICS_COUNT; i++)
-            metrics.put(UUID.randomUUID(), createMetrics());
-
-        ByteArrayOutputStream bos = new ByteArrayOutputStream(1024 * 1024);
-
-        ObjectOutputStream oos = new ObjectOutputStream(bos);
-
-        oos.writeObject(metrics);
-
-        oos.close();
-
-        info(">>> Size of metrics map <UUID, GridNodeMetrics> in KB [metricsCount=" + METRICS_COUNT +
-            ", size=" + bos.size() / 1024.0 + ']');
-    }
-
-    /**
-     * @return Test metrics.
-     */
-    private ClusterNodeMetrics createMetrics() {
-        DiscoveryNodeMetricsAdapter metrics = new DiscoveryNodeMetricsAdapter();
-
-        metrics.setAvailableProcessors(1);
-        metrics.setAverageActiveJobs(2);
-        metrics.setAverageCancelledJobs(3);
-        metrics.setAverageJobExecuteTime(4);
-        metrics.setAverageJobWaitTime(5);
-        metrics.setAverageRejectedJobs(6);
-        metrics.setAverageWaitingJobs(7);
-        metrics.setCurrentActiveJobs(8);
-        metrics.setCurrentCancelledJobs(9);
-        metrics.setCurrentIdleTime(10);
-        metrics.setCurrentIdleTime(11);
-        metrics.setCurrentJobExecuteTime(12);
-        metrics.setCurrentJobWaitTime(13);
-        metrics.setCurrentRejectedJobs(14);
-        metrics.setCurrentWaitingJobs(15);
-        metrics.setCurrentDaemonThreadCount(16);
-        metrics.setHeapMemoryCommitted(17);
-        metrics.setHeapMemoryInitialized(18);
-        metrics.setHeapMemoryMaximum(19);
-        metrics.setHeapMemoryUsed(20);
-        metrics.setLastUpdateTime(21);
-        metrics.setMaximumActiveJobs(22);
-        metrics.setMaximumCancelledJobs(23);
-        metrics.setMaximumJobExecuteTime(24);
-        metrics.setMaximumJobWaitTime(25);
-        metrics.setMaximumRejectedJobs(26);
-        metrics.setMaximumWaitingJobs(27);
-        metrics.setNonHeapMemoryCommitted(28);
-        metrics.setNonHeapMemoryInitialized(29);
-        metrics.setNonHeapMemoryMaximum(30);
-        metrics.setNonHeapMemoryUsed(31);
-        metrics.setMaximumThreadCount(32);
-        metrics.setStartTime(33);
-        metrics.setCurrentCpuLoad(34);
-        metrics.setCurrentThreadCount(35);
-        metrics.setTotalCancelledJobs(36);
-        metrics.setTotalExecutedJobs(37);
-        metrics.setTotalIdleTime(38);
-        metrics.setTotalRejectedJobs(39);
-        metrics.setTotalStartedThreadCount(40);
-        metrics.setUpTime(41);
-        metrics.setSentMessagesCount(42);
-        metrics.setSentBytesCount(43);
-        metrics.setReceivedMessagesCount(44);
-        metrics.setReceivedBytesCount(45);
-        metrics.setOutboundMessagesQueueSize(46);
-
-        return metrics;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/package.html b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal tests or test related classes and interfaces.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
deleted file mode 100644
index 6d696e2..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
+++ /dev/null
@@ -1,683 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.events.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.resources.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.grid.util.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.testframework.*;
-import org.gridgain.testframework.junits.common.*;
-
-import java.net.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-import static java.util.concurrent.TimeUnit.*;
-import static org.apache.ignite.events.IgniteEventType.*;
-
-/**
- * Client-based discovery tests.
- */
-public class GridTcpClientDiscoverySelfTest extends GridCommonAbstractTest {
-    /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
-
-    /** */
-    private static final AtomicInteger srvIdx = new AtomicInteger();
-
-    /** */
-    private static final AtomicInteger clientIdx = new AtomicInteger();
-
-    /** */
-    private static Collection<UUID> srvNodeIds;
-
-    /** */
-    private static Collection<UUID> clientNodeIds;
-
-    /** */
-    private static int clientsPerSrv;
-
-    /** */
-    private static CountDownLatch srvJoinedLatch;
-
-    /** */
-    private static CountDownLatch srvLeftLatch;
-
-    /** */
-    private static CountDownLatch srvFailedLatch;
-
-    /** */
-    private static CountDownLatch clientJoinedLatch;
-
-    /** */
-    private static CountDownLatch clientLeftLatch;
-
-    /** */
-    private static CountDownLatch clientFailedLatch;
-
-    /** */
-    private static CountDownLatch msgLatch;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        cfg.setLocalHost("127.0.0.1");
-
-        if (gridName.startsWith("server")) {
-            TcpDiscoverySpi disco = new TcpDiscoverySpi();
-
-            disco.setIpFinder(IP_FINDER);
-
-            cfg.setDiscoverySpi(disco);
-        }
-        else if (gridName.startsWith("client")) {
-            TcpClientDiscoverySpi disco = new TcpClientDiscoverySpi();
-
-            TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
-
-            String addr = new ArrayList<>(IP_FINDER.getRegisteredAddresses()).
-                get((clientIdx.get() - 1) / clientsPerSrv).toString();
-
-            if (addr.startsWith("/"))
-                addr = addr.substring(1);
-
-            ipFinder.setAddresses(Arrays.asList(addr));
-
-            disco.setIpFinder(ipFinder);
-
-            cfg.setDiscoverySpi(disco);
-        }
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        Collection<InetSocketAddress> addrs = IP_FINDER.getRegisteredAddresses();
-
-        if (!F.isEmpty(addrs))
-            IP_FINDER.unregisterAddresses(addrs);
-
-        srvIdx.set(0);
-        clientIdx.set(0);
-
-        srvNodeIds = new GridConcurrentHashSet<>();
-        clientNodeIds = new GridConcurrentHashSet<>();
-
-        clientsPerSrv = 2;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTest() throws Exception {
-        stopAllClients(true);
-        stopAllServers(true);
-
-        assert G.allGrids().isEmpty();
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testClientNodeJoin() throws Exception {
-        startServerNodes(3);
-        startClientNodes(3);
-
-        checkNodes(3, 3);
-
-        srvJoinedLatch = new CountDownLatch(3);
-        clientJoinedLatch = new CountDownLatch(3);
-
-        attachListeners(3, 3);
-
-        startClientNodes(1);
-
-        await(srvJoinedLatch);
-        await(clientJoinedLatch);
-
-        checkNodes(3, 4);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testClientNodeLeave() throws Exception {
-        startServerNodes(3);
-        startClientNodes(3);
-
-        checkNodes(3, 3);
-
-        srvLeftLatch = new CountDownLatch(3);
-        clientLeftLatch = new CountDownLatch(2);
-
-        attachListeners(3, 3);
-
-        stopGrid("client-2");
-
-        await(srvLeftLatch);
-        await(clientLeftLatch);
-
-        checkNodes(3, 2);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testClientNodeFail() throws Exception {
-        startServerNodes(3);
-        startClientNodes(3);
-
-        checkNodes(3, 3);
-
-        srvFailedLatch = new CountDownLatch(3);
-        clientFailedLatch = new CountDownLatch(2);
-
-        attachListeners(3, 3);
-
-        failClient(2);
-
-        await(srvFailedLatch);
-        await(clientFailedLatch);
-
-        checkNodes(3, 2);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testServerNodeJoin() throws Exception {
-        startServerNodes(3);
-        startClientNodes(3);
-
-        checkNodes(3, 3);
-
-        srvJoinedLatch = new CountDownLatch(3);
-        clientJoinedLatch = new CountDownLatch(3);
-
-        attachListeners(3, 3);
-
-        startServerNodes(1);
-
-        await(srvJoinedLatch);
-        await(clientJoinedLatch);
-
-        checkNodes(4, 3);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testServerNodeLeave() throws Exception {
-        startServerNodes(3);
-        startClientNodes(3);
-
-        checkNodes(3, 3);
-
-        srvLeftLatch = new CountDownLatch(2);
-        clientLeftLatch = new CountDownLatch(3);
-
-        attachListeners(3, 3);
-
-        stopGrid("server-2");
-
-        await(srvLeftLatch);
-        await(clientLeftLatch);
-
-        checkNodes(2, 3);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testServerNodeFail() throws Exception {
-        startServerNodes(3);
-        startClientNodes(3);
-
-        checkNodes(3, 3);
-
-        srvFailedLatch = new CountDownLatch(2);
-        clientFailedLatch = new CountDownLatch(3);
-
-        attachListeners(3, 3);
-
-        assert U.<Map>field(G.grid("server-2").configuration().getDiscoverySpi(), "clientMsgWorkers").isEmpty();
-
-        failServer(2);
-
-        await(srvFailedLatch);
-        await(clientFailedLatch);
-
-        checkNodes(2, 3);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testClientReconnect() throws Exception {
-        clientsPerSrv = 1;
-
-        startServerNodes(3);
-        startClientNodes(3);
-
-        checkNodes(3, 3);
-
-        resetClientIpFinder(2);
-
-        srvFailedLatch = new CountDownLatch(2);
-        clientFailedLatch = new CountDownLatch(3);
-
-        attachListeners(2, 3);
-
-        failServer(2);
-
-        await(srvFailedLatch);
-        await(clientFailedLatch);
-
-        checkNodes(2, 3);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testClientNodeJoinOneServer() throws Exception {
-        startServerNodes(1);
-
-        srvJoinedLatch = new CountDownLatch(1);
-
-        attachListeners(1, 0);
-
-        startClientNodes(1);
-
-        await(srvJoinedLatch);
-
-        checkNodes(1, 1);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testClientNodeLeaveOneServer() throws Exception {
-        startServerNodes(1);
-        startClientNodes(1);
-
-        checkNodes(1, 1);
-
-        srvLeftLatch = new CountDownLatch(1);
-
-        attachListeners(1, 0);
-
-        stopGrid("client-0");
-
-        await(srvLeftLatch);
-
-        checkNodes(1, 0);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testClientNodeFailOneServer() throws Exception {
-        startServerNodes(1);
-        startClientNodes(1);
-
-        checkNodes(1, 1);
-
-        srvFailedLatch = new CountDownLatch(1);
-
-        attachListeners(1, 0);
-
-        failClient(0);
-
-        await(srvFailedLatch);
-
-        checkNodes(1, 0);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testMetrics() throws Exception {
-        startServerNodes(3);
-        startClientNodes(3);
-
-        checkNodes(3, 3);
-
-        attachListeners(3, 3);
-
-        assertTrue(checkMetrics(3, 3, 0));
-
-        G.grid("client-0").compute().broadcast(F.noop());
-
-        assertTrue(GridTestUtils.waitForCondition(new PA() {
-            @Override public boolean apply() {
-                return checkMetrics(3, 3, 1);
-            }
-        }, 10000));
-
-        checkMetrics(3, 3, 1);
-
-        G.grid("server-0").compute().broadcast(F.noop());
-
-        assertTrue(GridTestUtils.waitForCondition(new PA() {
-            @Override public boolean apply() {
-                return checkMetrics(3, 3, 2);
-            }
-        }, 10000));
-    }
-
-    /**
-     * @param srvCnt Number of Number of server nodes.
-     * @param clientCnt Number of client nodes.
-     * @param execJobsCnt Expected number of executed jobs.
-     * @return Whether metrics are correct.
-     */
-    private boolean checkMetrics(int srvCnt, int clientCnt, int execJobsCnt) {
-        for (int i = 0; i < srvCnt; i++) {
-            Ignite g = G.grid("server-" + i);
-
-            for (ClusterNode n : g.cluster().nodes()) {
-                if (n.metrics().getTotalExecutedJobs() != execJobsCnt)
-                    return false;
-            }
-        }
-
-        for (int i = 0; i < clientCnt; i++) {
-            Ignite g = G.grid("client-" + i);
-
-            for (ClusterNode n : g.cluster().nodes()) {
-                if (n.metrics().getTotalExecutedJobs() != execJobsCnt)
-                    return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDataExchangeFromServer() throws Exception {
-        testDataExchange("server-0");
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    // TODO: GG-9174
-    public void _testDataExchangeFromClient() throws Exception {
-        testDataExchange("client-0");
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    private void testDataExchange(String masterName) throws Exception {
-        startServerNodes(2);
-        startClientNodes(2);
-
-        checkNodes(2, 2);
-
-        IgniteMessaging msg = grid(masterName).message();
-
-        UUID id = null;
-
-        try {
-            id = msg.remoteListen(null, new MessageListener());
-
-            msgLatch = new CountDownLatch(4);
-
-            msg.send(null, "Message 1");
-
-            await(msgLatch);
-
-            startServerNodes(1);
-            startClientNodes(1);
-
-            checkNodes(3, 3);
-
-            msgLatch = new CountDownLatch(6);
-
-            msg.send(null, "Message 2");
-
-            await(msgLatch);
-        }
-        finally {
-            if (id != null)
-                msg.stopRemoteListen(id);
-        }
-    }
-
-    /**
-     * @param idx Index.
-     * @throws Exception In case of error.
-     */
-    private void resetClientIpFinder(int idx) throws Exception {
-        TcpClientDiscoverySpi disco =
-            (TcpClientDiscoverySpi)G.grid("client-" + idx).configuration().getDiscoverySpi();
-
-        TcpDiscoveryVmIpFinder ipFinder = (TcpDiscoveryVmIpFinder)disco.getIpFinder();
-
-        String addr = IP_FINDER.getRegisteredAddresses().iterator().next().toString();
-
-        if (addr.startsWith("/"))
-            addr = addr.substring(1);
-
-        ipFinder.setAddresses(Arrays.asList(addr));
-    }
-
-    /**
-     * @param cnt Number of nodes.
-     * @throws Exception In case of error.
-     */
-    private void startServerNodes(int cnt) throws Exception {
-        for (int i = 0; i < cnt; i++) {
-            Ignite g = startGrid("server-" + srvIdx.getAndIncrement());
-
-            srvNodeIds.add(g.cluster().localNode().id());
-        }
-    }
-
-    /**
-     * @param cnt Number of nodes.
-     * @throws Exception In case of error.
-     */
-    private void startClientNodes(int cnt) throws Exception {
-        for (int i = 0; i < cnt; i++) {
-            Ignite g = startGrid("client-" + clientIdx.getAndIncrement());
-
-            clientNodeIds.add(g.cluster().localNode().id());
-        }
-    }
-
-    /**
-     * @param idx Index.
-     */
-    private void failServer(int idx) {
-        ((TcpDiscoverySpi)G.grid("server-" + idx).configuration().getDiscoverySpi()).simulateNodeFailure();
-    }
-
-    /**
-     * @param idx Index.
-     */
-    private void failClient(int idx) {
-        ((TcpClientDiscoverySpi)G.grid("client-" + idx).configuration().getDiscoverySpi()).simulateNodeFailure();
-    }
-
-    /**
-     * @param srvCnt Number of server nodes.
-     * @param clientCnt Number of client nodes.
-     */
-    private void attachListeners(int srvCnt, int clientCnt) throws Exception {
-        if (srvJoinedLatch != null) {
-            for (int i = 0; i < srvCnt; i++) {
-                G.grid("server-" + i).events().localListen(new IgnitePredicate<IgniteEvent>() {
-                    @Override public boolean apply(IgniteEvent evt) {
-                        info("Joined event fired on server: " + evt);
-
-                        srvJoinedLatch.countDown();
-
-                        return true;
-                    }
-                }, EVT_NODE_JOINED);
-            }
-        }
-
-        if (srvLeftLatch != null) {
-            for (int i = 0; i < srvCnt; i++) {
-                G.grid("server-" + i).events().localListen(new IgnitePredicate<IgniteEvent>() {
-                    @Override public boolean apply(IgniteEvent evt) {
-                        info("Left event fired on server: " + evt);
-
-                        srvLeftLatch.countDown();
-
-                        return true;
-                    }
-                }, EVT_NODE_LEFT);
-            }
-        }
-
-        if (srvFailedLatch != null) {
-            for (int i = 0; i < srvCnt; i++) {
-                G.grid("server-" + i).events().localListen(new IgnitePredicate<IgniteEvent>() {
-                    @Override public boolean apply(IgniteEvent evt) {
-                        info("Failed event fired on server: " + evt);
-
-                        srvFailedLatch.countDown();
-
-                        return true;
-                    }
-                }, EVT_NODE_FAILED);
-            }
-        }
-
-        if (clientJoinedLatch != null) {
-            for (int i = 0; i < clientCnt; i++) {
-                G.grid("client-" + i).events().localListen(new IgnitePredicate<IgniteEvent>() {
-                    @Override public boolean apply(IgniteEvent evt) {
-                        info("Joined event fired on client: " + evt);
-
-                        clientJoinedLatch.countDown();
-
-                        return true;
-                    }
-                }, EVT_NODE_JOINED);
-            }
-        }
-
-        if (clientLeftLatch != null) {
-            for (int i = 0; i < clientCnt; i++) {
-                G.grid("client-" + i).events().localListen(new IgnitePredicate<IgniteEvent>() {
-                    @Override public boolean apply(IgniteEvent evt) {
-                        info("Left event fired on client: " + evt);
-
-                        clientLeftLatch.countDown();
-
-                        return true;
-                    }
-                }, EVT_NODE_LEFT);
-            }
-        }
-
-        if (clientFailedLatch != null) {
-            for (int i = 0; i < clientCnt; i++) {
-                G.grid("client-" + i).events().localListen(new IgnitePredicate<IgniteEvent>() {
-                    @Override public boolean apply(IgniteEvent evt) {
-                        info("Failed event fired on client: " + evt);
-
-                        clientFailedLatch.countDown();
-
-                        return true;
-                    }
-                }, EVT_NODE_FAILED);
-            }
-        }
-    }
-
-    /**
-     * @param srvCnt Number of server nodes.
-     * @param clientCnt Number of client nodes.
-     */
-    private void checkNodes(int srvCnt, int clientCnt) {
-        for (int i = 0; i < srvCnt; i++) {
-            Ignite g = G.grid("server-" + i);
-
-            assertTrue(srvNodeIds.contains(g.cluster().localNode().id()));
-
-            assertFalse(g.cluster().localNode().isClient());
-
-            checkRemoteNodes(g, srvCnt + clientCnt - 1);
-        }
-
-        for (int i = 0; i < clientCnt; i++) {
-            Ignite g = G.grid("client-" + i);
-
-            assertTrue(clientNodeIds.contains(g.cluster().localNode().id()));
-
-            assertTrue(g.cluster().localNode().isClient());
-
-            checkRemoteNodes(g, srvCnt + clientCnt - 1);
-        }
-    }
-
-    /**
-     * @param ignite Grid.
-     * @param expCnt Expected nodes count.
-     */
-    @SuppressWarnings("TypeMayBeWeakened")
-    private void checkRemoteNodes(Ignite ignite, int expCnt) {
-        Collection<ClusterNode> nodes = ignite.cluster().forRemotes().nodes();
-
-        assertEquals(expCnt, nodes.size());
-
-        for (ClusterNode node : nodes) {
-            UUID id = node.id();
-
-            if (clientNodeIds.contains(id))
-                assertTrue(node.isClient());
-            else if (srvNodeIds.contains(id))
-                assertFalse(node.isClient());
-            else
-                assert false : "Unexpected node ID: " + id;
-        }
-    }
-
-    /**
-     * @param latch Latch.
-     * @throws InterruptedException If interrupted.
-     */
-    private void await(CountDownLatch latch) throws InterruptedException {
-        assertTrue("Latch count: " + latch.getCount(), latch.await(10000, MILLISECONDS));
-    }
-
-    /**
-     */
-    private static class MessageListener implements IgniteBiPredicate<UUID, Object> {
-        @IgniteLocalNodeIdResource
-        private UUID nodeId;
-
-        /** {@inheritDoc} */
-        @Override public boolean apply(UUID uuid, Object msg) {
-            X.println(">>> Received [locNodeId=" + nodeId + ", msg=" + msg + ']');
-
-            msgLatch.countDown();
-
-            return true;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
deleted file mode 100644
index 1048160..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.configuration.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.testframework.junits.common.*;
-
-import java.util.*;
-
-/**
- * Test for {@link TcpDiscoverySpi}.
- */
-public class GridTcpDiscoveryConcurrentStartTest extends GridCommonAbstractTest {
-    /** */
-    private static final int TOP_SIZE = 1;
-
-    /** */
-    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
-
-    /** */
-    private static volatile boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg =  super.getConfiguration(gridName);
-
-        if (client) {
-            TcpDiscoveryVmIpFinder clientIpFinder = new TcpDiscoveryVmIpFinder();
-
-            String addr = new ArrayList<>(ipFinder.getRegisteredAddresses()).iterator().next().toString();
-
-            if (addr.startsWith("/"))
-                addr = addr.substring(1);
-
-            clientIpFinder.setAddresses(Arrays.asList(addr));
-
-            TcpClientDiscoverySpi discoSpi = new TcpClientDiscoverySpi();
-
-            discoSpi.setIpFinder(clientIpFinder);
-
-            cfg.setDiscoverySpi(discoSpi);
-        }
-        else {
-            TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
-
-            discoSpi.setIpFinder(ipFinder);
-
-            cfg.setDiscoverySpi(discoSpi);
-        }
-
-        cfg.setLocalHost("127.0.0.1");
-
-        cfg.setCacheConfiguration();
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected long getTestTimeout() {
-        return Long.MAX_VALUE;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testConcurrentStart() throws Exception {
-        for (int i = 0; i < 50; i++) {
-            try {
-                startGridsMultiThreaded(TOP_SIZE);
-            }
-            finally {
-                stopAllGrids();
-            }
-        }
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testConcurrentStartClients() throws Exception {
-        for (int i = 0; i < 50; i++) {
-            try {
-                client = false;
-
-                startGrid();
-
-                client = true;
-
-                startGridsMultiThreaded(TOP_SIZE);
-            }
-            finally {
-                stopAllGrids();
-            }
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTestsStopped() throws Exception {
-        stopAllGrids();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
deleted file mode 100644
index b3991c2..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.marshaller.jdk.*;
-import org.apache.ignite.marshaller.optimized.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.testframework.junits.common.*;
-
-/**
- * Test for {@link TcpDiscoverySpi}.
- */
-public class GridTcpDiscoveryMarshallerCheckSelfTest extends GridCommonAbstractTest {
-    /** */
-    private static boolean sameMarsh;
-
-    /** */
-    private static boolean flag;
-
-    /** */
-    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg =  super.getConfiguration(gridName);
-
-        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
-
-        discoSpi.setIpFinder(ipFinder);
-
-        cfg.setDiscoverySpi(discoSpi);
-
-        cfg.setLocalHost("127.0.0.1");
-
-        if (flag)
-            cfg.setMarshaller(new IgniteJdkMarshaller());
-        else
-            cfg.setMarshaller(sameMarsh ? new IgniteJdkMarshaller() : new IgniteOptimizedMarshaller());
-
-        // Flip flag.
-        flag = !flag;
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTest() throws Exception {
-        stopAllGrids();
-
-        flag = false;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testMarshallerInConsistency() throws Exception {
-        sameMarsh = false;
-
-        startGrid(1);
-
-        try {
-            startGrid(2);
-
-            fail("Expected SPI exception was not thrown.");
-        }
-        catch (GridException e) {
-            Throwable ex = e.getCause().getCause();
-
-            assertTrue(ex instanceof IgniteSpiException);
-            assertTrue(ex.getMessage().contains("Local node's marshaller differs from remote node's marshaller"));
-        }
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testMarshallerConsistency() throws Exception {
-        sameMarsh = true;
-
-        startGrid(1);
-        startGrid(2);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
deleted file mode 100644
index 6f046a7..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.testframework.junits.common.*;
-
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-import static org.apache.ignite.events.IgniteEventType.*;
-
-/**
- * Test for {@link TcpDiscoverySpi}.
- */
-public class GridTcpDiscoveryMultiThreadedTest extends GridCommonAbstractTest {
-    /** */
-    private static final int GRID_CNT = 5;
-
-    /** */
-    private static final int CLIENT_GRID_CNT = 5;
-
-    /** */
-    private static final ThreadLocal<Boolean> clientFlagPerThread = new ThreadLocal<>();
-
-    /** */
-    private static volatile boolean clientFlagGlobal;
-
-    /**
-     * @return Client node flag.
-     */
-    private static boolean client() {
-        Boolean client = clientFlagPerThread.get();
-
-        return client != null ? client : clientFlagGlobal;
-    }
-
-    /** */
-    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
-
-    /**
-     * @throws Exception If fails.
-     */
-    public GridTcpDiscoveryMultiThreadedTest() throws Exception {
-        super(false);
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings({"IfMayBeConditional"})
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        if (client()) {
-            TcpClientDiscoverySpi spi = new TcpClientDiscoverySpi();
-
-            spi.setIpFinder(ipFinder);
-
-            cfg.setDiscoverySpi(spi);
-        }
-        else {
-            TcpDiscoverySpi spi = new TcpDiscoverySpi();
-
-            spi.setIpFinder(ipFinder);
-
-            cfg.setDiscoverySpi(spi);
-        }
-
-        cfg.setCacheConfiguration();
-
-        cfg.setIncludeEventTypes(EVT_TASK_FAILED, EVT_TASK_FINISHED, EVT_JOB_MAPPED);
-
-        cfg.setIncludeProperties();
-
-        cfg.setLocalHost("127.0.0.1");
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTest() throws Exception {
-        super.afterTest();
-
-        stopAllGrids();
-    }
-
-    /** {@inheritDoc} */
-    @Override protected long getTestTimeout() {
-        return 5 * 60 * 1000;
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testMultiThreaded() throws Exception {
-        execute();
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testTopologyVersion() throws Exception {
-        startGridsMultiThreaded(GRID_CNT);
-
-        long prev = 0;
-
-        for (Ignite g : G.allGrids()) {
-            GridKernal kernal = (GridKernal)g;
-
-            long ver = kernal.context().discovery().topologyVersion();
-
-            info("Top ver: " + ver);
-
-            if (prev == 0)
-                prev = ver;
-        }
-
-        info("Test finished.");
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    private void execute() throws Exception {
-        info("Test timeout: " + (getTestTimeout() / (60 * 1000)) + " min.");
-
-        startGridsMultiThreaded(GRID_CNT);
-
-        clientFlagGlobal = true;
-
-        startGridsMultiThreaded(GRID_CNT, CLIENT_GRID_CNT);
-
-        final AtomicBoolean done = new AtomicBoolean();
-
-        final AtomicInteger clientIdx = new AtomicInteger(GRID_CNT);
-
-        IgniteFuture<?> fut1 = multithreadedAsync(
-            new Callable<Object>() {
-                @Override public Object call() throws Exception {
-                    clientFlagPerThread.set(true);
-
-                    int idx = clientIdx.getAndIncrement();
-
-                    while (!done.get()) {
-                        stopGrid(idx);
-                        startGrid(idx);
-                    }
-
-                    return null;
-                }
-            },
-            CLIENT_GRID_CNT
-        );
-
-        final BlockingQueue<Integer> srvIdx = new LinkedBlockingQueue<>();
-
-        for (int i = 0; i < GRID_CNT; i++)
-            srvIdx.add(i);
-
-        IgniteFuture<?> fut2 = multithreadedAsync(
-            new Callable<Object>() {
-                @Override public Object call() throws Exception {
-                    clientFlagPerThread.set(false);
-
-                    while (!done.get()) {
-                        int idx = srvIdx.take();
-
-                        stopGrid(idx);
-                        startGrid(idx);
-
-                        srvIdx.add(idx);
-                    }
-
-                    return null;
-                }
-            },
-            GRID_CNT - 1
-        );
-
-        Thread.sleep(getTestTimeout() - 60 * 1000);
-
-        done.set(true);
-
-        fut1.get();
-        fut2.get();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
deleted file mode 100644
index cfb7b92..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
+++ /dev/null
@@ -1,983 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.events.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.kernal.processors.port.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.grid.spi.discovery.tcp.messages.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.testframework.*;
-import org.gridgain.testframework.junits.common.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-import static java.util.concurrent.TimeUnit.*;
-import static org.apache.ignite.events.IgniteEventType.*;
-import static org.apache.ignite.spi.IgnitePortProtocol.*;
-
-/**
- * Test for {@link TcpDiscoverySpi}.
- */
-public class GridTcpDiscoverySelfTest extends GridCommonAbstractTest {
-    /** */
-    private TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
-
-    /** */
-    private Map<String, TcpDiscoverySpi> discoMap = new HashMap<>();
-
-    /** */
-    private UUID nodeId;
-
-    /**
-     * @throws Exception If fails.
-     */
-    public GridTcpDiscoverySelfTest() throws Exception {
-        super(false);
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings({"IfMayBeConditional", "deprecation"})
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        TcpDiscoverySpi spi;
-
-        if (gridName.contains("FailBeforeNodeAddedSentSpi"))
-            spi = new FailBeforeNodeAddedSentSpi();
-        else if (gridName.contains("FailBeforeNodeLeftSentSpi"))
-            spi = new FailBeforeNodeLeftSentSpi();
-        else
-            spi = new TcpDiscoverySpi();
-
-        discoMap.put(gridName, spi);
-
-        spi.setIpFinder(ipFinder);
-
-        spi.setNetworkTimeout(2500);
-
-        spi.setHeartbeatFrequency(1000);
-
-        spi.setMaxMissedHeartbeats(3);
-
-        spi.setIpFinderCleanFrequency(5000);
-
-        spi.setJoinTimeout(5000);
-
-        cfg.setDiscoverySpi(spi);
-
-        cfg.setCacheConfiguration();
-
-        cfg.setIncludeEventTypes(EVT_TASK_FAILED, EVT_TASK_FINISHED, EVT_JOB_MAPPED);
-
-        cfg.setIncludeProperties();
-
-        if (!gridName.contains("LoopbackProblemTest"))
-            cfg.setLocalHost("127.0.0.1");
-
-        if (gridName.contains("testFailureDetectionOnNodePing")) {
-            spi.setReconnectCount(1); // To make test faster: on Windows 1 connect takes 1 second.
-            spi.setHeartbeatFrequency(40000);
-        }
-
-        cfg.setRestEnabled(false);
-
-        if (nodeId != null)
-            cfg.setNodeId(nodeId);
-
-        if (gridName.contains("NonSharedIpFinder")) {
-            TcpDiscoveryVmIpFinder finder = new TcpDiscoveryVmIpFinder();
-
-            finder.setAddresses(Arrays.asList("127.0.0.1:47501"));
-
-            spi.setIpFinder(finder);
-        }
-        else if (gridName.contains("MulticastIpFinder")) {
-            TcpDiscoveryMulticastIpFinder finder = new TcpDiscoveryMulticastIpFinder();
-
-            finder.setAddressRequestAttempts(10);
-            finder.setMulticastGroup(GridTestUtils.getNextMulticastGroup(getClass()));
-            finder.setMulticastPort(GridTestUtils.getNextMulticastPort(getClass()));
-
-            spi.setIpFinder(finder);
-
-            // Loopback multicast discovery is not working on Mac OS
-            // (possibly due to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7122846).
-            if (U.isMacOs())
-                spi.setLocalAddress(F.first(U.allLocalIps()));
-        }
-
-        return cfg;
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testSingleNodeStartStop() throws Exception {
-        try {
-            startGrid(1);
-        }
-        finally {
-            stopGrid(1);
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testThreeNodesStartStop() throws Exception {
-        try {
-            startGrid(1);
-            startGrid(2);
-            startGrid(3);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any errors occur.
-     */
-    public void testNodeConnectMessageSize() throws Exception {
-        try {
-            Ignite g1 = startGrid(1);
-
-            final AtomicInteger gridNameIdx = new AtomicInteger(1);
-
-            GridTestUtils.runMultiThreaded(new Callable<Object>() {
-                @Nullable @Override public Object call() throws Exception {
-                    startGrid(gridNameIdx.incrementAndGet());
-
-                    return null;
-                }
-            }, 4, "grid-starter");
-
-            Collection<TcpDiscoveryNode> nodes = discoMap.get(g1.name()).ring().allNodes();
-
-            ByteArrayOutputStream bos = new ByteArrayOutputStream();
-
-            g1.configuration().getMarshaller().marshal(nodes, bos);
-
-            info(">>> Approximate node connect message size [topSize=" + nodes.size() +
-                ", msgSize=" + bos.size() / 1024.0 + "KB]");
-        }
-        finally {
-            stopAllGrids(false);
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testPing() throws Exception {
-        try {
-            startGrid(1);
-            startGrid(2);
-            startGrid(3);
-
-            info("Nodes were started");
-
-            for (Map.Entry<String, TcpDiscoverySpi> e : discoMap.entrySet()) {
-                DiscoverySpi spi = e.getValue();
-
-                for (Ignite g : G.allGrids()) {
-                    boolean res = spi.pingNode(g.cluster().localNode().id());
-
-                    assert res : e.getKey() + " failed to ping " + g.cluster().localNode().id() + " of " + g.name();
-
-                    info(e.getKey() + " pinged " + g.cluster().localNode().id() + " of " + g.name());
-                }
-            }
-
-            info("All nodes pinged successfully.");
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testFailureDetectionOnNodePing1() throws Exception {
-        try {
-            Ignite g1 = startGrid("testFailureDetectionOnNodePingCoordinator");
-            startGrid("testFailureDetectionOnNodePing2");
-            Ignite g3 = startGrid("testFailureDetectionOnNodePing3");
-
-            testFailureDetectionOnNodePing(g1, g3);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testFailureDetectionOnNodePing2() throws Exception {
-        try {
-            startGrid("testFailureDetectionOnNodePingCoordinator");
-            Ignite g2 = startGrid("testFailureDetectionOnNodePing2");
-            Ignite g3 = startGrid("testFailureDetectionOnNodePing3");
-
-            testFailureDetectionOnNodePing(g3, g2);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testFailureDetectionOnNodePing3() throws Exception {
-        try {
-            Ignite g1 = startGrid("testFailureDetectionOnNodePingCoordinator");
-            Ignite g2 = startGrid("testFailureDetectionOnNodePing2");
-            startGrid("testFailureDetectionOnNodePing3");
-
-            testFailureDetectionOnNodePing(g2, g1);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    private void testFailureDetectionOnNodePing(Ignite pingingNode, Ignite failedNode) throws Exception {
-        final CountDownLatch cnt = new CountDownLatch(1);
-
-        pingingNode.events().localListen(
-            new IgnitePredicate<IgniteEvent>() {
-                @Override public boolean apply(IgniteEvent evt) {
-                    cnt.countDown();
-
-                    return true;
-                }
-            },
-            IgniteEventType.EVT_NODE_FAILED
-        );
-
-        info("Nodes were started");
-
-        discoMap.get(failedNode.name()).simulateNodeFailure();
-
-        TcpDiscoverySpi spi = discoMap.get(pingingNode.name());
-
-        boolean res = spi.pingNode(failedNode.cluster().localNode().id());
-
-        assertFalse("Ping is ok for node " + failedNode.cluster().localNode().id() + ", but had to fail.", res);
-
-        // Heartbeat interval is 40 seconds, but we should detect node failure faster.
-        assert cnt.await(7, SECONDS);
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testNodeAdded() throws Exception {
-        try {
-            final Ignite g1 = startGrid(1);
-
-            final CountDownLatch cnt = new CountDownLatch(2);
-
-            g1.events().localListen(
-                new IgnitePredicate<IgniteEvent>() {
-                    @Override public boolean apply(IgniteEvent evt) {
-                        info("Node joined: " + evt.message());
-
-                        IgniteDiscoveryEvent discoEvt = (IgniteDiscoveryEvent)evt;
-
-                        TcpDiscoveryNode node = ((TcpDiscoveryNode)discoMap.get(g1.name()).
-                            getNode(discoEvt.eventNode().id()));
-
-                        assert node != null && node.visible();
-
-                        cnt.countDown();
-
-                        return true;
-                    }
-                },
-                IgniteEventType.EVT_NODE_JOINED
-            );
-
-            startGrid(2);
-            startGrid(3);
-
-            info("Nodes were started");
-
-            assert cnt.await(1, SECONDS);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testOrdinaryNodeLeave() throws Exception {
-        try {
-            Ignite g1 = startGrid(1);
-            startGrid(2);
-            startGrid(3);
-
-            final CountDownLatch cnt = new CountDownLatch(2);
-
-            g1.events().localListen(
-                new IgnitePredicate<IgniteEvent>() {
-                    @Override public boolean apply(IgniteEvent evt) {
-                        cnt.countDown();
-
-                        return true;
-                    }
-                },
-                EVT_NODE_LEFT
-            );
-
-            info("Nodes were started");
-
-            stopGrid(3);
-            stopGrid(2);
-
-            boolean res = cnt.await(1, SECONDS);
-
-            assert res;
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testCoordinatorNodeLeave() throws Exception {
-        try {
-            startGrid(1);
-            Ignite g2 = startGrid(2);
-
-            final CountDownLatch cnt = new CountDownLatch(1);
-
-            g2.events().localListen(new IgnitePredicate<IgniteEvent>() {
-                @Override public boolean apply(IgniteEvent evt) {
-                    cnt.countDown();
-
-                    return true;
-                }
-            }, EVT_NODE_LEFT);
-
-            info("Nodes were started");
-
-            stopGrid(1);
-
-            assert cnt.await(1, SECONDS);
-
-            // Start new grid, ensure that added to topology
-            final CountDownLatch cnt2 = new CountDownLatch(1);
-
-            g2.events().localListen(new IgnitePredicate<IgniteEvent>() {
-                @Override public boolean apply(IgniteEvent evt) {
-                    cnt2.countDown();
-
-                    return true;
-                }
-            }, EVT_NODE_JOINED);
-
-            startGrid(3);
-
-            assert cnt2.await(1, SECONDS);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testOrdinaryNodeFailure() throws Exception {
-        try {
-            Ignite g1 = startGrid(1);
-            Ignite g2 = startGrid(2);
-            Ignite g3 = startGrid(3);
-
-            final CountDownLatch cnt = new CountDownLatch(2);
-
-            g1.events().localListen(
-                new IgnitePredicate<IgniteEvent>() {
-                    @Override public boolean apply(IgniteEvent evt) {
-                        cnt.countDown();
-
-                        return true;
-                    }
-                },
-                IgniteEventType.EVT_NODE_FAILED
-            );
-
-            info("Nodes were started");
-
-            discoMap.get(g2.name()).simulateNodeFailure();
-            discoMap.get(g3.name()).simulateNodeFailure();
-
-            assert cnt.await(25, SECONDS);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testCoordinatorNodeFailure() throws Exception {
-        try {
-            Ignite g1 = startGrid(1);
-            Ignite g2 = startGrid(2);
-
-            final CountDownLatch cnt = new CountDownLatch(1);
-
-            g2.events().localListen(new IgnitePredicate<IgniteEvent>() {
-                @Override public boolean apply(IgniteEvent evt) {
-                    cnt.countDown();
-
-                    return true;
-                }
-            }, IgniteEventType.EVT_NODE_FAILED);
-
-            info("Nodes were started");
-
-            discoMap.get(g1.name()).simulateNodeFailure();
-
-            assert cnt.await(20, SECONDS);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testMetricsSending() throws Exception {
-        final AtomicBoolean stopping = new AtomicBoolean();
-
-        try {
-            final CountDownLatch latch1 = new CountDownLatch(1);
-
-            final Ignite g1 = startGrid(1);
-
-            IgnitePredicate<IgniteEvent> lsnr1 = new IgnitePredicate<IgniteEvent>() {
-                @Override public boolean apply(IgniteEvent evt) {
-                    info(evt.message());
-
-                    latch1.countDown();
-
-                    return true;
-                }
-            };
-
-            g1.events().localListen(lsnr1, EVT_NODE_METRICS_UPDATED);
-
-            assert latch1.await(10, SECONDS);
-
-            g1.events().stopLocalListen(lsnr1);
-
-            final CountDownLatch latch1_1 = new CountDownLatch(1);
-            final CountDownLatch latch1_2 = new CountDownLatch(1);
-            final CountDownLatch latch2_1 = new CountDownLatch(1);
-            final CountDownLatch latch2_2 = new CountDownLatch(1);
-
-            final Ignite g2 = startGrid(2);
-
-            g2.events().localListen(
-                new IgnitePredicate<IgniteEvent>() {
-                    @Override public boolean apply(IgniteEvent evt) {
-                        if (stopping.get())
-                            return true;
-
-                        info(evt.message());
-
-                        UUID id = ((IgniteDiscoveryEvent) evt).eventNode().id();
-
-                        if (id.equals(g1.cluster().localNode().id()))
-                            latch2_1.countDown();
-                        else if (id.equals(g2.cluster().localNode().id()))
-                            latch2_2.countDown();
-                        else
-                            assert false : "Event fired for unknown node.";
-
-                        return true;
-                    }
-                },
-                EVT_NODE_METRICS_UPDATED
-            );
-
-            g1.events().localListen(new IgnitePredicate<IgniteEvent>() {
-                @Override public boolean apply(IgniteEvent evt) {
-                    if (stopping.get())
-                        return true;
-
-                    info(evt.message());
-
-                    UUID id = ((IgniteDiscoveryEvent) evt).eventNode().id();
-
-                    if (id.equals(g1.cluster().localNode().id()))
-                        latch1_1.countDown();
-                    else if (id.equals(g2.cluster().localNode().id()))
-                        latch1_2.countDown();
-                    else
-                        assert false : "Event fired for unknown node.";
-
-                    return true;
-                }
-            }, EVT_NODE_METRICS_UPDATED);
-
-            assert latch1_1.await(10, SECONDS);
-            assert latch1_2.await(10, SECONDS);
-            assert latch2_1.await(10, SECONDS);
-            assert latch2_2.await(10, SECONDS);
-        }
-        finally {
-            stopping.set(true);
-
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testFailBeforeNodeAddedSent() throws Exception {
-        try {
-            Ignite g1 = startGrid(1);
-
-            final CountDownLatch joinCnt = new CountDownLatch(2);
-            final CountDownLatch failCnt = new CountDownLatch(1);
-
-            g1.events().localListen(new IgnitePredicate<IgniteEvent>() {
-                @Override public boolean apply(IgniteEvent evt) {
-                    if (evt.type() == EVT_NODE_JOINED)
-                        joinCnt.countDown();
-                    else if (evt.type() == EVT_NODE_FAILED)
-                        failCnt.countDown();
-                    else
-                        assert false : "Unexpected event type: " + evt;
-
-                    return true;
-                }
-            }, EVT_NODE_JOINED, EVT_NODE_FAILED);
-
-            startGrid("FailBeforeNodeAddedSentSpi");
-
-            startGrid(3);
-
-            assert joinCnt.await(10, SECONDS);
-            assert failCnt.await(10, SECONDS);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testFailBeforeNodeLeftSent() throws Exception {
-        try {
-            startGrid(1);
-            startGrid(2);
-
-            startGrid("FailBeforeNodeLeftSentSpi");
-
-            Ignite g3 = startGrid(3);
-
-            final CountDownLatch cnt = new CountDownLatch(1);
-
-            g3.events().localListen(new IgnitePredicate<IgniteEvent>() {
-                @Override public boolean apply(IgniteEvent evt) {
-                    cnt.countDown();
-
-                    return true;
-                }
-            }, EVT_NODE_FAILED);
-
-            stopGrid(1);
-
-            assert cnt.await(20, SECONDS);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testIpFinderCleaning() throws Exception {
-        try {
-            ipFinder.registerAddresses(Arrays.asList(new InetSocketAddress("host1", 1024),
-                new InetSocketAddress("host2", 1024)));
-
-            Ignite g1 = startGrid(1);
-
-            long timeout = (long)(discoMap.get(g1.name()).getIpFinderCleanFrequency() * 1.5);
-
-            Thread.sleep(timeout);
-
-            assert ipFinder.getRegisteredAddresses().size() == 1 : "ipFinder=" + ipFinder.getRegisteredAddresses();
-
-            // Check that missing addresses are returned back.
-            ipFinder.unregisterAddresses(ipFinder.getRegisteredAddresses()); // Unregister valid address.
-
-            ipFinder.registerAddresses(Arrays.asList(new InetSocketAddress("host1", 1024),
-                new InetSocketAddress("host2", 1024)));
-
-            Thread.sleep(timeout);
-
-            assert ipFinder.getRegisteredAddresses().size() == 1 : "ipFinder=" + ipFinder.getRegisteredAddresses();
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testNonSharedIpFinder() throws Exception {
-        try {
-            GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
-                @Override public Object call() throws Exception {
-                    Thread.sleep(4000);
-
-                    return startGrid("NonSharedIpFinder-2");
-                }
-            }, 1, "grid-starter");
-
-            // This node should wait until any node "from ipFinder" appears, see log messages.
-            Ignite g = startGrid("NonSharedIpFinder-1");
-
-            assert g.cluster().localNode().order() == 2;
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testMulticastIpFinder() throws Exception {
-        try {
-            for (int i = 0; i < 5; i++) {
-                Ignite g = startGrid("MulticastIpFinder-" + i);
-
-                assertEquals(i + 1, g.cluster().nodes().size());
-
-                TcpDiscoverySpi spi = (TcpDiscoverySpi)g.configuration().getDiscoverySpi();
-
-                TcpDiscoveryMulticastIpFinder ipFinder = (TcpDiscoveryMulticastIpFinder)spi.getIpFinder();
-
-                boolean found = false;
-
-                for (GridPortRecord rec : ((GridKernal) g).context().ports().records()) {
-                    if ((rec.protocol() == UDP) && rec.port() == ipFinder.getMulticastPort()) {
-                        found = true;
-
-                        break;
-                    }
-                }
-
-                assertTrue("GridTcpDiscoveryMulticastIpFinder should register port." , found);
-            }
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testInvalidAddressIpFinder() throws Exception {
-        ipFinder.setShared(false);
-
-        ipFinder.setAddresses(Collections.singletonList("some-host"));
-
-        try {
-            GridTestUtils.assertThrows(
-                log,
-                new Callable<Object>() {
-                    @Nullable @Override public Object call() throws Exception {
-                        startGrid(1);
-
-                        return null;
-                    }
-                },
-                GridException.class,
-                null);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testJoinTimeout() throws Exception {
-        try {
-            // This start will fail as expected.
-            Throwable t = GridTestUtils.assertThrows(log, new Callable<Object>() {
-                @Override public Object call() throws Exception {
-                    startGrid("NonSharedIpFinder-1");
-
-                    return null;
-                }
-            }, GridException.class, null);
-
-            assert X.hasCause(t, IgniteSpiException.class) : "Unexpected exception: " + t;
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDirtyIpFinder() throws Exception {
-        try {
-            // Dirty IP finder
-            for (int i = 47500; i < 47520; i++)
-                ipFinder.registerAddresses(Arrays.asList(new InetSocketAddress("127.0.0.1", i),
-                    new InetSocketAddress("unknown-host", i)));
-
-            assert ipFinder.isShared();
-
-            startGrid(1);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testDuplicateId() throws Exception {
-        try {
-            // Random ID.
-            startGrid(1);
-
-            nodeId = UUID.randomUUID();
-
-            startGrid(2);
-
-            // Duplicate ID.
-            GridTestUtils.assertThrows(
-                log,
-                new Callable<Object>() {
-                    @Nullable @Override public Object call() throws Exception {
-                        // Exception will be thrown and output to log.
-                        startGrid(3);
-
-                        return null;
-                    }
-                },
-                GridException.class,
-                null);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testLoopbackProblemFirstNodeOnLoopback() throws Exception {
-        // On Windows and Mac machines two nodes can reside on the same port
-        // (if one node has localHost="127.0.0.1" and another has localHost="0.0.0.0").
-        // So two nodes do not even discover each other.
-        if (U.isWindows() || U.isMacOs())
-            return;
-
-        try {
-            startGridNoOptimize(1);
-
-            GridTestUtils.assertThrows(
-                log,
-                new Callable<Object>() {
-                    @Nullable @Override public Object call() throws Exception {
-                        // Exception will be thrown because we start node which does not use loopback address,
-                        // but the first node does.
-                        startGridNoOptimize("LoopbackProblemTest");
-
-                        return null;
-                    }
-                },
-                GridException.class,
-                null);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testLoopbackProblemSecondNodeOnLoopback() throws Exception {
-        if (U.isWindows() || U.isMacOs())
-            return;
-
-        try {
-            startGridNoOptimize("LoopbackProblemTest");
-
-            GridTestUtils.assertThrows(
-                log,
-                new Callable<Object>() {
-                    @Nullable @Override public Object call() throws Exception {
-                        // Exception will be thrown because we start node which uses loopback address,
-                        // but the first node does not.
-                        startGridNoOptimize(1);
-
-                        return null;
-                    }
-                },
-                GridException.class,
-                null);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testGridStartTime() throws Exception {
-        try {
-            startGridsMultiThreaded(5);
-
-            Long startTime = null;
-
-            GridKernal firstGrid = null;
-
-            Collection<GridKernal> grids = new ArrayList<>();
-
-            for (int i = 0; i < 5 ; i++) {
-                GridKernal grid = (GridKernal)grid(i);
-
-                assertTrue(grid.context().discovery().gridStartTime() > 0);
-
-                if (i > 0)
-                    assertEquals(startTime, (Long)grid.context().discovery().gridStartTime());
-                else
-                    startTime = grid.context().discovery().gridStartTime();
-
-                if (grid.localNode().order() == 1)
-                    firstGrid = grid;
-                else
-                    grids.add(grid);
-            }
-
-            assertNotNull(firstGrid);
-
-            stopGrid(firstGrid.name());
-
-            for (GridKernal grid : grids)
-                assertEquals(startTime, (Long)grid.context().discovery().gridStartTime());
-
-            grids.add((GridKernal) startGrid(5));
-
-            for (GridKernal grid : grids)
-                assertEquals(startTime, (Long)grid.context().discovery().gridStartTime());
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * Starts new grid with given index. Method optimize is not invoked.
-     *
-     * @param idx Index of the grid to start.
-     * @return Started grid.
-     * @throws Exception If anything failed.
-     */
-    private Ignite startGridNoOptimize(int idx) throws Exception {
-        return startGridNoOptimize(getTestGridName(idx));
-    }
-
-    /**
-     * Starts new grid with given name. Method optimize is not invoked.
-     *
-     * @param gridName Grid name.
-     * @return Started grid.
-     * @throws Exception If failed.
-     */
-    private Ignite startGridNoOptimize(String gridName) throws Exception {
-        return G.start(getConfiguration(gridName));
-    }
-
-    /**
-     *
-     */
-    private static class FailBeforeNodeAddedSentSpi extends TcpDiscoverySpi {
-        /** */
-        private int i;
-
-        /** {@inheritDoc} */
-        @Override void onBeforeMessageSentAcrossRing(Serializable msg) {
-            if (msg instanceof TcpDiscoveryNodeAddedMessage)
-                if (++i == 2) {
-                    simulateNodeFailure();
-
-                    throw new RuntimeException("Avoid message sending: " + msg.getClass());
-                }
-        }
-    }
-
-    /**
-     *
-     */
-    private static class FailBeforeNodeLeftSentSpi extends TcpDiscoverySpi {
-        /** {@inheritDoc} */
-        @Override void onBeforeMessageSentAcrossRing(Serializable msg) {
-            if (msg instanceof TcpDiscoveryNodeLeftMessage) {
-                simulateNodeFailure();
-
-                throw new RuntimeException("Avoid message sending: " + msg.getClass());
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySnapshotHistoryTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySnapshotHistoryTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySnapshotHistoryTest.java
deleted file mode 100644
index 3edfac4..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySnapshotHistoryTest.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.*;
-import org.apache.ignite.configuration.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.testframework.junits.common.*;
-
-import static org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi.*;
-
-/**
- * Tests for topology snapshots history.
- */
-public class GridTcpDiscoverySnapshotHistoryTest extends GridCommonAbstractTest {
-    /** */
-    public GridTcpDiscoverySnapshotHistoryTest() {
-        super(false);
-    }
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        cfg.setDiscoverySpi(new TcpDiscoverySpi());
-        cfg.setCacheConfiguration();
-        cfg.setLocalHost("127.0.0.1");
-        cfg.setRestEnabled(false);
-
-        return cfg;
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testHistorySupported() throws Exception {
-        try {
-            final Ignite g = startGrid();
-
-            DiscoverySpi spi = g.configuration().getDiscoverySpi();
-
-            DiscoverySpiHistorySupport ann = U.getAnnotation(spi.getClass(), DiscoverySpiHistorySupport.class);
-
-            assertNotNull("Spi does not have annotation for history support", ann);
-
-            assertTrue("History support is disabled for current spi", ann.value());
-        }
-        finally {
-            stopGrid();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testSettingNewTopologyHistorySize() throws Exception {
-        try {
-            final Ignite g = startGrid();
-
-            TcpDiscoverySpi spi = (TcpDiscoverySpi)g.configuration().getDiscoverySpi();
-
-            assertEquals(DFLT_TOP_HISTORY_SIZE, spi.getTopHistorySize());
-
-            spi.setTopHistorySize(DFLT_TOP_HISTORY_SIZE + 1);
-
-            assertEquals(DFLT_TOP_HISTORY_SIZE + 1, spi.getTopHistorySize());
-
-            spi.setTopHistorySize(1);
-
-            assertEquals(DFLT_TOP_HISTORY_SIZE + 1, spi.getTopHistorySize());
-        }
-        finally {
-            stopGrid();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testNodeAdded() throws Exception {
-        try {
-            // Add grid #1
-            final Ignite g1 = startGrid(1);
-
-            assertTopVer(1, g1);
-
-            assertEquals(1, g1.cluster().topologyVersion());
-
-            // Add grid # 2
-            final Ignite g2 = startGrid(2);
-
-            assertTopVer(2, g1, g2);
-
-            for (int i = 1; i <= 2; i++)
-                assertEquals(i, g2.cluster().topology(i).size());
-
-            // Add grid # 3
-            final Ignite g3 = startGrid(3);
-
-            assertTopVer(3, g1, g2, g3);
-
-            for (int i = 1; i <= 3; i++)
-                assertEquals(i, g3.cluster().topology(i).size());
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testNodeAddedAndRemoved() throws Exception {
-        try {
-            // Add grid #1
-            final Ignite g1 = startGrid(1);
-
-            assertTopVer(1, g1);
-
-            assertEquals(1, g1.cluster().topologyVersion());
-
-            // Add grid #2
-            final Ignite g2 = startGrid(2);
-
-            assertTopVer(2, g1, g2);
-
-            for (int i = 1; i <= 2; i++)
-                assertEquals(i, g2.cluster().topology(i).size());
-
-            // Add grid #3
-            final Ignite g3 = startGrid(3);
-
-            assertTopVer(3, g1, g2, g3);
-
-            for (int i = 1; i <= 3; i++)
-                assertEquals(i, g3.cluster().topology(i).size());
-
-            // Stop grid #3
-            stopGrid(g3.name());
-
-            assertTopVer(4, g1, g2);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     * Check if specified grid instances have unexpected topology version.
-     *
-     * @param expTopVer Expected topology version.
-     * @param ignites Grid instances for checking topology version.
-     */
-    private static void assertTopVer(long expTopVer, Ignite... ignites) {
-        for (Ignite g : ignites)
-            assertEquals("Grid has wrong topology version.", expTopVer, g.cluster().topologyVersion());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiConfigSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiConfigSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiConfigSelfTest.java
deleted file mode 100644
index 9eba118..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiConfigSelfTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.gridgain.testframework.junits.spi.*;
-
-/**
- *
- */
-@GridSpiTest(spi = TcpDiscoverySpi.class, group = "Discovery SPI")
-public class GridTcpDiscoverySpiConfigSelfTest extends GridSpiAbstractConfigTest<TcpDiscoverySpi> {
-    /**
-     * @throws Exception If failed.
-     */
-    public void testNegativeConfig() throws Exception {
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "ipFinder", null);
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "ipFinderCleanFrequency", 0);
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "localPort", 1023);
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "localPortRange", 0);
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "networkTimeout", 0);
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "socketTimeout", 0);
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "ackTimeout", 0);
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "maxAckTimeout", 0);
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "reconnectCount", 0);
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "heartbeatFrequency", 0);
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "threadPriority", -1);
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "maxMissedHeartbeats", 0);
-        checkNegativeSpiProperty(new TcpDiscoverySpi(), "statisticsPrintFrequency", 0);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
deleted file mode 100644
index 275c7c8..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.testframework.junits.spi.*;
-
-/**
- * Random start stop test for {@link TcpDiscoverySpi}.
- */
-@GridSpiTest(spi = TcpDiscoverySpi.class, group = "Discovery SPI")
-public class GridTcpDiscoverySpiRandomStartStopTest extends
-    GridAbstractDiscoveryRandomStartStopTest<TcpDiscoverySpi> {
-    /** */
-    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
-
-    /** {@inheritDoc} */
-    @Override protected int getMaxInterval() {
-        return 10;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void spiConfigure(TcpDiscoverySpi spi) throws Exception {
-        super.spiConfigure(spi);
-
-        spi.setIpFinder(ipFinder);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
deleted file mode 100644
index 3aaa8e9..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.testframework.junits.spi.*;
-
-/**
- * TCP discovery spi test.
- */
-@SuppressWarnings({"JUnitTestCaseWithNoTests"})
-@GridSpiTest(spi = TcpDiscoverySpi.class, group = "Discovery SPI")
-public class GridTcpDiscoverySpiSelfTest extends GridAbstractDiscoverySelfTest<TcpDiscoverySpi> {
-    /** */
-    private TcpDiscoveryIpFinder ipFinder =  new TcpDiscoveryVmIpFinder(true);
-
-    /** {@inheritDoc} */
-    @Override protected DiscoverySpi getSpi(int idx) {
-        TcpDiscoverySpi spi = new TcpDiscoverySpi();
-
-        spi.setMetricsProvider(createMetricsProvider());
-        spi.setIpFinder(ipFinder);
-
-        return spi;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
deleted file mode 100644
index cb198de..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.cluster.*;
-import org.gridgain.grid.kernal.managers.security.*;
-import org.gridgain.grid.security.*;
-import org.gridgain.grid.spi.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.testframework.junits.spi.*;
-
-import java.util.*;
-
-/**
- * Grid TCP discovery SPI start stop self test.
- */
-@GridSpiTest(spi = TcpDiscoverySpi.class, group = "Discovery SPI")
-public class GridTcpDiscoverySpiStartStopSelfTest extends GridSpiStartStopAbstractTest<TcpDiscoverySpi> {
-    /**
-     * @return IP finder.
-     */
-    @GridSpiTestConfig
-    public TcpDiscoveryIpFinder getIpFinder() {
-        return new TcpDiscoveryVmIpFinder(true);
-    }
-
-    /**
-     * @return Discovery data collector.
-     */
-    @GridSpiTestConfig
-    public DiscoverySpiDataExchange getDataExchange() {
-        return new DiscoverySpiDataExchange() {
-            @Override public List<Object> collect(UUID nodeId) {
-                return null;
-            }
-
-            @Override public void onExchange(List<Object> data) {
-                // No-op.
-            }
-        };
-    }
-
-    /**
-     * Discovery SPI authenticator.
-     *
-     * @return Authenticator.
-     */
-    @GridSpiTestConfig
-    public DiscoverySpiNodeAuthenticator getAuthenticator() {
-        return new DiscoverySpiNodeAuthenticator() {
-            @Override public GridSecurityContext authenticateNode(ClusterNode n, GridSecurityCredentials cred) {
-                GridSecuritySubjectAdapter subj = new GridSecuritySubjectAdapter(
-                    GridSecuritySubjectType.REMOTE_NODE, n.id());
-
-                subj.permissions(new GridAllowAllPermissionSet());
-
-                return new GridSecurityContext(subj);
-            }
-
-            @Override public boolean isGlobalNodeAuthentication() {
-                return false;
-            }
-        };
-    }
-}


[40/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
# Renaming


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

Branch: refs/heads/master
Commit: 1ef8f69b04342e47ab2052e609e5445cec3dccdd
Parents: cdb10bc
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 5 16:55:35 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 5 16:56:16 2014 +0300

----------------------------------------------------------------------
 examples/config/example-cache.xml               |    4 +-
 examples/config/example-compute.xml             |    4 +-
 examples/config/example-streamer.xml            |    4 +-
 examples/config/filesystem/example-ggfs.xml     |    4 +-
 .../failover/ComputeFailoverNodeStartup.java    |    4 +-
 .../HibernateL2CacheExampleNodeStartup.java     |    4 +-
 .../store/CacheNodeWithStoreStartup.java        |    6 +-
 .../MemcacheRestExampleNodeStartup.java         |    4 +-
 .../examples/misc/springbean/spring-bean.xml    |    4 +-
 .../scalar/examples/ScalarJvmCloudExample.scala |    4 +-
 .../grid/gridify/GridAbstractAopTest.java       |    2 +-
 .../singlesplit/GridSingleSplitsLoadTest.java   |    2 +-
 .../gridify/GridifySingleSplitLoadTest.java     |    4 +-
 .../GridExternalNonSpringAopSelfTest.java       |    2 +-
 .../ipfinder/s3/GridTcpDiscoveryS3IpFinder.java |  312 ++
 .../spi/discovery/tcp/ipfinder/s3/package.html  |   15 +
 .../ipfinder/s3/GridTcpDiscoveryS3IpFinder.java |  312 --
 .../spi/discovery/tcp/ipfinder/s3/package.html  |   15 -
 .../s3/GridTcpDiscoveryS3IpFinderSelfTest.java  |   64 +
 .../spi/discovery/tcp/ipfinder/s3/package.html  |   15 +
 .../s3/GridTcpDiscoveryS3IpFinderSelfTest.java  |   65 -
 .../spi/discovery/tcp/ipfinder/s3/package.html  |   15 -
 .../testsuites/bamboo/GridS3TestSuite.java      |    2 +-
 ...GridClientAbstractMultiThreadedSelfTest.java |    6 +-
 .../client/GridClientDefaultCacheSelfTest.java  |    6 +-
 .../client/GridClientTopologyCacheSelfTest.java |    6 +-
 .../GridClientAbstractMultiNodeSelfTest.java    |    6 +-
 .../integration/GridClientAbstractSelfTest.java |    6 +-
 .../GridClientPreferDirectSelfTest.java         |    6 +-
 .../router/GridClientFailedInitSelfTest.java    |    6 +-
 .../router/GridRouterFactorySelfTest.java       |    6 +-
 .../rest/GridAbstractRestProcessorSelfTest.java |    6 +-
 .../rest/GridRestBinaryProtocolSelfTest.java    |    6 +-
 .../rest/GridRestMemcacheProtocolSelfTest.java  |    6 +-
 .../rest/GridRestProcessorStartSelfTest.java    |    6 +-
 .../processors/rest/GridRestProcessorTest.java  |    4 +-
 .../rest/GridTaskCommandHandlerSelfTest.java    |    6 +-
 .../jdbc/GridJdbcComplexQuerySelfTest.java      |    6 +-
 .../jdbc/GridJdbcConnectionSelfTest.java        |    6 +-
 .../jdbc/GridJdbcEmptyCacheSelfTest.java        |    6 +-
 .../jdbc/GridJdbcLocalCachesSelfTest.java       |    6 +-
 .../gridgain/jdbc/GridJdbcMetadataSelfTest.java |    6 +-
 .../jdbc/GridJdbcPreparedStatementSelfTest.java |    6 +-
 .../jdbc/GridJdbcResultSetSelfTest.java         |    6 +-
 .../jdbc/GridJdbcStatementSelfTest.java         |    6 +-
 .../clients/src/test/resources/spring-cache.xml |    4 +-
 .../src/test/resources/spring-server-node.xml   |    4 +-
 .../test/resources/spring-server-ssl-node.xml   |    4 +-
 .../java/org/apache/ignite/IgniteCluster.java   |    6 +-
 .../apache/ignite/IgniteSystemProperties.java   |    4 +-
 .../org/apache/ignite/cluster/ClusterNode.java  |    4 +-
 .../configuration/IgniteConfiguration.java      |    8 +-
 .../org/apache/ignite/plugin/PluginContext.java |    8 +-
 .../org/apache/ignite/spi/IgniteSpiContext.java |   22 +-
 .../spi/discovery/DiscoveryMetricsHelper.java   |  360 ++
 .../spi/discovery/DiscoveryMetricsProvider.java |   31 +
 .../discovery/DiscoveryNodeMetricsAdapter.java  | 1060 ++++
 .../ignite/spi/discovery/DiscoverySpi.java      |  132 +
 .../spi/discovery/DiscoverySpiDataExchange.java |   36 +
 .../discovery/DiscoverySpiHistorySupport.java   |   28 +
 .../spi/discovery/DiscoverySpiListener.java     |   35 +
 .../DiscoverySpiNodeAuthenticator.java          |   39 +
 .../spi/discovery/DiscoverySpiOrderSupport.java |   39 +
 .../apache/ignite/spi/discovery/package.html    |   15 +
 .../discovery/tcp/TcpClientDiscoverySpi.java    | 1219 +++++
 .../tcp/TcpClientDiscoverySpiMBean.java         |  156 +
 .../spi/discovery/tcp/TcpDiscoverySpi.java      | 5144 ++++++++++++++++++
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |  996 ++++
 .../spi/discovery/tcp/TcpDiscoverySpiMBean.java |  267 +
 .../tcp/internal/TcpDiscoveryNode.java          |  443 ++
 .../tcp/internal/TcpDiscoveryNodesRing.java     |  636 +++
 .../tcp/internal/TcpDiscoverySpiState.java      |   45 +
 .../tcp/internal/TcpDiscoveryStatistics.java    |  639 +++
 .../spi/discovery/tcp/internal/package.html     |   15 +
 .../tcp/ipfinder/TcpDiscoveryIpFinder.java      |   90 +
 .../ipfinder/TcpDiscoveryIpFinderAdapter.java   |   77 +
 .../ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java |  361 ++
 .../discovery/tcp/ipfinder/jdbc/package.html    |   15 +
 .../TcpDiscoveryMulticastIpFinder.java          |  752 +++
 .../tcp/ipfinder/multicast/package.html         |   15 +
 .../spi/discovery/tcp/ipfinder/package.html     |   15 +
 .../sharedfs/TcpDiscoverySharedFsIpFinder.java  |  258 +
 .../tcp/ipfinder/sharedfs/package.html          |   15 +
 .../tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java |  255 +
 .../spi/discovery/tcp/ipfinder/vm/package.html  |   15 +
 .../messages/TcpDiscoveryAbstractMessage.java   |  266 +
 .../messages/TcpDiscoveryAuthFailedMessage.java |   72 +
 .../TcpDiscoveryCheckFailedMessage.java         |   71 +
 .../TcpDiscoveryClientReconnectMessage.java     |  119 +
 .../messages/TcpDiscoveryDiscardMessage.java    |   75 +
 .../TcpDiscoveryDuplicateIdMessage.java         |   75 +
 .../messages/TcpDiscoveryEnsureDelivery.java    |   23 +
 .../messages/TcpDiscoveryHandshakeRequest.java  |   44 +
 .../messages/TcpDiscoveryHandshakeResponse.java |   82 +
 .../messages/TcpDiscoveryHeartbeatMessage.java  |  308 ++
 .../TcpDiscoveryJoinRequestMessage.java         |  102 +
 .../TcpDiscoveryLoopbackProblemMessage.java     |   87 +
 .../TcpDiscoveryNodeAddFinishedMessage.java     |   75 +
 .../messages/TcpDiscoveryNodeAddedMessage.java  |  246 +
 .../messages/TcpDiscoveryNodeFailedMessage.java |   93 +
 .../messages/TcpDiscoveryNodeLeftMessage.java   |   47 +
 .../tcp/messages/TcpDiscoveryPingRequest.java   |   65 +
 .../tcp/messages/TcpDiscoveryPingResponse.java  |   66 +
 .../messages/TcpDiscoveryRedirectToClient.java  |   23 +
 .../TcpDiscoveryStatusCheckMessage.java         |  123 +
 .../spi/discovery/tcp/messages/package.html     |   15 +
 .../ignite/spi/discovery/tcp/package.html       |   15 +
 .../gridgain/grid/GridBasicWarmupClosure.java   |    6 +-
 .../org/gridgain/grid/kernal/GridGainEx.java    |    6 +-
 .../discovery/GridDiscoveryManager.java         |    6 +-
 .../spi/discovery/DiscoveryMetricsHelper.java   |  360 --
 .../spi/discovery/DiscoveryMetricsProvider.java |   31 -
 .../discovery/DiscoveryNodeMetricsAdapter.java  | 1060 ----
 .../grid/spi/discovery/DiscoverySpi.java        |  132 -
 .../spi/discovery/DiscoverySpiDataExchange.java |   36 -
 .../discovery/DiscoverySpiHistorySupport.java   |   28 -
 .../spi/discovery/DiscoverySpiListener.java     |   35 -
 .../DiscoverySpiNodeAuthenticator.java          |   39 -
 .../spi/discovery/DiscoverySpiOrderSupport.java |   39 -
 .../gridgain/grid/spi/discovery/package.html    |   15 -
 .../discovery/tcp/TcpClientDiscoverySpi.java    | 1219 -----
 .../tcp/TcpClientDiscoverySpiMBean.java         |  156 -
 .../grid/spi/discovery/tcp/TcpDiscoverySpi.java | 5144 ------------------
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |  996 ----
 .../spi/discovery/tcp/TcpDiscoverySpiMBean.java |  267 -
 .../tcp/internal/TcpDiscoveryNode.java          |  443 --
 .../tcp/internal/TcpDiscoveryNodesRing.java     |  636 ---
 .../tcp/internal/TcpDiscoverySpiState.java      |   45 -
 .../tcp/internal/TcpDiscoveryStatistics.java    |  639 ---
 .../spi/discovery/tcp/internal/package.html     |   15 -
 .../tcp/ipfinder/TcpDiscoveryIpFinder.java      |   90 -
 .../ipfinder/TcpDiscoveryIpFinderAdapter.java   |   77 -
 .../ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java |  361 --
 .../discovery/tcp/ipfinder/jdbc/package.html    |   15 -
 .../TcpDiscoveryMulticastIpFinder.java          |  752 ---
 .../tcp/ipfinder/multicast/package.html         |   15 -
 .../spi/discovery/tcp/ipfinder/package.html     |   15 -
 .../sharedfs/TcpDiscoverySharedFsIpFinder.java  |  258 -
 .../tcp/ipfinder/sharedfs/package.html          |   15 -
 .../tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java |  255 -
 .../spi/discovery/tcp/ipfinder/vm/package.html  |   15 -
 .../messages/TcpDiscoveryAbstractMessage.java   |  266 -
 .../messages/TcpDiscoveryAuthFailedMessage.java |   72 -
 .../TcpDiscoveryCheckFailedMessage.java         |   71 -
 .../TcpDiscoveryClientReconnectMessage.java     |  119 -
 .../messages/TcpDiscoveryDiscardMessage.java    |   75 -
 .../TcpDiscoveryDuplicateIdMessage.java         |   75 -
 .../messages/TcpDiscoveryEnsureDelivery.java    |   23 -
 .../messages/TcpDiscoveryHandshakeRequest.java  |   44 -
 .../messages/TcpDiscoveryHandshakeResponse.java |   82 -
 .../messages/TcpDiscoveryHeartbeatMessage.java  |  308 --
 .../TcpDiscoveryJoinRequestMessage.java         |  102 -
 .../TcpDiscoveryLoopbackProblemMessage.java     |   87 -
 .../TcpDiscoveryNodeAddFinishedMessage.java     |   75 -
 .../messages/TcpDiscoveryNodeAddedMessage.java  |  246 -
 .../messages/TcpDiscoveryNodeFailedMessage.java |   93 -
 .../messages/TcpDiscoveryNodeLeftMessage.java   |   47 -
 .../tcp/messages/TcpDiscoveryPingRequest.java   |   65 -
 .../tcp/messages/TcpDiscoveryPingResponse.java  |   66 -
 .../messages/TcpDiscoveryRedirectToClient.java  |   23 -
 .../TcpDiscoveryStatusCheckMessage.java         |  123 -
 .../spi/discovery/tcp/messages/package.html     |   15 -
 .../grid/spi/discovery/tcp/package.html         |   15 -
 .../adaptive/GridAdaptiveLoadBalancingSpi.java  |    2 +-
 .../java/org/gridgain/grid/util/GridUtils.java  |    2 +-
 .../spring-cache-client-benchmark-1.xml         |    4 +-
 .../spring-cache-client-benchmark-2.xml         |    4 +-
 .../spring-cache-client-benchmark-3.xml         |    4 +-
 .../core/src/test/config/discovery-stress.xml   |    4 +-
 modules/core/src/test/config/example-cache.xml  |    4 +-
 modules/core/src/test/config/ggfs-loopback.xml  |    4 +-
 .../core/src/test/config/ggfs-no-endpoint.xml   |    4 +-
 modules/core/src/test/config/ggfs-shmem.xml     |    4 +-
 .../src/test/config/io-manager-benchmark.xml    |    4 +-
 .../src/test/config/job-loadtest/client.xml     |    4 +-
 .../src/test/config/job-loadtest/server.xml     |    4 +-
 modules/core/src/test/config/jobs-load-base.xml |    4 +-
 .../src/test/config/load/cache-benchmark.xml    |    4 +-
 .../test/config/load/cache-client-benchmark.xml |    4 +-
 .../core/src/test/config/load/dsi-load-base.xml |    4 +-
 .../src/test/config/load/merge-sort-base.xml    |    4 +-
 .../test/config/load/mongo-multinode-foster.xml |    4 +-
 .../test/config/loaders/grid-cfg-2-grids.xml    |    8 +-
 .../core/src/test/config/loaders/grid-cfg.xml   |    8 +-
 .../core/src/test/config/spring-cache-load.xml  |    4 +-
 .../config/spring-cache-put-remove-load.xml     |    4 +-
 .../core/src/test/config/spring-cache-swap.xml  |    4 +-
 .../src/test/config/spring-cache-teststore.xml  |    4 +-
 .../core/src/test/config/spring-multicache.xml  |    4 +-
 .../src/test/config/spring-start-nodes-attr.xml |    4 +-
 .../core/src/test/config/spring-start-nodes.xml |    4 +-
 .../config/streamer/spring-streamer-base.xml    |    8 +-
 .../test/config/websession/spring-cache-1.xml   |    4 +-
 .../test/config/websession/spring-cache-2.xml   |    4 +-
 .../test/config/websession/spring-cache-3.xml   |    4 +-
 .../optimized/GridOptimizedMarshallerTest.java  |    4 +-
 .../GridTestTcpDiscoveryIpFinderAdapter.java    |    2 +-
 ...idCacheCheckpointSpiSecondCacheSelfTest.java |    6 +-
 ...bStealingCollisionSpiAttributesSelfTest.java |    2 +-
 ...alingCollisionSpiCustomTopologySelfTest.java |    2 +-
 .../GridJobStealingCollisionSpiSelfTest.java    |    2 +-
 .../tcp/GridCacheDhtLockBackupSelfTest.java     |    6 +-
 .../tcp/GridOrderedMessageCancelSelfTest.java   |    6 +-
 ...ridAbstractDiscoveryRandomStartStopTest.java |  205 +
 .../GridAbstractDiscoverySelfTest.java          |  488 ++
 .../discovery/GridAbstractDiscoveryTest.java    |  145 +
 .../GridDiscoveryMetricsHelperSelfTest.java     |  141 +
 .../apache/ignite/spi/discovery/package.html    |   15 +
 .../tcp/GridTcpClientDiscoverySelfTest.java     |  683 +++
 .../GridTcpDiscoveryConcurrentStartTest.java    |  110 +
 ...GridTcpDiscoveryMarshallerCheckSelfTest.java |   94 +
 .../tcp/GridTcpDiscoveryMultiThreadedTest.java  |  199 +
 .../discovery/tcp/GridTcpDiscoverySelfTest.java |  983 ++++
 .../GridTcpDiscoverySnapshotHistoryTest.java    |  166 +
 .../tcp/GridTcpDiscoverySpiConfigSelfTest.java  |   37 +
 .../GridTcpDiscoverySpiRandomStartStopTest.java |   37 +
 .../tcp/GridTcpDiscoverySpiSelfTest.java        |   35 +
 .../GridTcpDiscoverySpiStartStopSelfTest.java   |   74 +
 .../GridTcpDiscoverySpiWildcardSelfTest.java    |   55 +
 ...ridTcpDiscoveryIpFinderAbstractSelfTest.java |  117 +
 .../GridTcpDiscoveryJdbcIpFinderSelfTest.java   |   82 +
 .../discovery/tcp/ipfinder/jdbc/package.html    |   15 +
 ...idTcpDiscoveryMulticastIpFinderSelfTest.java |  107 +
 .../spi/discovery/tcp/ipfinder/package.html     |   15 +
 ...ridTcpDiscoverySharedFsIpFinderSelfTest.java |   48 +
 .../tcp/ipfinder/sharedfs/package.html          |   15 +
 .../vm/GridTcpDiscoveryVmIpFinderSelfTest.java  |  185 +
 .../spi/discovery/tcp/ipfinder/vm/package.html  |   15 +
 .../ignite/spi/discovery/tcp/package.html       |   15 +
 .../GridCacheStoreValueBytesNode.java           |    4 +-
 ...CachePartitionFairAffinityNodesSelfTest.java |    6 +-
 ...CacheJdbcBlobStoreMultithreadedSelfTest.java |    6 +-
 .../ggfs/GridGgfsEventsAbstractSelfTest.java    |    4 +-
 .../GridGgfsFragmentizerAbstractSelfTest.java   |    6 +-
 .../grid/kernal/GridAffinityMappedTest.java     |    6 +-
 .../grid/kernal/GridAffinityP2PSelfTest.java    |    6 +-
 .../grid/kernal/GridAffinitySelfTest.java       |    6 +-
 .../kernal/GridCancelUnusedJobSelfTest.java     |    4 +-
 .../GridCancelledJobsMetricsSelfTest.java       |    4 +-
 .../grid/kernal/GridDiscoveryEventSelfTest.java |    6 +-
 .../grid/kernal/GridDiscoverySelfTest.java      |    6 +-
 .../kernal/GridJobMasterLeaveAwareSelfTest.java |    6 +-
 .../grid/kernal/GridManagementJobSelfTest.java  |    6 +-
 .../grid/kernal/GridMultipleJobsSelfTest.java   |    6 +-
 .../kernal/GridProjectionForCachesSelfTest.java |    8 +-
 ...ectionLocalJobMultipleArgumentsSelfTest.java |    6 +-
 .../grid/kernal/GridReleaseTypeSelfTest.java    |    6 +-
 .../grid/kernal/GridTaskMapAsyncSelfTest.java   |    4 +-
 .../GridTopologyBuildVersionSelfTest.java       |    6 +-
 .../managers/GridManagerStopSelfTest.java       |    4 +-
 .../GridCheckpointManagerAbstractSelfTest.java  |    6 +-
 .../checkpoint/GridCheckpointTaskSelfTest.java  |    8 +-
 .../GridCommunicationSendMessageSelfTest.java   |    6 +-
 .../GridDeploymentMessageCountSelfTest.java     |    6 +-
 .../GridDiscoveryManagerAliveCacheSelfTest.java |    6 +-
 .../GridDiscoveryManagerAttributesSelfTest.java |    6 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |    6 +-
 .../GridAffinityProcessorAbstractSelfTest.java  |    6 +-
 ...ridCacheAbstractByteArrayValuesSelfTest.java |    6 +-
 .../cache/GridCacheAbstractSelfTest.java        |    6 +-
 .../cache/GridCacheAffinityRoutingSelfTest.java |    6 +-
 .../GridCacheAtomicMessageCountSelfTest.java    |    6 +-
 .../cache/GridCacheBasicApiAbstractTest.java    |    4 +-
 .../cache/GridCacheBasicStoreAbstractTest.java  |    6 +-
 ...acheBasicStoreMultithreadedAbstractTest.java |    4 +-
 .../GridCacheBasicStoreNoBatchAbstractTest.java |    4 +-
 .../cache/GridCacheClearAllSelfTest.java        |    6 +-
 .../cache/GridCacheConcurrentMapSelfTest.java   |    6 +-
 .../GridCacheConcurrentTxMultiNodeTest.java     |    6 +-
 ...idCacheConfigurationConsistencySelfTest.java |    6 +-
 ...ridCacheConfigurationValidationSelfTest.java |    6 +-
 .../GridCacheDaemonNodeAbstractSelfTest.java    |    6 +-
 .../cache/GridCacheDeploymentSelfTest.java      |    6 +-
 .../cache/GridCacheEntryMemorySizeSelfTest.java |    6 +-
 .../cache/GridCacheEntryVersionSelfTest.java    |    6 +-
 .../GridCacheEvictionEventAbstractTest.java     |    6 +-
 .../GridCacheFieldsQueryNoDataSelfTest.java     |    6 +-
 ...idCacheGetAndTransformStoreAbstractTest.java |    6 +-
 .../cache/GridCacheGlobalClearAllSelfTest.java  |    6 +-
 .../GridCacheGroupLockAbstractSelfTest.java     |    6 +-
 .../GridCacheGroupLockFailoverSelfTest.java     |    6 +-
 .../cache/GridCacheIncrementTransformTest.java  |    6 +-
 .../cache/GridCacheIteratorPerformanceTest.java |    6 +-
 .../cache/GridCacheKeyCheckSelfTest.java        |    6 +-
 .../processors/cache/GridCacheLeakTest.java     |    6 +-
 .../cache/GridCacheLifecycleAwareSelfTest.java  |    2 +-
 .../cache/GridCacheLuceneQueryIndexTest.java    |    6 +-
 .../GridCacheMarshallerTxAbstractTest.java      |    6 +-
 .../cache/GridCacheMemoryModeSelfTest.java      |    6 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |    4 +-
 .../cache/GridCacheMultiUpdateLockSelfTest.java |    6 +-
 .../cache/GridCacheMvccManagerSelfTest.java     |    6 +-
 .../cache/GridCacheMvccPartitionedSelfTest.java |    6 +-
 .../processors/cache/GridCacheMvccSelfTest.java |    6 +-
 .../cache/GridCacheNestedTxAbstractTest.java    |    6 +-
 .../cache/GridCacheObjectToStringSelfTest.java  |    6 +-
 .../cache/GridCacheOffHeapSelfTest.java         |    6 +-
 .../processors/cache/GridCacheOffHeapTest.java  |    6 +-
 .../GridCacheOrderedPreloadingSelfTest.java     |    6 +-
 .../cache/GridCacheP2PUndeploySelfTest.java     |    6 +-
 .../cache/GridCachePartitionedGetSelfTest.java  |    8 +-
 ...hePartitionedProjectionAffinitySelfTest.java |    6 +-
 .../cache/GridCachePartitionedWritesTest.java   |    4 +-
 .../GridCachePreloadingEvictionsSelfTest.java   |    6 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |    6 +-
 .../GridCacheReferenceCleanupSelfTest.java      |    6 +-
 .../GridCacheRefreshAheadAbstractSelfTest.java  |    6 +-
 .../cache/GridCacheReloadSelfTest.java          |    4 +-
 ...ridCacheReplicatedSynchronousCommitTest.java |    6 +-
 .../cache/GridCacheSlowTxWarnTest.java          |    6 +-
 .../processors/cache/GridCacheStopSelfTest.java |    4 +-
 .../cache/GridCacheStorePutxSelfTest.java       |    6 +-
 .../cache/GridCacheStoreValueBytesSelfTest.java |    6 +-
 .../cache/GridCacheSwapPreloadSelfTest.java     |    6 +-
 .../cache/GridCacheSwapReloadSelfTest.java      |    6 +-
 .../cache/GridCacheTtlManagerSelfTest.java      |    6 +-
 .../cache/GridCacheTxAbstractTest.java          |    6 +-
 .../GridCacheTxConcurrentGetAbstractTest.java   |    6 +-
 .../cache/GridCacheTxMultiNodeAbstractTest.java |    6 +-
 .../GridCacheTxReentryAbstractSelfTest.java     |    6 +-
 .../GridCacheVariableTopologySelfTest.java      |    6 +-
 .../GridCacheWriteBehindStoreAbstractTest.java  |    4 +-
 ...BehindStorePartitionedMultiNodeSelfTest.java |    6 +-
 .../GridCacheAtomicLongApiSelfTest.java         |    6 +-
 ...CacheAtomicReferenceApiSelfAbstractTest.java |    6 +-
 ...cheAtomicReferenceMultiNodeAbstractTest.java |    6 +-
 ...idCacheAtomicStampedApiSelfAbstractTest.java |    6 +-
 .../GridCacheCountDownLatchSelfTest.java        |    6 +-
 .../GridCacheQueueApiSelfAbstractTest.java      |    6 +-
 ...ridCacheQueueJoinedNodeSelfAbstractTest.java |    6 +-
 ...GridCacheQueueMultiNodeAbstractSelfTest.java |    6 +-
 ...dCacheQueueMultiNodeConsistencySelfTest.java |    6 +-
 ...CacheQueueRotativeMultiNodeAbstractTest.java |    6 +-
 .../GridCacheSequenceApiSelfAbstractTest.java   |    6 +-
 ...dCacheSequenceMultiNodeAbstractSelfTest.java |    6 +-
 ...titionedAtomicSequenceMultiThreadedTest.java |    6 +-
 ...GridCachePartitionedNodeRestartSelfTest.java |    6 +-
 ...idCachePartitionedNodeRestartTxSelfTest.java |    6 +-
 ...PartitionedQueueCreateMultiNodeSelfTest.java |    6 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |    6 +-
 .../GridCacheAbstractJobExecutionTest.java      |    6 +-
 .../GridCacheAbstractNodeRestartSelfTest.java   |    6 +-
 .../GridCacheAbstractPrimarySyncSelfTest.java   |    6 +-
 .../GridCacheBasicOpAbstractTest.java           |    6 +-
 .../distributed/GridCacheLockAbstractTest.java  |    6 +-
 .../GridCacheMultiNodeAbstractTest.java         |    6 +-
 .../GridCacheMultiNodeLockAbstractTest.java     |    6 +-
 ...dCacheMultithreadedFailoverAbstractTest.java |    6 +-
 .../GridCacheNodeFailureAbstractTest.java       |    6 +-
 ...dCachePartitionedAffinityFilterSelfTest.java |    6 +-
 ...chePartitionedReloadAllAbstractSelfTest.java |    6 +-
 .../GridCachePreloadEventsAbstractSelfTest.java |    6 +-
 .../GridCachePreloadLifecycleAbstractTest.java  |    6 +-
 ...GridCachePreloadRestartAbstractSelfTest.java |    6 +-
 .../GridCacheTransformEventSelfTest.java        |    6 +-
 ...cheTxConsistencyRestartAbstractSelfTest.java |    6 +-
 ...heAbstractTransformWriteThroughSelfTest.java |    6 +-
 .../dht/GridCacheColocatedDebugTest.java        |    6 +-
 ...eColocatedOptimisticTransactionSelfTest.java |    6 +-
 ...dCacheColocatedTxSingleThreadedSelfTest.java |    6 +-
 .../dht/GridCacheDhtEntrySelfTest.java          |    6 +-
 ...GridCacheDhtEvictionNearReadersSelfTest.java |    6 +-
 .../dht/GridCacheDhtEvictionSelfTest.java       |    6 +-
 .../GridCacheDhtEvictionsDisabledSelfTest.java  |    6 +-
 .../dht/GridCacheDhtInternalEntrySelfTest.java  |    6 +-
 .../dht/GridCacheDhtMappingSelfTest.java        |    6 +-
 .../dht/GridCacheDhtPreloadBigDataSelfTest.java |    6 +-
 .../dht/GridCacheDhtPreloadDelayedSelfTest.java |    6 +-
 .../GridCacheDhtPreloadDisabledSelfTest.java    |    6 +-
 .../GridCacheDhtPreloadMessageCountTest.java    |    6 +-
 ...ridCacheDhtPreloadMultiThreadedSelfTest.java |    6 +-
 .../dht/GridCacheDhtPreloadPutGetSelfTest.java  |    6 +-
 .../dht/GridCacheDhtPreloadSelfTest.java        |    6 +-
 .../GridCacheDhtPreloadStartStopSelfTest.java   |    6 +-
 .../dht/GridCacheDhtPreloadUnloadSelfTest.java  |    6 +-
 ...dCachePartitionedTopologyChangeSelfTest.java |    6 +-
 ...ridCachePartitionedUnloadEventsSelfTest.java |    6 +-
 ...eAtomicInvalidPartitionHandlingSelfTest.java |    6 +-
 ...unctionExcludeNeighborsAbstractSelfTest.java |    8 +-
 .../near/GridCacheGetStoreErrorSelfTest.java    |    6 +-
 .../near/GridCacheNearEvictionSelfTest.java     |    6 +-
 .../near/GridCacheNearMultiGetSelfTest.java     |    6 +-
 .../near/GridCacheNearMultiNodeSelfTest.java    |    6 +-
 .../near/GridCacheNearOneNodeSelfTest.java      |    4 +-
 .../near/GridCacheNearOnlyTopologySelfTest.java |    6 +-
 .../GridCacheNearReaderPreloadSelfTest.java     |    6 +-
 .../near/GridCacheNearReadersSelfTest.java      |    6 +-
 .../near/GridCacheNearTxMultiNodeSelfTest.java  |    6 +-
 ...AffinityExcludeNeighborsPerformanceTest.java |    6 +-
 ...rtitionedAffinityHashIdResolverSelfTest.java |    6 +-
 .../GridCachePartitionedAffinitySelfTest.java   |    6 +-
 ...ePartitionedBasicStoreMultiNodeSelfTest.java |    6 +-
 .../GridCachePartitionedEvictionSelfTest.java   |    6 +-
 ...titionedExplicitLockNodeFailureSelfTest.java |    6 +-
 ...GridCachePartitionedFilteredPutSelfTest.java |    8 +-
 .../GridCachePartitionedLoadCacheSelfTest.java  |    6 +-
 ...achePartitionedMultiNodeCounterSelfTest.java |    6 +-
 ...ePartitionedMultiThreadedPutGetSelfTest.java |    6 +-
 ...hePartitionedQueryMultiThreadedSelfTest.java |    6 +-
 .../GridCachePartitionedStorePutSelfTest.java   |    8 +-
 ...CachePartitionedTxMultiThreadedSelfTest.java |    6 +-
 .../GridCachePartitionedTxSalvageSelfTest.java  |    6 +-
 ...achePartitionedTxSingleThreadedSelfTest.java |    6 +-
 .../GridCachePartitionedTxTimeoutSelfTest.java  |    6 +-
 .../near/GridPartitionedBackupLoadSelfTest.java |    8 +-
 .../GridCacheReplicatedInvalidateSelfTest.java  |    6 +-
 ...dCacheReplicatedTxMultiThreadedSelfTest.java |    6 +-
 ...CacheReplicatedTxSingleThreadedSelfTest.java |    6 +-
 .../GridCacheReplicatedTxTimeoutSelfTest.java   |    6 +-
 ...idCacheReplicatedUnswapAdvancedSelfTest.java |    6 +-
 .../GridCacheSyncReplicatedPreloadSelfTest.java |    6 +-
 .../GridCacheReplicatedPreloadSelfTest.java     |    6 +-
 ...eplicatedPreloadStartStopEventsSelfTest.java |    6 +-
 ...heConcurrentEvictionConsistencySelfTest.java |    6 +-
 .../GridCacheConcurrentEvictionsSelfTest.java   |    6 +-
 .../GridCacheDistributedEvictionsSelfTest.java  |    6 +-
 .../GridCacheEmptyEntriesAbstractSelfTest.java  |    6 +-
 .../eviction/GridCacheEvictionAbstractTest.java |    6 +-
 .../GridCacheEvictionFilterSelfTest.java        |    6 +-
 .../GridCacheEvictionLockUnlockSelfTest.java    |    6 +-
 .../GridCacheEvictionTouchSelfTest.java         |    6 +-
 .../GridCacheLruNearEvictionPolicySelfTest.java |    6 +-
 ...heNearOnlyLruNearEvictionPolicySelfTest.java |    6 +-
 .../local/GridCacheLocalLoadAllSelfTest.java    |    4 +-
 .../cache/local/GridCacheLocalLockSelfTest.java |    4 +-
 .../GridCacheLocalMultithreadedSelfTest.java    |    4 +-
 .../local/GridCacheLocalTxTimeoutSelfTest.java  |    4 +-
 .../GridCacheSwapScanQueryAbstractSelfTest.java |    6 +-
 ...ridCacheContinuousQueryAbstractSelfTest.java |    6 +-
 ...dCacheAbstractReduceFieldsQuerySelfTest.java |    8 +-
 .../clock/GridTimeSyncProcessorSelfTest.java    |    6 +-
 .../closure/GridClosureProcessorRemoteTest.java |    2 +-
 .../closure/GridClosureProcessorSelfTest.java   |    6 +-
 .../dataload/GridDataLoaderImplSelfTest.java    |    6 +-
 .../dataload/GridDataLoaderPerformanceTest.java |    6 +-
 .../GridDataLoaderProcessorSelfTest.java        |    6 +-
 ...heGgfsPerBlockLruEvictionPolicySelfTest.java |    4 +-
 .../ggfs/GridGgfsAbstractSelfTest.java          |    4 +-
 .../processors/ggfs/GridGgfsCacheSelfTest.java  |    4 +-
 .../ggfs/GridGgfsDataManagerSelfTest.java       |    6 +-
 .../ggfs/GridGgfsMetaManagerSelfTest.java       |    6 +-
 .../ggfs/GridGgfsMetricsSelfTest.java           |    6 +-
 .../processors/ggfs/GridGgfsModesSelfTest.java  |    4 +-
 .../ggfs/GridGgfsProcessorSelfTest.java         |    6 +-
 .../GridGgfsProcessorValidationSelfTest.java    |    6 +-
 ...IpcEndpointRegistrationAbstractSelfTest.java |    6 +-
 .../processors/ggfs/GridGgfsSizeSelfTest.java   |    6 +-
 .../ggfs/GridGgfsStreamsSelfTest.java           |    6 +-
 .../processors/ggfs/GridGgfsTaskSelfTest.java   |    6 +-
 .../GridGgfsAbstractRecordResolverSelfTest.java |    6 +-
 .../cache/GridCacheCommandHandlerSelfTest.java  |    4 +-
 .../GridServiceProcessorAbstractSelfTest.java   |    6 +-
 .../streamer/GridStreamerEvictionSelfTest.java  |    6 +-
 .../streamer/GridStreamerFailoverSelfTest.java  |    6 +-
 .../streamer/GridStreamerSelfTest.java          |    6 +-
 .../gridgain/grid/lang/GridFuncSelfTest.java    |    4 +-
 .../grid/messaging/GridMessagingSelfTest.java   |    6 +-
 .../GridP2PContinuousDeploymentSelfTest.java    |    6 +-
 .../p2p/GridP2PDoubleDeploymentSelfTest.java    |    6 +-
 .../GridP2PMissedResourceCacheSizeSelfTest.java |    6 +-
 .../p2p/GridP2PSameClassLoaderSelfTest.java     |    2 +-
 ...SessionCancelSiblingsFromFutureSelfTest.java |    4 +-
 ...ridSessionCancelSiblingsFromJobSelfTest.java |    4 +-
 ...idSessionCancelSiblingsFromTaskSelfTest.java |    4 +-
 ...GridSessionJobWaitTaskAttributeSelfTest.java |    4 +-
 .../GridSessionSetFutureAttributeSelfTest.java  |    4 +-
 ...nSetFutureAttributeWaitListenerSelfTest.java |    4 +-
 .../GridSessionSetJobAttributeSelfTest.java     |    4 +-
 ...sionSetJobAttributeWaitListenerSelfTest.java |    4 +-
 .../GridSessionWaitAttributeSelfTest.java       |    4 +-
 .../grid/spi/GridSpiLocalHostInjectionTest.java |    4 +-
 .../grid/spi/GridTcpSpiForwardingSelfTest.java  |    8 +-
 ...ridAbstractDiscoveryRandomStartStopTest.java |  205 -
 .../GridAbstractDiscoverySelfTest.java          |  488 --
 .../discovery/GridAbstractDiscoveryTest.java    |  145 -
 .../GridDiscoveryMetricsHelperSelfTest.java     |  141 -
 .../gridgain/grid/spi/discovery/package.html    |   15 -
 .../tcp/GridTcpClientDiscoverySelfTest.java     |  683 ---
 .../GridTcpDiscoveryConcurrentStartTest.java    |  110 -
 ...GridTcpDiscoveryMarshallerCheckSelfTest.java |   94 -
 .../tcp/GridTcpDiscoveryMultiThreadedTest.java  |  199 -
 .../discovery/tcp/GridTcpDiscoverySelfTest.java |  983 ----
 .../GridTcpDiscoverySnapshotHistoryTest.java    |  166 -
 .../tcp/GridTcpDiscoverySpiConfigSelfTest.java  |   37 -
 .../GridTcpDiscoverySpiRandomStartStopTest.java |   37 -
 .../tcp/GridTcpDiscoverySpiSelfTest.java        |   35 -
 .../GridTcpDiscoverySpiStartStopSelfTest.java   |   74 -
 .../GridTcpDiscoverySpiWildcardSelfTest.java    |   55 -
 ...ridTcpDiscoveryIpFinderAbstractSelfTest.java |  117 -
 .../GridTcpDiscoveryJdbcIpFinderSelfTest.java   |   82 -
 .../discovery/tcp/ipfinder/jdbc/package.html    |   15 -
 ...idTcpDiscoveryMulticastIpFinderSelfTest.java |  107 -
 .../spi/discovery/tcp/ipfinder/package.html     |   15 -
 ...ridTcpDiscoverySharedFsIpFinderSelfTest.java |   48 -
 .../tcp/ipfinder/sharedfs/package.html          |   15 -
 .../vm/GridTcpDiscoveryVmIpFinderSelfTest.java  |  185 -
 .../spi/discovery/tcp/ipfinder/vm/package.html  |   15 -
 .../grid/spi/discovery/tcp/package.html         |   15 -
 .../noop/GridNoopSwapSpaceSpiSelfTest.java      |    4 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |    6 +-
 ...tartupWithUndefinedGridGainHomeSelfTest.java |    6 +-
 .../grid/util/GridTopologyHeapSizeSelfTest.java |    8 +-
 .../shmem/GridIpcSharedMemoryNodeStartup.java   |    4 +-
 .../loadtests/GridCacheMultiNodeLoadTest.java   |    6 +-
 ...ridCacheAffinityTransactionsOffHeapTest.java |    6 +-
 .../cache/GridCacheSingleNodeLoadTest.java      |    4 +-
 .../GridCacheWriteBehindStoreLoadTest.java      |    4 +-
 .../capacity/spring-capacity-cache.xml          |    4 +-
 .../loadtests/colocation/spring-colocation.xml  |    4 +-
 .../communication/GridIoManagerBenchmark0.java  |    6 +-
 .../GridCachePartitionedAtomicLongLoadTest.java |    6 +-
 .../multisplit/GridMultiSplitsLoadTest.java     |    4 +-
 ...ridSingleSplitsNewNodesAbstractLoadTest.java |    2 +-
 ...idSingleSplitsNewNodesMulticastLoadTest.java |    4 +-
 .../GridSingleSplitsRedeployLoadTest.java       |    4 +-
 .../direct/stealing/GridStealingLoadTest.java   |    4 +-
 .../swap/GridSwapEvictAllBenchmark.java         |    6 +-
 .../testframework/GridSpiTestContext.java       |    2 +-
 .../testframework/junits/GridAbstractTest.java  |    4 +-
 .../junits/spi/GridSpiAbstractConfigTest.java   |    2 +-
 .../junits/spi/GridSpiAbstractTest.java         |   10 +-
 .../testframework/junits/spi/GridSpiTest.java   |    6 +-
 .../GridSpiDiscoverySelfTestSuite.java          |   10 +-
 .../testsuites/GridUtilSelfTestSuite.java       |    2 +-
 .../core/src/test/webapp/META-INF/gg-config.xml |    4 +-
 ...dGgfsHadoop20FileSystemAbstractSelfTest.java |    6 +-
 .../GridGgfsHadoopDualAbstractSelfTest.java     |    4 +-
 ...ridGgfsHadoopFileSystemAbstractSelfTest.java |    6 +-
 .../GridGgfsHadoopFileSystemClientSelfTest.java |    4 +-
 ...idGgfsHadoopFileSystemHandshakeSelfTest.java |    6 +-
 ...ridGgfsHadoopFileSystemIpcCacheSelfTest.java |    6 +-
 ...GgfsHadoopFileSystemLoggerStateSelfTest.java |    4 +-
 ...fsHadoopFileSystemSecondaryModeSelfTest.java |    4 +-
 .../ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java |    6 +-
 ...idHibernateL2CacheConfigurationSelfTest.java |    4 +-
 .../hibernate/GridHibernateL2CacheSelfTest.java |    6 +-
 .../GridCacheAbstractFieldsQuerySelfTest.java   |    8 +-
 .../cache/GridCacheAbstractQuerySelfTest.java   |    6 +-
 .../cache/GridCacheCrossCacheQuerySelfTest.java |    6 +-
 .../cache/GridCacheOffHeapAndSwapSelfTest.java  |    6 +-
 .../cache/GridCacheQueryLoadSelfTest.java       |    6 +-
 .../cache/GridCacheQueryMetricsSelfTest.java    |    6 +-
 .../GridCacheQueryMultiThreadedSelfTest.java    |    6 +-
 .../GridCacheQueryUserResourceSelfTest.java     |    8 +-
 .../GridCacheSqlQueryMultiThreadedSelfTest.java |    6 +-
 .../processors/cache/GridCacheSwapSelfTest.java |    6 +-
 .../cache/GridIndexingWithNoopSwapSelfTest.java |    6 +-
 ...idCachePartitionedHitsAndMissesSelfTest.java |    6 +-
 .../near/GridCacheQueryNodeRestartSelfTest.java |    6 +-
 .../h2indexing/GridH2IndexingSpiLoadTest.java   |    4 +-
 .../GridTmLookupLifecycleAwareSelfTest.java     |    2 +-
 .../scalar/src/test/resources/spring-cache.xml  |    4 +-
 .../test/resources/spring-ping-pong-partner.xml |    4 +-
 .../spring/GridSpringCacheManagerSelfTest.java  |    6 +-
 .../grid/kernal/GridFactorySelfTest.java        |    2 +-
 .../GridSpringBeanSerializationSelfTest.java    |    6 +-
 .../p2p/GridP2PUserVersionChangeSelfTest.java   |    6 +-
 .../grid/p2p/GridP2PDisabledSelfTest.java       |    2 +-
 .../commands/alert/VisorAlertCommandSpec.scala  |    6 +-
 .../cache/VisorCacheClearCommandSpec.scala      |    4 +-
 .../cache/VisorCacheCompactCommandSpec.scala    |    4 +-
 .../cswap/VisorCacheSwapCommandSpec.scala       |    4 +-
 pom.xml                                         |    4 +-
 563 files changed, 20859 insertions(+), 20860 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/examples/config/example-cache.xml
----------------------------------------------------------------------
diff --git a/examples/config/example-cache.xml b/examples/config/example-cache.xml
index ebc9920..6e95de4 100644
--- a/examples/config/example-cache.xml
+++ b/examples/config/example-cache.xml
@@ -171,7 +171,7 @@
 
         <!-- Explicitly configure TCP discovery SPI to provide list of initial nodes. -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
                     <!--
                         GridGain provides several options for automatic discovery that can be used
@@ -180,7 +180,7 @@
                     -->
                     <!-- Uncomment multicast IP finder to enable multicast-based discovery of initial nodes. -->
                     <!--<bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">-->
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!-- In distributed environment, replace with actual host IP address. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/examples/config/example-compute.xml
----------------------------------------------------------------------
diff --git a/examples/config/example-compute.xml b/examples/config/example-compute.xml
index f87567d..141faac 100644
--- a/examples/config/example-compute.xml
+++ b/examples/config/example-compute.xml
@@ -43,7 +43,7 @@
 
         <!-- Explicitly configure TCP discovery SPI to provide list of initial nodes. -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
                     <!--
                         GridGain provides several options for automatic discovery that can be used
@@ -52,7 +52,7 @@
                     -->
                     <!-- Uncomment multicast IP finder to enable multicast-based discovery of initial nodes. -->
                     <!--<bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">-->
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!-- In distributed environment, replace with actual host IP address. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/examples/config/example-streamer.xml
----------------------------------------------------------------------
diff --git a/examples/config/example-streamer.xml b/examples/config/example-streamer.xml
index 429edbd..74efd38 100644
--- a/examples/config/example-streamer.xml
+++ b/examples/config/example-streamer.xml
@@ -266,7 +266,7 @@
 
         <!-- Explicitly configure TCP discovery SPI to provide list of initial nodes. -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
                     <!--
                         GridGain provides several options for automatic discovery that can be used
@@ -275,7 +275,7 @@
                     -->
                     <!-- Uncomment multicast IP finder to enable multicast-based discovery of initial nodes. -->
                     <!--<bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">-->
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!-- In distributed environment, replace with actual host IP address. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/examples/config/filesystem/example-ggfs.xml
----------------------------------------------------------------------
diff --git a/examples/config/filesystem/example-ggfs.xml b/examples/config/filesystem/example-ggfs.xml
index a4f19f6..bfa228e 100644
--- a/examples/config/filesystem/example-ggfs.xml
+++ b/examples/config/filesystem/example-ggfs.xml
@@ -138,7 +138,7 @@
 
         <!-- Explicitly configure TCP discovery SPI to provide list of initial nodes. -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
                     <!--
                         GridGain provides several options for automatic discovery that can be used
@@ -147,7 +147,7 @@
                     -->
                     <!-- Uncomment multicast IP finder to enable multicast-based discovery of initial nodes. -->
                     <!--<bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">-->
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!-- In distributed environment, replace with actual host IP address. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/examples/src/main/java/org/gridgain/examples/compute/failover/ComputeFailoverNodeStartup.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/gridgain/examples/compute/failover/ComputeFailoverNodeStartup.java b/examples/src/main/java/org/gridgain/examples/compute/failover/ComputeFailoverNodeStartup.java
index 7950ec2..eb25eca 100644
--- a/examples/src/main/java/org/gridgain/examples/compute/failover/ComputeFailoverNodeStartup.java
+++ b/examples/src/main/java/org/gridgain/examples/compute/failover/ComputeFailoverNodeStartup.java
@@ -13,8 +13,8 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.checkpoint.sharedfs.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import java.util.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/examples/src/main/java/org/gridgain/examples/datagrid/hibernate/HibernateL2CacheExampleNodeStartup.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/gridgain/examples/datagrid/hibernate/HibernateL2CacheExampleNodeStartup.java b/examples/src/main/java/org/gridgain/examples/datagrid/hibernate/HibernateL2CacheExampleNodeStartup.java
index 76d7b15..e7d5a97 100644
--- a/examples/src/main/java/org/gridgain/examples/datagrid/hibernate/HibernateL2CacheExampleNodeStartup.java
+++ b/examples/src/main/java/org/gridgain/examples/datagrid/hibernate/HibernateL2CacheExampleNodeStartup.java
@@ -13,8 +13,8 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import java.util.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java b/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java
index 9035376..0737c05 100644
--- a/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java
+++ b/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.examples.datagrid.store.dummy.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import java.util.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/examples/src/main/java/org/gridgain/examples/misc/client/memcache/MemcacheRestExampleNodeStartup.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/gridgain/examples/misc/client/memcache/MemcacheRestExampleNodeStartup.java b/examples/src/main/java/org/gridgain/examples/misc/client/memcache/MemcacheRestExampleNodeStartup.java
index 4de9148..dc5d4a2 100644
--- a/examples/src/main/java/org/gridgain/examples/misc/client/memcache/MemcacheRestExampleNodeStartup.java
+++ b/examples/src/main/java/org/gridgain/examples/misc/client/memcache/MemcacheRestExampleNodeStartup.java
@@ -14,8 +14,8 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/examples/src/main/java/org/gridgain/examples/misc/springbean/spring-bean.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/gridgain/examples/misc/springbean/spring-bean.xml b/examples/src/main/java/org/gridgain/examples/misc/springbean/spring-bean.xml
index 1d463fd..497b0df 100644
--- a/examples/src/main/java/org/gridgain/examples/misc/springbean/spring-bean.xml
+++ b/examples/src/main/java/org/gridgain/examples/misc/springbean/spring-bean.xml
@@ -46,11 +46,11 @@
 
                 <!-- Explicitly configure TCP discovery SPI to provide list of initial nodes. -->
                 <property name="discoverySpi">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                         <property name="ipFinder">
                             <!-- Uncomment multicast IP finder to enable multicast-based discovery of initial nodes. -->
                             <!--<bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">-->
-                            <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                            <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                                 <property name="addresses">
                                     <list>
                                         <!-- In distributed environment, replace with actual host IP address. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/examples/src/main/scala/org/gridgain/scalar/examples/ScalarJvmCloudExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/gridgain/scalar/examples/ScalarJvmCloudExample.scala b/examples/src/main/scala/org/gridgain/scalar/examples/ScalarJvmCloudExample.scala
index e4b603e..f10bb2a 100644
--- a/examples/src/main/scala/org/gridgain/scalar/examples/ScalarJvmCloudExample.scala
+++ b/examples/src/main/scala/org/gridgain/scalar/examples/ScalarJvmCloudExample.scala
@@ -4,8 +4,8 @@ import java.util.concurrent.Executors
 import java.util.concurrent.TimeUnit._
 import javax.swing.{JComponent, JLabel, JOptionPane}
 import org.apache.ignite.configuration.IgniteConfiguration
-import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
 import org.gridgain.grid.util.scala.impl
 import org.gridgain.scalar.scalar
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aop/src/test/java/org/gridgain/grid/gridify/GridAbstractAopTest.java
----------------------------------------------------------------------
diff --git a/modules/aop/src/test/java/org/gridgain/grid/gridify/GridAbstractAopTest.java b/modules/aop/src/test/java/org/gridgain/grid/gridify/GridAbstractAopTest.java
index f2922de..7b9489a 100644
--- a/modules/aop/src/test/java/org/gridgain/grid/gridify/GridAbstractAopTest.java
+++ b/modules/aop/src/test/java/org/gridgain/grid/gridify/GridAbstractAopTest.java
@@ -15,7 +15,7 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.spi.deployment.local.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aop/src/test/java/org/gridgain/loadtests/direct/singlesplit/GridSingleSplitsLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/aop/src/test/java/org/gridgain/loadtests/direct/singlesplit/GridSingleSplitsLoadTest.java b/modules/aop/src/test/java/org/gridgain/loadtests/direct/singlesplit/GridSingleSplitsLoadTest.java
index 61975dc..76355f3 100644
--- a/modules/aop/src/test/java/org/gridgain/loadtests/direct/singlesplit/GridSingleSplitsLoadTest.java
+++ b/modules/aop/src/test/java/org/gridgain/loadtests/direct/singlesplit/GridSingleSplitsLoadTest.java
@@ -17,7 +17,7 @@ import org.apache.log4j.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.loadtest.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.config.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aop/src/test/java/org/gridgain/loadtests/gridify/GridifySingleSplitLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/aop/src/test/java/org/gridgain/loadtests/gridify/GridifySingleSplitLoadTest.java b/modules/aop/src/test/java/org/gridgain/loadtests/gridify/GridifySingleSplitLoadTest.java
index 9e9f908..42a4c99 100644
--- a/modules/aop/src/test/java/org/gridgain/loadtests/gridify/GridifySingleSplitLoadTest.java
+++ b/modules/aop/src/test/java/org/gridgain/loadtests/gridify/GridifySingleSplitLoadTest.java
@@ -16,8 +16,8 @@ import org.apache.log4j.*;
 import org.gridgain.grid.loadtest.*;
 import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.config.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aop/src/test/java/org/test/gridify/GridExternalNonSpringAopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aop/src/test/java/org/test/gridify/GridExternalNonSpringAopSelfTest.java b/modules/aop/src/test/java/org/test/gridify/GridExternalNonSpringAopSelfTest.java
index 0a078bd..101cacc 100644
--- a/modules/aop/src/test/java/org/test/gridify/GridExternalNonSpringAopSelfTest.java
+++ b/modules/aop/src/test/java/org/test/gridify/GridExternalNonSpringAopSelfTest.java
@@ -12,7 +12,7 @@ package org.test.gridify;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.gridify.*;
 import org.apache.ignite.spi.deployment.local.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aws/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java b/modules/aws/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java
new file mode 100644
index 0000000..0eb38f1
--- /dev/null
+++ b/modules/aws/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java
@@ -0,0 +1,312 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder.s3;
+
+import com.amazonaws.*;
+import com.amazonaws.auth.*;
+import com.amazonaws.services.s3.*;
+import com.amazonaws.services.s3.model.*;
+import org.apache.ignite.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+/**
+ * AWS S3-based IP finder.
+ * <p>
+ * For information about Amazon S3 visit <a href="http://aws.amazon.com">aws.amazon.com</a>.
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * <ul>
+ *      <li>AWS credentials (see {@link #setAwsCredentials(AWSCredentials)})</li>
+ *      <li>Bucket name (see {@link #setBucketName(String)})</li>
+ * </ul>
+ * <h2 class="header">Optional</h2>
+ * <ul>
+ *      <li>Client configuration (see {@link #setClientConfiguration(ClientConfiguration)})</li>
+ *      <li>Shared flag (see {@link #setShared(boolean)})</li>
+ * </ul>
+ * <p>
+ * The finder will create S3 bucket with configured name. The bucket will contain entries named
+ * like the following: {@code 192.168.1.136#1001}.
+ * <p>
+ * Note that storing data in AWS S3 service will result in charges to your AWS account.
+ * Choose another implementation of {@link org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} for local
+ * or home network tests.
+ * <p>
+ * Note that this finder is shared by default (see {@link org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()}.
+ */
+public class GridTcpDiscoveryS3IpFinder extends TcpDiscoveryIpFinderAdapter {
+    /** Delimiter to use in S3 entries name. */
+    public static final String DELIM = "#";
+
+    /** Entry content. */
+    private static final byte[] ENTRY_CONTENT = new byte[] {1};
+
+    /** Entry metadata with content length set. */
+    private static final ObjectMetadata ENTRY_METADATA;
+
+    static {
+        ENTRY_METADATA = new ObjectMetadata();
+
+        ENTRY_METADATA.setContentLength(ENTRY_CONTENT.length);
+    }
+
+    /** Grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Client to interact with S3 storage. */
+    @GridToStringExclude
+    private AmazonS3 s3;
+
+    /** Bucket name. */
+    private String bucketName;
+
+    /** Init guard. */
+    @GridToStringExclude
+    private final AtomicBoolean initGuard = new AtomicBoolean();
+
+    /** Init latch. */
+    @GridToStringExclude
+    private final CountDownLatch initLatch = new CountDownLatch(1);
+
+    /** Amazon client configuration. */
+    private ClientConfiguration cfg;
+
+    /** AWS Credentials. */
+    @GridToStringExclude
+    private AWSCredentials cred;
+
+    /**
+     * Constructor.
+     */
+    public GridTcpDiscoveryS3IpFinder() {
+        setShared(true);
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
+        initClient();
+
+        Collection<InetSocketAddress> addrs = new LinkedList<>();
+
+        try {
+            ObjectListing list = s3.listObjects(bucketName);
+
+            while (true) {
+                for (S3ObjectSummary sum : list.getObjectSummaries()) {
+                    String key = sum.getKey();
+
+                    StringTokenizer st = new StringTokenizer(key, DELIM);
+
+                    if (st.countTokens() != 2)
+                        U.error(log, "Failed to parse S3 entry due to invalid format: " + key);
+                    else {
+                        String addrStr = st.nextToken();
+                        String portStr = st.nextToken();
+
+                        int port = -1;
+
+                        try {
+                            port = Integer.parseInt(portStr);
+                        }
+                        catch (NumberFormatException e) {
+                            U.error(log, "Failed to parse port for S3 entry: " + key, e);
+                        }
+
+                        if (port != -1)
+                            try {
+                                addrs.add(new InetSocketAddress(addrStr, port));
+                            }
+                            catch (IllegalArgumentException e) {
+                                U.error(log, "Failed to parse port for S3 entry: " + key, e);
+                            }
+                    }
+                }
+
+                if (list.isTruncated())
+                    list = s3.listNextBatchOfObjects(list);
+                else
+                    break;
+            }
+        }
+        catch (AmazonClientException e) {
+            throw new IgniteSpiException("Failed to list objects in the bucket: " + bucketName, e);
+        }
+
+        return addrs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        assert !F.isEmpty(addrs);
+
+        initClient();
+
+        for (InetSocketAddress addr : addrs) {
+            String key = key(addr);
+
+            try {
+                s3.putObject(bucketName, key, new ByteArrayInputStream(ENTRY_CONTENT), ENTRY_METADATA);
+            }
+            catch (AmazonClientException e) {
+                throw new IgniteSpiException("Failed to put entry [bucketName=" + bucketName +
+                    ", entry=" + key + ']', e);
+            }
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        assert !F.isEmpty(addrs);
+
+        initClient();
+
+        for (InetSocketAddress addr : addrs) {
+            String key = key(addr);
+
+            try {
+                s3.deleteObject(bucketName, key);
+            }
+            catch (AmazonClientException e) {
+                throw new IgniteSpiException("Failed to delete entry [bucketName=" + bucketName +
+                    ", entry=" + key + ']', e);
+            }
+        }
+    }
+
+    /**
+     * Gets S3 key for provided address.
+     *
+     * @param addr Node address.
+     * @return Key.
+     */
+    private String key(InetSocketAddress addr) {
+        assert addr != null;
+
+        SB sb = new SB();
+
+        sb.a(addr.getAddress().getHostAddress())
+            .a(DELIM)
+            .a(addr.getPort());
+
+        return sb.toString();
+    }
+
+    /**
+     * Amazon s3 client initialization.
+     *
+     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+     */
+    @SuppressWarnings({"BusyWait"})
+    private void initClient() throws IgniteSpiException {
+        if (initGuard.compareAndSet(false, true))
+            try {
+                if (cred == null)
+                    throw new IgniteSpiException("AWS credentials are not set.");
+
+                if (cfg == null)
+                    U.warn(log, "Amazon client configuration is not set (will use default).");
+
+                if (F.isEmpty(bucketName))
+                    throw new IgniteSpiException("Bucket name is null or empty (provide bucket name and restart).");
+
+                s3 = cfg != null ? new AmazonS3Client(cred, cfg) : new AmazonS3Client(cred);
+
+                if (!s3.doesBucketExist(bucketName)) {
+                    try {
+                        s3.createBucket(bucketName);
+
+                        if (log.isDebugEnabled())
+                            log.debug("Created S3 bucket: " + bucketName);
+
+                        while (!s3.doesBucketExist(bucketName))
+                            try {
+                                U.sleep(200);
+                            }
+                            catch (GridInterruptedException e) {
+                                throw new IgniteSpiException("Thread has been interrupted.", e);
+                            }
+                    }
+                    catch (AmazonClientException e) {
+                        if (!s3.doesBucketExist(bucketName)) {
+                            s3 = null;
+
+                            throw new IgniteSpiException("Failed to create bucket: " + bucketName, e);
+                        }
+                    }
+                }
+            }
+            finally {
+                initLatch.countDown();
+            }
+        else {
+            try {
+                U.await(initLatch);
+            }
+            catch (GridInterruptedException e) {
+                throw new IgniteSpiException("Thread has been interrupted.", e);
+            }
+
+            if (s3 == null)
+                throw new IgniteSpiException("Ip finder has not been initialized properly.");
+        }
+    }
+
+    /**
+     * Sets bucket name for IP finder.
+     *
+     * @param bucketName Bucket name.
+     */
+    @IgniteSpiConfiguration(optional = false)
+    public void setBucketName(String bucketName) {
+        this.bucketName = bucketName;
+    }
+
+    /**
+     * Sets Amazon client configuration.
+     * <p>
+     * For details refer to Amazon S3 API reference.
+     *
+     * @param cfg Amazon client configuration.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setClientConfiguration(ClientConfiguration cfg) {
+        this.cfg = cfg;
+    }
+
+    /**
+     * Sets AWS credentials.
+     * <p>
+     * For details refer to Amazon S3 API reference.
+     *
+     * @param cred AWS credentials.
+     */
+    @IgniteSpiConfiguration(optional = false)
+    public void setAwsCredentials(AWSCredentials cred) {
+        this.cred = cred;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(GridTcpDiscoveryS3IpFinder.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aws/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/package.html
----------------------------------------------------------------------
diff --git a/modules/aws/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/package.html b/modules/aws/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/package.html
new file mode 100644
index 0000000..e1b4f6d
--- /dev/null
+++ b/modules/aws/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains AWS S3-based IP finder.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java b/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java
deleted file mode 100644
index 69f9aa6..0000000
--- a/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinder.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.s3;
-
-import com.amazonaws.*;
-import com.amazonaws.auth.*;
-import com.amazonaws.services.s3.*;
-import com.amazonaws.services.s3.model.*;
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-/**
- * AWS S3-based IP finder.
- * <p>
- * For information about Amazon S3 visit <a href="http://aws.amazon.com">aws.amazon.com</a>.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * <ul>
- *      <li>AWS credentials (see {@link #setAwsCredentials(AWSCredentials)})</li>
- *      <li>Bucket name (see {@link #setBucketName(String)})</li>
- * </ul>
- * <h2 class="header">Optional</h2>
- * <ul>
- *      <li>Client configuration (see {@link #setClientConfiguration(ClientConfiguration)})</li>
- *      <li>Shared flag (see {@link #setShared(boolean)})</li>
- * </ul>
- * <p>
- * The finder will create S3 bucket with configured name. The bucket will contain entries named
- * like the following: {@code 192.168.1.136#1001}.
- * <p>
- * Note that storing data in AWS S3 service will result in charges to your AWS account.
- * Choose another implementation of {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} for local
- * or home network tests.
- * <p>
- * Note that this finder is shared by default (see {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()}.
- */
-public class GridTcpDiscoveryS3IpFinder extends TcpDiscoveryIpFinderAdapter {
-    /** Delimiter to use in S3 entries name. */
-    public static final String DELIM = "#";
-
-    /** Entry content. */
-    private static final byte[] ENTRY_CONTENT = new byte[] {1};
-
-    /** Entry metadata with content length set. */
-    private static final ObjectMetadata ENTRY_METADATA;
-
-    static {
-        ENTRY_METADATA = new ObjectMetadata();
-
-        ENTRY_METADATA.setContentLength(ENTRY_CONTENT.length);
-    }
-
-    /** Grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Client to interact with S3 storage. */
-    @GridToStringExclude
-    private AmazonS3 s3;
-
-    /** Bucket name. */
-    private String bucketName;
-
-    /** Init guard. */
-    @GridToStringExclude
-    private final AtomicBoolean initGuard = new AtomicBoolean();
-
-    /** Init latch. */
-    @GridToStringExclude
-    private final CountDownLatch initLatch = new CountDownLatch(1);
-
-    /** Amazon client configuration. */
-    private ClientConfiguration cfg;
-
-    /** AWS Credentials. */
-    @GridToStringExclude
-    private AWSCredentials cred;
-
-    /**
-     * Constructor.
-     */
-    public GridTcpDiscoveryS3IpFinder() {
-        setShared(true);
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
-        initClient();
-
-        Collection<InetSocketAddress> addrs = new LinkedList<>();
-
-        try {
-            ObjectListing list = s3.listObjects(bucketName);
-
-            while (true) {
-                for (S3ObjectSummary sum : list.getObjectSummaries()) {
-                    String key = sum.getKey();
-
-                    StringTokenizer st = new StringTokenizer(key, DELIM);
-
-                    if (st.countTokens() != 2)
-                        U.error(log, "Failed to parse S3 entry due to invalid format: " + key);
-                    else {
-                        String addrStr = st.nextToken();
-                        String portStr = st.nextToken();
-
-                        int port = -1;
-
-                        try {
-                            port = Integer.parseInt(portStr);
-                        }
-                        catch (NumberFormatException e) {
-                            U.error(log, "Failed to parse port for S3 entry: " + key, e);
-                        }
-
-                        if (port != -1)
-                            try {
-                                addrs.add(new InetSocketAddress(addrStr, port));
-                            }
-                            catch (IllegalArgumentException e) {
-                                U.error(log, "Failed to parse port for S3 entry: " + key, e);
-                            }
-                    }
-                }
-
-                if (list.isTruncated())
-                    list = s3.listNextBatchOfObjects(list);
-                else
-                    break;
-            }
-        }
-        catch (AmazonClientException e) {
-            throw new IgniteSpiException("Failed to list objects in the bucket: " + bucketName, e);
-        }
-
-        return addrs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        assert !F.isEmpty(addrs);
-
-        initClient();
-
-        for (InetSocketAddress addr : addrs) {
-            String key = key(addr);
-
-            try {
-                s3.putObject(bucketName, key, new ByteArrayInputStream(ENTRY_CONTENT), ENTRY_METADATA);
-            }
-            catch (AmazonClientException e) {
-                throw new IgniteSpiException("Failed to put entry [bucketName=" + bucketName +
-                    ", entry=" + key + ']', e);
-            }
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        assert !F.isEmpty(addrs);
-
-        initClient();
-
-        for (InetSocketAddress addr : addrs) {
-            String key = key(addr);
-
-            try {
-                s3.deleteObject(bucketName, key);
-            }
-            catch (AmazonClientException e) {
-                throw new IgniteSpiException("Failed to delete entry [bucketName=" + bucketName +
-                    ", entry=" + key + ']', e);
-            }
-        }
-    }
-
-    /**
-     * Gets S3 key for provided address.
-     *
-     * @param addr Node address.
-     * @return Key.
-     */
-    private String key(InetSocketAddress addr) {
-        assert addr != null;
-
-        SB sb = new SB();
-
-        sb.a(addr.getAddress().getHostAddress())
-            .a(DELIM)
-            .a(addr.getPort());
-
-        return sb.toString();
-    }
-
-    /**
-     * Amazon s3 client initialization.
-     *
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    @SuppressWarnings({"BusyWait"})
-    private void initClient() throws IgniteSpiException {
-        if (initGuard.compareAndSet(false, true))
-            try {
-                if (cred == null)
-                    throw new IgniteSpiException("AWS credentials are not set.");
-
-                if (cfg == null)
-                    U.warn(log, "Amazon client configuration is not set (will use default).");
-
-                if (F.isEmpty(bucketName))
-                    throw new IgniteSpiException("Bucket name is null or empty (provide bucket name and restart).");
-
-                s3 = cfg != null ? new AmazonS3Client(cred, cfg) : new AmazonS3Client(cred);
-
-                if (!s3.doesBucketExist(bucketName)) {
-                    try {
-                        s3.createBucket(bucketName);
-
-                        if (log.isDebugEnabled())
-                            log.debug("Created S3 bucket: " + bucketName);
-
-                        while (!s3.doesBucketExist(bucketName))
-                            try {
-                                U.sleep(200);
-                            }
-                            catch (GridInterruptedException e) {
-                                throw new IgniteSpiException("Thread has been interrupted.", e);
-                            }
-                    }
-                    catch (AmazonClientException e) {
-                        if (!s3.doesBucketExist(bucketName)) {
-                            s3 = null;
-
-                            throw new IgniteSpiException("Failed to create bucket: " + bucketName, e);
-                        }
-                    }
-                }
-            }
-            finally {
-                initLatch.countDown();
-            }
-        else {
-            try {
-                U.await(initLatch);
-            }
-            catch (GridInterruptedException e) {
-                throw new IgniteSpiException("Thread has been interrupted.", e);
-            }
-
-            if (s3 == null)
-                throw new IgniteSpiException("Ip finder has not been initialized properly.");
-        }
-    }
-
-    /**
-     * Sets bucket name for IP finder.
-     *
-     * @param bucketName Bucket name.
-     */
-    @IgniteSpiConfiguration(optional = false)
-    public void setBucketName(String bucketName) {
-        this.bucketName = bucketName;
-    }
-
-    /**
-     * Sets Amazon client configuration.
-     * <p>
-     * For details refer to Amazon S3 API reference.
-     *
-     * @param cfg Amazon client configuration.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setClientConfiguration(ClientConfiguration cfg) {
-        this.cfg = cfg;
-    }
-
-    /**
-     * Sets AWS credentials.
-     * <p>
-     * For details refer to Amazon S3 API reference.
-     *
-     * @param cred AWS credentials.
-     */
-    @IgniteSpiConfiguration(optional = false)
-    public void setAwsCredentials(AWSCredentials cred) {
-        this.cred = cred;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryS3IpFinder.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/package.html
----------------------------------------------------------------------
diff --git a/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/package.html b/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/package.html
deleted file mode 100644
index e1b4f6d..0000000
--- a/modules/aws/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains AWS S3-based IP finder.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinderSelfTest.java b/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinderSelfTest.java
new file mode 100644
index 0000000..6cfc7b0
--- /dev/null
+++ b/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinderSelfTest.java
@@ -0,0 +1,64 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder.s3;
+
+import com.amazonaws.auth.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.testsuites.bamboo.*;
+
+import java.net.*;
+import java.util.*;
+
+/**
+ * GridTcpDiscoveryS3IpFinder test.
+ */
+public class GridTcpDiscoveryS3IpFinderSelfTest
+    extends GridTcpDiscoveryIpFinderAbstractSelfTest<GridTcpDiscoveryS3IpFinder> {
+    /**
+     * Constructor.
+     *
+     * @throws Exception If any error occurs.
+     */
+    public GridTcpDiscoveryS3IpFinderSelfTest() throws Exception {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override protected GridTcpDiscoveryS3IpFinder ipFinder() throws Exception {
+        GridTcpDiscoveryS3IpFinder finder = new GridTcpDiscoveryS3IpFinder();
+
+        injectLogger(finder);
+
+        assert finder.isShared() : "Ip finder should be shared by default.";
+
+        finder.setAwsCredentials(new BasicAWSCredentials(GridS3TestSuite.getAccessKey(),
+            GridS3TestSuite.getSecretKey()));
+
+        // Bucket name should be unique for the host to parallel test run on one bucket.
+        finder.setBucketName("ip-finder-test-bucket-" + InetAddress.getLocalHost().getAddress()[3]);
+
+        for (int i = 0; i < 5; i++) {
+            Collection<InetSocketAddress> addrs = finder.getRegisteredAddresses();
+
+            if (!addrs.isEmpty())
+                finder.unregisterAddresses(addrs);
+            else
+                return finder;
+
+            U.sleep(1000);
+        }
+
+        if (!finder.getRegisteredAddresses().isEmpty())
+            throw new Exception("Failed to initialize IP finder.");
+
+        return finder;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/package.html
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/package.html b/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/package.html
new file mode 100644
index 0000000..5cad80a
--- /dev/null
+++ b/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal tests or test related classes and interfaces.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aws/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinderSelfTest.java b/modules/aws/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinderSelfTest.java
deleted file mode 100644
index 74b18eb..0000000
--- a/modules/aws/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/GridTcpDiscoveryS3IpFinderSelfTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.s3;
-
-import com.amazonaws.auth.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.testframework.config.*;
-import org.gridgain.testsuites.bamboo.*;
-
-import java.net.*;
-import java.util.*;
-
-/**
- * GridTcpDiscoveryS3IpFinder test.
- */
-public class GridTcpDiscoveryS3IpFinderSelfTest
-    extends GridTcpDiscoveryIpFinderAbstractSelfTest<GridTcpDiscoveryS3IpFinder> {
-    /**
-     * Constructor.
-     *
-     * @throws Exception If any error occurs.
-     */
-    public GridTcpDiscoveryS3IpFinderSelfTest() throws Exception {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override protected GridTcpDiscoveryS3IpFinder ipFinder() throws Exception {
-        GridTcpDiscoveryS3IpFinder finder = new GridTcpDiscoveryS3IpFinder();
-
-        injectLogger(finder);
-
-        assert finder.isShared() : "Ip finder should be shared by default.";
-
-        finder.setAwsCredentials(new BasicAWSCredentials(GridS3TestSuite.getAccessKey(),
-            GridS3TestSuite.getSecretKey()));
-
-        // Bucket name should be unique for the host to parallel test run on one bucket.
-        finder.setBucketName("ip-finder-test-bucket-" + InetAddress.getLocalHost().getAddress()[3]);
-
-        for (int i = 0; i < 5; i++) {
-            Collection<InetSocketAddress> addrs = finder.getRegisteredAddresses();
-
-            if (!addrs.isEmpty())
-                finder.unregisterAddresses(addrs);
-            else
-                return finder;
-
-            U.sleep(1000);
-        }
-
-        if (!finder.getRegisteredAddresses().isEmpty())
-            throw new Exception("Failed to initialize IP finder.");
-
-        return finder;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aws/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/package.html
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/package.html b/modules/aws/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/aws/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/s3/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal tests or test related classes and interfaces.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/aws/src/test/java/org/gridgain/testsuites/bamboo/GridS3TestSuite.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/gridgain/testsuites/bamboo/GridS3TestSuite.java b/modules/aws/src/test/java/org/gridgain/testsuites/bamboo/GridS3TestSuite.java
index fa62d3e..11e32bd 100644
--- a/modules/aws/src/test/java/org/gridgain/testsuites/bamboo/GridS3TestSuite.java
+++ b/modules/aws/src/test/java/org/gridgain/testsuites/bamboo/GridS3TestSuite.java
@@ -11,7 +11,7 @@ package org.gridgain.testsuites.bamboo;
 
 import junit.framework.*;
 import org.apache.ignite.spi.checkpoint.s3.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.s3.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.s3.*;
 
 /**
  * S3 integration tests.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/client/GridClientAbstractMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/client/GridClientAbstractMultiThreadedSelfTest.java b/modules/clients/src/test/java/org/gridgain/client/GridClientAbstractMultiThreadedSelfTest.java
index 567398f..9518858 100644
--- a/modules/clients/src/test/java/org/gridgain/client/GridClientAbstractMultiThreadedSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/client/GridClientAbstractMultiThreadedSelfTest.java
@@ -23,9 +23,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.affinity.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/client/GridClientDefaultCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/client/GridClientDefaultCacheSelfTest.java b/modules/clients/src/test/java/org/gridgain/client/GridClientDefaultCacheSelfTest.java
index 2d50d1e..a4e7157 100644
--- a/modules/clients/src/test/java/org/gridgain/client/GridClientDefaultCacheSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/client/GridClientDefaultCacheSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.client;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/client/GridClientTopologyCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/client/GridClientTopologyCacheSelfTest.java b/modules/clients/src/test/java/org/gridgain/client/GridClientTopologyCacheSelfTest.java
index 0779306..a047215 100644
--- a/modules/clients/src/test/java/org/gridgain/client/GridClientTopologyCacheSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/client/GridClientTopologyCacheSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.client;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;


[26/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
new file mode 100644
index 0000000..9bc0992
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoveryConcurrentStartTest.java
@@ -0,0 +1,110 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.gridgain.testframework.junits.common.*;
+
+import java.util.*;
+
+/**
+ * Test for {@link TcpDiscoverySpi}.
+ */
+public class GridTcpDiscoveryConcurrentStartTest extends GridCommonAbstractTest {
+    /** */
+    private static final int TOP_SIZE = 1;
+
+    /** */
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+    /** */
+    private static volatile boolean client;
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg =  super.getConfiguration(gridName);
+
+        if (client) {
+            TcpDiscoveryVmIpFinder clientIpFinder = new TcpDiscoveryVmIpFinder();
+
+            String addr = new ArrayList<>(ipFinder.getRegisteredAddresses()).iterator().next().toString();
+
+            if (addr.startsWith("/"))
+                addr = addr.substring(1);
+
+            clientIpFinder.setAddresses(Arrays.asList(addr));
+
+            TcpClientDiscoverySpi discoSpi = new TcpClientDiscoverySpi();
+
+            discoSpi.setIpFinder(clientIpFinder);
+
+            cfg.setDiscoverySpi(discoSpi);
+        }
+        else {
+            TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+
+            discoSpi.setIpFinder(ipFinder);
+
+            cfg.setDiscoverySpi(discoSpi);
+        }
+
+        cfg.setLocalHost("127.0.0.1");
+
+        cfg.setCacheConfiguration();
+
+        return cfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected long getTestTimeout() {
+        return Long.MAX_VALUE;
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testConcurrentStart() throws Exception {
+        for (int i = 0; i < 50; i++) {
+            try {
+                startGridsMultiThreaded(TOP_SIZE);
+            }
+            finally {
+                stopAllGrids();
+            }
+        }
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testConcurrentStartClients() throws Exception {
+        for (int i = 0; i < 50; i++) {
+            try {
+                client = false;
+
+                startGrid();
+
+                client = true;
+
+                startGridsMultiThreaded(TOP_SIZE);
+            }
+            finally {
+                stopAllGrids();
+            }
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTestsStopped() throws Exception {
+        stopAllGrids();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
new file mode 100644
index 0000000..fbe1e54
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoveryMarshallerCheckSelfTest.java
@@ -0,0 +1,94 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.marshaller.jdk.*;
+import org.apache.ignite.marshaller.optimized.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.gridgain.testframework.junits.common.*;
+
+/**
+ * Test for {@link TcpDiscoverySpi}.
+ */
+public class GridTcpDiscoveryMarshallerCheckSelfTest extends GridCommonAbstractTest {
+    /** */
+    private static boolean sameMarsh;
+
+    /** */
+    private static boolean flag;
+
+    /** */
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg =  super.getConfiguration(gridName);
+
+        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+
+        discoSpi.setIpFinder(ipFinder);
+
+        cfg.setDiscoverySpi(discoSpi);
+
+        cfg.setLocalHost("127.0.0.1");
+
+        if (flag)
+            cfg.setMarshaller(new IgniteJdkMarshaller());
+        else
+            cfg.setMarshaller(sameMarsh ? new IgniteJdkMarshaller() : new IgniteOptimizedMarshaller());
+
+        // Flip flag.
+        flag = !flag;
+
+        return cfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        stopAllGrids();
+
+        flag = false;
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testMarshallerInConsistency() throws Exception {
+        sameMarsh = false;
+
+        startGrid(1);
+
+        try {
+            startGrid(2);
+
+            fail("Expected SPI exception was not thrown.");
+        }
+        catch (GridException e) {
+            Throwable ex = e.getCause().getCause();
+
+            assertTrue(ex instanceof IgniteSpiException);
+            assertTrue(ex.getMessage().contains("Local node's marshaller differs from remote node's marshaller"));
+        }
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testMarshallerConsistency() throws Exception {
+        sameMarsh = true;
+
+        startGrid(1);
+        startGrid(2);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
new file mode 100644
index 0000000..e791cd1
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoveryMultiThreadedTest.java
@@ -0,0 +1,199 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.kernal.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.testframework.junits.common.*;
+
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+import static org.apache.ignite.events.IgniteEventType.*;
+
+/**
+ * Test for {@link TcpDiscoverySpi}.
+ */
+public class GridTcpDiscoveryMultiThreadedTest extends GridCommonAbstractTest {
+    /** */
+    private static final int GRID_CNT = 5;
+
+    /** */
+    private static final int CLIENT_GRID_CNT = 5;
+
+    /** */
+    private static final ThreadLocal<Boolean> clientFlagPerThread = new ThreadLocal<>();
+
+    /** */
+    private static volatile boolean clientFlagGlobal;
+
+    /**
+     * @return Client node flag.
+     */
+    private static boolean client() {
+        Boolean client = clientFlagPerThread.get();
+
+        return client != null ? client : clientFlagGlobal;
+    }
+
+    /** */
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+    /**
+     * @throws Exception If fails.
+     */
+    public GridTcpDiscoveryMultiThreadedTest() throws Exception {
+        super(false);
+    }
+
+    /** {@inheritDoc} */
+    @SuppressWarnings({"IfMayBeConditional"})
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        if (client()) {
+            TcpClientDiscoverySpi spi = new TcpClientDiscoverySpi();
+
+            spi.setIpFinder(ipFinder);
+
+            cfg.setDiscoverySpi(spi);
+        }
+        else {
+            TcpDiscoverySpi spi = new TcpDiscoverySpi();
+
+            spi.setIpFinder(ipFinder);
+
+            cfg.setDiscoverySpi(spi);
+        }
+
+        cfg.setCacheConfiguration();
+
+        cfg.setIncludeEventTypes(EVT_TASK_FAILED, EVT_TASK_FINISHED, EVT_JOB_MAPPED);
+
+        cfg.setIncludeProperties();
+
+        cfg.setLocalHost("127.0.0.1");
+
+        return cfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        super.afterTest();
+
+        stopAllGrids();
+    }
+
+    /** {@inheritDoc} */
+    @Override protected long getTestTimeout() {
+        return 5 * 60 * 1000;
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testMultiThreaded() throws Exception {
+        execute();
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testTopologyVersion() throws Exception {
+        startGridsMultiThreaded(GRID_CNT);
+
+        long prev = 0;
+
+        for (Ignite g : G.allGrids()) {
+            GridKernal kernal = (GridKernal)g;
+
+            long ver = kernal.context().discovery().topologyVersion();
+
+            info("Top ver: " + ver);
+
+            if (prev == 0)
+                prev = ver;
+        }
+
+        info("Test finished.");
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    private void execute() throws Exception {
+        info("Test timeout: " + (getTestTimeout() / (60 * 1000)) + " min.");
+
+        startGridsMultiThreaded(GRID_CNT);
+
+        clientFlagGlobal = true;
+
+        startGridsMultiThreaded(GRID_CNT, CLIENT_GRID_CNT);
+
+        final AtomicBoolean done = new AtomicBoolean();
+
+        final AtomicInteger clientIdx = new AtomicInteger(GRID_CNT);
+
+        IgniteFuture<?> fut1 = multithreadedAsync(
+            new Callable<Object>() {
+                @Override public Object call() throws Exception {
+                    clientFlagPerThread.set(true);
+
+                    int idx = clientIdx.getAndIncrement();
+
+                    while (!done.get()) {
+                        stopGrid(idx);
+                        startGrid(idx);
+                    }
+
+                    return null;
+                }
+            },
+            CLIENT_GRID_CNT
+        );
+
+        final BlockingQueue<Integer> srvIdx = new LinkedBlockingQueue<>();
+
+        for (int i = 0; i < GRID_CNT; i++)
+            srvIdx.add(i);
+
+        IgniteFuture<?> fut2 = multithreadedAsync(
+            new Callable<Object>() {
+                @Override public Object call() throws Exception {
+                    clientFlagPerThread.set(false);
+
+                    while (!done.get()) {
+                        int idx = srvIdx.take();
+
+                        stopGrid(idx);
+                        startGrid(idx);
+
+                        srvIdx.add(idx);
+                    }
+
+                    return null;
+                }
+            },
+            GRID_CNT - 1
+        );
+
+        Thread.sleep(getTestTimeout() - 60 * 1000);
+
+        done.set(true);
+
+        fut1.get();
+        fut2.get();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
new file mode 100644
index 0000000..7483739
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
@@ -0,0 +1,983 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.events.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.kernal.*;
+import org.gridgain.grid.kernal.processors.port.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.internal.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.messages.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.testframework.*;
+import org.gridgain.testframework.junits.common.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+import static java.util.concurrent.TimeUnit.*;
+import static org.apache.ignite.events.IgniteEventType.*;
+import static org.apache.ignite.spi.IgnitePortProtocol.*;
+
+/**
+ * Test for {@link TcpDiscoverySpi}.
+ */
+public class GridTcpDiscoverySelfTest extends GridCommonAbstractTest {
+    /** */
+    private TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+    /** */
+    private Map<String, TcpDiscoverySpi> discoMap = new HashMap<>();
+
+    /** */
+    private UUID nodeId;
+
+    /**
+     * @throws Exception If fails.
+     */
+    public GridTcpDiscoverySelfTest() throws Exception {
+        super(false);
+    }
+
+    /** {@inheritDoc} */
+    @SuppressWarnings({"IfMayBeConditional", "deprecation"})
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        TcpDiscoverySpi spi;
+
+        if (gridName.contains("FailBeforeNodeAddedSentSpi"))
+            spi = new FailBeforeNodeAddedSentSpi();
+        else if (gridName.contains("FailBeforeNodeLeftSentSpi"))
+            spi = new FailBeforeNodeLeftSentSpi();
+        else
+            spi = new TcpDiscoverySpi();
+
+        discoMap.put(gridName, spi);
+
+        spi.setIpFinder(ipFinder);
+
+        spi.setNetworkTimeout(2500);
+
+        spi.setHeartbeatFrequency(1000);
+
+        spi.setMaxMissedHeartbeats(3);
+
+        spi.setIpFinderCleanFrequency(5000);
+
+        spi.setJoinTimeout(5000);
+
+        cfg.setDiscoverySpi(spi);
+
+        cfg.setCacheConfiguration();
+
+        cfg.setIncludeEventTypes(EVT_TASK_FAILED, EVT_TASK_FINISHED, EVT_JOB_MAPPED);
+
+        cfg.setIncludeProperties();
+
+        if (!gridName.contains("LoopbackProblemTest"))
+            cfg.setLocalHost("127.0.0.1");
+
+        if (gridName.contains("testFailureDetectionOnNodePing")) {
+            spi.setReconnectCount(1); // To make test faster: on Windows 1 connect takes 1 second.
+            spi.setHeartbeatFrequency(40000);
+        }
+
+        cfg.setRestEnabled(false);
+
+        if (nodeId != null)
+            cfg.setNodeId(nodeId);
+
+        if (gridName.contains("NonSharedIpFinder")) {
+            TcpDiscoveryVmIpFinder finder = new TcpDiscoveryVmIpFinder();
+
+            finder.setAddresses(Arrays.asList("127.0.0.1:47501"));
+
+            spi.setIpFinder(finder);
+        }
+        else if (gridName.contains("MulticastIpFinder")) {
+            TcpDiscoveryMulticastIpFinder finder = new TcpDiscoveryMulticastIpFinder();
+
+            finder.setAddressRequestAttempts(10);
+            finder.setMulticastGroup(GridTestUtils.getNextMulticastGroup(getClass()));
+            finder.setMulticastPort(GridTestUtils.getNextMulticastPort(getClass()));
+
+            spi.setIpFinder(finder);
+
+            // Loopback multicast discovery is not working on Mac OS
+            // (possibly due to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7122846).
+            if (U.isMacOs())
+                spi.setLocalAddress(F.first(U.allLocalIps()));
+        }
+
+        return cfg;
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testSingleNodeStartStop() throws Exception {
+        try {
+            startGrid(1);
+        }
+        finally {
+            stopGrid(1);
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testThreeNodesStartStop() throws Exception {
+        try {
+            startGrid(1);
+            startGrid(2);
+            startGrid(3);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any errors occur.
+     */
+    public void testNodeConnectMessageSize() throws Exception {
+        try {
+            Ignite g1 = startGrid(1);
+
+            final AtomicInteger gridNameIdx = new AtomicInteger(1);
+
+            GridTestUtils.runMultiThreaded(new Callable<Object>() {
+                @Nullable @Override public Object call() throws Exception {
+                    startGrid(gridNameIdx.incrementAndGet());
+
+                    return null;
+                }
+            }, 4, "grid-starter");
+
+            Collection<TcpDiscoveryNode> nodes = discoMap.get(g1.name()).ring().allNodes();
+
+            ByteArrayOutputStream bos = new ByteArrayOutputStream();
+
+            g1.configuration().getMarshaller().marshal(nodes, bos);
+
+            info(">>> Approximate node connect message size [topSize=" + nodes.size() +
+                ", msgSize=" + bos.size() / 1024.0 + "KB]");
+        }
+        finally {
+            stopAllGrids(false);
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testPing() throws Exception {
+        try {
+            startGrid(1);
+            startGrid(2);
+            startGrid(3);
+
+            info("Nodes were started");
+
+            for (Map.Entry<String, TcpDiscoverySpi> e : discoMap.entrySet()) {
+                DiscoverySpi spi = e.getValue();
+
+                for (Ignite g : G.allGrids()) {
+                    boolean res = spi.pingNode(g.cluster().localNode().id());
+
+                    assert res : e.getKey() + " failed to ping " + g.cluster().localNode().id() + " of " + g.name();
+
+                    info(e.getKey() + " pinged " + g.cluster().localNode().id() + " of " + g.name());
+                }
+            }
+
+            info("All nodes pinged successfully.");
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testFailureDetectionOnNodePing1() throws Exception {
+        try {
+            Ignite g1 = startGrid("testFailureDetectionOnNodePingCoordinator");
+            startGrid("testFailureDetectionOnNodePing2");
+            Ignite g3 = startGrid("testFailureDetectionOnNodePing3");
+
+            testFailureDetectionOnNodePing(g1, g3);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testFailureDetectionOnNodePing2() throws Exception {
+        try {
+            startGrid("testFailureDetectionOnNodePingCoordinator");
+            Ignite g2 = startGrid("testFailureDetectionOnNodePing2");
+            Ignite g3 = startGrid("testFailureDetectionOnNodePing3");
+
+            testFailureDetectionOnNodePing(g3, g2);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testFailureDetectionOnNodePing3() throws Exception {
+        try {
+            Ignite g1 = startGrid("testFailureDetectionOnNodePingCoordinator");
+            Ignite g2 = startGrid("testFailureDetectionOnNodePing2");
+            startGrid("testFailureDetectionOnNodePing3");
+
+            testFailureDetectionOnNodePing(g2, g1);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    private void testFailureDetectionOnNodePing(Ignite pingingNode, Ignite failedNode) throws Exception {
+        final CountDownLatch cnt = new CountDownLatch(1);
+
+        pingingNode.events().localListen(
+            new IgnitePredicate<IgniteEvent>() {
+                @Override public boolean apply(IgniteEvent evt) {
+                    cnt.countDown();
+
+                    return true;
+                }
+            },
+            IgniteEventType.EVT_NODE_FAILED
+        );
+
+        info("Nodes were started");
+
+        discoMap.get(failedNode.name()).simulateNodeFailure();
+
+        TcpDiscoverySpi spi = discoMap.get(pingingNode.name());
+
+        boolean res = spi.pingNode(failedNode.cluster().localNode().id());
+
+        assertFalse("Ping is ok for node " + failedNode.cluster().localNode().id() + ", but had to fail.", res);
+
+        // Heartbeat interval is 40 seconds, but we should detect node failure faster.
+        assert cnt.await(7, SECONDS);
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testNodeAdded() throws Exception {
+        try {
+            final Ignite g1 = startGrid(1);
+
+            final CountDownLatch cnt = new CountDownLatch(2);
+
+            g1.events().localListen(
+                new IgnitePredicate<IgniteEvent>() {
+                    @Override public boolean apply(IgniteEvent evt) {
+                        info("Node joined: " + evt.message());
+
+                        IgniteDiscoveryEvent discoEvt = (IgniteDiscoveryEvent)evt;
+
+                        TcpDiscoveryNode node = ((TcpDiscoveryNode)discoMap.get(g1.name()).
+                            getNode(discoEvt.eventNode().id()));
+
+                        assert node != null && node.visible();
+
+                        cnt.countDown();
+
+                        return true;
+                    }
+                },
+                IgniteEventType.EVT_NODE_JOINED
+            );
+
+            startGrid(2);
+            startGrid(3);
+
+            info("Nodes were started");
+
+            assert cnt.await(1, SECONDS);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testOrdinaryNodeLeave() throws Exception {
+        try {
+            Ignite g1 = startGrid(1);
+            startGrid(2);
+            startGrid(3);
+
+            final CountDownLatch cnt = new CountDownLatch(2);
+
+            g1.events().localListen(
+                new IgnitePredicate<IgniteEvent>() {
+                    @Override public boolean apply(IgniteEvent evt) {
+                        cnt.countDown();
+
+                        return true;
+                    }
+                },
+                EVT_NODE_LEFT
+            );
+
+            info("Nodes were started");
+
+            stopGrid(3);
+            stopGrid(2);
+
+            boolean res = cnt.await(1, SECONDS);
+
+            assert res;
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testCoordinatorNodeLeave() throws Exception {
+        try {
+            startGrid(1);
+            Ignite g2 = startGrid(2);
+
+            final CountDownLatch cnt = new CountDownLatch(1);
+
+            g2.events().localListen(new IgnitePredicate<IgniteEvent>() {
+                @Override public boolean apply(IgniteEvent evt) {
+                    cnt.countDown();
+
+                    return true;
+                }
+            }, EVT_NODE_LEFT);
+
+            info("Nodes were started");
+
+            stopGrid(1);
+
+            assert cnt.await(1, SECONDS);
+
+            // Start new grid, ensure that added to topology
+            final CountDownLatch cnt2 = new CountDownLatch(1);
+
+            g2.events().localListen(new IgnitePredicate<IgniteEvent>() {
+                @Override public boolean apply(IgniteEvent evt) {
+                    cnt2.countDown();
+
+                    return true;
+                }
+            }, EVT_NODE_JOINED);
+
+            startGrid(3);
+
+            assert cnt2.await(1, SECONDS);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testOrdinaryNodeFailure() throws Exception {
+        try {
+            Ignite g1 = startGrid(1);
+            Ignite g2 = startGrid(2);
+            Ignite g3 = startGrid(3);
+
+            final CountDownLatch cnt = new CountDownLatch(2);
+
+            g1.events().localListen(
+                new IgnitePredicate<IgniteEvent>() {
+                    @Override public boolean apply(IgniteEvent evt) {
+                        cnt.countDown();
+
+                        return true;
+                    }
+                },
+                IgniteEventType.EVT_NODE_FAILED
+            );
+
+            info("Nodes were started");
+
+            discoMap.get(g2.name()).simulateNodeFailure();
+            discoMap.get(g3.name()).simulateNodeFailure();
+
+            assert cnt.await(25, SECONDS);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testCoordinatorNodeFailure() throws Exception {
+        try {
+            Ignite g1 = startGrid(1);
+            Ignite g2 = startGrid(2);
+
+            final CountDownLatch cnt = new CountDownLatch(1);
+
+            g2.events().localListen(new IgnitePredicate<IgniteEvent>() {
+                @Override public boolean apply(IgniteEvent evt) {
+                    cnt.countDown();
+
+                    return true;
+                }
+            }, IgniteEventType.EVT_NODE_FAILED);
+
+            info("Nodes were started");
+
+            discoMap.get(g1.name()).simulateNodeFailure();
+
+            assert cnt.await(20, SECONDS);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testMetricsSending() throws Exception {
+        final AtomicBoolean stopping = new AtomicBoolean();
+
+        try {
+            final CountDownLatch latch1 = new CountDownLatch(1);
+
+            final Ignite g1 = startGrid(1);
+
+            IgnitePredicate<IgniteEvent> lsnr1 = new IgnitePredicate<IgniteEvent>() {
+                @Override public boolean apply(IgniteEvent evt) {
+                    info(evt.message());
+
+                    latch1.countDown();
+
+                    return true;
+                }
+            };
+
+            g1.events().localListen(lsnr1, EVT_NODE_METRICS_UPDATED);
+
+            assert latch1.await(10, SECONDS);
+
+            g1.events().stopLocalListen(lsnr1);
+
+            final CountDownLatch latch1_1 = new CountDownLatch(1);
+            final CountDownLatch latch1_2 = new CountDownLatch(1);
+            final CountDownLatch latch2_1 = new CountDownLatch(1);
+            final CountDownLatch latch2_2 = new CountDownLatch(1);
+
+            final Ignite g2 = startGrid(2);
+
+            g2.events().localListen(
+                new IgnitePredicate<IgniteEvent>() {
+                    @Override public boolean apply(IgniteEvent evt) {
+                        if (stopping.get())
+                            return true;
+
+                        info(evt.message());
+
+                        UUID id = ((IgniteDiscoveryEvent) evt).eventNode().id();
+
+                        if (id.equals(g1.cluster().localNode().id()))
+                            latch2_1.countDown();
+                        else if (id.equals(g2.cluster().localNode().id()))
+                            latch2_2.countDown();
+                        else
+                            assert false : "Event fired for unknown node.";
+
+                        return true;
+                    }
+                },
+                EVT_NODE_METRICS_UPDATED
+            );
+
+            g1.events().localListen(new IgnitePredicate<IgniteEvent>() {
+                @Override public boolean apply(IgniteEvent evt) {
+                    if (stopping.get())
+                        return true;
+
+                    info(evt.message());
+
+                    UUID id = ((IgniteDiscoveryEvent) evt).eventNode().id();
+
+                    if (id.equals(g1.cluster().localNode().id()))
+                        latch1_1.countDown();
+                    else if (id.equals(g2.cluster().localNode().id()))
+                        latch1_2.countDown();
+                    else
+                        assert false : "Event fired for unknown node.";
+
+                    return true;
+                }
+            }, EVT_NODE_METRICS_UPDATED);
+
+            assert latch1_1.await(10, SECONDS);
+            assert latch1_2.await(10, SECONDS);
+            assert latch2_1.await(10, SECONDS);
+            assert latch2_2.await(10, SECONDS);
+        }
+        finally {
+            stopping.set(true);
+
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testFailBeforeNodeAddedSent() throws Exception {
+        try {
+            Ignite g1 = startGrid(1);
+
+            final CountDownLatch joinCnt = new CountDownLatch(2);
+            final CountDownLatch failCnt = new CountDownLatch(1);
+
+            g1.events().localListen(new IgnitePredicate<IgniteEvent>() {
+                @Override public boolean apply(IgniteEvent evt) {
+                    if (evt.type() == EVT_NODE_JOINED)
+                        joinCnt.countDown();
+                    else if (evt.type() == EVT_NODE_FAILED)
+                        failCnt.countDown();
+                    else
+                        assert false : "Unexpected event type: " + evt;
+
+                    return true;
+                }
+            }, EVT_NODE_JOINED, EVT_NODE_FAILED);
+
+            startGrid("FailBeforeNodeAddedSentSpi");
+
+            startGrid(3);
+
+            assert joinCnt.await(10, SECONDS);
+            assert failCnt.await(10, SECONDS);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testFailBeforeNodeLeftSent() throws Exception {
+        try {
+            startGrid(1);
+            startGrid(2);
+
+            startGrid("FailBeforeNodeLeftSentSpi");
+
+            Ignite g3 = startGrid(3);
+
+            final CountDownLatch cnt = new CountDownLatch(1);
+
+            g3.events().localListen(new IgnitePredicate<IgniteEvent>() {
+                @Override public boolean apply(IgniteEvent evt) {
+                    cnt.countDown();
+
+                    return true;
+                }
+            }, EVT_NODE_FAILED);
+
+            stopGrid(1);
+
+            assert cnt.await(20, SECONDS);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testIpFinderCleaning() throws Exception {
+        try {
+            ipFinder.registerAddresses(Arrays.asList(new InetSocketAddress("host1", 1024),
+                new InetSocketAddress("host2", 1024)));
+
+            Ignite g1 = startGrid(1);
+
+            long timeout = (long)(discoMap.get(g1.name()).getIpFinderCleanFrequency() * 1.5);
+
+            Thread.sleep(timeout);
+
+            assert ipFinder.getRegisteredAddresses().size() == 1 : "ipFinder=" + ipFinder.getRegisteredAddresses();
+
+            // Check that missing addresses are returned back.
+            ipFinder.unregisterAddresses(ipFinder.getRegisteredAddresses()); // Unregister valid address.
+
+            ipFinder.registerAddresses(Arrays.asList(new InetSocketAddress("host1", 1024),
+                new InetSocketAddress("host2", 1024)));
+
+            Thread.sleep(timeout);
+
+            assert ipFinder.getRegisteredAddresses().size() == 1 : "ipFinder=" + ipFinder.getRegisteredAddresses();
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testNonSharedIpFinder() throws Exception {
+        try {
+            GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
+                @Override public Object call() throws Exception {
+                    Thread.sleep(4000);
+
+                    return startGrid("NonSharedIpFinder-2");
+                }
+            }, 1, "grid-starter");
+
+            // This node should wait until any node "from ipFinder" appears, see log messages.
+            Ignite g = startGrid("NonSharedIpFinder-1");
+
+            assert g.cluster().localNode().order() == 2;
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testMulticastIpFinder() throws Exception {
+        try {
+            for (int i = 0; i < 5; i++) {
+                Ignite g = startGrid("MulticastIpFinder-" + i);
+
+                assertEquals(i + 1, g.cluster().nodes().size());
+
+                TcpDiscoverySpi spi = (TcpDiscoverySpi)g.configuration().getDiscoverySpi();
+
+                TcpDiscoveryMulticastIpFinder ipFinder = (TcpDiscoveryMulticastIpFinder)spi.getIpFinder();
+
+                boolean found = false;
+
+                for (GridPortRecord rec : ((GridKernal) g).context().ports().records()) {
+                    if ((rec.protocol() == UDP) && rec.port() == ipFinder.getMulticastPort()) {
+                        found = true;
+
+                        break;
+                    }
+                }
+
+                assertTrue("GridTcpDiscoveryMulticastIpFinder should register port." , found);
+            }
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testInvalidAddressIpFinder() throws Exception {
+        ipFinder.setShared(false);
+
+        ipFinder.setAddresses(Collections.singletonList("some-host"));
+
+        try {
+            GridTestUtils.assertThrows(
+                log,
+                new Callable<Object>() {
+                    @Nullable @Override public Object call() throws Exception {
+                        startGrid(1);
+
+                        return null;
+                    }
+                },
+                GridException.class,
+                null);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testJoinTimeout() throws Exception {
+        try {
+            // This start will fail as expected.
+            Throwable t = GridTestUtils.assertThrows(log, new Callable<Object>() {
+                @Override public Object call() throws Exception {
+                    startGrid("NonSharedIpFinder-1");
+
+                    return null;
+                }
+            }, GridException.class, null);
+
+            assert X.hasCause(t, IgniteSpiException.class) : "Unexpected exception: " + t;
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testDirtyIpFinder() throws Exception {
+        try {
+            // Dirty IP finder
+            for (int i = 47500; i < 47520; i++)
+                ipFinder.registerAddresses(Arrays.asList(new InetSocketAddress("127.0.0.1", i),
+                    new InetSocketAddress("unknown-host", i)));
+
+            assert ipFinder.isShared();
+
+            startGrid(1);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testDuplicateId() throws Exception {
+        try {
+            // Random ID.
+            startGrid(1);
+
+            nodeId = UUID.randomUUID();
+
+            startGrid(2);
+
+            // Duplicate ID.
+            GridTestUtils.assertThrows(
+                log,
+                new Callable<Object>() {
+                    @Nullable @Override public Object call() throws Exception {
+                        // Exception will be thrown and output to log.
+                        startGrid(3);
+
+                        return null;
+                    }
+                },
+                GridException.class,
+                null);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testLoopbackProblemFirstNodeOnLoopback() throws Exception {
+        // On Windows and Mac machines two nodes can reside on the same port
+        // (if one node has localHost="127.0.0.1" and another has localHost="0.0.0.0").
+        // So two nodes do not even discover each other.
+        if (U.isWindows() || U.isMacOs())
+            return;
+
+        try {
+            startGridNoOptimize(1);
+
+            GridTestUtils.assertThrows(
+                log,
+                new Callable<Object>() {
+                    @Nullable @Override public Object call() throws Exception {
+                        // Exception will be thrown because we start node which does not use loopback address,
+                        // but the first node does.
+                        startGridNoOptimize("LoopbackProblemTest");
+
+                        return null;
+                    }
+                },
+                GridException.class,
+                null);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testLoopbackProblemSecondNodeOnLoopback() throws Exception {
+        if (U.isWindows() || U.isMacOs())
+            return;
+
+        try {
+            startGridNoOptimize("LoopbackProblemTest");
+
+            GridTestUtils.assertThrows(
+                log,
+                new Callable<Object>() {
+                    @Nullable @Override public Object call() throws Exception {
+                        // Exception will be thrown because we start node which uses loopback address,
+                        // but the first node does not.
+                        startGridNoOptimize(1);
+
+                        return null;
+                    }
+                },
+                GridException.class,
+                null);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testGridStartTime() throws Exception {
+        try {
+            startGridsMultiThreaded(5);
+
+            Long startTime = null;
+
+            GridKernal firstGrid = null;
+
+            Collection<GridKernal> grids = new ArrayList<>();
+
+            for (int i = 0; i < 5 ; i++) {
+                GridKernal grid = (GridKernal)grid(i);
+
+                assertTrue(grid.context().discovery().gridStartTime() > 0);
+
+                if (i > 0)
+                    assertEquals(startTime, (Long)grid.context().discovery().gridStartTime());
+                else
+                    startTime = grid.context().discovery().gridStartTime();
+
+                if (grid.localNode().order() == 1)
+                    firstGrid = grid;
+                else
+                    grids.add(grid);
+            }
+
+            assertNotNull(firstGrid);
+
+            stopGrid(firstGrid.name());
+
+            for (GridKernal grid : grids)
+                assertEquals(startTime, (Long)grid.context().discovery().gridStartTime());
+
+            grids.add((GridKernal) startGrid(5));
+
+            for (GridKernal grid : grids)
+                assertEquals(startTime, (Long)grid.context().discovery().gridStartTime());
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * Starts new grid with given index. Method optimize is not invoked.
+     *
+     * @param idx Index of the grid to start.
+     * @return Started grid.
+     * @throws Exception If anything failed.
+     */
+    private Ignite startGridNoOptimize(int idx) throws Exception {
+        return startGridNoOptimize(getTestGridName(idx));
+    }
+
+    /**
+     * Starts new grid with given name. Method optimize is not invoked.
+     *
+     * @param gridName Grid name.
+     * @return Started grid.
+     * @throws Exception If failed.
+     */
+    private Ignite startGridNoOptimize(String gridName) throws Exception {
+        return G.start(getConfiguration(gridName));
+    }
+
+    /**
+     *
+     */
+    private static class FailBeforeNodeAddedSentSpi extends TcpDiscoverySpi {
+        /** */
+        private int i;
+
+        /** {@inheritDoc} */
+        @Override void onBeforeMessageSentAcrossRing(Serializable msg) {
+            if (msg instanceof TcpDiscoveryNodeAddedMessage)
+                if (++i == 2) {
+                    simulateNodeFailure();
+
+                    throw new RuntimeException("Avoid message sending: " + msg.getClass());
+                }
+        }
+    }
+
+    /**
+     *
+     */
+    private static class FailBeforeNodeLeftSentSpi extends TcpDiscoverySpi {
+        /** {@inheritDoc} */
+        @Override void onBeforeMessageSentAcrossRing(Serializable msg) {
+            if (msg instanceof TcpDiscoveryNodeLeftMessage) {
+                simulateNodeFailure();
+
+                throw new RuntimeException("Avoid message sending: " + msg.getClass());
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySnapshotHistoryTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySnapshotHistoryTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySnapshotHistoryTest.java
new file mode 100644
index 0000000..90956d1
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySnapshotHistoryTest.java
@@ -0,0 +1,166 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.spi.discovery.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.testframework.junits.common.*;
+
+import static org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.*;
+
+/**
+ * Tests for topology snapshots history.
+ */
+public class GridTcpDiscoverySnapshotHistoryTest extends GridCommonAbstractTest {
+    /** */
+    public GridTcpDiscoverySnapshotHistoryTest() {
+        super(false);
+    }
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        cfg.setDiscoverySpi(new TcpDiscoverySpi());
+        cfg.setCacheConfiguration();
+        cfg.setLocalHost("127.0.0.1");
+        cfg.setRestEnabled(false);
+
+        return cfg;
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testHistorySupported() throws Exception {
+        try {
+            final Ignite g = startGrid();
+
+            DiscoverySpi spi = g.configuration().getDiscoverySpi();
+
+            DiscoverySpiHistorySupport ann = U.getAnnotation(spi.getClass(), DiscoverySpiHistorySupport.class);
+
+            assertNotNull("Spi does not have annotation for history support", ann);
+
+            assertTrue("History support is disabled for current spi", ann.value());
+        }
+        finally {
+            stopGrid();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testSettingNewTopologyHistorySize() throws Exception {
+        try {
+            final Ignite g = startGrid();
+
+            TcpDiscoverySpi spi = (TcpDiscoverySpi)g.configuration().getDiscoverySpi();
+
+            assertEquals(DFLT_TOP_HISTORY_SIZE, spi.getTopHistorySize());
+
+            spi.setTopHistorySize(DFLT_TOP_HISTORY_SIZE + 1);
+
+            assertEquals(DFLT_TOP_HISTORY_SIZE + 1, spi.getTopHistorySize());
+
+            spi.setTopHistorySize(1);
+
+            assertEquals(DFLT_TOP_HISTORY_SIZE + 1, spi.getTopHistorySize());
+        }
+        finally {
+            stopGrid();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testNodeAdded() throws Exception {
+        try {
+            // Add grid #1
+            final Ignite g1 = startGrid(1);
+
+            assertTopVer(1, g1);
+
+            assertEquals(1, g1.cluster().topologyVersion());
+
+            // Add grid # 2
+            final Ignite g2 = startGrid(2);
+
+            assertTopVer(2, g1, g2);
+
+            for (int i = 1; i <= 2; i++)
+                assertEquals(i, g2.cluster().topology(i).size());
+
+            // Add grid # 3
+            final Ignite g3 = startGrid(3);
+
+            assertTopVer(3, g1, g2, g3);
+
+            for (int i = 1; i <= 3; i++)
+                assertEquals(i, g3.cluster().topology(i).size());
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testNodeAddedAndRemoved() throws Exception {
+        try {
+            // Add grid #1
+            final Ignite g1 = startGrid(1);
+
+            assertTopVer(1, g1);
+
+            assertEquals(1, g1.cluster().topologyVersion());
+
+            // Add grid #2
+            final Ignite g2 = startGrid(2);
+
+            assertTopVer(2, g1, g2);
+
+            for (int i = 1; i <= 2; i++)
+                assertEquals(i, g2.cluster().topology(i).size());
+
+            // Add grid #3
+            final Ignite g3 = startGrid(3);
+
+            assertTopVer(3, g1, g2, g3);
+
+            for (int i = 1; i <= 3; i++)
+                assertEquals(i, g3.cluster().topology(i).size());
+
+            // Stop grid #3
+            stopGrid(g3.name());
+
+            assertTopVer(4, g1, g2);
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
+     * Check if specified grid instances have unexpected topology version.
+     *
+     * @param expTopVer Expected topology version.
+     * @param ignites Grid instances for checking topology version.
+     */
+    private static void assertTopVer(long expTopVer, Ignite... ignites) {
+        for (Ignite g : ignites)
+            assertEquals("Grid has wrong topology version.", expTopVer, g.cluster().topologyVersion());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiConfigSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiConfigSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiConfigSelfTest.java
new file mode 100644
index 0000000..7a26aa9
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiConfigSelfTest.java
@@ -0,0 +1,37 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.gridgain.testframework.junits.spi.*;
+
+/**
+ *
+ */
+@GridSpiTest(spi = TcpDiscoverySpi.class, group = "Discovery SPI")
+public class GridTcpDiscoverySpiConfigSelfTest extends GridSpiAbstractConfigTest<TcpDiscoverySpi> {
+    /**
+     * @throws Exception If failed.
+     */
+    public void testNegativeConfig() throws Exception {
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "ipFinder", null);
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "ipFinderCleanFrequency", 0);
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "localPort", 1023);
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "localPortRange", 0);
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "networkTimeout", 0);
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "socketTimeout", 0);
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "ackTimeout", 0);
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "maxAckTimeout", 0);
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "reconnectCount", 0);
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "heartbeatFrequency", 0);
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "threadPriority", -1);
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "maxMissedHeartbeats", 0);
+        checkNegativeSpiProperty(new TcpDiscoverySpi(), "statisticsPrintFrequency", 0);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
new file mode 100644
index 0000000..057add5
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiRandomStartStopTest.java
@@ -0,0 +1,37 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.gridgain.testframework.junits.spi.*;
+
+/**
+ * Random start stop test for {@link TcpDiscoverySpi}.
+ */
+@GridSpiTest(spi = TcpDiscoverySpi.class, group = "Discovery SPI")
+public class GridTcpDiscoverySpiRandomStartStopTest extends
+    GridAbstractDiscoveryRandomStartStopTest<TcpDiscoverySpi> {
+    /** */
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+    /** {@inheritDoc} */
+    @Override protected int getMaxInterval() {
+        return 10;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void spiConfigure(TcpDiscoverySpi spi) throws Exception {
+        super.spiConfigure(spi);
+
+        spi.setIpFinder(ipFinder);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
new file mode 100644
index 0000000..5a73b48
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiSelfTest.java
@@ -0,0 +1,35 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.gridgain.testframework.junits.spi.*;
+
+/**
+ * TCP discovery spi test.
+ */
+@SuppressWarnings({"JUnitTestCaseWithNoTests"})
+@GridSpiTest(spi = TcpDiscoverySpi.class, group = "Discovery SPI")
+public class GridTcpDiscoverySpiSelfTest extends GridAbstractDiscoverySelfTest<TcpDiscoverySpi> {
+    /** */
+    private TcpDiscoveryIpFinder ipFinder =  new TcpDiscoveryVmIpFinder(true);
+
+    /** {@inheritDoc} */
+    @Override protected DiscoverySpi getSpi(int idx) {
+        TcpDiscoverySpi spi = new TcpDiscoverySpi();
+
+        spi.setMetricsProvider(createMetricsProvider());
+        spi.setIpFinder(ipFinder);
+
+        return spi;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
new file mode 100644
index 0000000..5b7386d
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiStartStopSelfTest.java
@@ -0,0 +1,74 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.cluster.*;
+import org.gridgain.grid.kernal.managers.security.*;
+import org.gridgain.grid.security.*;
+import org.gridgain.grid.spi.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.gridgain.testframework.junits.spi.*;
+
+import java.util.*;
+
+/**
+ * Grid TCP discovery SPI start stop self test.
+ */
+@GridSpiTest(spi = TcpDiscoverySpi.class, group = "Discovery SPI")
+public class GridTcpDiscoverySpiStartStopSelfTest extends GridSpiStartStopAbstractTest<TcpDiscoverySpi> {
+    /**
+     * @return IP finder.
+     */
+    @GridSpiTestConfig
+    public TcpDiscoveryIpFinder getIpFinder() {
+        return new TcpDiscoveryVmIpFinder(true);
+    }
+
+    /**
+     * @return Discovery data collector.
+     */
+    @GridSpiTestConfig
+    public DiscoverySpiDataExchange getDataExchange() {
+        return new DiscoverySpiDataExchange() {
+            @Override public List<Object> collect(UUID nodeId) {
+                return null;
+            }
+
+            @Override public void onExchange(List<Object> data) {
+                // No-op.
+            }
+        };
+    }
+
+    /**
+     * Discovery SPI authenticator.
+     *
+     * @return Authenticator.
+     */
+    @GridSpiTestConfig
+    public DiscoverySpiNodeAuthenticator getAuthenticator() {
+        return new DiscoverySpiNodeAuthenticator() {
+            @Override public GridSecurityContext authenticateNode(ClusterNode n, GridSecurityCredentials cred) {
+                GridSecuritySubjectAdapter subj = new GridSecuritySubjectAdapter(
+                    GridSecuritySubjectType.REMOTE_NODE, n.id());
+
+                subj.permissions(new GridAllowAllPermissionSet());
+
+                return new GridSecurityContext(subj);
+            }
+
+            @Override public boolean isGlobalNodeAuthentication() {
+                return false;
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
new file mode 100644
index 0000000..23190e1
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
@@ -0,0 +1,55 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.gridgain.testframework.junits.common.*;
+
+/**
+ *
+ */
+public class GridTcpDiscoverySpiWildcardSelfTest extends GridCommonAbstractTest {
+    /** */
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+
+    /** */
+    private static final int NODES = 5;
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        TcpDiscoverySpi spi = new TcpDiscoverySpi();
+
+        spi.setIpFinder(IP_FINDER);
+
+        cfg.setDiscoverySpi(spi);
+        cfg.setLocalHost(null);
+
+        return cfg;
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testTopology() throws Exception {
+        try {
+            startGridsMultiThreaded(NODES);
+
+            for (int i = 0; i < NODES; i++)
+                assertEquals(NODES, grid(i).nodes().size());
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java
new file mode 100644
index 0000000..a38aead
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java
@@ -0,0 +1,117 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder;
+
+import org.apache.ignite.resources.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.testframework.junits.common.*;
+
+import java.lang.reflect.*;
+import java.net.*;
+import java.util.*;
+
+/**
+ * Abstract test for ip finder.
+ */
+public abstract class GridTcpDiscoveryIpFinderAbstractSelfTest<T extends TcpDiscoveryIpFinder>
+    extends GridCommonAbstractTest {
+    /** */
+    private T finder;
+
+    /**
+     * Constructor.
+     *
+     * @throws Exception If any error occurs.
+     */
+    @SuppressWarnings({"AbstractMethodCallInConstructor", "OverriddenMethodCallDuringObjectConstruction"})
+    protected GridTcpDiscoveryIpFinderAbstractSelfTest() throws Exception {
+        super(false);
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void beforeTest() throws Exception {
+        finder = ipFinder();
+
+        injectLogger(finder);
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testIpFinder() throws Exception {
+        finder.initializeLocalAddresses(Arrays.asList(new InetSocketAddress(InetAddress.getLocalHost(), 1000)));
+
+        InetSocketAddress node1 = new InetSocketAddress(InetAddress.getLocalHost(), 1000);
+        InetSocketAddress node2 = new InetSocketAddress(InetAddress.getLocalHost(), 1001);
+
+        List<InetSocketAddress> initAddrs = Arrays.asList(node1, node2);
+
+        finder.registerAddresses(Collections.singletonList(node1));
+
+        finder.registerAddresses(initAddrs);
+
+        Collection<InetSocketAddress> addrs = finder.getRegisteredAddresses();
+
+        for (int i = 0; i < 5 && addrs.size() != 2; i++) {
+            U.sleep(1000);
+
+            addrs = finder.getRegisteredAddresses();
+        }
+
+        assertEquals("Wrong collection size", 2, addrs.size());
+
+        for (InetSocketAddress addr : initAddrs)
+            assert addrs.contains(addr) : "Address is missing (got inconsistent addrs collection): " + addr;
+
+        finder.unregisterAddresses(Collections.singletonList(node1));
+
+        addrs = finder.getRegisteredAddresses();
+
+        for (int i = 0; i < 5 && addrs.size() != 1; i++) {
+            U.sleep(1000);
+
+            addrs = finder.getRegisteredAddresses();
+        }
+
+        assertEquals("Wrong collection size", 1, addrs.size());
+
+        finder.unregisterAddresses(finder.getRegisteredAddresses());
+
+        finder.close();
+    }
+
+    /**
+     * @param finder IP finder.
+     * @throws IllegalAccessException If any error occurs.
+     */
+    protected void injectLogger(T finder) throws IllegalAccessException {
+        assert finder != null;
+
+        for (Class cls = finder.getClass(); cls != Object.class; cls = cls.getSuperclass())
+            for (Field fld : cls.getDeclaredFields())
+                if (fld.getAnnotation(IgniteLoggerResource.class) != null) {
+                    boolean accessible = fld.isAccessible();
+
+                    fld.setAccessible(true);
+
+                    fld.set(finder, log);
+
+                    fld.setAccessible(accessible);
+                }
+    }
+
+    /**
+     * Creates and initializes ip finder.
+     *
+     * @return IP finder.
+     * @throws Exception If any error occurs.
+     */
+    protected abstract T ipFinder() throws Exception;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java
new file mode 100644
index 0000000..c21123e
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java
@@ -0,0 +1,82 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder.jdbc;
+
+import com.mchange.v2.c3p0.*;
+import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+
+/**
+ * JDBC IP finder self test.
+ */
+public class GridTcpDiscoveryJdbcIpFinderSelfTest extends
+    GridTcpDiscoveryIpFinderAbstractSelfTest<TcpDiscoveryJdbcIpFinder> {
+    /** */
+    private ComboPooledDataSource dataSrc;
+
+    /** */
+    private boolean initSchema = true;
+
+    /**
+     * Constructor.
+     *
+     * @throws Exception If failed.
+     */
+    public GridTcpDiscoveryJdbcIpFinderSelfTest() throws Exception {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override protected TcpDiscoveryJdbcIpFinder ipFinder() throws Exception {
+        TcpDiscoveryJdbcIpFinder finder = new TcpDiscoveryJdbcIpFinder();
+
+        assert finder.isShared() : "IP finder should be shared by default.";
+
+        dataSrc = new ComboPooledDataSource();
+        dataSrc.setDriverClass("org.h2.Driver");
+
+        if (initSchema)
+            dataSrc.setJdbcUrl("jdbc:h2:mem");
+        else {
+            dataSrc.setJdbcUrl("jdbc:h2:mem:jdbc_ipfinder_not_initialized_schema");
+
+            finder.setInitSchema(false);
+        }
+
+        finder.setDataSource(dataSrc);
+
+        return finder;
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testInitSchemaFlag() throws Exception {
+        initSchema = false;
+
+        try {
+            ipFinder().getRegisteredAddresses();
+
+            fail("IP finder didn't throw expected exception.");
+        }
+        catch (IgniteSpiException e) {
+            assertTrue(e.getMessage().contains("IP finder has not been properly initialized"));
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        super.afterTest();
+
+        initSchema = true;
+
+        dataSrc.close();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/package.html b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/package.html
new file mode 100644
index 0000000..5cad80a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal tests or test related classes and interfaces.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java
new file mode 100644
index 0000000..477e33d
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java
@@ -0,0 +1,107 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder.multicast;
+
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.gridgain.testframework.*;
+
+import java.net.*;
+import java.util.*;
+
+/**
+ * GridTcpDiscoveryMulticastIpFinder test.
+ */
+public class GridTcpDiscoveryMulticastIpFinderSelfTest
+    extends GridTcpDiscoveryIpFinderAbstractSelfTest<TcpDiscoveryMulticastIpFinder> {
+    /**
+     * @throws Exception In case of error.
+     */
+    public GridTcpDiscoveryMulticastIpFinderSelfTest() throws Exception {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override protected TcpDiscoveryMulticastIpFinder ipFinder() throws Exception {
+        TcpDiscoveryMulticastIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();
+
+        ipFinder.setMulticastGroup(GridTestUtils.getNextMulticastGroup(getClass()));
+        ipFinder.setMulticastPort(GridTestUtils.getNextMulticastPort(getClass()));
+
+        return ipFinder;
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @SuppressWarnings({"TooBroadScope", "BusyWait"})
+    public void testExchange() throws Exception {
+        String locAddr = null;
+
+        TcpDiscoveryMulticastIpFinder ipFinder1 = null;
+        TcpDiscoveryMulticastIpFinder ipFinder2 = null;
+        TcpDiscoveryMulticastIpFinder ipFinder3 = null;
+
+        try {
+            ipFinder1 = ipFinder();
+
+            ipFinder2 = new TcpDiscoveryMulticastIpFinder();
+
+            ipFinder2.setMulticastGroup(ipFinder1.getMulticastGroup());
+            ipFinder2.setMulticastPort(ipFinder1.getMulticastPort());
+
+            ipFinder3 = new TcpDiscoveryMulticastIpFinder();
+
+            ipFinder3.setMulticastGroup(ipFinder1.getMulticastGroup());
+            ipFinder3.setMulticastPort(ipFinder1.getMulticastPort());
+
+            injectLogger(ipFinder1);
+            injectLogger(ipFinder2);
+            injectLogger(ipFinder3);
+
+            ipFinder1.setLocalAddress(locAddr);
+            ipFinder2.setLocalAddress(locAddr);
+            ipFinder3.setLocalAddress(locAddr);
+
+            ipFinder1.initializeLocalAddresses(Collections.singleton(new InetSocketAddress("host1", 1001)));
+            ipFinder2.initializeLocalAddresses(Collections.singleton(new InetSocketAddress("host2", 1002)));
+            ipFinder3.initializeLocalAddresses(Collections.singleton(new InetSocketAddress("host3", 1003)));
+
+            for (int i = 0; i < 5; i++) {
+                Collection<InetSocketAddress> addrs1 = ipFinder1.getRegisteredAddresses();
+                Collection<InetSocketAddress> addrs2 = ipFinder2.getRegisteredAddresses();
+                Collection<InetSocketAddress> addrs3 = ipFinder3.getRegisteredAddresses();
+
+                if (addrs1.size() != 1 || addrs2.size() != 2 || addrs3.size() != 3) {
+                    info("Addrs1: " + addrs1);
+                    info("Addrs2: " + addrs2);
+                    info("Addrs2: " + addrs3);
+
+                    Thread.sleep(1000);
+                }
+                else
+                    break;
+            }
+
+            assertEquals(1, ipFinder1.getRegisteredAddresses().size());
+            assertEquals(2, ipFinder2.getRegisteredAddresses().size());
+            assertEquals(3, ipFinder3.getRegisteredAddresses().size());
+        }
+        finally {
+            if (ipFinder1 != null)
+                ipFinder1.close();
+
+            if (ipFinder2 != null)
+                ipFinder2.close();
+
+            if (ipFinder3 != null)
+                ipFinder3.close();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/package.html b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/package.html
new file mode 100644
index 0000000..5cad80a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal tests or test related classes and interfaces.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java
new file mode 100644
index 0000000..2f003cc
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java
@@ -0,0 +1,48 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder.sharedfs;
+
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * GridTcpDiscoverySharedFsIpFinder test.
+ */
+public class GridTcpDiscoverySharedFsIpFinderSelfTest
+    extends GridTcpDiscoveryIpFinderAbstractSelfTest<TcpDiscoverySharedFsIpFinder> {
+    /**
+     * Constructor.
+     *
+     * @throws Exception If any error occurs.
+     */
+    public GridTcpDiscoverySharedFsIpFinderSelfTest() throws Exception {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override protected TcpDiscoverySharedFsIpFinder ipFinder() {
+        TcpDiscoverySharedFsIpFinder finder = new TcpDiscoverySharedFsIpFinder();
+
+        assert finder.isShared() : "Ip finder should be shared by default.";
+
+        File tmpFile = new File(System.getProperty("java.io.tmpdir"), UUID.randomUUID().toString());
+
+        assert !tmpFile.exists();
+
+        if (!tmpFile.mkdir())
+            assert false;
+
+        finder.setPath(tmpFile.getAbsolutePath());
+
+        return finder;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/package.html b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/package.html
new file mode 100644
index 0000000..5cad80a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal tests or test related classes and interfaces.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java
new file mode 100644
index 0000000..1d7ed64
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java
@@ -0,0 +1,185 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder.vm;
+
+import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+
+import java.util.*;
+
+/**
+ * GridTcpDiscoveryVmIpFinder test.
+ */
+public class GridTcpDiscoveryVmIpFinderSelfTest
+    extends GridTcpDiscoveryIpFinderAbstractSelfTest<TcpDiscoveryVmIpFinder> {
+    /**
+     * Constructor.
+     *
+     * @throws Exception If any error occurs.
+     */
+    public GridTcpDiscoveryVmIpFinderSelfTest() throws Exception {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override protected TcpDiscoveryVmIpFinder ipFinder() {
+        TcpDiscoveryVmIpFinder finder = new TcpDiscoveryVmIpFinder();
+
+        assert !finder.isShared() : "Ip finder should NOT be shared by default.";
+
+        return finder;
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testAddressesInitialization() throws Exception {
+        TcpDiscoveryVmIpFinder finder = ipFinder();
+
+        try {
+            finder.setAddresses(Arrays.asList("127.0.0.1:475000001"));
+
+            assert false;
+        }
+        catch (IgniteSpiException e) {
+            info("Caught expected exception: " + e);
+
+            assert e.getMessage().contains("127.0.0.1:475000001");
+        }
+
+        try {
+            finder.setAddresses(Arrays.asList("127.0.0.1:-2"));
+
+            assert false;
+        }
+        catch (IgniteSpiException e) {
+            info("Caught expected exception: " + e);
+
+            assert e.getMessage().contains("127.0.0.1:-2");
+        }
+
+        finder.setAddresses(Arrays.asList("127.0.0.1:45555", "8.8.8.8", "some-dns-name", "some-dns-name1:200",
+            "127.0.0.1:"));
+
+        info("IP finder initialized: " + finder);
+
+        assert finder.getRegisteredAddresses().size() == 5;
+
+        finder = ipFinder();
+
+        try {
+            finder.setAddresses(Collections.singleton("127.0.0.1:555..444"));
+
+            assert false;
+        }
+        catch (IgniteSpiException e) {
+            info("Caught expected exception: " + e);
+        }
+
+        try {
+            finder.setAddresses(Collections.singleton("127.0.0.1:0..444"));
+
+            assert false;
+        }
+        catch (IgniteSpiException e) {
+            info("Caught expected exception: " + e);
+        }
+
+        try {
+            finder.setAddresses(Collections.singleton("127.0.0.1:-8080..-80"));
+
+            assert false;
+        }
+        catch (IgniteSpiException e) {
+            info("Caught expected exception: " + e);
+        }
+
+        finder.setAddresses(Collections.singleton("127.0.0.1:47500..47509"));
+
+        assert finder.getRegisteredAddresses().size() == 10 : finder.getRegisteredAddresses();
+    }
+
+    /**
+     * @throws Exception If any error occurs.
+     */
+    public void testIpV6AddressesInitialization() throws Exception {
+        TcpDiscoveryVmIpFinder finder = ipFinder();
+
+        try {
+            finder.setAddresses(Arrays.asList("[::1]:475000001"));
+
+            fail();
+        }
+        catch (IgniteSpiException e) {
+            info("Caught expected exception: " + e);
+        }
+
+        try {
+            finder.setAddresses(Arrays.asList("[::1]:-2"));
+
+            fail();
+        }
+        catch (IgniteSpiException e) {
+            info("Caught expected exception: " + e);
+        }
+
+        finder.setAddresses(Arrays.asList("[::1]:45555", "8.8.8.8", "some-dns-name", "some-dns-name1:200", "::1"));
+
+        info("IP finder initialized: " + finder);
+
+        assertEquals(5, finder.getRegisteredAddresses().size());
+
+        finder = ipFinder();
+
+        try {
+            finder.setAddresses(Collections.singleton("[::1]:555..444"));
+
+            fail();
+        }
+        catch (IgniteSpiException e) {
+            info("Caught expected exception: " + e);
+        }
+
+        try {
+            finder.setAddresses(Collections.singleton("[::1]:0..444"));
+
+            fail();
+        }
+        catch (IgniteSpiException e) {
+            info("Caught expected exception: " + e);
+        }
+
+        try {
+            finder.setAddresses(Collections.singleton("[::1]:-8080..-80"));
+
+            fail();
+        }
+        catch (IgniteSpiException e) {
+            info("Caught expected exception: " + e);
+        }
+
+        finder.setAddresses(Collections.singleton("0:0:0:0:0:0:0:1"));
+
+        assertEquals(1, finder.getRegisteredAddresses().size());
+
+        finder.setAddresses(Collections.singleton("[0:0:0:0:0:0:0:1]"));
+
+        assertEquals(1, finder.getRegisteredAddresses().size());
+
+        finder.setAddresses(Collections.singleton("[0:0:0:0:0:0:0:1]:47509"));
+
+        assertEquals(1, finder.getRegisteredAddresses().size());
+
+        finder.setAddresses(Collections.singleton("[::1]:47500..47509"));
+
+        assertEquals("Registered addresses: " + finder.getRegisteredAddresses().toString(),
+            10, finder.getRegisteredAddresses().size());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/package.html b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/package.html
new file mode 100644
index 0000000..5cad80a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal tests or test related classes and interfaces.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/package.html b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/package.html
new file mode 100644
index 0000000..5cad80a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal tests or test related classes and interfaces.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/benchmarks/storevalbytes/GridCacheStoreValueBytesNode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/benchmarks/storevalbytes/GridCacheStoreValueBytesNode.java b/modules/core/src/test/java/org/gridgain/benchmarks/storevalbytes/GridCacheStoreValueBytesNode.java
index 2c3e967..9e6b725 100644
--- a/modules/core/src/test/java/org/gridgain/benchmarks/storevalbytes/GridCacheStoreValueBytesNode.java
+++ b/modules/core/src/test/java/org/gridgain/benchmarks/storevalbytes/GridCacheStoreValueBytesNode.java
@@ -14,8 +14,8 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 
 import java.util.*;


[41/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java
index 3155c9d..347a00d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiOneNodeSelfTest.java
@@ -23,8 +23,8 @@ import java.util.*;
 /**
  * Job stealing failover SPI test for one node.
  */
-@GridSpiTest(spi = GridJobStealingFailoverSpi.class, group = "Failover SPI")
-public class GridJobStealingFailoverSpiOneNodeSelfTest extends GridSpiAbstractTest<GridJobStealingFailoverSpi> {
+@GridSpiTest(spi = JobStealingFailoverSpi.class, group = "Failover SPI")
+public class GridJobStealingFailoverSpiOneNodeSelfTest extends GridSpiAbstractTest<JobStealingFailoverSpi> {
     /** {@inheritDoc} */
     @Override protected GridSpiTestContext initSpiContext() throws Exception {
         GridSpiTestContext ctx = super.initSpiContext();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java
index 1c4068e..e2c1b4f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiSelfTest.java
@@ -22,13 +22,13 @@ import java.util.*;
 
 import static org.gridgain.grid.kernal.GridNodeAttributes.*;
 import static org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi.*;
-import static org.gridgain.grid.spi.failover.jobstealing.GridJobStealingFailoverSpi.*;
+import static org.gridgain.grid.spi.failover.jobstealing.JobStealingFailoverSpi.*;
 
 /**
- * Self test for {@link GridJobStealingFailoverSpi} SPI.
+ * Self test for {@link JobStealingFailoverSpi} SPI.
  */
-@GridSpiTest(spi = GridJobStealingFailoverSpi.class, group = "Failover SPI")
-public class GridJobStealingFailoverSpiSelfTest extends GridSpiAbstractTest<GridJobStealingFailoverSpi> {
+@GridSpiTest(spi = JobStealingFailoverSpi.class, group = "Failover SPI")
+public class GridJobStealingFailoverSpiSelfTest extends GridSpiAbstractTest<JobStealingFailoverSpi> {
     /** {@inheritDoc} */
     @Override protected GridSpiTestContext initSpiContext() throws Exception {
         GridSpiTestContext ctx = super.initSpiContext();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java
index 18cf448..871fbb7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiStartStopSelfTest.java
@@ -20,8 +20,8 @@ import java.util.*;
 /**
  * Job stealing failover SPI start-stop test.
  */
-@GridSpiTest(spi = GridJobStealingFailoverSpi.class, group = "Failover SPI")
-public class GridJobStealingFailoverSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<GridFailoverSpi> {
+@GridSpiTest(spi = JobStealingFailoverSpi.class, group = "Failover SPI")
+public class GridJobStealingFailoverSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<FailoverSpi> {
     /** {@inheritDoc} */
     @Override protected GridSpiTestContext initSpiContext() throws Exception {
         GridSpiTestContext ctx = super.initSpiContext();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiSelfTest.java
index aa99a41..089d25e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiSelfTest.java
@@ -19,8 +19,8 @@ import java.util.*;
 /**
  * Never failover SPI test.
  */
-@GridSpiTest(spi = GridNeverFailoverSpi.class, group = "Failover SPI")
-public class GridNeverFailoverSpiSelfTest extends GridSpiAbstractTest<GridNeverFailoverSpi> {
+@GridSpiTest(spi = NeverFailoverSpi.class, group = "Failover SPI")
+public class GridNeverFailoverSpiSelfTest extends GridSpiAbstractTest<NeverFailoverSpi> {
     /**
      * @throws Exception If failed.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java
index b2c62b9..f7063d8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiStartStopSelfTest.java
@@ -16,7 +16,7 @@ import org.gridgain.testframework.junits.spi.*;
 /**
  * Never-failover SPI start-stop test.
  */
-@GridSpiTest(spi = GridNeverFailoverSpi.class, group = "Failover SPI")
-public class GridNeverFailoverSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<GridFailoverSpi> {
+@GridSpiTest(spi = NeverFailoverSpi.class, group = "Failover SPI")
+public class GridNeverFailoverSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<FailoverSpi> {
     // No-op.
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java
index 1656512..630f959 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java
@@ -65,10 +65,10 @@ public class GridStealingLoadTest extends GridCommonAbstractTest {
         colSpi.setWaitJobsThreshold(0);
         colSpi.setMessageExpireTime(5000);
 
-        GridJobStealingFailoverSpi failSpi = new GridJobStealingFailoverSpi();
+        JobStealingFailoverSpi failSpi = new JobStealingFailoverSpi();
 
         // Verify defaults.
-        assert failSpi.getMaximumFailoverAttempts() == GridJobStealingFailoverSpi.DFLT_MAX_FAILOVER_ATTEMPTS;
+        assert failSpi.getMaximumFailoverAttempts() == JobStealingFailoverSpi.DFLT_MAX_FAILOVER_ATTEMPTS;
 
         DiscoverySpi discoSpi = new TcpDiscoverySpi();
 


[30/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
deleted file mode 100644
index 9e6bbf1..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ /dev/null
@@ -1,996 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.marshaller.*;
-import org.apache.ignite.marshaller.jdk.*;
-import org.apache.ignite.product.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.messages.*;
-import org.gridgain.grid.util.*;
-import org.gridgain.grid.util.io.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-import static org.gridgain.grid.spi.discovery.tcp.internal.TcpDiscoverySpiState.*;
-
-/**
- * Base class for TCP discovery SPIs.
- */
-abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements DiscoverySpi {
-    /** Default port to listen (value is <tt>47500</tt>). */
-    public static final int DFLT_PORT = 47500;
-
-    /** Default socket operations timeout in milliseconds (value is <tt>2,000ms</tt>). */
-    public static final long DFLT_SOCK_TIMEOUT = 2000;
-
-    /** Default timeout for receiving message acknowledgement in milliseconds (value is <tt>5,000ms</tt>). */
-    public static final long DFLT_ACK_TIMEOUT = 5000;
-
-    /** Default network timeout in milliseconds (value is <tt>5,000ms</tt>). */
-    public static final long DFLT_NETWORK_TIMEOUT = 5000;
-
-    /** Default value for thread priority (value is <tt>10</tt>). */
-    public static final int DFLT_THREAD_PRI = 10;
-
-    /** Default heartbeat messages issuing frequency (value is <tt>2,000ms</tt>). */
-    public static final long DFLT_HEARTBEAT_FREQ = 2000;
-
-    /** Default size of topology snapshots history. */
-    public static final int DFLT_TOP_HISTORY_SIZE = 1000;
-
-    /** Response OK. */
-    protected static final int RES_OK = 1;
-
-    /** Response CONTINUE JOIN. */
-    protected static final int RES_CONTINUE_JOIN = 100;
-
-    /** Response WAIT. */
-    protected static final int RES_WAIT = 200;
-
-    /** Local address. */
-    protected String locAddr;
-
-    /** IP finder. */
-    protected TcpDiscoveryIpFinder ipFinder;
-
-    /** Socket operations timeout. */
-    protected long sockTimeout = DFLT_SOCK_TIMEOUT;
-
-    /** Message acknowledgement timeout. */
-    protected long ackTimeout = DFLT_ACK_TIMEOUT;
-
-    /** Network timeout. */
-    protected long netTimeout = DFLT_NETWORK_TIMEOUT;
-
-    /** Thread priority for all threads started by SPI. */
-    protected int threadPri = DFLT_THREAD_PRI;
-
-    /** Heartbeat messages issuing frequency. */
-    protected long hbFreq = DFLT_HEARTBEAT_FREQ;
-
-    /** Size of topology snapshots history. */
-    protected int topHistSize = DFLT_TOP_HISTORY_SIZE;
-
-    /** Grid discovery listener. */
-    protected volatile DiscoverySpiListener lsnr;
-
-    /** Data exchange. */
-    protected DiscoverySpiDataExchange exchange;
-
-    /** Metrics provider. */
-    protected DiscoveryMetricsProvider metricsProvider;
-
-    /** Local node attributes. */
-    protected Map<String, Object> locNodeAttrs;
-
-    /** Local node version. */
-    protected IgniteProductVersion locNodeVer;
-
-    /** Local node. */
-    protected TcpDiscoveryNode locNode;
-
-    /** Local host. */
-    protected InetAddress locHost;
-
-    /** Internal and external addresses of local node. */
-    protected Collection<InetSocketAddress> locNodeAddrs;
-
-    /** Socket timeout worker. */
-    protected SocketTimeoutWorker sockTimeoutWorker;
-
-    /** Discovery state. */
-    protected TcpDiscoverySpiState spiState = DISCONNECTED;
-
-    /** Start time of the very first grid node. */
-    protected volatile long gridStartTime;
-
-    /** Marshaller. */
-    protected final IgniteMarshaller marsh = new IgniteJdkMarshaller();
-
-    /** Statistics. */
-    protected final TcpDiscoveryStatistics stats = new TcpDiscoveryStatistics();
-
-    /** Local node ID. */
-    @IgniteLocalNodeIdResource
-    protected UUID locNodeId;
-
-    /** Name of the grid. */
-    @IgniteNameResource
-    protected String gridName;
-
-    /** Logger. */
-    @IgniteLoggerResource
-    protected IgniteLogger log;
-
-    /**
-     * Sets local host IP address that discovery SPI uses.
-     * <p>
-     * If not provided, by default a first found non-loopback address
-     * will be used. If there is no non-loopback address available,
-     * then {@link InetAddress#getLocalHost()} will be used.
-     *
-     * @param locAddr IP address.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    @IgniteLocalHostResource
-    public void setLocalAddress(String locAddr) {
-        // Injection should not override value already set by Spring or user.
-        if (this.locAddr == null)
-            this.locAddr = locAddr;
-    }
-
-    /**
-     * Gets local address that was set to SPI with {@link #setLocalAddress(String)} method.
-     *
-     * @return local address.
-     */
-    public String getLocalAddress() {
-        return locAddr;
-    }
-
-    /**
-     * Gets IP finder for IP addresses sharing and storing.
-     *
-     * @return IP finder for IP addresses sharing and storing.
-     */
-    public TcpDiscoveryIpFinder getIpFinder() {
-        return ipFinder;
-    }
-
-    /**
-     * Sets IP finder for IP addresses sharing and storing.
-     * <p>
-     * If not provided {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder} will be used by default.
-     *
-     * @param ipFinder IP finder.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setIpFinder(TcpDiscoveryIpFinder ipFinder) {
-        this.ipFinder = ipFinder;
-    }
-
-    /**
-     * Sets socket operations timeout. This timeout is used to limit connection time and
-     * write-to-socket time.
-     * <p>
-     * Note that when running GridGain on Amazon EC2, socket timeout must be set to a value
-     * significantly greater than the default (e.g. to {@code 30000}).
-     * <p>
-     * If not specified, default is {@link #DFLT_SOCK_TIMEOUT}.
-     *
-     * @param sockTimeout Socket connection timeout.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setSocketTimeout(long sockTimeout) {
-        this.sockTimeout = sockTimeout;
-    }
-
-    /**
-     * Sets timeout for receiving acknowledgement for sent message.
-     * <p>
-     * If acknowledgement is not received within this timeout, sending is considered as failed
-     * and SPI tries to repeat message sending.
-     * <p>
-     * If not specified, default is {@link #DFLT_ACK_TIMEOUT}.
-     *
-     * @param ackTimeout Acknowledgement timeout.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setAckTimeout(long ackTimeout) {
-        this.ackTimeout = ackTimeout;
-    }
-
-    /**
-     * Sets maximum network timeout to use for network operations.
-     * <p>
-     * If not specified, default is {@link #DFLT_NETWORK_TIMEOUT}.
-     *
-     * @param netTimeout Network timeout.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setNetworkTimeout(long netTimeout) {
-        this.netTimeout = netTimeout;
-    }
-
-    /**
-     * Sets thread priority. All threads within SPI will be started with it.
-     * <p>
-     * If not provided, default value is {@link #DFLT_THREAD_PRI}
-     *
-     * @param threadPri Thread priority.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setThreadPriority(int threadPri) {
-        this.threadPri = threadPri;
-    }
-
-    /**
-     * Sets delay between issuing of heartbeat messages. SPI sends heartbeat messages
-     * in configurable time interval to other nodes to notify them about its state.
-     * <p>
-     * If not provided, default value is {@link #DFLT_HEARTBEAT_FREQ}.
-     *
-     * @param hbFreq Heartbeat frequency in milliseconds.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setHeartbeatFrequency(long hbFreq) {
-        this.hbFreq = hbFreq;
-    }
-
-    /**
-     * @return Size of topology snapshots history.
-     */
-    public long getTopHistorySize() {
-        return topHistSize;
-    }
-
-    /**
-     * Sets size of topology snapshots history. Specified size should be greater than or equal to default size
-     * {@link #DFLT_TOP_HISTORY_SIZE}.
-     *
-     * @param topHistSize Size of topology snapshots history.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setTopHistorySize(int topHistSize) {
-        if (topHistSize < DFLT_TOP_HISTORY_SIZE) {
-            U.warn(log, "Topology history size should be greater than or equal to default size. " +
-                "Specified size will not be set [curSize=" + this.topHistSize + ", specifiedSize=" + topHistSize +
-                ", defaultSize=" + DFLT_TOP_HISTORY_SIZE + ']');
-
-            return;
-        }
-
-        this.topHistSize = topHistSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void setNodeAttributes(Map<String, Object> attrs, IgniteProductVersion ver) {
-        assert locNodeAttrs == null;
-        assert locNodeVer == null;
-
-        if (log.isDebugEnabled()) {
-            log.debug("Node attributes to set: " + attrs);
-            log.debug("Node version to set: " + ver);
-        }
-
-        locNodeAttrs = attrs;
-        locNodeVer = ver;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException {
-        super.onContextInitialized0(spiCtx);
-
-        ipFinder.onSpiContextInitialized(spiCtx);
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void onContextDestroyed0() {
-        super.onContextDestroyed0();
-
-        ipFinder.onSpiContextDestroyed();
-    }
-
-    /** {@inheritDoc} */
-    @Override public ClusterNode getLocalNode() {
-        return locNode;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void setListener(@Nullable DiscoverySpiListener lsnr) {
-        this.lsnr = lsnr;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void setDataExchange(DiscoverySpiDataExchange exchange) {
-        this.exchange = exchange;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void setMetricsProvider(DiscoveryMetricsProvider metricsProvider) {
-        this.metricsProvider = metricsProvider;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getGridStartTime() {
-        assert gridStartTime != 0;
-
-        return gridStartTime;
-    }
-
-    /**
-     * @param sockAddr Remote address.
-     * @return Opened socket.
-     * @throws IOException If failed.
-     */
-    protected Socket openSocket(InetSocketAddress sockAddr) throws IOException {
-        assert sockAddr != null;
-
-        InetSocketAddress resolved = sockAddr.isUnresolved() ?
-            new InetSocketAddress(InetAddress.getByName(sockAddr.getHostName()), sockAddr.getPort()) : sockAddr;
-
-        InetAddress addr = resolved.getAddress();
-
-        assert addr != null;
-
-        Socket sock = new Socket();
-
-        sock.bind(new InetSocketAddress(locHost, 0));
-
-        sock.setTcpNoDelay(true);
-
-        sock.connect(resolved, (int)sockTimeout);
-
-        writeToSocket(sock, U.GG_HEADER);
-
-        return sock;
-    }
-
-    /**
-     * Writes message to the socket.
-     *
-     * @param sock Socket.
-     * @param data Raw data to write.
-     * @throws IOException If IO failed or write timed out.
-     */
-    @SuppressWarnings("ThrowFromFinallyBlock")
-    protected void writeToSocket(Socket sock, byte[] data) throws IOException {
-        assert sock != null;
-        assert data != null;
-
-        SocketTimeoutObject obj = new SocketTimeoutObject(sock, U.currentTimeMillis() + sockTimeout);
-
-        sockTimeoutWorker.addTimeoutObject(obj);
-
-        IOException err = null;
-
-        try {
-            OutputStream out = sock.getOutputStream();
-
-            out.write(data);
-
-            out.flush();
-        }
-        catch (IOException e) {
-            err = e;
-        }
-        finally {
-            boolean cancelled = obj.cancel();
-
-            if (cancelled)
-                sockTimeoutWorker.removeTimeoutObject(obj);
-
-            // Throw original exception.
-            if (err != null)
-                throw err;
-
-            if (!cancelled)
-                throw new SocketTimeoutException("Write timed out (socket was concurrently closed).");
-        }
-    }
-
-    /**
-     * Writes message to the socket.
-     *
-     * @param sock Socket.
-     * @param msg Message.
-     * @throws IOException If IO failed or write timed out.
-     * @throws GridException If marshalling failed.
-     */
-    protected void writeToSocket(Socket sock, TcpDiscoveryAbstractMessage msg) throws IOException, GridException {
-        writeToSocket(sock, msg, new GridByteArrayOutputStream(8 * 1024)); // 8K.
-    }
-
-    /**
-     * Writes message to the socket.
-     *
-     * @param sock Socket.
-     * @param msg Message.
-     * @param bout Byte array output stream.
-     * @throws IOException If IO failed or write timed out.
-     * @throws GridException If marshalling failed.
-     */
-    @SuppressWarnings("ThrowFromFinallyBlock")
-    protected void writeToSocket(Socket sock, TcpDiscoveryAbstractMessage msg, GridByteArrayOutputStream bout)
-        throws IOException, GridException {
-        assert sock != null;
-        assert msg != null;
-        assert bout != null;
-
-        // Marshall message first to perform only write after.
-        marsh.marshal(msg, bout);
-
-        SocketTimeoutObject obj = new SocketTimeoutObject(sock, U.currentTimeMillis() + sockTimeout);
-
-        sockTimeoutWorker.addTimeoutObject(obj);
-
-        IOException err = null;
-
-        try {
-            OutputStream out = sock.getOutputStream();
-
-            bout.writeTo(out);
-
-            out.flush();
-        }
-        catch (IOException e) {
-            err = e;
-        }
-        finally {
-            boolean cancelled = obj.cancel();
-
-            if (cancelled)
-                sockTimeoutWorker.removeTimeoutObject(obj);
-
-            // Throw original exception.
-            if (err != null)
-                throw err;
-
-            if (!cancelled)
-                throw new SocketTimeoutException("Write timed out (socket was concurrently closed).");
-        }
-    }
-
-    /**
-     * Writes response to the socket.
-     *
-     * @param sock Socket.
-     * @param res Integer response.
-     * @throws IOException If IO failed or write timed out.
-     */
-    @SuppressWarnings("ThrowFromFinallyBlock")
-    protected void writeToSocket(Socket sock, int res) throws IOException {
-        assert sock != null;
-
-        SocketTimeoutObject obj = new SocketTimeoutObject(sock, U.currentTimeMillis() + sockTimeout);
-
-        sockTimeoutWorker.addTimeoutObject(obj);
-
-        OutputStream out = sock.getOutputStream();
-
-        IOException err = null;
-
-        try {
-            out.write(res);
-
-            out.flush();
-        }
-        catch (IOException e) {
-            err = e;
-        }
-        finally {
-            boolean cancelled = obj.cancel();
-
-            if (cancelled)
-                sockTimeoutWorker.removeTimeoutObject(obj);
-
-            // Throw original exception.
-            if (err != null)
-                throw err;
-
-            if (!cancelled)
-                throw new SocketTimeoutException("Write timed out (socket was concurrently closed).");
-        }
-    }
-
-    /**
-     * Reads message from the socket limiting read time.
-     *
-     * @param sock Socket.
-     * @param in Input stream (in case socket stream was wrapped).
-     * @param timeout Socket timeout for this operation.
-     * @return Message.
-     * @throws IOException If IO failed or read timed out.
-     * @throws GridException If unmarshalling failed.
-     */
-    protected <T> T readMessage(Socket sock, @Nullable InputStream in, long timeout) throws IOException, GridException {
-        assert sock != null;
-
-        int oldTimeout = sock.getSoTimeout();
-
-        try {
-            sock.setSoTimeout((int)timeout);
-
-            return marsh.unmarshal(in == null ? sock.getInputStream() : in, U.gridClassLoader());
-        }
-        catch (IOException | GridException e) {
-            if (X.hasCause(e, SocketTimeoutException.class))
-                LT.warn(log, null, "Timed out waiting for message to be read (most probably, the reason is " +
-                    "in long GC pauses on remote node. Current timeout: " + timeout + '.');
-
-            throw e;
-        }
-        finally {
-            // Quietly restore timeout.
-            try {
-                sock.setSoTimeout(oldTimeout);
-            }
-            catch (SocketException ignored) {
-                // No-op.
-            }
-        }
-    }
-
-    /**
-     * Reads message delivery receipt from the socket.
-     *
-     * @param sock Socket.
-     * @param timeout Socket timeout for this operation.
-     * @return Receipt.
-     * @throws IOException If IO failed or read timed out.
-     */
-    protected int readReceipt(Socket sock, long timeout) throws IOException {
-        assert sock != null;
-
-        int oldTimeout = sock.getSoTimeout();
-
-        try {
-            sock.setSoTimeout((int)timeout);
-
-            int res = sock.getInputStream().read();
-
-            if (res == -1)
-                throw new EOFException();
-
-            return res;
-        }
-        catch (SocketTimeoutException e) {
-            LT.warn(log, null, "Timed out waiting for message delivery receipt (most probably, the reason is " +
-                "in long GC pauses on remote node; consider tuning GC and increasing 'ackTimeout' " +
-                "configuration property). Will retry to send message with increased timeout. " +
-                "Current timeout: " + timeout + '.');
-
-            stats.onAckTimeout();
-
-            throw e;
-        }
-        finally {
-            // Quietly restore timeout.
-            try {
-                sock.setSoTimeout(oldTimeout);
-            }
-            catch (SocketException ignored) {
-                // No-op.
-            }
-        }
-    }
-
-    /**
-     * Resolves addresses registered in the IP finder, removes duplicates and local host
-     * address and returns the collection of.
-     *
-     * @return Resolved addresses without duplicates and local address (potentially
-     *      empty but never null).
-     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
-     */
-    protected Collection<InetSocketAddress> resolvedAddresses() throws IgniteSpiException {
-        List<InetSocketAddress> res = new ArrayList<>();
-
-        Collection<InetSocketAddress> addrs;
-
-        // Get consistent addresses collection.
-        while (true) {
-            try {
-                addrs = registeredAddresses();
-
-                break;
-            }
-            catch (IgniteSpiException e) {
-                LT.error(log, e, "Failed to get registered addresses from IP finder on start " +
-                    "(retrying every 2000 ms).");
-            }
-
-            try {
-                U.sleep(2000);
-            }
-            catch (GridInterruptedException e) {
-                throw new IgniteSpiException("Thread has been interrupted.", e);
-            }
-        }
-
-        for (InetSocketAddress addr : addrs) {
-            assert addr != null;
-
-            try {
-                InetSocketAddress resolved = addr.isUnresolved() ?
-                    new InetSocketAddress(InetAddress.getByName(addr.getHostName()), addr.getPort()) : addr;
-
-                if (locNodeAddrs == null || !locNodeAddrs.contains(resolved))
-                    res.add(resolved);
-            }
-            catch (UnknownHostException ignored) {
-                LT.warn(log, null, "Failed to resolve address from IP finder (host is unknown): " + addr);
-
-                // Add address in any case.
-                res.add(addr);
-            }
-        }
-
-        if (!res.isEmpty())
-            Collections.shuffle(res);
-
-        return res;
-    }
-
-    /**
-     * Gets addresses registered in the IP finder, initializes addresses having no
-     * port (or 0 port) with {@link #DFLT_PORT}.
-     *
-     * @return Registered addresses.
-     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
-     */
-    protected Collection<InetSocketAddress> registeredAddresses() throws IgniteSpiException {
-        Collection<InetSocketAddress> res = new LinkedList<>();
-
-        for (InetSocketAddress addr : ipFinder.getRegisteredAddresses()) {
-            if (addr.getPort() == 0)
-                addr = addr.isUnresolved() ? new InetSocketAddress(addr.getHostName(), DFLT_PORT) :
-                    new InetSocketAddress(addr.getAddress(), DFLT_PORT);
-
-            res.add(addr);
-        }
-
-        return res;
-    }
-
-    /**
-     * @param msg Message.
-     * @return Error.
-     */
-    protected IgniteSpiException duplicateIdError(TcpDiscoveryDuplicateIdMessage msg) {
-        assert msg != null;
-
-        return new IgniteSpiException("Local node has the same ID as existing node in topology " +
-            "(fix configuration and restart local node) [localNode=" + locNode +
-            ", existingNode=" + msg.node() + ']');
-    }
-
-    /**
-     * @param msg Message.
-     * @return Error.
-     */
-    protected IgniteSpiException authenticationFailedError(TcpDiscoveryAuthFailedMessage msg) {
-        assert msg != null;
-
-        return new IgniteSpiException(new GridAuthenticationException("Authentication failed [nodeId=" +
-            msg.creatorNodeId() + ", addr=" + msg.address().getHostAddress() + ']'));
-    }
-
-    /**
-     * @param msg Message.
-     * @return Error.
-     */
-    protected IgniteSpiException checkFailedError(TcpDiscoveryCheckFailedMessage msg) {
-        assert msg != null;
-
-        return versionCheckFailed(msg) ? new IgniteSpiVersionCheckException(msg.error()) :
-            new IgniteSpiException(msg.error());
-    }
-
-    /**
-     * @param msg Message.
-     * @return Whether delivery of the message is ensured.
-     */
-    protected boolean ensured(TcpDiscoveryAbstractMessage msg) {
-        return U.getAnnotation(msg.getClass(), TcpDiscoveryEnsureDelivery.class) != null;
-    }
-
-    /**
-     * @param msg Failed message.
-     * @return {@code True} if specified failed message relates to version incompatibility, {@code false} otherwise.
-     * @deprecated Parsing of error message was used for preserving backward compatibility. We should remove it
-     *      and create separate message for failed version check with next major release.
-     */
-    @Deprecated
-    private static boolean versionCheckFailed(TcpDiscoveryCheckFailedMessage msg) {
-        return msg.error().contains("versions are not compatible");
-    }
-
-    /**
-     * Handles sockets timeouts.
-     */
-    protected class SocketTimeoutWorker extends IgniteSpiThread {
-        /** Time-based sorted set for timeout objects. */
-        private final GridConcurrentSkipListSet<SocketTimeoutObject> timeoutObjs =
-            new GridConcurrentSkipListSet<>(new Comparator<SocketTimeoutObject>() {
-                @Override public int compare(SocketTimeoutObject o1, SocketTimeoutObject o2) {
-                    long time1 = o1.endTime();
-                    long time2 = o2.endTime();
-
-                    long id1 = o1.id();
-                    long id2 = o2.id();
-
-                    return time1 < time2 ? -1 : time1 > time2 ? 1 :
-                        id1 < id2 ? -1 : id1 > id2 ? 1 : 0;
-                }
-            });
-
-        /** Mutex. */
-        private final Object mux0 = new Object();
-
-        /**
-         *
-         */
-        SocketTimeoutWorker() {
-            super(gridName, "tcp-disco-sock-timeout-worker", log);
-
-            setPriority(threadPri);
-        }
-
-        /**
-         * @param timeoutObj Timeout object to add.
-         */
-        @SuppressWarnings({"NakedNotify"})
-        public void addTimeoutObject(SocketTimeoutObject timeoutObj) {
-            assert timeoutObj != null && timeoutObj.endTime() > 0 && timeoutObj.endTime() != Long.MAX_VALUE;
-
-            timeoutObjs.add(timeoutObj);
-
-            if (timeoutObjs.firstx() == timeoutObj) {
-                synchronized (mux0) {
-                    mux0.notifyAll();
-                }
-            }
-        }
-
-        /**
-         * @param timeoutObj Timeout object to remove.
-         */
-        public void removeTimeoutObject(SocketTimeoutObject timeoutObj) {
-            assert timeoutObj != null;
-
-            timeoutObjs.remove(timeoutObj);
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void body() throws InterruptedException {
-            if (log.isDebugEnabled())
-                log.debug("Socket timeout worker has been started.");
-
-            while (!isInterrupted()) {
-                long now = U.currentTimeMillis();
-
-                for (Iterator<SocketTimeoutObject> iter = timeoutObjs.iterator(); iter.hasNext(); ) {
-                    SocketTimeoutObject timeoutObj = iter.next();
-
-                    if (timeoutObj.endTime() <= now) {
-                        iter.remove();
-
-                        if (timeoutObj.onTimeout()) {
-                            LT.warn(log, null, "Socket write has timed out (consider increasing " +
-                                "'sockTimeout' configuration property) [sockTimeout=" + sockTimeout + ']');
-
-                            stats.onSocketTimeout();
-                        }
-                    }
-                    else
-                        break;
-                }
-
-                synchronized (mux0) {
-                    while (true) {
-                        // Access of the first element must be inside of
-                        // synchronization block, so we don't miss out
-                        // on thread notification events sent from
-                        // 'addTimeoutObject(..)' method.
-                        SocketTimeoutObject first = timeoutObjs.firstx();
-
-                        if (first != null) {
-                            long waitTime = first.endTime() - U.currentTimeMillis();
-
-                            if (waitTime > 0)
-                                mux0.wait(waitTime);
-                            else
-                                break;
-                        }
-                        else
-                            mux0.wait(5000);
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Socket timeout object.
-     */
-    protected static class SocketTimeoutObject {
-        /** */
-        private static final AtomicLong idGen = new AtomicLong();
-
-        /** */
-        private final long id = idGen.incrementAndGet();
-
-        /** */
-        private final Socket sock;
-
-        /** */
-        private final long endTime;
-
-        /** */
-        private final AtomicBoolean done = new AtomicBoolean();
-
-        /**
-         * @param sock Socket.
-         * @param endTime End time.
-         */
-        SocketTimeoutObject(Socket sock, long endTime) {
-            assert sock != null;
-            assert endTime > 0;
-
-            this.sock = sock;
-            this.endTime = endTime;
-        }
-
-        /**
-         * @return {@code True} if object has not yet been processed.
-         */
-        boolean cancel() {
-            return done.compareAndSet(false, true);
-        }
-
-        /**
-         * @return {@code True} if object has not yet been canceled.
-         */
-        boolean onTimeout() {
-            if (done.compareAndSet(false, true)) {
-                // Close socket - timeout occurred.
-                U.closeQuiet(sock);
-
-                return true;
-            }
-
-            return false;
-        }
-
-        /**
-         * @return End time.
-         */
-        long endTime() {
-            return endTime;
-        }
-
-        /**
-         * @return ID.
-         */
-        long id() {
-            return id;
-        }
-
-        /** {@inheritDoc} */
-        @Override public String toString() {
-            return S.toString(SocketTimeoutObject.class, this);
-        }
-    }
-
-    /**
-     * Base class for message workers.
-     */
-    protected abstract class MessageWorkerAdapter extends IgniteSpiThread {
-        /** Pre-allocated output stream (100K). */
-        private final GridByteArrayOutputStream bout = new GridByteArrayOutputStream(100 * 1024);
-
-        /** Message queue. */
-        private final BlockingDeque<TcpDiscoveryAbstractMessage> queue = new LinkedBlockingDeque<>();
-
-        /** Backed interrupted flag. */
-        private volatile boolean interrupted;
-
-        /**
-         * @param name Thread name.
-         */
-        protected MessageWorkerAdapter(String name) {
-            super(gridName, name, log);
-
-            setPriority(threadPri);
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void body() throws InterruptedException {
-            if (log.isDebugEnabled())
-                log.debug("Message worker started [locNodeId=" + locNodeId + ']');
-
-            while (!isInterrupted()) {
-                TcpDiscoveryAbstractMessage msg = queue.poll(2000, TimeUnit.MILLISECONDS);
-
-                if (msg == null)
-                    continue;
-
-                processMessage(msg);
-            }
-        }
-
-        /** {@inheritDoc} */
-        @Override public void interrupt() {
-            interrupted = true;
-
-            super.interrupt();
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean isInterrupted() {
-            return interrupted || super.isInterrupted();
-        }
-
-        /**
-         * @return Current queue size.
-         */
-        int queueSize() {
-            return queue.size();
-        }
-
-        /**
-         * Adds message to queue.
-         *
-         * @param msg Message to add.
-         */
-        void addMessage(TcpDiscoveryAbstractMessage msg) {
-            assert msg != null;
-
-            if (msg instanceof TcpDiscoveryHeartbeatMessage)
-                queue.addFirst(msg);
-            else
-                queue.add(msg);
-
-            if (log.isDebugEnabled())
-                log.debug("Message has been added to queue: " + msg);
-        }
-
-        protected abstract void processMessage(TcpDiscoveryAbstractMessage msg);
-
-        /**
-         * @param sock Socket.
-         * @param msg Message.
-         * @throws IOException If IO failed.
-         * @throws GridException If marshalling failed.
-         */
-        protected final void writeToSocket(Socket sock, TcpDiscoveryAbstractMessage msg)
-            throws IOException, GridException {
-            bout.reset();
-
-            TcpDiscoverySpiAdapter.this.writeToSocket(sock, msg, bout);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java
deleted file mode 100644
index 6e6a33f..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiMBean.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.mbean.*;
-import org.apache.ignite.spi.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Management bean for {@link TcpDiscoverySpi}.
- */
-public interface TcpDiscoverySpiMBean extends IgniteSpiManagementMBean {
-    /**
-     * Gets delay between heartbeat messages sent by coordinator.
-     *
-     * @return Time period in milliseconds.
-     */
-    @IgniteMBeanDescription("Heartbeat frequency.")
-    public long getHeartbeatFrequency();
-
-    /**
-     * Gets current SPI state.
-     *
-     * @return Current SPI state.
-     */
-    @IgniteMBeanDescription("SPI state.")
-    public String getSpiState();
-
-    /**
-     * Gets {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} (string representation).
-     *
-     * @return IPFinder (string representation).
-     */
-    @IgniteMBeanDescription("IP Finder.")
-    public String getIpFinderFormatted();
-
-    /**
-     * Gets number of connection attempts.
-     *
-     * @return Number of connection attempts.
-     */
-    @IgniteMBeanDescription("Reconnect count.")
-    public int getReconnectCount();
-
-    /**
-     * Gets network timeout.
-     *
-     * @return Network timeout.
-     */
-    @IgniteMBeanDescription("Network timeout.")
-    public long getNetworkTimeout();
-
-    /**
-     * Gets local TCP port SPI listens to.
-     *
-     * @return Local port range.
-     */
-    @IgniteMBeanDescription("Local TCP port.")
-    public int getLocalPort();
-
-    /**
-     * Gets local TCP port range.
-     *
-     * @return Local port range.
-     */
-    @IgniteMBeanDescription("Local TCP port range.")
-    public int getLocalPortRange();
-
-    /**
-     * Gets max heartbeats count node can miss without initiating status check.
-     *
-     * @return Max missed heartbeats.
-     */
-    @IgniteMBeanDescription("Max missed heartbeats.")
-    public int getMaxMissedHeartbeats();
-
-    /**
-     * Gets max heartbeats count node can miss without failing client node.
-     *
-     * @return Max missed client heartbeats.
-     */
-    @IgniteMBeanDescription("Max missed client heartbeats.")
-    public int getMaxMissedClientHeartbeats();
-
-    /**
-     * Gets thread priority. All threads within SPI will be started with it.
-     *
-     * @return Thread priority.
-     */
-    @IgniteMBeanDescription("Threads priority.")
-    public int getThreadPriority();
-
-    /**
-     * Gets IP finder clean frequency.
-     *
-     * @return IP finder clean frequency.
-     */
-    @IgniteMBeanDescription("IP finder clean frequency.")
-    public long getIpFinderCleanFrequency();
-
-    /**
-     * Gets statistics print frequency.
-     *
-     * @return Statistics print frequency in milliseconds.
-     */
-    @IgniteMBeanDescription("Statistics print frequency.")
-    public long getStatisticsPrintFrequency();
-
-    /**
-     * Gets message worker queue current size.
-     *
-     * @return Message worker queue current size.
-     */
-    @IgniteMBeanDescription("Message worker queue current size.")
-    public int getMessageWorkerQueueSize();
-
-    /**
-     * Gets joined nodes count.
-     *
-     * @return Nodes joined count.
-     */
-    @IgniteMBeanDescription("Nodes joined count.")
-    public long getNodesJoined();
-
-    /**
-     * Gets left nodes count.
-     *
-     * @return Left nodes count.
-     */
-    @IgniteMBeanDescription("Nodes left count.")
-    public long getNodesLeft();
-
-    /**
-     * Gets failed nodes count.
-     *
-     * @return Failed nodes count.
-     */
-    @IgniteMBeanDescription("Nodes failed count.")
-    public long getNodesFailed();
-
-    /**
-     * Gets pending messages registered count.
-     *
-     * @return Pending messages registered count.
-     */
-    @IgniteMBeanDescription("Pending messages registered.")
-    public long getPendingMessagesRegistered();
-
-    /**
-     * Gets pending messages discarded count.
-     *
-     * @return Pending messages registered count.
-     */
-    @IgniteMBeanDescription("Pending messages discarded.")
-    public long getPendingMessagesDiscarded();
-
-    /**
-     * Gets avg message processing time.
-     *
-     * @return Avg message processing time.
-     */
-    @IgniteMBeanDescription("Avg message processing time.")
-    public long getAvgMessageProcessingTime();
-
-    /**
-     * Gets max message processing time.
-     *
-     * @return Max message processing time.
-     */
-    @IgniteMBeanDescription("Max message processing time.")
-    public long getMaxMessageProcessingTime();
-
-    /**
-     * Gets total received messages count.
-     *
-     * @return Total received messages count.
-     */
-    @IgniteMBeanDescription("Total received messages count.")
-    public int getTotalReceivedMessages();
-
-    /**
-     * Gets received messages counts (grouped by type).
-     *
-     * @return Map containing message types and respective counts.
-     */
-    @IgniteMBeanDescription("Received messages by type.")
-    public Map<String, Integer> getReceivedMessages();
-
-    /**
-     * Gets total processed messages count.
-     *
-     * @return Total processed messages count.
-     */
-    @IgniteMBeanDescription("Total processed messages count.")
-    public int getTotalProcessedMessages();
-
-    /**
-     * Gets processed messages counts (grouped by type).
-     *
-     * @return Map containing message types and respective counts.
-     */
-    @IgniteMBeanDescription("Received messages by type.")
-    public Map<String, Integer> getProcessedMessages();
-
-    /**
-     * Gets time local node has been coordinator since.
-     *
-     * @return Time local node is coordinator since.
-     */
-    @IgniteMBeanDescription("Local node is coordinator since.")
-    public long getCoordinatorSinceTimestamp();
-
-    /**
-     * Gets current coordinator.
-     *
-     * @return Gets current coordinator.
-     */
-    @IgniteMBeanDescription("Coordinator node ID.")
-    @Nullable public UUID getCoordinator();
-
-    /**
-     * Gets message acknowledgement timeout.
-     *
-     * @return Message acknowledgement timeout.
-     */
-    @IgniteMBeanDescription("Message acknowledgement timeout.")
-    public long getAckTimeout();
-
-    /**
-     * Gets maximum message acknowledgement timeout.
-     *
-     * @return Maximum message acknowledgement timeout.
-     */
-    @IgniteMBeanDescription("Maximum message acknowledgement timeout.")
-    public long getMaxAckTimeout();
-
-    /**
-     * Gets socket timeout.
-     *
-     * @return Socket timeout.
-     */
-    @IgniteMBeanDescription("Socket timeout.")
-    public long getSocketTimeout();
-
-    /**
-     * Gets join timeout.
-     *
-     * @return Join timeout.
-     */
-    @IgniteMBeanDescription("Join timeout.")
-    public long getJoinTimeout();
-
-    /**
-     * Dumps debug info using configured logger.
-     */
-    @IgniteMBeanDescription("Dump debug info.")
-    public void dumpDebugInfo();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNode.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNode.java
deleted file mode 100644
index fe2d419..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNode.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.internal;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.product.*;
-import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.util.lang.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import static org.gridgain.grid.kernal.GridNodeAttributes.*;
-
-/**
- * Node for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
- * <p>
- * <strong>This class is not intended for public use</strong> and has been made
- * <tt>public</tt> due to certain limitations of Java technology.
- */
-public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements ClusterNode,
-    Comparable<TcpDiscoveryNode>, Externalizable {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Node ID. */
-    private UUID id;
-
-    /** Consistent ID. */
-    private Object consistentId;
-
-    /** Node attributes. */
-    @GridToStringExclude
-    private Map<String, Object> attrs;
-
-    /** Internal discovery addresses as strings. */
-    @GridToStringInclude
-    private Collection<String> addrs;
-
-    /** Internal discovery host names as strings. */
-    private Collection<String> hostNames;
-
-    /** */
-    @GridToStringInclude
-    private Collection<InetSocketAddress> sockAddrs;
-
-    /** */
-    @GridToStringInclude
-    private int discPort;
-
-    /** Node metrics. */
-    @GridToStringExclude
-    private volatile ClusterNodeMetrics metrics;
-
-    /** Node order in the topology. */
-    private volatile long order;
-
-    /** Node order in the topology (internal). */
-    private volatile long intOrder;
-
-    /** The most recent time when heartbeat message was received from the node. */
-    @GridToStringExclude
-    private volatile long lastUpdateTime = U.currentTimeMillis();
-
-    /** Metrics provider (transient). */
-    @GridToStringExclude
-    private DiscoveryMetricsProvider metricsProvider;
-
-    /** Visible flag (transient). */
-    @GridToStringExclude
-    private boolean visible;
-
-    /** Grid local node flag (transient). */
-    private boolean loc;
-
-    /** Version. */
-    private IgniteProductVersion ver;
-
-    /** Alive check (used by clients). */
-    @GridToStringExclude
-    private transient int aliveCheck;
-
-    /** Client router node ID. */
-    @GridToStringExclude
-    private UUID clientRouterNodeId;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryNode() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param id Node Id.
-     * @param addrs Addresses.
-     * @param hostNames Host names.
-     * @param discPort Port.
-     * @param metricsProvider Metrics provider.
-     * @param ver Version.
-     */
-    public TcpDiscoveryNode(UUID id, Collection<String> addrs, Collection<String> hostNames, int discPort,
-                            DiscoveryMetricsProvider metricsProvider, IgniteProductVersion ver) {
-        assert id != null;
-        assert !F.isEmpty(addrs);
-        assert metricsProvider != null;
-        assert ver != null;
-
-        this.id = id;
-        this.addrs = addrs;
-        this.hostNames = hostNames;
-        this.discPort = discPort;
-        this.metricsProvider = metricsProvider;
-        this.ver = ver;
-
-        consistentId = U.consistentId(addrs, discPort);
-
-        metrics = metricsProvider.getMetrics();
-        sockAddrs = U.toSocketAddresses(this, discPort);
-    }
-
-    /** {@inheritDoc} */
-    @Override public UUID id() {
-        return id;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Object consistentId() {
-        return consistentId;
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override public <T> T attribute(String name) {
-        // Even though discovery SPI removes this attribute after authentication, keep this check for safety.
-        if (GridNodeAttributes.ATTR_SECURITY_CREDENTIALS.equals(name))
-            return null;
-
-        return (T)attrs.get(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override public Map<String, Object> attributes() {
-        // Even though discovery SPI removes this attribute after authentication, keep this check for safety.
-        return F.view(attrs, new IgnitePredicate<String>() {
-            @Override public boolean apply(String s) {
-                return !GridNodeAttributes.ATTR_SECURITY_CREDENTIALS.equals(s);
-            }
-        });
-    }
-
-    /**
-     * Sets node attributes.
-     *
-     * @param attrs Node attributes.
-     */
-    public void setAttributes(Map<String, Object> attrs) {
-        this.attrs = U.sealMap(attrs);
-    }
-
-    /**
-     * Gets node attributes without filtering.
-     *
-     * @return Node attributes without filtering.
-     */
-    public Map<String, Object> getAttributes() {
-        return attrs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public ClusterNodeMetrics metrics() {
-        if (metricsProvider != null)
-            metrics = metricsProvider.getMetrics();
-
-        return metrics;
-    }
-
-    /**
-     * Sets node metrics.
-     *
-     * @param metrics Node metrics.
-     */
-    public void setMetrics(ClusterNodeMetrics metrics) {
-        assert metrics != null;
-
-        this.metrics = metrics;
-    }
-
-    /**
-     * @return Internal order.
-     */
-    public long internalOrder() {
-        return intOrder;
-    }
-
-    /**
-     * @param intOrder Internal order of the node.
-     */
-    public void internalOrder(long intOrder) {
-        assert intOrder > 0;
-
-        this.intOrder = intOrder;
-    }
-
-    /**
-     * @return Order.
-     */
-    @Override public long order() {
-        return order;
-    }
-
-    /**
-     * @param order Order of the node.
-     */
-    public void order(long order) {
-        assert order >= 0 : "Order is invalid: " + this;
-
-        this.order = order;
-    }
-
-    /** {@inheritDoc} */
-    @Override public IgniteProductVersion version() {
-        return ver;
-    }
-
-    /**
-     * @param ver Version.
-     */
-    public void version(IgniteProductVersion ver) {
-        assert ver != null;
-
-        this.ver = ver;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<String> addresses() {
-        return addrs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isLocal() {
-        return loc;
-    }
-
-    /**
-     * @param loc Grid local node flag.
-     */
-    public void local(boolean loc) {
-        this.loc = loc;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isDaemon() {
-        return "true".equalsIgnoreCase((String)attribute(ATTR_DAEMON));
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<String> hostNames() {
-        return hostNames;
-    }
-
-    /**
-     * @return Discovery port.
-     */
-    public int discoveryPort() {
-        return discPort;
-    }
-
-    /**
-     * @return Addresses that could be used by discovery.
-     */
-    public Collection<InetSocketAddress> socketAddresses() {
-        return sockAddrs;
-    }
-
-    /**
-     * Gets node last update time.
-     *
-     * @return Time of the last heartbeat.
-     */
-    public long lastUpdateTime() {
-        return lastUpdateTime;
-    }
-
-    /**
-     * Sets node last update.
-     *
-     * @param lastUpdateTime Time of last metrics update.
-     */
-    public void lastUpdateTime(long lastUpdateTime) {
-        assert lastUpdateTime > 0;
-
-        this.lastUpdateTime = lastUpdateTime;
-    }
-
-    /**
-     * Gets visible flag.
-     *
-     * @return {@code true} if node is in visible state.
-     */
-    public boolean visible() {
-        return visible;
-    }
-
-    /**
-     * Sets visible flag.
-     *
-     * @param visible {@code true} if node is in visible state.
-     */
-    public void visible(boolean visible) {
-        this.visible = visible;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isClient() {
-        return clientRouterNodeId != null;
-    }
-
-    /**
-     * Decrements alive check value and returns new one.
-     *
-     * @return Alive check value.
-     */
-    public int decrementAliveCheck() {
-        assert isClient();
-
-        return --aliveCheck;
-    }
-
-    /**
-     * @param aliveCheck Alive check value.
-     */
-    public void aliveCheck(int aliveCheck) {
-        assert isClient();
-
-        this.aliveCheck = aliveCheck;
-    }
-
-    /**
-     * @return Client router node ID.
-     */
-    public UUID clientRouterNodeId() {
-        return clientRouterNodeId;
-    }
-
-    /**
-     * @param clientRouterNodeId Client router node ID.
-     */
-    public void clientRouterNodeId(UUID clientRouterNodeId) {
-        this.clientRouterNodeId = clientRouterNodeId;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int compareTo(@Nullable TcpDiscoveryNode node) {
-        if (node == null)
-            return 1;
-
-        if (internalOrder() == node.internalOrder())
-            assert id().equals(node.id()) : "Duplicate order [this=" + this + ", other=" + node + ']';
-
-        return internalOrder() < node.internalOrder() ? -1 : internalOrder() > node.internalOrder() ? 1 :
-            id().compareTo(node.id());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        U.writeUuid(out, id);
-        U.writeMap(out, attrs);
-        U.writeCollection(out, addrs);
-        U.writeCollection(out, hostNames);
-        out.writeInt(discPort);
-
-        byte[] mtr = null;
-
-        if (metrics != null) {
-            mtr = new byte[DiscoveryMetricsHelper.METRICS_SIZE];
-
-            DiscoveryMetricsHelper.serialize(mtr, 0, metrics);
-        }
-
-        U.writeByteArray(out, mtr);
-
-        out.writeLong(order);
-        out.writeLong(intOrder);
-        out.writeObject(ver);
-        U.writeUuid(out, clientRouterNodeId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        id = U.readUuid(in);
-
-        attrs = U.sealMap(U.<String, Object>readMap(in));
-        addrs = U.readCollection(in);
-        hostNames = U.readCollection(in);
-        discPort = in.readInt();
-
-        sockAddrs = U.toSocketAddresses(this, discPort);
-
-        consistentId = U.consistentId(addrs, discPort);
-
-        byte[] mtr = U.readByteArray(in);
-
-        if (mtr != null)
-            metrics = DiscoveryMetricsHelper.deserialize(mtr, 0);
-
-        order = in.readLong();
-        intOrder = in.readLong();
-        ver = (IgniteProductVersion)in.readObject();
-        clientRouterNodeId = U.readUuid(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public int hashCode() {
-        return id.hashCode();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean equals(Object o) {
-        return F.eqNodes(this, o);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryNode.class, this, "isClient", isClient());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
deleted file mode 100644
index b9093c1..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
+++ /dev/null
@@ -1,636 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.internal;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-import java.util.concurrent.locks.*;
-
-/**
- * Convenient way to represent topology for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}
- */
-public class TcpDiscoveryNodesRing {
-    /** Visible nodes filter. */
-    private static final IgnitePredicate<TcpDiscoveryNode> VISIBLE_NODES = new P1<TcpDiscoveryNode>() {
-        @Override public boolean apply(TcpDiscoveryNode node) {
-            return node.visible();
-        }
-    };
-
-    /** Client nodes filter. */
-    private static final PN CLIENT_NODES = new PN() {
-        @Override public boolean apply(ClusterNode node) {
-            return node.isClient();
-        }
-    };
-
-    /** Local node. */
-    private TcpDiscoveryNode locNode;
-
-    /** All nodes in topology. */
-    @GridToStringInclude
-    private NavigableSet<TcpDiscoveryNode> nodes = new TreeSet<>();
-
-    /** All started nodes. */
-    @GridToStringExclude
-    private Map<UUID, TcpDiscoveryNode> nodesMap = new HashMap<>();
-
-    /** Current topology version */
-    private long topVer;
-
-    /** */
-    private long nodeOrder;
-
-    /** Lock. */
-    @GridToStringExclude
-    private final ReadWriteLock rwLock = new ReentrantReadWriteLock();
-
-    /**
-     * Sets local node.
-     *
-     * @param locNode Local node.
-     */
-    public void localNode(TcpDiscoveryNode locNode) {
-        assert locNode != null;
-
-        rwLock.writeLock().lock();
-
-        try {
-            this.locNode = locNode;
-
-            clear();
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Gets all nodes in the topology.
-     *
-     * @return Collection of all nodes.
-     */
-    public Collection<TcpDiscoveryNode> allNodes() {
-        return nodes();
-    }
-
-    /**
-     * Gets visible nodes in the topology.
-     *
-     * @return Collection of visible nodes.
-     */
-    public Collection<TcpDiscoveryNode> visibleNodes() {
-        return nodes(VISIBLE_NODES);
-    }
-
-    /**
-     * Gets remote nodes.
-     *
-     * @return Collection of remote nodes in grid.
-     */
-    public Collection<TcpDiscoveryNode> remoteNodes() {
-        return nodes(F.remoteNodes(locNode.id()));
-    }
-
-    /**
-     * Gets visible remote nodes in the topology.
-     *
-     * @return Collection of visible remote nodes.
-     */
-    public Collection<TcpDiscoveryNode> visibleRemoteNodes() {
-        return nodes(VISIBLE_NODES, F.remoteNodes(locNode.id()));
-    }
-
-    /**
-     * @return Client nodes.
-     */
-    public Collection<TcpDiscoveryNode> clientNodes() {
-        return nodes(CLIENT_NODES);
-    }
-
-    /**
-     * Checks whether the topology has remote nodes in.
-     *
-     * @return {@code true} if the topology has remote nodes in.
-     */
-    public boolean hasRemoteNodes() {
-        rwLock.readLock().lock();
-
-        try {
-            return nodes.size() > 1;
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Adds node to topology, also initializes node last update time with current
-     * system time.
-     *
-     * @param node Node to add.
-     * @return {@code true} if such node was added and did not present previously in the topology.
-     */
-    public boolean add(TcpDiscoveryNode node) {
-        assert node != null;
-        assert node.internalOrder() > 0;
-
-        rwLock.writeLock().lock();
-
-        try {
-            if (nodesMap.containsKey(node.id()))
-                return false;
-
-            assert node.internalOrder() > maxInternalOrder() : "Adding node to the middle of the ring " +
-                "[ring=" + this + ", node=" + node + ']';
-
-            nodesMap.put(node.id(), node);
-
-            nodes = new TreeSet<>(nodes);
-
-            node.lastUpdateTime(U.currentTimeMillis());
-
-            nodes.add(node);
-
-            nodeOrder = node.internalOrder();
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-
-        return true;
-    }
-
-    /**
-     * @return Max internal order.
-     */
-    public long maxInternalOrder() {
-        rwLock.readLock().lock();
-
-        try {
-            TcpDiscoveryNode last = nodes.last();
-
-            return last != null ? last.internalOrder() : -1;
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Restores topology from parameters values.
-     * <p>
-     * This method is called when new node receives topology from coordinator.
-     * In this case all nodes received are remote for local.
-     * <p>
-     * Also initializes nodes last update time with current system time.
-     *
-     * @param nodes List of remote nodes.
-     * @param topVer Topology version.
-     */
-    public void restoreTopology(Iterable<TcpDiscoveryNode> nodes, long topVer) {
-        assert !F.isEmpty(nodes);
-        assert topVer > 0;
-
-        rwLock.writeLock().lock();
-
-        try {
-            locNode.internalOrder(topVer);
-
-            clear();
-
-            boolean firstAdd = true;
-
-            for (TcpDiscoveryNode node : nodes) {
-                if (nodesMap.containsKey(node.id()))
-                    continue;
-
-                nodesMap.put(node.id(), node);
-
-                if (firstAdd) {
-                    this.nodes = new TreeSet<>(this.nodes);
-
-                    firstAdd = false;
-                }
-
-                node.lastUpdateTime(U.currentTimeMillis());
-
-                this.nodes.add(node);
-            }
-
-            nodeOrder = topVer;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Finds node by ID.
-     *
-     * @param nodeId Node id to find.
-     * @return Node with ID provided or {@code null} if not found.
-     */
-    @Nullable public TcpDiscoveryNode node(UUID nodeId) {
-        assert nodeId != null;
-
-        rwLock.readLock().lock();
-
-        try {
-            return nodesMap.get(nodeId);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Removes node from the topology.
-     *
-     * @param nodeId ID of the node to remove.
-     * @return {@code true} if node was removed.
-     */
-    @Nullable public TcpDiscoveryNode removeNode(UUID nodeId) {
-        assert nodeId != null;
-        assert !locNode.id().equals(nodeId);
-
-        rwLock.writeLock().lock();
-
-        try {
-            TcpDiscoveryNode rmv = nodesMap.remove(nodeId);
-
-            if (rmv != null) {
-                nodes = new TreeSet<>(nodes);
-
-                nodes.remove(rmv);
-            }
-
-            return rmv;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Removes nodes from the topology.
-     *
-     * @param nodeIds IDs of the nodes to remove.
-     * @return Collection of removed nodes.
-     */
-    public Collection<TcpDiscoveryNode> removeNodes(Collection<UUID> nodeIds) {
-        assert !F.isEmpty(nodeIds);
-
-        rwLock.writeLock().lock();
-
-        try {
-            boolean firstRmv = true;
-
-            Collection<TcpDiscoveryNode> res = null;
-
-            for (UUID id : nodeIds) {
-                TcpDiscoveryNode rmv = nodesMap.remove(id);
-
-                if (rmv != null) {
-                    if (firstRmv) {
-                        nodes = new TreeSet<>(nodes);
-
-                        res = new ArrayList<>(nodeIds.size());
-
-                        firstRmv = false;
-                    }
-
-                    nodes.remove(rmv);
-
-                    res.add(rmv);
-                }
-            }
-
-            return res == null ? Collections.<TcpDiscoveryNode>emptyList() : res;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Removes all remote nodes, leaves only local node.
-     * <p>
-     * This should be called when SPI should be disconnected from topology and
-     * reconnected back after.
-     */
-    public void clear() {
-        rwLock.writeLock().lock();
-
-        try {
-            nodes = new TreeSet<>();
-
-            if (locNode != null)
-                nodes.add(locNode);
-
-            nodesMap = new HashMap<>();
-
-            if (locNode != null)
-                nodesMap.put(locNode.id(), locNode);
-
-            nodeOrder = 0;
-
-            topVer = 0;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Finds coordinator in the topology.
-     *
-     * @return Coordinator node that gives versions to topology (node with the smallest order).
-     */
-    @Nullable public TcpDiscoveryNode coordinator() {
-        rwLock.readLock().lock();
-
-        try {
-            if (F.isEmpty(nodes))
-                return null;
-
-            return coordinator(null);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Finds coordinator in the topology filtering excluded nodes from the search.
-     * <p>
-     * This may be used when handling current coordinator leave or failure.
-     *
-     * @param excluded Nodes to exclude from the search (optional).
-     * @return Coordinator node among remaining nodes or {@code null} if all nodes are excluded.
-     */
-    @Nullable public TcpDiscoveryNode coordinator(@Nullable Collection<TcpDiscoveryNode> excluded) {
-        rwLock.readLock().lock();
-
-        try {
-            Collection<TcpDiscoveryNode> filtered = serverNodes(excluded);
-
-            if (F.isEmpty(filtered))
-                return null;
-
-            return Collections.min(filtered);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Finds next node in the topology.
-     *
-     * @return Next node.
-     */
-    @Nullable public TcpDiscoveryNode nextNode() {
-        rwLock.readLock().lock();
-
-        try {
-            if (nodes.size() < 2)
-                return null;
-
-            return nextNode(null);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Finds next node in the topology filtering excluded nodes from search.
-     * <p>
-     * This may be used when detecting and handling nodes failure.
-     *
-     * @param excluded Nodes to exclude from the search (optional). If provided,
-     * cannot contain local node.
-     * @return Next node or {@code null} if all nodes were filtered out or
-     * topology contains less than two nodes.
-     */
-    @Nullable public TcpDiscoveryNode nextNode(@Nullable Collection<TcpDiscoveryNode> excluded) {
-        assert excluded == null || excluded.isEmpty() || !excluded.contains(locNode);
-
-        rwLock.readLock().lock();
-
-        try {
-            Collection<TcpDiscoveryNode> filtered = serverNodes(excluded);
-
-            if (filtered.size() < 2)
-                return null;
-
-            Iterator<TcpDiscoveryNode> iter = filtered.iterator();
-
-            while (iter.hasNext()) {
-                TcpDiscoveryNode node = iter.next();
-
-                if (locNode.equals(node))
-                    break;
-            }
-
-            return iter.hasNext() ? iter.next() : F.first(filtered);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Finds previous node in the topology.
-     *
-     * @return Previous node.
-     */
-    @Nullable public TcpDiscoveryNode previousNode() {
-        rwLock.readLock().lock();
-
-        try {
-            if (nodes.size() < 2)
-                return null;
-
-            return previousNode(null);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Finds previous node in the topology filtering excluded nodes from search.
-     *
-     * @param excluded Nodes to exclude from the search (optional). If provided,
-     * cannot contain local node.
-     * @return Previous node or {@code null} if all nodes were filtered out or
-     * topology contains less than two nodes.
-     */
-    @Nullable public TcpDiscoveryNode previousNode(@Nullable Collection<TcpDiscoveryNode> excluded) {
-        assert excluded == null || excluded.isEmpty() || !excluded.contains(locNode);
-
-        rwLock.readLock().lock();
-
-        try {
-            Collection<TcpDiscoveryNode> filtered = serverNodes(excluded);
-
-            if (filtered.size() < 2)
-                return null;
-
-            Iterator<TcpDiscoveryNode> iter = filtered.iterator();
-
-            while (iter.hasNext()) {
-                TcpDiscoveryNode node = iter.next();
-
-                if (locNode.equals(node))
-                    break;
-            }
-
-            return iter.hasNext() ? iter.next() : F.first(filtered);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Gets current topology version.
-     *
-     * @return Current topology version.
-     */
-    public long topologyVersion() {
-        rwLock.readLock().lock();
-
-        try {
-            return topVer;
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Sets new topology version.
-     *
-     * @param topVer New topology version (should be greater than current, otherwise no-op).
-     * @return {@code True} if topology has been changed.
-     */
-    public boolean topologyVersion(long topVer) {
-        rwLock.writeLock().lock();
-
-        try {
-            if (this.topVer < topVer) {
-                this.topVer = topVer;
-
-                return true;
-            }
-
-            U.debug("KARAMBA [old=" + this.topVer + ", new=" + topVer + ']');
-
-            return false;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Increments topology version and gets new value.
-     *
-     * @return Topology version (incremented).
-     */
-    public long incrementTopologyVersion() {
-        rwLock.writeLock().lock();
-
-        try {
-            return ++topVer;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * Increments topology version and gets new value.
-     *
-     * @return Topology version (incremented).
-     */
-    public long nextNodeOrder() {
-        rwLock.writeLock().lock();
-
-        try {
-            if (nodeOrder == 0) {
-                TcpDiscoveryNode last = nodes.last();
-
-                assert last != null;
-
-                nodeOrder = last.internalOrder();
-            }
-
-            return ++nodeOrder;
-        }
-        finally {
-            rwLock.writeLock().unlock();
-        }
-    }
-
-    /**
-     * @param p Filters.
-     * @return Unmodifiable collection of nodes.
-     */
-    private Collection<TcpDiscoveryNode> nodes(IgnitePredicate<? super TcpDiscoveryNode>... p) {
-        rwLock.readLock().lock();
-
-        try {
-            List<TcpDiscoveryNode> list = U.arrayList(nodes, p);
-
-            return Collections.unmodifiableCollection(list);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-
-    /**
-     * Gets server nodes from topology.
-     *
-     * @param excluded Nodes to exclude from the search (optional).
-     * @return Collection of server nodes.
-     */
-    private Collection<TcpDiscoveryNode> serverNodes(@Nullable final Collection<TcpDiscoveryNode> excluded) {
-        final boolean excludedEmpty = F.isEmpty(excluded);
-
-        return F.view(nodes, new P1<TcpDiscoveryNode>() {
-            @Override public boolean apply(TcpDiscoveryNode node) {
-                return !node.isClient() && (excludedEmpty || !excluded.contains(node));
-            }
-        });
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        rwLock.readLock().lock();
-
-        try {
-            return S.toString(TcpDiscoveryNodesRing.class, this);
-        }
-        finally {
-            rwLock.readLock().unlock();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoverySpiState.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoverySpiState.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoverySpiState.java
deleted file mode 100644
index 7ed3e0a..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoverySpiState.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.internal;
-
-/**
- * State of local node {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
- */
-public enum TcpDiscoverySpiState {
-    /** */
-    DISCONNECTED,
-
-    /** */
-    CONNECTING,
-
-    /** */
-    CONNECTED,
-
-    /** */
-    DISCONNECTING,
-
-    /** */
-    STOPPING,
-
-    /** */
-    LEFT,
-
-    /** */
-    DUPLICATE_ID,
-
-    /** */
-    AUTH_FAILED,
-
-    /** */
-    CHECK_FAILED,
-
-    /** */
-    LOOPBACK_PROBLEM
-}


[39/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractMultiNodeSelfTest.java b/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractMultiNodeSelfTest.java
index 2a4fda2..de77eec 100644
--- a/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractMultiNodeSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractMultiNodeSelfTest.java
@@ -26,9 +26,9 @@ import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
 import org.gridgain.grid.spi.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractSelfTest.java b/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractSelfTest.java
index 7830454..36feaad 100644
--- a/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractSelfTest.java
@@ -20,9 +20,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.swapspace.file.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/client/integration/GridClientPreferDirectSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/client/integration/GridClientPreferDirectSelfTest.java b/modules/clients/src/test/java/org/gridgain/client/integration/GridClientPreferDirectSelfTest.java
index d72d5c1..6a40a4a 100644
--- a/modules/clients/src/test/java/org/gridgain/client/integration/GridClientPreferDirectSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/client/integration/GridClientPreferDirectSelfTest.java
@@ -16,9 +16,9 @@ import org.apache.ignite.resources.*;
 import org.gridgain.client.*;
 import org.gridgain.client.balancer.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/client/router/GridClientFailedInitSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/client/router/GridClientFailedInitSelfTest.java b/modules/clients/src/test/java/org/gridgain/client/router/GridClientFailedInitSelfTest.java
index 0c6ba3d..4edf56e 100644
--- a/modules/clients/src/test/java/org/gridgain/client/router/GridClientFailedInitSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/client/router/GridClientFailedInitSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.client.*;
 import org.gridgain.client.impl.connection.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/client/router/GridRouterFactorySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/client/router/GridRouterFactorySelfTest.java b/modules/clients/src/test/java/org/gridgain/client/router/GridRouterFactorySelfTest.java
index 907fed8..096ad82 100644
--- a/modules/clients/src/test/java/org/gridgain/client/router/GridRouterFactorySelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/client/router/GridRouterFactorySelfTest.java
@@ -10,9 +10,9 @@
 package org.gridgain.client.router;
 
 import org.apache.ignite.configuration.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridAbstractRestProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridAbstractRestProcessorSelfTest.java b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridAbstractRestProcessorSelfTest.java
index afc2f97..b3dd2fd 100644
--- a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridAbstractRestProcessorSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridAbstractRestProcessorSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.rest;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestBinaryProtocolSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestBinaryProtocolSelfTest.java b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestBinaryProtocolSelfTest.java
index 57ab90d..8e54d05 100644
--- a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestBinaryProtocolSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestBinaryProtocolSelfTest.java
@@ -15,9 +15,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.rest.client.message.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestMemcacheProtocolSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestMemcacheProtocolSelfTest.java b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestMemcacheProtocolSelfTest.java
index ddedac1..ee3a175 100644
--- a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestMemcacheProtocolSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestMemcacheProtocolSelfTest.java
@@ -13,9 +13,9 @@ import junit.framework.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessorStartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessorStartSelfTest.java b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessorStartSelfTest.java
index cb746ec..81e64ba 100644
--- a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessorStartSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessorStartSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.lang.*;
 import org.gridgain.client.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.spi.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessorTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessorTest.java b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessorTest.java
index 88b6fc6..27ba47f 100644
--- a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessorTest.java
+++ b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessorTest.java
@@ -12,8 +12,8 @@ package org.gridgain.grid.kernal.processors.rest;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTaskCommandHandlerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTaskCommandHandlerSelfTest.java b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTaskCommandHandlerSelfTest.java
index 37a7a98..adabe2f 100644
--- a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTaskCommandHandlerSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridTaskCommandHandlerSelfTest.java
@@ -17,9 +17,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.rest.handlers.*;
 import org.gridgain.grid.kernal.processors.rest.handlers.task.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcComplexQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcComplexQuerySelfTest.java b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcComplexQuerySelfTest.java
index 74f14a1..2d2883f 100644
--- a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcComplexQuerySelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcComplexQuerySelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcConnectionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcConnectionSelfTest.java b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcConnectionSelfTest.java
index 6f3b2f8..95807a6 100644
--- a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcConnectionSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcConnectionSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.jdbc;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcEmptyCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcEmptyCacheSelfTest.java b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcEmptyCacheSelfTest.java
index e698218..6a0a013 100644
--- a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcEmptyCacheSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcEmptyCacheSelfTest.java
@@ -11,9 +11,9 @@ package org.gridgain.jdbc;
 
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.sql.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcLocalCachesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcLocalCachesSelfTest.java b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcLocalCachesSelfTest.java
index c757410..561ac0b 100644
--- a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcLocalCachesSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcLocalCachesSelfTest.java
@@ -11,9 +11,9 @@ package org.gridgain.jdbc;
 
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcMetadataSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcMetadataSelfTest.java b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcMetadataSelfTest.java
index 25d5484..dd02812 100644
--- a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcMetadataSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcMetadataSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcPreparedStatementSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcPreparedStatementSelfTest.java b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcPreparedStatementSelfTest.java
index c20c3ea..5759521 100644
--- a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcPreparedStatementSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcPreparedStatementSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.jdbc;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcResultSetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcResultSetSelfTest.java b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcResultSetSelfTest.java
index 3b4139c..1661881 100644
--- a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcResultSetSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcResultSetSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.jdbc;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcStatementSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcStatementSelfTest.java b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcStatementSelfTest.java
index 591e60f..075a23c 100644
--- a/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcStatementSelfTest.java
+++ b/modules/clients/src/test/java/org/gridgain/jdbc/GridJdbcStatementSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.jdbc;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/resources/spring-cache.xml
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/resources/spring-cache.xml b/modules/clients/src/test/resources/spring-cache.xml
index 8358826..ba89926 100644
--- a/modules/clients/src/test/resources/spring-cache.xml
+++ b/modules/clients/src/test/resources/spring-cache.xml
@@ -208,9 +208,9 @@
             of one or more servers which will always be started first.
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.GridTcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.GridTcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/resources/spring-server-node.xml
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/resources/spring-server-node.xml b/modules/clients/src/test/resources/spring-server-node.xml
index 25a8438..4712d9e 100644
--- a/modules/clients/src/test/resources/spring-server-node.xml
+++ b/modules/clients/src/test/resources/spring-server-node.xml
@@ -282,13 +282,13 @@
             TCP discovery SPI (uses VM-shared IP-finder).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.GridTcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.GridTcpDiscoverySpi">
                 <!-- Make sure both servers (unsecured and SSL-protected) can start as independent grids. -->
                 <property name="localPort" value="49500"/>
 
                 <!-- Override default IP-finder.-->
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/clients/src/test/resources/spring-server-ssl-node.xml
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/resources/spring-server-ssl-node.xml b/modules/clients/src/test/resources/spring-server-ssl-node.xml
index 2b707d3..a40d4b5 100644
--- a/modules/clients/src/test/resources/spring-server-ssl-node.xml
+++ b/modules/clients/src/test/resources/spring-server-ssl-node.xml
@@ -249,13 +249,13 @@
             TCP discovery SPI (uses VM-shared IP-finder).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.GridTcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.GridTcpDiscoverySpi">
                 <!-- Make sure both servers (unsecured and SSL-protected) can start as independent grids. -->
                 <property name="localPort" value="48500"/>
 
                 <!-- Override default IP-finder.-->
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/IgniteCluster.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteCluster.java b/modules/core/src/main/java/org/apache/ignite/IgniteCluster.java
index 6fa832b..93a7cfd 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteCluster.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteCluster.java
@@ -65,13 +65,13 @@ public interface IgniteCluster extends ClusterGroup, IgniteAsyncSupport {
      *
      * @param nodeId ID of a node to ping.
      * @return {@code true} if node for a given ID is alive, {@code false} otherwise.
-     * @see org.gridgain.grid.spi.discovery.DiscoverySpi
+     * @see org.apache.ignite.spi.discovery.DiscoverySpi
      */
     public boolean pingNode(UUID nodeId);
 
     /**
      * Gets current topology version. In case of TCP discovery
-     * (see {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}) topology versions
+     * (see {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}) topology versions
      * are sequential - they start from {@code '1'} and get incremented every time whenever a
      * node joins or leaves. For other discovery SPIs topology versions may not be (and likely are
      * not) sequential.
@@ -88,7 +88,7 @@ public interface IgniteCluster extends ClusterGroup, IgniteAsyncSupport {
      * @return Collection of grid nodes which represented by specified topology version,
      * if it is present in history storage, {@code null} otherwise.
      * @throws UnsupportedOperationException If underlying SPI implementation does not support
-     *      topology history. Currently only {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}
+     *      topology history. Currently only {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}
      *      supports topology history.
      */
     @Nullable public Collection<ClusterNode> topology(long topVer) throws UnsupportedOperationException;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
index cb3fdf0..c403fd7 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@ -47,7 +47,7 @@ public final class IgniteSystemProperties {
      * by discovery SPI. Use with care, as proper node ordering is required for
      * cache consistency. If set to {@code true}, then any discovery SPI can be used
      * with distributed cache, otherwise, only discovery SPIs that have annotation
-     * {@link org.gridgain.grid.spi.discovery.DiscoverySpiOrderSupport @GridDiscoverySpiOrderSupport(true)} will
+     * {@link org.apache.ignite.spi.discovery.DiscoverySpiOrderSupport @GridDiscoverySpiOrderSupport(true)} will
      * be allowed.
      */
     public static final String GG_NO_DISCO_ORDER = "GRIDGAIN_NO_DISCO_ORDER";
@@ -386,7 +386,7 @@ public final class IgniteSystemProperties {
 
     /**
      * Comma separated list of addresses in format "10.100.22.100:45000,10.100.22.101:45000".
-     * Makes sense only for {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder}.
+     * Makes sense only for {@link org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder}.
      */
     public static final String GG_TCP_DISCOVERY_ADDRESSES = "GRIDGAIN_TCP_DISCOVERY_ADDRESSES";
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java b/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java
index 96c1509..a0dd196 100644
--- a/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java
+++ b/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java
@@ -84,7 +84,7 @@ import java.util.*;
  * Grid node metrics (see {@link #metrics()}) are updated frequently for all nodes
  * and can be used to get dynamic information about a node. The frequency of update
  * is often directly related to the heartbeat exchange between nodes. So if, for example,
- * default {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi} is used,
+ * default {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi} is used,
  * the metrics data will be updated every {@code 2} seconds by default.
  * <p>
  * Grid node metrics provide information about other nodes that can frequently change,
@@ -144,7 +144,7 @@ public interface ClusterNode extends GridMetadataAware {
      * <p>
      * Node metrics are updated with some delay which is directly related to heartbeat
      * frequency. For example, when used with default
-     * {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi} the update will happen every {@code 2} seconds.
+     * {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi} the update will happen every {@code 2} seconds.
      *
      * @return Runtime metrics snapshot for this node.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 8e5d59b..78e61b2 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@ -31,7 +31,7 @@ import org.apache.ignite.spi.checkpoint.*;
 import org.apache.ignite.spi.collision.*;
 import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.deployment.*;
-import org.gridgain.grid.spi.discovery.*;
+import org.apache.ignite.spi.discovery.*;
 import org.gridgain.grid.spi.eventstorage.*;
 import org.gridgain.grid.spi.eventstorage.memory.*;
 import org.gridgain.grid.spi.failover.*;
@@ -1774,7 +1774,7 @@ public class IgniteConfiguration {
 
     /**
      * Should return fully configured discovery SPI implementation. If not provided,
-     * {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi} will be used by default.
+     * {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi} will be used by default.
      *
      * @return Grid discovery SPI implementation or {@code null} to use default implementation.
      */
@@ -1783,9 +1783,9 @@ public class IgniteConfiguration {
     }
 
     /**
-     * Sets fully configured instance of {@link org.gridgain.grid.spi.discovery.DiscoverySpi}.
+     * Sets fully configured instance of {@link org.apache.ignite.spi.discovery.DiscoverySpi}.
      *
-     * @param discoSpi Fully configured instance of {@link org.gridgain.grid.spi.discovery.DiscoverySpi}.
+     * @param discoSpi Fully configured instance of {@link org.apache.ignite.spi.discovery.DiscoverySpi}.
      * @see IgniteConfiguration#getDiscoverySpi()
      */
     public void setDiscoverySpi(DiscoverySpi discoSpi) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/plugin/PluginContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/PluginContext.java b/modules/core/src/main/java/org/apache/ignite/plugin/PluginContext.java
index 3344bcc..d8eb1a6 100644
--- a/modules/core/src/main/java/org/apache/ignite/plugin/PluginContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/PluginContext.java
@@ -38,20 +38,20 @@ public interface PluginContext {
 
     /**
      * Gets a collection of all grid nodes. Remote nodes are discovered via underlying
-     * {@link org.gridgain.grid.spi.discovery.DiscoverySpi} implementation used.
+     * {@link org.apache.ignite.spi.discovery.DiscoverySpi} implementation used.
      *
      * @return Collection of grid nodes.
      * @see #localNode()
-     * @see org.gridgain.grid.spi.discovery.DiscoverySpi
+     * @see org.apache.ignite.spi.discovery.DiscoverySpi
      */
     public Collection<ClusterNode> nodes();
 
     /**
-     * Gets local grid node. Instance of local node is provided by underlying {@link org.gridgain.grid.spi.discovery.DiscoverySpi}
+     * Gets local grid node. Instance of local node is provided by underlying {@link org.apache.ignite.spi.discovery.DiscoverySpi}
      * implementation used.
      *
      * @return Local grid node.
-     * @see org.gridgain.grid.spi.discovery.DiscoverySpi
+     * @see org.apache.ignite.spi.discovery.DiscoverySpi
      */
     public ClusterNode localNode();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java
index 2f0516c..8c20c98 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java
@@ -29,46 +29,46 @@ import java.util.*;
 public interface IgniteSpiContext {
     /**
      * Gets a collection of remote grid nodes. Remote nodes are discovered via underlying
-     * {@link org.gridgain.grid.spi.discovery.DiscoverySpi} implementation used. Unlike {@link #nodes()},
+     * {@link org.apache.ignite.spi.discovery.DiscoverySpi} implementation used. Unlike {@link #nodes()},
      * this method does not include local grid node.
      *
      * @return Collection of remote grid nodes.
      * @see #localNode()
      * @see #nodes()
-     * @see org.gridgain.grid.spi.discovery.DiscoverySpi
+     * @see org.apache.ignite.spi.discovery.DiscoverySpi
      */
     public Collection<ClusterNode> remoteNodes();
 
     /**
      * Gets a collection of all grid nodes. Remote nodes are discovered via underlying
-     * {@link org.gridgain.grid.spi.discovery.DiscoverySpi} implementation used. Unlike {@link #remoteNodes()},
+     * {@link org.apache.ignite.spi.discovery.DiscoverySpi} implementation used. Unlike {@link #remoteNodes()},
      * this method does include local grid node.
      *
      * @return Collection of remote grid nodes.
      * @see #localNode()
      * @see #remoteNodes()
-     * @see org.gridgain.grid.spi.discovery.DiscoverySpi
+     * @see org.apache.ignite.spi.discovery.DiscoverySpi
      */
     public Collection<ClusterNode> nodes();
 
     /**
-     * Gets local grid node. Instance of local node is provided by underlying {@link org.gridgain.grid.spi.discovery.DiscoverySpi}
+     * Gets local grid node. Instance of local node is provided by underlying {@link org.apache.ignite.spi.discovery.DiscoverySpi}
      * implementation used.
      *
      * @return Local grid node.
-     * @see org.gridgain.grid.spi.discovery.DiscoverySpi
+     * @see org.apache.ignite.spi.discovery.DiscoverySpi
      */
     public ClusterNode localNode();
 
     /**
      * Gets a collection of all remote daemon nodes in topology. The daemon nodes are discovered via
-     * underlying {@link org.gridgain.grid.spi.discovery.DiscoverySpi} implementation used.
+     * underlying {@link org.apache.ignite.spi.discovery.DiscoverySpi} implementation used.
      *
      * @return Collection of all daemon nodes.
      * @see #localNode()
      * @see #remoteNodes()
      * @see #nodes()
-     * @see org.gridgain.grid.spi.discovery.DiscoverySpi
+     * @see org.apache.ignite.spi.discovery.DiscoverySpi
      */
     public Collection<ClusterNode> remoteDaemonNodes();
 
@@ -77,13 +77,13 @@ public interface IgniteSpiContext {
      *
      * @param nodeId ID of a node to get.
      * @return Node for a given ID or {@code null} is such not has not been discovered.
-     * @see org.gridgain.grid.spi.discovery.DiscoverySpi
+     * @see org.apache.ignite.spi.discovery.DiscoverySpi
      */
     @Nullable public ClusterNode node(UUID nodeId);
 
     /**
      * Pings a remote node. The underlying communication is provided via
-     * {@link org.gridgain.grid.spi.discovery.DiscoverySpi#pingNode(UUID)} implementation.
+     * {@link org.apache.ignite.spi.discovery.DiscoverySpi#pingNode(UUID)} implementation.
      * <p>
      * Discovery SPIs usually have some latency in discovering failed nodes. Hence,
      * communication to remote nodes may fail at times if an attempt was made to
@@ -92,7 +92,7 @@ public interface IgniteSpiContext {
      *
      * @param nodeId ID of a node to ping.
      * @return {@code true} if node for a given ID is alive, {@code false} otherwise.
-     * @see org.gridgain.grid.spi.discovery.DiscoverySpi
+     * @see org.apache.ignite.spi.discovery.DiscoverySpi
      */
     public boolean pingNode(UUID nodeId);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryMetricsHelper.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryMetricsHelper.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryMetricsHelper.java
new file mode 100644
index 0000000..7681b45
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryMetricsHelper.java
@@ -0,0 +1,360 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import org.apache.ignite.cluster.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+/**
+ * Helper class to serialize and deserialize node metrics.
+ */
+public final class DiscoveryMetricsHelper {
+    /** Size of serialized node metrics. */
+    public static final int METRICS_SIZE =
+        4/*max active jobs*/ +
+        4/*current active jobs*/ +
+        4/*average active jobs*/ +
+        4/*max waiting jobs*/ +
+        4/*current waiting jobs*/ +
+        4/*average waiting jobs*/ +
+        4/*max cancelled jobs*/ +
+        4/*current cancelled jobs*/ +
+        4/*average cancelled jobs*/ +
+        4/*max rejected jobs*/ +
+        4/*current rejected jobs*/ +
+        4/*average rejected jobs*/ +
+        4/*total executed jobs*/ +
+        4/*total rejected jobs*/ +
+        4/*total cancelled jobs*/ +
+        8/*max job wait time*/ +
+        8/*current job wait time*/ +
+        8/*average job wait time*/ +
+        8/*max job execute time*/ +
+        8/*current job execute time*/ +
+        8/*average job execute time*/ +
+        4/*total executed tasks*/ +
+        8/*current idle time*/ +
+        8/*total idle time*/ +
+        4/*available processors*/ +
+        8/*current CPU load*/ +
+        8/*average CPU load*/ +
+        8/*current GC CPU load*/ +
+        8/*heap memory init*/ +
+        8/*heap memory used*/ +
+        8/*heap memory committed*/ +
+        8/*heap memory max*/ +
+        8/*non-heap memory init*/ +
+        8/*non-heap memory used*/ +
+        8/*non-heap memory committed*/ +
+        8/*non-heap memory max*/ +
+        8/*uptime*/ +
+        8/*start time*/ +
+        8/*node start time*/ +
+        4/*thread count*/ +
+        4/*peak thread count*/ +
+        8/*total started thread count*/ +
+        4/*daemon thread count*/ +
+        8/*last data version.*/ +
+        4/*sent messages count*/ +
+        8/*sent bytes count*/ +
+        4/*received messages count*/ +
+        8/*received bytes count*/ +
+        4/*outbound messages queue size*/;
+
+    /**
+     * Enforces singleton.
+     */
+    private DiscoveryMetricsHelper() {
+        // No-op.
+    }
+
+    /**
+     * Serializes node metrics into byte array.
+     *
+     * @param data Byte array.
+     * @param off Offset into byte array.
+     * @param metrics Node metrics to serialize.
+     * @return New offset.
+     */
+    public static int serialize(byte[] data, int off, ClusterNodeMetrics metrics) {
+        int start = off;
+
+        off = U.intToBytes(metrics.getMaximumActiveJobs(), data, off);
+        off = U.intToBytes(metrics.getCurrentActiveJobs(), data, off);
+        off = U.floatToBytes(metrics.getAverageActiveJobs(), data, off);
+        off = U.intToBytes(metrics.getMaximumWaitingJobs(), data, off);
+        off = U.intToBytes(metrics.getCurrentWaitingJobs(), data, off);
+        off = U.floatToBytes(metrics.getAverageWaitingJobs(), data, off);
+        off = U.intToBytes(metrics.getMaximumRejectedJobs(), data, off);
+        off = U.intToBytes(metrics.getCurrentRejectedJobs(), data, off);
+        off = U.floatToBytes(metrics.getAverageRejectedJobs(), data, off);
+        off = U.intToBytes(metrics.getMaximumCancelledJobs(), data, off);
+        off = U.intToBytes(metrics.getCurrentCancelledJobs(), data, off);
+        off = U.floatToBytes(metrics.getAverageCancelledJobs(), data, off);
+        off = U.intToBytes(metrics.getTotalRejectedJobs(), data , off);
+        off = U.intToBytes(metrics.getTotalCancelledJobs(), data , off);
+        off = U.intToBytes(metrics.getTotalExecutedJobs(), data , off);
+        off = U.longToBytes(metrics.getMaximumJobWaitTime(), data, off);
+        off = U.longToBytes(metrics.getCurrentJobWaitTime(), data, off);
+        off = U.doubleToBytes(metrics.getAverageJobWaitTime(), data, off);
+        off = U.longToBytes(metrics.getMaximumJobExecuteTime(), data, off);
+        off = U.longToBytes(metrics.getCurrentJobExecuteTime(), data, off);
+        off = U.doubleToBytes(metrics.getAverageJobExecuteTime(), data, off);
+        off = U.intToBytes(metrics.getTotalExecutedTasks(), data, off);
+        off = U.longToBytes(metrics.getCurrentIdleTime(), data, off);
+        off = U.longToBytes(metrics.getTotalIdleTime(), data , off);
+        off = U.intToBytes(metrics.getTotalCpus(), data, off);
+        off = U.doubleToBytes(metrics.getCurrentCpuLoad(), data, off);
+        off = U.doubleToBytes(metrics.getAverageCpuLoad(), data, off);
+        off = U.doubleToBytes(metrics.getCurrentGcCpuLoad(), data, off);
+        off = U.longToBytes(metrics.getHeapMemoryInitialized(), data, off);
+        off = U.longToBytes(metrics.getHeapMemoryUsed(), data, off);
+        off = U.longToBytes(metrics.getHeapMemoryCommitted(), data, off);
+        off = U.longToBytes(metrics.getHeapMemoryMaximum(), data, off);
+        off = U.longToBytes(metrics.getNonHeapMemoryInitialized(), data, off);
+        off = U.longToBytes(metrics.getNonHeapMemoryUsed(), data, off);
+        off = U.longToBytes(metrics.getNonHeapMemoryCommitted(), data, off);
+        off = U.longToBytes(metrics.getNonHeapMemoryMaximum(), data, off);
+        off = U.longToBytes(metrics.getStartTime(), data, off);
+        off = U.longToBytes(metrics.getNodeStartTime(), data, off);
+        off = U.longToBytes(metrics.getUpTime(), data, off);
+        off = U.intToBytes(metrics.getCurrentThreadCount(), data, off);
+        off = U.intToBytes(metrics.getMaximumThreadCount(), data, off);
+        off = U.longToBytes(metrics.getTotalStartedThreadCount(), data, off);
+        off = U.intToBytes(metrics.getCurrentDaemonThreadCount(), data, off);
+        off = U.longToBytes(metrics.getLastDataVersion(), data, off);
+        off = U.intToBytes(metrics.getSentMessagesCount(), data, off);
+        off = U.longToBytes(metrics.getSentBytesCount(), data, off);
+        off = U.intToBytes(metrics.getReceivedMessagesCount(), data, off);
+        off = U.longToBytes(metrics.getReceivedBytesCount(), data, off);
+        off = U.intToBytes(metrics.getOutboundMessagesQueueSize(), data, off);
+
+        assert off - start == METRICS_SIZE : "Invalid metrics size [expected=" + METRICS_SIZE + ", actual=" +
+            (off - start) + ']';
+
+        return off;
+    }
+
+    /**
+     * De-serializes node metrics.
+     *
+     * @param data Byte array.
+     * @param off Offset into byte array.
+     * @return Deserialized node metrics.
+     */
+    public static ClusterNodeMetrics deserialize(byte[] data, int off) {
+        int start = off;
+
+        DiscoveryNodeMetricsAdapter metrics = new DiscoveryNodeMetricsAdapter();
+
+        metrics.setLastUpdateTime(U.currentTimeMillis());
+
+        metrics.setMaximumActiveJobs(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setCurrentActiveJobs(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setAverageActiveJobs(U.bytesToFloat(data, off));
+
+        off += 4;
+
+        metrics.setMaximumWaitingJobs(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setCurrentWaitingJobs(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setAverageWaitingJobs(U.bytesToFloat(data, off));
+
+        off += 4;
+
+        metrics.setMaximumRejectedJobs(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setCurrentRejectedJobs(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setAverageRejectedJobs(U.bytesToFloat(data, off));
+
+        off += 4;
+
+        metrics.setMaximumCancelledJobs(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setCurrentCancelledJobs(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setAverageCancelledJobs(U.bytesToFloat(data, off));
+
+        off += 4;
+
+        metrics.setTotalRejectedJobs(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setTotalCancelledJobs(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setTotalExecutedJobs(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setMaximumJobWaitTime(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setCurrentJobWaitTime(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setAverageJobWaitTime(U.bytesToDouble(data, off));
+
+        off += 8;
+
+        metrics.setMaximumJobExecuteTime(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setCurrentJobExecuteTime(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setAverageJobExecuteTime(U.bytesToDouble(data, off));
+
+        off += 8;
+
+        metrics.setTotalExecutedTasks(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setCurrentIdleTime(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setTotalIdleTime(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setAvailableProcessors(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setCurrentCpuLoad(U.bytesToDouble(data, off));
+
+        off += 8;
+
+        metrics.setAverageCpuLoad(U.bytesToDouble(data, off));
+
+        off += 8;
+
+        metrics.setCurrentGcCpuLoad(U.bytesToDouble(data, off));
+
+        off += 8;
+
+        metrics.setHeapMemoryInitialized(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setHeapMemoryUsed(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setHeapMemoryCommitted(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setHeapMemoryMaximum(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setNonHeapMemoryInitialized(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setNonHeapMemoryUsed(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setNonHeapMemoryCommitted(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setNonHeapMemoryMaximum(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setStartTime(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setNodeStartTime(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setUpTime(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setCurrentThreadCount(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setMaximumThreadCount(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setTotalStartedThreadCount(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setCurrentDaemonThreadCount(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setLastDataVersion(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setSentMessagesCount(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setSentBytesCount(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setReceivedMessagesCount(U.bytesToInt(data, off));
+
+        off += 4;
+
+        metrics.setReceivedBytesCount(U.bytesToLong(data, off));
+
+        off += 8;
+
+        metrics.setOutboundMessagesQueueSize(U.bytesToInt(data, off));
+
+        off += 4;
+
+        assert off - start == METRICS_SIZE : "Invalid metrics size [expected=" + METRICS_SIZE + ", actual=" +
+            (off - start) + ']';
+
+        return metrics;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryMetricsProvider.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryMetricsProvider.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryMetricsProvider.java
new file mode 100644
index 0000000..8690d9e
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryMetricsProvider.java
@@ -0,0 +1,31 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import org.apache.ignite.cluster.*;
+import org.gridgain.grid.util.tostring.*;
+
+/**
+ * Provides metrics to discovery SPI. It is responsibility of discovery SPI
+ * to make sure that all nodes have updated metrics data about each other.
+ * <p>
+ * GridGain implementation will supply discovery SPI with metrics provider
+ * via {@link DiscoverySpi#setMetricsProvider(DiscoveryMetricsProvider)}
+ * method.
+ */
+@GridToStringExclude
+public interface DiscoveryMetricsProvider {
+    /**
+     * This method always returns up-to-date metrics data about local node.
+     *
+     * @return Up to date metrics data about local node.
+     */
+    public ClusterNodeMetrics getMetrics();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryNodeMetricsAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryNodeMetricsAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryNodeMetricsAdapter.java
new file mode 100644
index 0000000..d76110f
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryNodeMetricsAdapter.java
@@ -0,0 +1,1060 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import org.apache.ignite.cluster.*;
+import org.gridgain.grid.kernal.managers.discovery.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+
+/**
+ * Adapter for {@link GridLocalMetrics} interface.
+ * <p>
+ * Note that whenever adding or removing metric parameters, care
+ * must be taken to update {@link DiscoveryMetricsHelper} as well.
+ */
+public class DiscoveryNodeMetricsAdapter implements ClusterNodeMetrics, Externalizable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** */
+    private long lastUpdateTime = -1;
+
+    /** */
+    private int maxActiveJobs = -1;
+
+    /** */
+    private int curActiveJobs = -1;
+
+    /** */
+    private float avgActiveJobs = -1;
+
+    /** */
+    private int maxWaitingJobs = -1;
+
+    /** */
+    private int curWaitingJobs = -1;
+
+    /** */
+    private float avgWaitingJobs = -1;
+
+    /** */
+    private int maxRejectedJobs = -1;
+
+    /** */
+    private int curRejectedJobs = -1;
+
+    /** */
+    private float avgRejectedJobs = -1;
+
+    /** */
+    private int maxCancelledJobs = -1;
+
+    /** */
+    private int curCancelledJobs = -1;
+
+    /** */
+    private float avgCancelledJobs = -1;
+
+    /** */
+    private int totalRejectedJobs = -1;
+
+    /** */
+    private int totalCancelledJobs = -1;
+
+    /** */
+    private int totalExecutedJobs = -1;
+
+    /** */
+    private long maxJobWaitTime = -1;
+
+    /** */
+    private long curJobWaitTime = -1;
+
+    /** */
+    private double avgJobWaitTime = -1;
+
+    /** */
+    private long maxJobExecTime = -1;
+
+    /** */
+    private long curJobExecTime = -1;
+
+    /** */
+    private double avgJobExecTime = -1;
+
+    /** */
+    private int totalExecTasks = -1;
+
+    /** */
+    private long totalIdleTime = -1;
+
+    /** */
+    private long curIdleTime = -1;
+
+    /** */
+    private int availProcs = -1;
+
+    /** */
+    private long totalPhysicalMemory = -1;
+
+    /** */
+    private double load = -1;
+
+    /** */
+    private double avgLoad = -1;
+
+    /** */
+    private double gcLoad = -1;
+
+    /** */
+    private long heapInit = -1;
+
+    /** */
+    private long heapUsed = -1;
+
+    /** */
+    private long heapCommitted = -1;
+
+    /** */
+    private long heapMax = -1;
+
+    /** */
+    private long nonHeapInit = -1;
+
+    /** */
+    private long nonHeapUsed = -1;
+
+    /** */
+    private long nonHeapCommitted = -1;
+
+    /** */
+    private long nonHeapMax = -1;
+
+    /** */
+    private long upTime = -1;
+
+    /** */
+    private long startTime = -1;
+
+    /** */
+    private long nodeStartTime = -1;
+
+    /** */
+    private int threadCnt = -1;
+
+    /** */
+    private int peakThreadCnt = -1;
+
+    /** */
+    private long startedThreadCnt = -1;
+
+    /** */
+    private int daemonThreadCnt = -1;
+
+    /** */
+    private long lastDataVer = -1;
+
+    /** */
+    private int sentMsgsCnt = -1;
+
+    /** */
+    private long sentBytesCnt = -1;
+
+    /** */
+    private int rcvdMsgsCnt = -1;
+
+    /** */
+    private long rcvdBytesCnt = -1;
+
+    /** */
+    private int outMesQueueSize = -1;
+
+    /** {@inheritDoc} */
+    @Override public long getLastUpdateTime() {
+        return lastUpdateTime;
+    }
+
+    /**
+     * Sets last update time.
+     *
+     * @param lastUpdateTime Last update time.
+     */
+    public void setLastUpdateTime(long lastUpdateTime) {
+        this.lastUpdateTime = lastUpdateTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getMaximumActiveJobs() {
+        return maxActiveJobs;
+    }
+
+    /**
+     * Sets max active jobs.
+     *
+     * @param maxActiveJobs Max active jobs.
+     */
+    public void setMaximumActiveJobs(int maxActiveJobs) {
+        this.maxActiveJobs = maxActiveJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getCurrentActiveJobs() {
+        return curActiveJobs;
+    }
+
+    /**
+     * Sets current active jobs.
+     *
+     * @param curActiveJobs Current active jobs.
+     */
+    public void setCurrentActiveJobs(int curActiveJobs) {
+        this.curActiveJobs = curActiveJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getAverageActiveJobs() {
+        return avgActiveJobs;
+    }
+
+    /**
+     * Sets average active jobs.
+     *
+     * @param avgActiveJobs Average active jobs.
+     */
+    public void setAverageActiveJobs(float avgActiveJobs) {
+        this.avgActiveJobs = avgActiveJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getMaximumWaitingJobs() {
+        return maxWaitingJobs;
+    }
+
+    /**
+     * Sets maximum waiting jobs.
+     *
+     * @param maxWaitingJobs Maximum waiting jobs.
+     */
+    public void setMaximumWaitingJobs(int maxWaitingJobs) {
+        this.maxWaitingJobs = maxWaitingJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getCurrentWaitingJobs() {
+        return curWaitingJobs;
+    }
+
+    /**
+     * Sets current waiting jobs.
+     *
+     * @param curWaitingJobs Current waiting jobs.
+     */
+    public void setCurrentWaitingJobs(int curWaitingJobs) {
+        this.curWaitingJobs = curWaitingJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getAverageWaitingJobs() {
+        return avgWaitingJobs;
+    }
+
+    /**
+     * Sets average waiting jobs.
+     *
+     * @param avgWaitingJobs Average waiting jobs.
+     */
+    public void setAverageWaitingJobs(float avgWaitingJobs) {
+        this.avgWaitingJobs = avgWaitingJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getMaximumRejectedJobs() {
+        return maxRejectedJobs;
+    }
+
+    /**
+     * @param maxRejectedJobs Maximum number of jobs rejected during a single collision resolution event.
+     */
+    public void setMaximumRejectedJobs(int maxRejectedJobs) {
+        this.maxRejectedJobs = maxRejectedJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getCurrentRejectedJobs() {
+        return curRejectedJobs;
+    }
+
+    /**
+     * @param curRejectedJobs Number of jobs rejected during most recent collision resolution.
+     */
+    public void setCurrentRejectedJobs(int curRejectedJobs) {
+        this.curRejectedJobs = curRejectedJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getAverageRejectedJobs() {
+        return avgRejectedJobs;
+    }
+
+    /**
+     * @param avgRejectedJobs Average number of jobs this node rejects.
+     */
+    public void setAverageRejectedJobs(float avgRejectedJobs) {
+        this.avgRejectedJobs = avgRejectedJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalRejectedJobs() {
+        return totalRejectedJobs;
+    }
+
+    /**
+     * @param totalRejectedJobs Total number of jobs this node ever rejected.
+     */
+    public void setTotalRejectedJobs(int totalRejectedJobs) {
+        this.totalRejectedJobs = totalRejectedJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getMaximumCancelledJobs() {
+        return maxCancelledJobs;
+    }
+
+    /**
+     * Sets maximum cancelled jobs.
+     *
+     * @param maxCancelledJobs Maximum cancelled jobs.
+     */
+    public void setMaximumCancelledJobs(int maxCancelledJobs) {
+        this.maxCancelledJobs = maxCancelledJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getCurrentCancelledJobs() {
+        return curCancelledJobs;
+    }
+
+    /**
+     * Sets current cancelled jobs.
+     *
+     * @param curCancelledJobs Current cancelled jobs.
+     */
+    public void setCurrentCancelledJobs(int curCancelledJobs) {
+        this.curCancelledJobs = curCancelledJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getAverageCancelledJobs() {
+        return avgCancelledJobs;
+    }
+
+    /**
+     * Sets average cancelled jobs.
+     *
+     * @param avgCancelledJobs Average cancelled jobs.
+     */
+    public void setAverageCancelledJobs(float avgCancelledJobs) {
+        this.avgCancelledJobs = avgCancelledJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalExecutedJobs() {
+        return totalExecutedJobs;
+    }
+
+    /**
+     * Sets total active jobs.
+     *
+     * @param totalExecutedJobs Total active jobs.
+     */
+    public void setTotalExecutedJobs(int totalExecutedJobs) {
+        this.totalExecutedJobs = totalExecutedJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalCancelledJobs() {
+        return totalCancelledJobs;
+    }
+
+    /**
+     * Sets total cancelled jobs.
+     *
+     * @param totalCancelledJobs Total cancelled jobs.
+     */
+    public void setTotalCancelledJobs(int totalCancelledJobs) {
+        this.totalCancelledJobs = totalCancelledJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getMaximumJobWaitTime() {
+        return maxJobWaitTime;
+    }
+
+    /**
+     * Sets max job wait time.
+     *
+     * @param maxJobWaitTime Max job wait time.
+     */
+    public void setMaximumJobWaitTime(long maxJobWaitTime) {
+        this.maxJobWaitTime = maxJobWaitTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getCurrentJobWaitTime() {
+        return curJobWaitTime;
+    }
+
+    /**
+     * Sets current job wait time.
+     *
+     * @param curJobWaitTime Current job wait time.
+     */
+    public void setCurrentJobWaitTime(long curJobWaitTime) {
+        this.curJobWaitTime = curJobWaitTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public double getAverageJobWaitTime() {
+        return avgJobWaitTime;
+    }
+
+    /**
+     * Sets average job wait time.
+     *
+     * @param avgJobWaitTime Average job wait time.
+     */
+    public void setAverageJobWaitTime(double avgJobWaitTime) {
+        this.avgJobWaitTime = avgJobWaitTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getMaximumJobExecuteTime() {
+        return maxJobExecTime;
+    }
+
+    /**
+     * Sets maximum job execution time.
+     *
+     * @param maxJobExecTime Maximum job execution time.
+     */
+    public void setMaximumJobExecuteTime(long maxJobExecTime) {
+        this.maxJobExecTime = maxJobExecTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getCurrentJobExecuteTime() {
+        return curJobExecTime;
+    }
+
+    /**
+     * Sets current job execute time.
+     *
+     * @param curJobExecTime Current job execute time.
+     */
+    public void setCurrentJobExecuteTime(long curJobExecTime) {
+        this.curJobExecTime = curJobExecTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public double getAverageJobExecuteTime() {
+        return avgJobExecTime;
+    }
+
+    /**
+     * Sets average job execution time.
+     *
+     * @param avgJobExecTime Average job execution time.
+     */
+    public void setAverageJobExecuteTime(double avgJobExecTime) {
+        this.avgJobExecTime = avgJobExecTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalExecutedTasks() {
+        return totalExecTasks;
+    }
+
+    /**
+     * Sets total executed tasks count.
+     *
+     * @param totalExecTasks total executed tasks count.
+     */
+    public void setTotalExecutedTasks(int totalExecTasks) {
+        this.totalExecTasks = totalExecTasks;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getTotalBusyTime() {
+        return getUpTime() - getTotalIdleTime();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getTotalIdleTime() {
+        return totalIdleTime;
+    }
+
+    /**
+     * Set total node idle time.
+     *
+     * @param totalIdleTime Total node idle time.
+     */
+    public void setTotalIdleTime(long totalIdleTime) {
+        this.totalIdleTime = totalIdleTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getCurrentIdleTime() {
+        return curIdleTime;
+    }
+
+    /**
+     * Sets time elapsed since execution of last job.
+     *
+     * @param curIdleTime Time elapsed since execution of last job.
+     */
+    public void setCurrentIdleTime(long curIdleTime) {
+        this.curIdleTime = curIdleTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getBusyTimePercentage() {
+        return 1 - getIdleTimePercentage();
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getIdleTimePercentage() {
+        return getTotalIdleTime() / (float)getUpTime();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalCpus() {
+        return availProcs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public double getCurrentCpuLoad() {
+        return load;
+    }
+
+    /** {@inheritDoc} */
+    @Override public double getAverageCpuLoad() {
+        return avgLoad;
+    }
+
+    /** {@inheritDoc} */
+    @Override public double getCurrentGcCpuLoad() {
+        return gcLoad;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getHeapMemoryInitialized() {
+        return heapInit;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getHeapMemoryUsed() {
+        return heapUsed;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getHeapMemoryCommitted() {
+        return heapCommitted;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getHeapMemoryMaximum() {
+        return heapMax;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNonHeapMemoryInitialized() {
+        return nonHeapInit;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNonHeapMemoryUsed() {
+        return nonHeapUsed;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNonHeapMemoryCommitted() {
+        return nonHeapCommitted;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNonHeapMemoryMaximum() {
+        return nonHeapMax;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getUpTime() {
+        return upTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getStartTime() {
+        return startTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getNodeStartTime() {
+        return nodeStartTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getCurrentThreadCount() {
+        return threadCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getMaximumThreadCount() {
+        return peakThreadCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getTotalStartedThreadCount() {
+        return startedThreadCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getCurrentDaemonThreadCount() {
+        return daemonThreadCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getLastDataVersion() {
+        return lastDataVer;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getSentMessagesCount() {
+        return sentMsgsCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getSentBytesCount() {
+        return sentBytesCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getReceivedMessagesCount() {
+        return rcvdMsgsCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getReceivedBytesCount() {
+        return rcvdBytesCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getOutboundMessagesQueueSize() {
+        return outMesQueueSize;
+    }
+
+    /**
+     * Sets available processors.
+     *
+     * @param availProcs Available processors.
+     */
+    public void setAvailableProcessors(int availProcs) {
+        this.availProcs = availProcs;
+    }
+
+    /**
+     * Sets current CPU load.
+     *
+     * @param load Current CPU load.
+     */
+    public void setCurrentCpuLoad(double load) {
+        this.load = load;
+    }
+
+    /**
+     * Sets CPU load average over the metrics history.
+     *
+     * @param avgLoad CPU load average.
+     */
+    public void setAverageCpuLoad(double avgLoad) {
+        this.avgLoad = avgLoad;
+    }
+
+    /**
+     * Sets current GC load.
+     *
+     * @param gcLoad Current GC load.
+     */
+    public void setCurrentGcCpuLoad(double gcLoad) {
+        this.gcLoad = gcLoad;
+    }
+
+    /**
+     * Sets heap initial memory.
+     *
+     * @param heapInit Heap initial memory.
+     */
+    public void setHeapMemoryInitialized(long heapInit) {
+        this.heapInit = heapInit;
+    }
+
+    /**
+     * Sets used heap memory.
+     *
+     * @param heapUsed Used heap memory.
+     */
+    public void setHeapMemoryUsed(long heapUsed) {
+        this.heapUsed = heapUsed;
+    }
+
+    /**
+     * Sets committed heap memory.
+     *
+     * @param heapCommitted Committed heap memory.
+     */
+    public void setHeapMemoryCommitted(long heapCommitted) {
+        this.heapCommitted = heapCommitted;
+    }
+
+    /**
+     * Sets maximum possible heap memory.
+     *
+     * @param heapMax Maximum possible heap memory.
+     */
+    public void setHeapMemoryMaximum(long heapMax) {
+        this.heapMax = heapMax;
+    }
+
+    /**
+     * Sets initial non-heap memory.
+     *
+     * @param nonHeapInit Initial non-heap memory.
+     */
+    public void setNonHeapMemoryInitialized(long nonHeapInit) {
+        this.nonHeapInit = nonHeapInit;
+    }
+
+    /**
+     * Sets used non-heap memory.
+     *
+     * @param nonHeapUsed Used non-heap memory.
+     */
+    public void setNonHeapMemoryUsed(long nonHeapUsed) {
+        this.nonHeapUsed = nonHeapUsed;
+    }
+
+    /**
+     * Sets committed non-heap memory.
+     *
+     * @param nonHeapCommitted Committed non-heap memory.
+     */
+    public void setNonHeapMemoryCommitted(long nonHeapCommitted) {
+        this.nonHeapCommitted = nonHeapCommitted;
+    }
+
+    /**
+     * Sets maximum possible non-heap memory.
+     *
+     * @param nonHeapMax Maximum possible non-heap memory.
+     */
+    public void setNonHeapMemoryMaximum(long nonHeapMax) {
+        this.nonHeapMax = nonHeapMax;
+    }
+
+    /**
+     * Sets VM up time.
+     *
+     * @param upTime VM up time.
+     */
+    public void setUpTime(long upTime) {
+        this.upTime = upTime;
+    }
+
+    /**
+     * Sets VM start time.
+     *
+     * @param startTime VM start time.
+     */
+    public void setStartTime(long startTime) {
+        this.startTime = startTime;
+    }
+
+    /**
+     * Sets node start time.
+     *
+     * @param nodeStartTime node start time.
+     */
+    public void setNodeStartTime(long nodeStartTime) {
+        this.nodeStartTime = nodeStartTime;
+    }
+
+    /**
+     * Sets thread count.
+     *
+     * @param threadCnt Thread count.
+     */
+    public void setCurrentThreadCount(int threadCnt) {
+        this.threadCnt = threadCnt;
+    }
+
+    /**
+     * Sets peak thread count.
+     *
+     * @param peakThreadCnt Peak thread count.
+     */
+    public void setMaximumThreadCount(int peakThreadCnt) {
+        this.peakThreadCnt = peakThreadCnt;
+    }
+
+    /**
+     * Sets started thread count.
+     *
+     * @param startedThreadCnt Started thread count.
+     */
+    public void setTotalStartedThreadCount(long startedThreadCnt) {
+        this.startedThreadCnt = startedThreadCnt;
+    }
+
+    /**
+     * Sets daemon thread count.
+     *
+     * @param daemonThreadCnt Daemon thread count.
+     */
+    public void setCurrentDaemonThreadCount(int daemonThreadCnt) {
+        this.daemonThreadCnt = daemonThreadCnt;
+    }
+
+    /**
+     * Sets last data version.
+     *
+     * @param lastDataVer Last data version.
+     */
+    public void setLastDataVersion(long lastDataVer) {
+        this.lastDataVer = lastDataVer;
+    }
+
+    /**
+     * Sets sent messages count.
+     *
+     * @param sentMsgsCnt Sent messages count.
+     */
+    public void setSentMessagesCount(int sentMsgsCnt) {
+        this.sentMsgsCnt = sentMsgsCnt;
+    }
+
+    /**
+     * Sets sent bytes count.
+     *
+     * @param sentBytesCnt Sent bytes count.
+     */
+    public void setSentBytesCount(long sentBytesCnt) {
+        this.sentBytesCnt = sentBytesCnt;
+    }
+
+    /**
+     * Sets received messages count.
+     *
+     * @param rcvdMsgsCnt Received messages count.
+     */
+    public void setReceivedMessagesCount(int rcvdMsgsCnt) {
+        this.rcvdMsgsCnt = rcvdMsgsCnt;
+    }
+
+    /**
+     * Sets received bytes count.
+     *
+     * @param rcvdBytesCnt Received bytes count.
+     */
+    public void setReceivedBytesCount(long rcvdBytesCnt) {
+        this.rcvdBytesCnt = rcvdBytesCnt;
+    }
+
+    /**
+     * Sets outbound messages queue size.
+     *
+     * @param outMesQueueSize Outbound messages queue size.
+     */
+    public void setOutboundMessagesQueueSize(int outMesQueueSize) {
+        this.outMesQueueSize = outMesQueueSize;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeInt(maxActiveJobs);
+        out.writeInt(curActiveJobs);
+        out.writeFloat(avgActiveJobs);
+        out.writeInt(maxWaitingJobs);
+        out.writeInt(curWaitingJobs);
+        out.writeFloat(avgWaitingJobs);
+        out.writeInt(maxCancelledJobs);
+        out.writeInt(curCancelledJobs);
+        out.writeFloat(avgCancelledJobs);
+        out.writeInt(maxRejectedJobs);
+        out.writeInt(curRejectedJobs);
+        out.writeFloat(avgRejectedJobs);
+        out.writeInt(totalExecutedJobs);
+        out.writeInt(totalCancelledJobs);
+        out.writeInt(totalRejectedJobs);
+        out.writeLong(maxJobWaitTime);
+        out.writeLong(curJobWaitTime);
+        out.writeDouble(avgJobWaitTime);
+        out.writeLong(maxJobExecTime);
+        out.writeLong(curJobExecTime);
+        out.writeDouble(avgJobExecTime);
+        out.writeInt(totalExecTasks);
+        out.writeLong(curIdleTime);
+        out.writeLong(totalIdleTime);
+        out.writeInt(availProcs);
+        out.writeLong(totalPhysicalMemory);
+        out.writeDouble(load);
+        out.writeDouble(avgLoad);
+        out.writeDouble(gcLoad);
+        out.writeLong(heapInit);
+        out.writeLong(heapUsed);
+        out.writeLong(heapCommitted);
+        out.writeLong(heapMax);
+        out.writeLong(nonHeapInit);
+        out.writeLong(nonHeapUsed);
+        out.writeLong(nonHeapCommitted);
+        out.writeLong(nonHeapMax);
+        out.writeLong(upTime);
+        out.writeLong(startTime);
+        out.writeLong(nodeStartTime);
+        out.writeInt(threadCnt);
+        out.writeInt(peakThreadCnt);
+        out.writeLong(startedThreadCnt);
+        out.writeInt(daemonThreadCnt);
+        out.writeLong(lastDataVer);
+        out.writeInt(sentMsgsCnt);
+        out.writeLong(sentBytesCnt);
+        out.writeInt(rcvdMsgsCnt);
+        out.writeLong(rcvdBytesCnt);
+        out.writeInt(outMesQueueSize);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException {
+        lastUpdateTime = U.currentTimeMillis();
+
+        maxActiveJobs = in.readInt();
+        curActiveJobs = in.readInt();
+        avgActiveJobs = in.readFloat();
+        maxWaitingJobs = in.readInt();
+        curWaitingJobs = in.readInt();
+        avgWaitingJobs = in.readFloat();
+        maxCancelledJobs = in.readInt();
+        curCancelledJobs = in.readInt();
+        avgCancelledJobs = in.readFloat();
+        maxRejectedJobs = in.readInt();
+        curRejectedJobs = in.readInt();
+        avgRejectedJobs = in.readFloat();
+        totalExecutedJobs = in.readInt();
+        totalCancelledJobs = in.readInt();
+        totalRejectedJobs = in.readInt();
+        maxJobWaitTime = in.readLong();
+        curJobWaitTime = in.readLong();
+        avgJobWaitTime = in.readDouble();
+        maxJobExecTime = in.readLong();
+        curJobExecTime = in.readLong();
+        avgJobExecTime = in.readDouble();
+        totalExecTasks = in.readInt();
+        curIdleTime = in.readLong();
+        totalIdleTime = in.readLong();
+        availProcs = in.readInt();
+        totalPhysicalMemory = in.readLong();
+        load = in.readDouble();
+        avgLoad = in.readDouble();
+        gcLoad = in.readDouble();
+        heapInit = in.readLong();
+        heapUsed = in.readLong();
+        heapCommitted = in.readLong();
+        heapMax = in.readLong();
+        nonHeapInit = in.readLong();
+        nonHeapUsed = in.readLong();
+        nonHeapCommitted = in.readLong();
+        nonHeapMax = in.readLong();
+        upTime = in.readLong();
+        startTime = in.readLong();
+        nodeStartTime = in.readLong();
+        threadCnt = in.readInt();
+        peakThreadCnt = in.readInt();
+        startedThreadCnt = in.readLong();
+        daemonThreadCnt = in.readInt();
+        lastDataVer = in.readLong();
+        sentMsgsCnt = in.readInt();
+        sentBytesCnt = in.readLong();
+        rcvdMsgsCnt = in.readInt();
+        rcvdBytesCnt = in.readLong();
+        outMesQueueSize = in.readInt();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        return System.identityHashCode(this);
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+
+        if (obj == null || getClass() != obj.getClass())
+            return false;
+
+        DiscoveryNodeMetricsAdapter other = (DiscoveryNodeMetricsAdapter)obj;
+
+        return
+            availProcs == other.availProcs &&
+            totalPhysicalMemory == other.totalPhysicalMemory &&
+            curActiveJobs == other.curActiveJobs &&
+            curCancelledJobs == other.curCancelledJobs &&
+            curIdleTime == other.curIdleTime &&
+            curJobExecTime == other.curJobExecTime &&
+            curJobWaitTime == other.curJobWaitTime &&
+            curRejectedJobs == other.curRejectedJobs &&
+            curWaitingJobs == other.curWaitingJobs &&
+            daemonThreadCnt == other.daemonThreadCnt &&
+            heapCommitted == other.heapCommitted &&
+            heapInit == other.heapInit &&
+            heapMax == other.heapMax &&
+            heapUsed == other.heapUsed &&
+            maxActiveJobs == other.maxActiveJobs &&
+            maxCancelledJobs == other.maxCancelledJobs &&
+            maxJobExecTime == other.maxJobExecTime &&
+            maxJobWaitTime == other.maxJobWaitTime &&
+            maxRejectedJobs == other.maxRejectedJobs &&
+            maxWaitingJobs == other.maxWaitingJobs &&
+            nonHeapCommitted == other.nonHeapCommitted &&
+            nonHeapInit == other.nonHeapInit &&
+            nonHeapMax == other.nonHeapMax &&
+            nonHeapUsed == other.nonHeapUsed &&
+            peakThreadCnt == other.peakThreadCnt &&
+            rcvdBytesCnt == other.rcvdBytesCnt &&
+            outMesQueueSize == other.outMesQueueSize &&
+            rcvdMsgsCnt == other.rcvdMsgsCnt &&
+            sentBytesCnt == other.sentBytesCnt &&
+            sentMsgsCnt == other.sentMsgsCnt &&
+            startTime == other.startTime &&
+            nodeStartTime == other.nodeStartTime &&
+            startedThreadCnt == other.startedThreadCnt &&
+            threadCnt == other.threadCnt &&
+            totalCancelledJobs == other.totalCancelledJobs &&
+            totalExecutedJobs == other.totalExecutedJobs &&
+            totalExecTasks == other.totalExecTasks &&
+            totalIdleTime == other.totalIdleTime &&
+            totalRejectedJobs == other.totalRejectedJobs &&
+            upTime == other.upTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(DiscoveryNodeMetricsAdapter.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpi.java
new file mode 100644
index 0000000..efeb0e0
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpi.java
@@ -0,0 +1,132 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.product.*;
+import org.apache.ignite.spi.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Grid discovery SPI allows to discover remote nodes in grid.
+ * <p>
+ * The default discovery SPI is {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}
+ * with default configuration which allows all nodes in local network
+ * (with enabled multicast) to discover each other.
+ * <p>
+ * Gridgain provides the following {@code GridDeploymentSpi} implementation:
+ * <ul>
+ * <li>{@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}</li>
+ * </ul>
+ * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
+ * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
+ * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
+ * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
+ * methods. Note again that calling methods from this interface on the obtained instance can lead
+ * to undefined behavior and explicitly not supported.
+ */
+public interface DiscoverySpi extends IgniteSpi {
+    /**
+     * Gets collection of remote nodes in grid or empty collection if no remote nodes found.
+     *
+     * @return Collection of remote nodes.
+     */
+    public Collection<ClusterNode> getRemoteNodes();
+
+    /**
+     * Gets local node.
+     *
+     * @return Local node.
+     */
+    public ClusterNode getLocalNode();
+
+    /**
+     * Gets node by ID.
+     *
+     * @param nodeId Node ID.
+     * @return Node with given ID or {@code null} if node is not found.
+     */
+    @Nullable public ClusterNode getNode(UUID nodeId);
+
+    /**
+     * Pings the remote node to see if it's alive.
+     *
+     * @param nodeId Node Id.
+     * @return {@code true} if node alive, {@code false} otherwise.
+     */
+    public boolean pingNode(UUID nodeId);
+
+    /**
+     * Sets node attributes and node version which will be distributed in grid during
+     * join process. Note that these attributes cannot be changed and set only once.
+     *
+     * @param attrs Map of node attributes.
+     * @param ver Product version.
+     */
+    public void setNodeAttributes(Map<String, Object> attrs, IgniteProductVersion ver);
+
+    /**
+     * Sets a listener for discovery events. Refer to
+     * {@link org.apache.ignite.events.IgniteDiscoveryEvent} for a set of all possible
+     * discovery events.
+     * <p>
+     * Note that as of GridGain 3.0.2 this method is called <b>before</b>
+     * method {@link #spiStart(String)} is called. This is done to
+     * avoid potential window when SPI is started but the listener is
+     * not registered yet.
+     *
+     * @param lsnr Listener to discovery events or {@code null} to unset the listener.
+     */
+    public void setListener(@Nullable DiscoverySpiListener lsnr);
+
+    /**
+     * Sets a handler for initial data exchange between GridGain nodes.
+     *
+     * @param exchange Discovery data exchange handler.
+     */
+    public void setDataExchange(DiscoverySpiDataExchange exchange);
+
+    /**
+     * Sets discovery metrics provider. Use metrics provided by
+     * {@link DiscoveryMetricsProvider#getMetrics()} method to exchange
+     * dynamic metrics between nodes.
+     *
+     * @param metricsProvider Provider of metrics data.
+     */
+    public void setMetricsProvider(DiscoveryMetricsProvider metricsProvider);
+
+    /**
+     * Tells discovery SPI to disconnect from topology. This is very close to calling
+     * {@link #spiStop()} with accounting that it is not a full stop,
+     * but disconnect due to segmentation.
+     *
+     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
+     */
+    public void disconnect() throws IgniteSpiException;
+
+    /**
+     * Sets discovery SPI node authenticator. This method is called before SPI start() method.
+     *
+     * @param auth Discovery SPI authenticator.
+     */
+    public void setAuthenticator(DiscoverySpiNodeAuthenticator auth);
+
+    /**
+     * Gets start time of the very first node in the grid. This value should be the same
+     * on all nodes in the grid and it should not change even if very first node fails
+     * of leaves grid.
+     *
+     * @return Start time of the first node in grid or {@code 0} if SPI implementation
+     *         does not support this method.
+     */
+    public long getGridStartTime();
+}


[48/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
index 0ae13c5..8e8bccb 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
@@ -107,7 +107,7 @@ public abstract class GridCacheAbstractFieldsQuerySelfTest extends GridCommonAbs
      * @param primitives Whether to index primitives.
      * @return Indexing SPI.
      */
-    private GridIndexingSpi indexing(@Nullable String name, boolean primitives) {
+    private IndexingSpi indexing(@Nullable String name, boolean primitives) {
         GridH2IndexingSpi spi = new GridH2IndexingSpi();
 
         if (name != null)
@@ -379,17 +379,17 @@ public abstract class GridCacheAbstractFieldsQuerySelfTest extends GridCommonAbs
 
         GridCacheQueryFuture<List<?>> fut = qry.execute();
 
-        List<GridIndexingFieldMetadata> meta = metadata(fut);
+        List<IndexingFieldMetadata> meta = metadata(fut);
 
         assert meta != null;
         assert meta.size() == 4;
 
-        Iterator<GridIndexingFieldMetadata> metaIt = meta.iterator();
+        Iterator<IndexingFieldMetadata> metaIt = meta.iterator();
 
         assert metaIt != null;
         assert metaIt.hasNext();
 
-        GridIndexingFieldMetadata field = metaIt.next();
+        IndexingFieldMetadata field = metaIt.next();
 
         assert field != null;
         assert "PUBLIC".equals(field.schemaName());
@@ -479,17 +479,17 @@ public abstract class GridCacheAbstractFieldsQuerySelfTest extends GridCommonAbs
 
         GridCacheQueryFuture<List<?>> fut = qry.execute();
 
-        List<GridIndexingFieldMetadata> meta = metadata(fut);
+        List<IndexingFieldMetadata> meta = metadata(fut);
 
         assert meta != null;
         assert meta.size() == 9;
 
-        Iterator<GridIndexingFieldMetadata> metaIt = meta.iterator();
+        Iterator<IndexingFieldMetadata> metaIt = meta.iterator();
 
         assert metaIt != null;
         assert metaIt.hasNext();
 
-        GridIndexingFieldMetadata field = metaIt.next();
+        IndexingFieldMetadata field = metaIt.next();
 
         assert field != null;
         assert "PUBLIC".equals(field.schemaName());
@@ -645,12 +645,12 @@ public abstract class GridCacheAbstractFieldsQuerySelfTest extends GridCommonAbs
 
         assert fut != null;
 
-        List<GridIndexingFieldMetadata> meta = metadata(fut);
+        List<IndexingFieldMetadata> meta = metadata(fut);
 
         assert meta != null;
         assert meta.size() == 1;
 
-        GridIndexingFieldMetadata field = F.first(meta);
+        IndexingFieldMetadata field = F.first(meta);
 
         assert field != null;
         assert "PUBLIC".equals(field.schemaName());
@@ -689,16 +689,16 @@ public abstract class GridCacheAbstractFieldsQuerySelfTest extends GridCommonAbs
 
         GridCacheQueryFuture<List<?>> fut = qry.execute();
 
-        List<GridIndexingFieldMetadata> meta = metadata(fut);
+        List<IndexingFieldMetadata> meta = metadata(fut);
 
         assert meta != null;
         assert meta.size() == 4;
 
-        Iterator<GridIndexingFieldMetadata> metaIt = meta.iterator();
+        Iterator<IndexingFieldMetadata> metaIt = meta.iterator();
 
         assert metaIt.hasNext();
 
-        GridIndexingFieldMetadata field = metaIt.next();
+        IndexingFieldMetadata field = metaIt.next();
 
         assert field != null;
         assert "INTEGER".equals(field.typeName());
@@ -1109,7 +1109,7 @@ public abstract class GridCacheAbstractFieldsQuerySelfTest extends GridCommonAbs
      * @return Metadata.
      * @throws GridException In case of error.
      */
-    private List<GridIndexingFieldMetadata> metadata(GridCacheQueryFuture<List<?>> fut) throws GridException {
+    private List<IndexingFieldMetadata> metadata(GridCacheQueryFuture<List<?>> fut) throws GridException {
         assert fut != null;
 
         return ((GridCacheQueryMetadataAware)fut).metadata().get();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedFieldsQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedFieldsQuerySelfTest.java
index 2ca2561..db9cf0b 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedFieldsQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedFieldsQuerySelfTest.java
@@ -51,7 +51,7 @@ public class GridCacheReplicatedFieldsQuerySelfTest extends GridCacheAbstractFie
         hasCache = true;
 
         try {
-            final Map<UUID, Map<Long, GridFutureAdapter<GridIndexingFieldsResult>>> map =
+            final Map<UUID, Map<Long, GridFutureAdapter<IndexingFieldsResult>>> map =
                 U.field(((GridKernal)grid(0)).internalCache().context().queries(), "fieldsQryRes");
 
             // Ensure that iterators map empty.
@@ -82,7 +82,7 @@ public class GridCacheReplicatedFieldsQuerySelfTest extends GridCacheAbstractFie
                 }
             }, getTestTimeout()));
 
-            Map<Long, GridFutureAdapter<GridIndexingFieldsResult>> futs = map.get(g.cluster().localNode().id());
+            Map<Long, GridFutureAdapter<IndexingFieldsResult>> futs = map.get(g.cluster().localNode().id());
 
             assertEquals(1, futs.size());
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedQuerySelfTest.java
index 1a5a680..bfb6803 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedQuerySelfTest.java
@@ -239,7 +239,7 @@ public class GridCacheReplicatedQuerySelfTest extends GridCacheAbstractQuerySelf
      * @return {@code qryIters} of {@link GridCacheQueryManager}.
      */
     private ConcurrentMap<UUID,
-        Map<Long, GridFutureAdapter<GridCloseableIterator<GridIndexingKeyValueRow<CacheKey, CacheValue>>>>>
+        Map<Long, GridFutureAdapter<GridCloseableIterator<IndexingKeyValueRow<CacheKey, CacheValue>>>>>
         distributedQueryManagerQueryItersMap(Ignite g) {
         GridCacheContext ctx = ((GridKernal)g).internalCache().context();
 
@@ -248,7 +248,7 @@ public class GridCacheReplicatedQuerySelfTest extends GridCacheAbstractQuerySelf
         qryItersField.setAccessible(true);
 
         return (ConcurrentMap<UUID,
-            Map<Long, GridFutureAdapter<GridCloseableIterator<GridIndexingKeyValueRow<CacheKey, CacheValue>>>>>)
+            Map<Long, GridFutureAdapter<GridCloseableIterator<IndexingKeyValueRow<CacheKey, CacheValue>>>>>)
             ReflectionUtils.getField(qryItersField, ctx.queries());
     }
 
@@ -397,7 +397,7 @@ public class GridCacheReplicatedQuerySelfTest extends GridCacheAbstractQuerySelf
             assertEquals(0, (int)fut.next().getKey());
 
             final ConcurrentMap<UUID, Map<Long, GridFutureAdapter<GridCloseableIterator<
-                GridIndexingKeyValueRow<Integer, Integer>>>>> map =
+                IndexingKeyValueRow<Integer, Integer>>>>> map =
                 U.field(((GridKernal)grid(0)).internalCache().context().queries(), "qryIters");
 
             // fut.nextX() does not guarantee the request has completed on remote node
@@ -408,12 +408,12 @@ public class GridCacheReplicatedQuerySelfTest extends GridCacheAbstractQuerySelf
                 }
             }, getTestTimeout()));
 
-            Map<Long, GridFutureAdapter<GridCloseableIterator<GridIndexingKeyValueRow<Integer, Integer>>>> futs =
+            Map<Long, GridFutureAdapter<GridCloseableIterator<IndexingKeyValueRow<Integer, Integer>>>> futs =
                 map.get(g.cluster().localNode().id());
 
             assertEquals(1, futs.size());
 
-            IgniteSpiCloseableIterator<GridIndexingKeyValueRow<Integer, Integer>> iter =
+            IgniteSpiCloseableIterator<IndexingKeyValueRow<Integer, Integer>> iter =
                 U.field(((IgniteFuture)F.first(futs.values()).get()).get(), "iter");
 
             ResultSet rs = U.field(iter, "data");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/GridIndexingSpiAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/GridIndexingSpiAbstractSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/GridIndexingSpiAbstractSelfTest.java
index 251fc01..461f62e 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/GridIndexingSpiAbstractSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/GridIndexingSpiAbstractSelfTest.java
@@ -26,7 +26,7 @@ import java.util.concurrent.*;
 /**
  * Tests for all SQL based indexing SPI implementations.
  */
-public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
+public abstract class GridIndexingSpiAbstractSelfTest<X extends IndexingSpi>
     extends GridSpiAbstractTest<X> {
     /** */
     private static final TextIndex textIdx = new TextIndex(F.asList("txt"));
@@ -126,8 +126,8 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
      * @return Indexing entity.
      * @throws GridException If failed.
      */
-    private <T> GridIndexingEntity<T> entity(T val) throws GridException {
-        return new GridIndexingEntityAdapter<>(val, getTestResources().getMarshaller().marshal(val));
+    private <T> IndexingEntity<T> entity(T val) throws GridException {
+        return new IndexingEntityAdapter<>(val, getTestResources().getMarshaller().marshal(val));
     }
 
     /**
@@ -135,7 +135,7 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
      * @return Value.
      * @throws org.apache.ignite.spi.IgniteSpiException If failed.
      */
-    private Map<String, Object> value(GridIndexingKeyValueRow<Integer, Map<String, Object>> row) throws IgniteSpiException {
+    private Map<String, Object> value(IndexingKeyValueRow<Integer, Map<String, Object>> row) throws IgniteSpiException {
         return row.value().value();
     }
 
@@ -173,8 +173,8 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
         assertFalse(spi.query(typeBA.space(), "select * from B.A", Collections.emptySet(), typeBA, null).hasNext());
 
         // Nothing to remove.
-        assertFalse(spi.remove("A", new GridIndexingEntityAdapter<>(1, null)));
-        assertFalse(spi.remove("B", new GridIndexingEntityAdapter<>(1, null)));
+        assertFalse(spi.remove("A", new IndexingEntityAdapter<>(1, null)));
+        assertFalse(spi.remove("B", new IndexingEntityAdapter<>(1, null)));
 
         spi.store(typeAA.space(), typeAA, entity(1), entity(aa(1, "Vasya", 10)), "v1".getBytes(), 0);
 
@@ -223,7 +223,7 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
         assertEquals(1, spi.size(typeBA.space(), typeBA));
 
         // Query data.
-        Iterator<GridIndexingKeyValueRow<Integer, Map<String, Object>>> res =
+        Iterator<IndexingKeyValueRow<Integer, Map<String, Object>>> res =
             spi.query(typeAA.space(), "select * from a order by age", Collections.emptySet(), typeAA, null);
 
         assertTrue(res.hasNext());
@@ -247,7 +247,7 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
         assertFalse(res.hasNext());
 
         // Text queries
-        Iterator<GridIndexingKeyValueRow<Integer, Map<String, Object>>> txtRes = spi.queryText(typeAB.space(), "good",
+        Iterator<IndexingKeyValueRow<Integer, Map<String, Object>>> txtRes = spi.queryText(typeAB.space(), "good",
             typeAB, null);
 
         assertTrue(txtRes.hasNext());
@@ -255,7 +255,7 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
         assertFalse(txtRes.hasNext());
 
         // Fields query
-        GridIndexingFieldsResult fieldsRes =
+        IndexingFieldsResult fieldsRes =
             spi.queryFields(null, "select a.a.name n1, a.a.age a1, b.a.name n2, " +
             "b.a.age a2 from a.a, b.a where a.a.id = b.a.id ", Collections.emptySet(), null);
 
@@ -264,13 +264,13 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
 
         assertTrue(fieldsRes.iterator().hasNext());
 
-        List<GridIndexingEntity<?>> fields = fieldsRes.iterator().next();
+        List<IndexingEntity<?>> fields = fieldsRes.iterator().next();
 
         assertEquals(4, fields.size());
 
         int i = 0;
 
-        for (GridIndexingEntity<?> f : fields) {
+        for (IndexingEntity<?> f : fields) {
             assertEquals(aliases[i], fieldsRes.metaData().get(i).fieldName());
             assertEquals(vals[i++], f.value());
         }
@@ -366,7 +366,7 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
                 time = now;
                 range *= 3;
 
-                GridIndexingFieldsResult res = spi.queryFields(null, sql, Arrays.<Object>asList(1, range), null);
+                IndexingFieldsResult res = spi.queryFields(null, sql, Arrays.<Object>asList(1, range), null);
 
                 assert res.iterator().hasNext();
 
@@ -420,7 +420,7 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
 
             String sql = "SELECT * FROM MyNonExistingTable";
 
-            GridIndexingFieldsResult res = spi.queryFields(null, sql, Collections.emptyList(), null);
+            IndexingFieldsResult res = spi.queryFields(null, sql, Collections.emptyList(), null);
 
             assertFalse(res.iterator().hasNext());
 
@@ -439,7 +439,7 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
     /**
      * Index descriptor.
      */
-    private static class TextIndex implements GridIndexDescriptor {
+    private static class TextIndex implements IndexDescriptor {
         /** */
         private final Collection<String> fields;
 
@@ -461,15 +461,15 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
         }
 
         /** {@inheritDoc} */
-        @Override public GridIndexType type() {
-            return GridIndexType.FULLTEXT;
+        @Override public IndexType type() {
+            return IndexType.FULLTEXT;
         }
     }
 
     /**
      * Type descriptor.
      */
-    private static class TypeDesc implements GridIndexingTypeDescriptor {
+    private static class TypeDesc implements IndexingTypeDescriptor {
         /** */
         private final String name;
 
@@ -480,7 +480,7 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
         private final Map<String, Class<?>> valFields;
 
         /** */
-        private final GridIndexDescriptor textIdx;
+        private final IndexDescriptor textIdx;
 
         /**
          * @param space Space name.
@@ -488,7 +488,7 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
          * @param valFields Fields.
          * @param textIdx Fulltext index.
          */
-        private TypeDesc(String space, String name, Map<String, Class<?>> valFields, GridIndexDescriptor textIdx) {
+        private TypeDesc(String space, String name, Map<String, Class<?>> valFields, IndexDescriptor textIdx) {
             this.name = name;
             this.space = space;
             this.valFields = Collections.unmodifiableMap(valFields);
@@ -526,8 +526,8 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
         }
 
         /** */
-        @Override public Map<String, GridIndexDescriptor> indexes() {
-            return textIdx == null ? Collections.<String, GridIndexDescriptor>emptyMap() :
+        @Override public Map<String, IndexDescriptor> indexes() {
+            return textIdx == null ? Collections.<String, IndexDescriptor>emptyMap() :
                 Collections.singletonMap("index", textIdx);
         }
 
@@ -550,7 +550,7 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
     /**
      * Indexing marshaller.
      */
-    private static class IdxMarshaller implements GridIndexingMarshaller {
+    private static class IdxMarshaller implements IndexingMarshaller {
         /** */
         private final IgniteMarshaller marshaller;
 
@@ -562,9 +562,9 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
         }
 
         /** {@inheritDoc} */
-        @Override public <T> GridIndexingEntity<T> unmarshal(byte[] bytes) throws IgniteSpiException {
+        @Override public <T> IndexingEntity<T> unmarshal(byte[] bytes) throws IgniteSpiException {
             try {
-                return new GridIndexingEntityAdapter<>(
+                return new IndexingEntityAdapter<>(
                     (T)marshaller.unmarshal(bytes, getClass().getClassLoader()), bytes);
             }
             catch (GridException e) {
@@ -573,7 +573,7 @@ public abstract class GridIndexingSpiAbstractSelfTest<X extends GridIndexingSpi>
         }
 
         /** {@inheritDoc} */
-        @Override public byte[] marshal(GridIndexingEntity<?> entity) throws IgniteSpiException {
+        @Override public byte[] marshal(IndexingEntity<?> entity) throws IgniteSpiException {
             if (entity.bytes() != null)
                 return entity.bytes();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexRebuildTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexRebuildTest.java b/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexRebuildTest.java
index 5a3045a..e91c607 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexRebuildTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexRebuildTest.java
@@ -45,7 +45,7 @@ public class GridH2IndexRebuildTest extends GridCacheAbstractSelfTest {
         private volatile boolean interrupted;
 
         /** {@inheritDoc} */
-        @Override public void rebuildIndexes(@Nullable String spaceName, GridIndexingTypeDescriptor type) {
+        @Override public void rebuildIndexes(@Nullable String spaceName, IndexingTypeDescriptor type) {
             if (sleepInRebuild) {
                 try {
                     U.sleep(Long.MAX_VALUE);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndexLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndexLoadTest.java b/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndexLoadTest.java
index 6ab3511..26b360c 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndexLoadTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndexLoadTest.java
@@ -29,7 +29,7 @@ public class GridLuceneIndexLoadTest {
     public static void main(String ... args) throws IgniteSpiException, FileNotFoundException {
         final IgniteOptimizedMarshaller m = new IgniteOptimizedMarshaller();
 
-        GridIndexingTypeDescriptor desc = new GridIndexingTypeDescriptor() {
+        IndexingTypeDescriptor desc = new IndexingTypeDescriptor() {
             @Override public String name() {
                 return "StrType";
             }
@@ -46,8 +46,8 @@ public class GridLuceneIndexLoadTest {
                 throw new IllegalStateException();
             }
 
-            @Override public Map<String, GridIndexDescriptor> indexes() {
-                return Collections.<String, GridIndexDescriptor>singletonMap("txt_idx", new GridIndexDescriptor() {
+            @Override public Map<String, IndexDescriptor> indexes() {
+                return Collections.<String, IndexDescriptor>singletonMap("txt_idx", new IndexDescriptor() {
                     @Override public Collection<String> fields() {
                         return Collections.emptyList();
                     }
@@ -56,8 +56,8 @@ public class GridLuceneIndexLoadTest {
                         return false;
                     }
 
-                    @Override public GridIndexType type() {
-                        return GridIndexType.FULLTEXT;
+                    @Override public IndexType type() {
+                        return IndexType.FULLTEXT;
                     }
                 });
             }
@@ -75,17 +75,17 @@ public class GridLuceneIndexLoadTest {
             }
         };
 
-        GridLuceneIndex idx = new GridLuceneIndex(new GridIndexingMarshaller() {
-            @Override public <T> GridIndexingEntity<T> unmarshal(byte[] bytes) throws IgniteSpiException {
+        GridLuceneIndex idx = new GridLuceneIndex(new IndexingMarshaller() {
+            @Override public <T> IndexingEntity<T> unmarshal(byte[] bytes) throws IgniteSpiException {
                 try {
-                    return new GridIndexingEntityAdapter<>(m.<T>unmarshal(bytes, null), bytes);
+                    return new IndexingEntityAdapter<>(m.<T>unmarshal(bytes, null), bytes);
                 }
                 catch (GridException e) {
                     throw new IgniteSpiException(e);
                 }
             }
 
-            @Override public byte[] marshal(GridIndexingEntity<?> entity) throws IgniteSpiException {
+            @Override public byte[] marshal(IndexingEntity<?> entity) throws IgniteSpiException {
                 try {
                     return m.marshal(entity.value());
                 }
@@ -104,8 +104,8 @@ public class GridLuceneIndexLoadTest {
         long begin = System.currentTimeMillis();
 
         for (int i = 0, len = 10000000 ; i < len; i++) {
-            idx.store(new GridIndexingEntityAdapter<>(i, null),
-                new GridIndexingEntityAdapter<Object>(sentence(rnd, ws), null),
+            idx.store(new IndexingEntityAdapter<>(i, null),
+                new IndexingEntityAdapter<Object>(sentence(rnd, ws), null),
                 ver, 0L);
 
             if (i % 10000 == 0) {


[33/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoveryMetricsHelper.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoveryMetricsHelper.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoveryMetricsHelper.java
deleted file mode 100644
index 295ec98..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoveryMetricsHelper.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import org.apache.ignite.cluster.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-/**
- * Helper class to serialize and deserialize node metrics.
- */
-public final class DiscoveryMetricsHelper {
-    /** Size of serialized node metrics. */
-    public static final int METRICS_SIZE =
-        4/*max active jobs*/ +
-        4/*current active jobs*/ +
-        4/*average active jobs*/ +
-        4/*max waiting jobs*/ +
-        4/*current waiting jobs*/ +
-        4/*average waiting jobs*/ +
-        4/*max cancelled jobs*/ +
-        4/*current cancelled jobs*/ +
-        4/*average cancelled jobs*/ +
-        4/*max rejected jobs*/ +
-        4/*current rejected jobs*/ +
-        4/*average rejected jobs*/ +
-        4/*total executed jobs*/ +
-        4/*total rejected jobs*/ +
-        4/*total cancelled jobs*/ +
-        8/*max job wait time*/ +
-        8/*current job wait time*/ +
-        8/*average job wait time*/ +
-        8/*max job execute time*/ +
-        8/*current job execute time*/ +
-        8/*average job execute time*/ +
-        4/*total executed tasks*/ +
-        8/*current idle time*/ +
-        8/*total idle time*/ +
-        4/*available processors*/ +
-        8/*current CPU load*/ +
-        8/*average CPU load*/ +
-        8/*current GC CPU load*/ +
-        8/*heap memory init*/ +
-        8/*heap memory used*/ +
-        8/*heap memory committed*/ +
-        8/*heap memory max*/ +
-        8/*non-heap memory init*/ +
-        8/*non-heap memory used*/ +
-        8/*non-heap memory committed*/ +
-        8/*non-heap memory max*/ +
-        8/*uptime*/ +
-        8/*start time*/ +
-        8/*node start time*/ +
-        4/*thread count*/ +
-        4/*peak thread count*/ +
-        8/*total started thread count*/ +
-        4/*daemon thread count*/ +
-        8/*last data version.*/ +
-        4/*sent messages count*/ +
-        8/*sent bytes count*/ +
-        4/*received messages count*/ +
-        8/*received bytes count*/ +
-        4/*outbound messages queue size*/;
-
-    /**
-     * Enforces singleton.
-     */
-    private DiscoveryMetricsHelper() {
-        // No-op.
-    }
-
-    /**
-     * Serializes node metrics into byte array.
-     *
-     * @param data Byte array.
-     * @param off Offset into byte array.
-     * @param metrics Node metrics to serialize.
-     * @return New offset.
-     */
-    public static int serialize(byte[] data, int off, ClusterNodeMetrics metrics) {
-        int start = off;
-
-        off = U.intToBytes(metrics.getMaximumActiveJobs(), data, off);
-        off = U.intToBytes(metrics.getCurrentActiveJobs(), data, off);
-        off = U.floatToBytes(metrics.getAverageActiveJobs(), data, off);
-        off = U.intToBytes(metrics.getMaximumWaitingJobs(), data, off);
-        off = U.intToBytes(metrics.getCurrentWaitingJobs(), data, off);
-        off = U.floatToBytes(metrics.getAverageWaitingJobs(), data, off);
-        off = U.intToBytes(metrics.getMaximumRejectedJobs(), data, off);
-        off = U.intToBytes(metrics.getCurrentRejectedJobs(), data, off);
-        off = U.floatToBytes(metrics.getAverageRejectedJobs(), data, off);
-        off = U.intToBytes(metrics.getMaximumCancelledJobs(), data, off);
-        off = U.intToBytes(metrics.getCurrentCancelledJobs(), data, off);
-        off = U.floatToBytes(metrics.getAverageCancelledJobs(), data, off);
-        off = U.intToBytes(metrics.getTotalRejectedJobs(), data , off);
-        off = U.intToBytes(metrics.getTotalCancelledJobs(), data , off);
-        off = U.intToBytes(metrics.getTotalExecutedJobs(), data , off);
-        off = U.longToBytes(metrics.getMaximumJobWaitTime(), data, off);
-        off = U.longToBytes(metrics.getCurrentJobWaitTime(), data, off);
-        off = U.doubleToBytes(metrics.getAverageJobWaitTime(), data, off);
-        off = U.longToBytes(metrics.getMaximumJobExecuteTime(), data, off);
-        off = U.longToBytes(metrics.getCurrentJobExecuteTime(), data, off);
-        off = U.doubleToBytes(metrics.getAverageJobExecuteTime(), data, off);
-        off = U.intToBytes(metrics.getTotalExecutedTasks(), data, off);
-        off = U.longToBytes(metrics.getCurrentIdleTime(), data, off);
-        off = U.longToBytes(metrics.getTotalIdleTime(), data , off);
-        off = U.intToBytes(metrics.getTotalCpus(), data, off);
-        off = U.doubleToBytes(metrics.getCurrentCpuLoad(), data, off);
-        off = U.doubleToBytes(metrics.getAverageCpuLoad(), data, off);
-        off = U.doubleToBytes(metrics.getCurrentGcCpuLoad(), data, off);
-        off = U.longToBytes(metrics.getHeapMemoryInitialized(), data, off);
-        off = U.longToBytes(metrics.getHeapMemoryUsed(), data, off);
-        off = U.longToBytes(metrics.getHeapMemoryCommitted(), data, off);
-        off = U.longToBytes(metrics.getHeapMemoryMaximum(), data, off);
-        off = U.longToBytes(metrics.getNonHeapMemoryInitialized(), data, off);
-        off = U.longToBytes(metrics.getNonHeapMemoryUsed(), data, off);
-        off = U.longToBytes(metrics.getNonHeapMemoryCommitted(), data, off);
-        off = U.longToBytes(metrics.getNonHeapMemoryMaximum(), data, off);
-        off = U.longToBytes(metrics.getStartTime(), data, off);
-        off = U.longToBytes(metrics.getNodeStartTime(), data, off);
-        off = U.longToBytes(metrics.getUpTime(), data, off);
-        off = U.intToBytes(metrics.getCurrentThreadCount(), data, off);
-        off = U.intToBytes(metrics.getMaximumThreadCount(), data, off);
-        off = U.longToBytes(metrics.getTotalStartedThreadCount(), data, off);
-        off = U.intToBytes(metrics.getCurrentDaemonThreadCount(), data, off);
-        off = U.longToBytes(metrics.getLastDataVersion(), data, off);
-        off = U.intToBytes(metrics.getSentMessagesCount(), data, off);
-        off = U.longToBytes(metrics.getSentBytesCount(), data, off);
-        off = U.intToBytes(metrics.getReceivedMessagesCount(), data, off);
-        off = U.longToBytes(metrics.getReceivedBytesCount(), data, off);
-        off = U.intToBytes(metrics.getOutboundMessagesQueueSize(), data, off);
-
-        assert off - start == METRICS_SIZE : "Invalid metrics size [expected=" + METRICS_SIZE + ", actual=" +
-            (off - start) + ']';
-
-        return off;
-    }
-
-    /**
-     * De-serializes node metrics.
-     *
-     * @param data Byte array.
-     * @param off Offset into byte array.
-     * @return Deserialized node metrics.
-     */
-    public static ClusterNodeMetrics deserialize(byte[] data, int off) {
-        int start = off;
-
-        DiscoveryNodeMetricsAdapter metrics = new DiscoveryNodeMetricsAdapter();
-
-        metrics.setLastUpdateTime(U.currentTimeMillis());
-
-        metrics.setMaximumActiveJobs(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setCurrentActiveJobs(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setAverageActiveJobs(U.bytesToFloat(data, off));
-
-        off += 4;
-
-        metrics.setMaximumWaitingJobs(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setCurrentWaitingJobs(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setAverageWaitingJobs(U.bytesToFloat(data, off));
-
-        off += 4;
-
-        metrics.setMaximumRejectedJobs(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setCurrentRejectedJobs(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setAverageRejectedJobs(U.bytesToFloat(data, off));
-
-        off += 4;
-
-        metrics.setMaximumCancelledJobs(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setCurrentCancelledJobs(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setAverageCancelledJobs(U.bytesToFloat(data, off));
-
-        off += 4;
-
-        metrics.setTotalRejectedJobs(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setTotalCancelledJobs(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setTotalExecutedJobs(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setMaximumJobWaitTime(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setCurrentJobWaitTime(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setAverageJobWaitTime(U.bytesToDouble(data, off));
-
-        off += 8;
-
-        metrics.setMaximumJobExecuteTime(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setCurrentJobExecuteTime(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setAverageJobExecuteTime(U.bytesToDouble(data, off));
-
-        off += 8;
-
-        metrics.setTotalExecutedTasks(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setCurrentIdleTime(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setTotalIdleTime(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setAvailableProcessors(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setCurrentCpuLoad(U.bytesToDouble(data, off));
-
-        off += 8;
-
-        metrics.setAverageCpuLoad(U.bytesToDouble(data, off));
-
-        off += 8;
-
-        metrics.setCurrentGcCpuLoad(U.bytesToDouble(data, off));
-
-        off += 8;
-
-        metrics.setHeapMemoryInitialized(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setHeapMemoryUsed(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setHeapMemoryCommitted(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setHeapMemoryMaximum(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setNonHeapMemoryInitialized(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setNonHeapMemoryUsed(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setNonHeapMemoryCommitted(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setNonHeapMemoryMaximum(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setStartTime(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setNodeStartTime(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setUpTime(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setCurrentThreadCount(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setMaximumThreadCount(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setTotalStartedThreadCount(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setCurrentDaemonThreadCount(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setLastDataVersion(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setSentMessagesCount(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setSentBytesCount(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setReceivedMessagesCount(U.bytesToInt(data, off));
-
-        off += 4;
-
-        metrics.setReceivedBytesCount(U.bytesToLong(data, off));
-
-        off += 8;
-
-        metrics.setOutboundMessagesQueueSize(U.bytesToInt(data, off));
-
-        off += 4;
-
-        assert off - start == METRICS_SIZE : "Invalid metrics size [expected=" + METRICS_SIZE + ", actual=" +
-            (off - start) + ']';
-
-        return metrics;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoveryMetricsProvider.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoveryMetricsProvider.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoveryMetricsProvider.java
deleted file mode 100644
index cdeac94..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoveryMetricsProvider.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import org.apache.ignite.cluster.*;
-import org.gridgain.grid.util.tostring.*;
-
-/**
- * Provides metrics to discovery SPI. It is responsibility of discovery SPI
- * to make sure that all nodes have updated metrics data about each other.
- * <p>
- * GridGain implementation will supply discovery SPI with metrics provider
- * via {@link DiscoverySpi#setMetricsProvider(DiscoveryMetricsProvider)}
- * method.
- */
-@GridToStringExclude
-public interface DiscoveryMetricsProvider {
-    /**
-     * This method always returns up-to-date metrics data about local node.
-     *
-     * @return Up to date metrics data about local node.
-     */
-    public ClusterNodeMetrics getMetrics();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoveryNodeMetricsAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoveryNodeMetricsAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoveryNodeMetricsAdapter.java
deleted file mode 100644
index c2d40de..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoveryNodeMetricsAdapter.java
+++ /dev/null
@@ -1,1060 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import org.apache.ignite.cluster.*;
-import org.gridgain.grid.kernal.managers.discovery.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-
-/**
- * Adapter for {@link GridLocalMetrics} interface.
- * <p>
- * Note that whenever adding or removing metric parameters, care
- * must be taken to update {@link DiscoveryMetricsHelper} as well.
- */
-public class DiscoveryNodeMetricsAdapter implements ClusterNodeMetrics, Externalizable {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** */
-    private long lastUpdateTime = -1;
-
-    /** */
-    private int maxActiveJobs = -1;
-
-    /** */
-    private int curActiveJobs = -1;
-
-    /** */
-    private float avgActiveJobs = -1;
-
-    /** */
-    private int maxWaitingJobs = -1;
-
-    /** */
-    private int curWaitingJobs = -1;
-
-    /** */
-    private float avgWaitingJobs = -1;
-
-    /** */
-    private int maxRejectedJobs = -1;
-
-    /** */
-    private int curRejectedJobs = -1;
-
-    /** */
-    private float avgRejectedJobs = -1;
-
-    /** */
-    private int maxCancelledJobs = -1;
-
-    /** */
-    private int curCancelledJobs = -1;
-
-    /** */
-    private float avgCancelledJobs = -1;
-
-    /** */
-    private int totalRejectedJobs = -1;
-
-    /** */
-    private int totalCancelledJobs = -1;
-
-    /** */
-    private int totalExecutedJobs = -1;
-
-    /** */
-    private long maxJobWaitTime = -1;
-
-    /** */
-    private long curJobWaitTime = -1;
-
-    /** */
-    private double avgJobWaitTime = -1;
-
-    /** */
-    private long maxJobExecTime = -1;
-
-    /** */
-    private long curJobExecTime = -1;
-
-    /** */
-    private double avgJobExecTime = -1;
-
-    /** */
-    private int totalExecTasks = -1;
-
-    /** */
-    private long totalIdleTime = -1;
-
-    /** */
-    private long curIdleTime = -1;
-
-    /** */
-    private int availProcs = -1;
-
-    /** */
-    private long totalPhysicalMemory = -1;
-
-    /** */
-    private double load = -1;
-
-    /** */
-    private double avgLoad = -1;
-
-    /** */
-    private double gcLoad = -1;
-
-    /** */
-    private long heapInit = -1;
-
-    /** */
-    private long heapUsed = -1;
-
-    /** */
-    private long heapCommitted = -1;
-
-    /** */
-    private long heapMax = -1;
-
-    /** */
-    private long nonHeapInit = -1;
-
-    /** */
-    private long nonHeapUsed = -1;
-
-    /** */
-    private long nonHeapCommitted = -1;
-
-    /** */
-    private long nonHeapMax = -1;
-
-    /** */
-    private long upTime = -1;
-
-    /** */
-    private long startTime = -1;
-
-    /** */
-    private long nodeStartTime = -1;
-
-    /** */
-    private int threadCnt = -1;
-
-    /** */
-    private int peakThreadCnt = -1;
-
-    /** */
-    private long startedThreadCnt = -1;
-
-    /** */
-    private int daemonThreadCnt = -1;
-
-    /** */
-    private long lastDataVer = -1;
-
-    /** */
-    private int sentMsgsCnt = -1;
-
-    /** */
-    private long sentBytesCnt = -1;
-
-    /** */
-    private int rcvdMsgsCnt = -1;
-
-    /** */
-    private long rcvdBytesCnt = -1;
-
-    /** */
-    private int outMesQueueSize = -1;
-
-    /** {@inheritDoc} */
-    @Override public long getLastUpdateTime() {
-        return lastUpdateTime;
-    }
-
-    /**
-     * Sets last update time.
-     *
-     * @param lastUpdateTime Last update time.
-     */
-    public void setLastUpdateTime(long lastUpdateTime) {
-        this.lastUpdateTime = lastUpdateTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getMaximumActiveJobs() {
-        return maxActiveJobs;
-    }
-
-    /**
-     * Sets max active jobs.
-     *
-     * @param maxActiveJobs Max active jobs.
-     */
-    public void setMaximumActiveJobs(int maxActiveJobs) {
-        this.maxActiveJobs = maxActiveJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getCurrentActiveJobs() {
-        return curActiveJobs;
-    }
-
-    /**
-     * Sets current active jobs.
-     *
-     * @param curActiveJobs Current active jobs.
-     */
-    public void setCurrentActiveJobs(int curActiveJobs) {
-        this.curActiveJobs = curActiveJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getAverageActiveJobs() {
-        return avgActiveJobs;
-    }
-
-    /**
-     * Sets average active jobs.
-     *
-     * @param avgActiveJobs Average active jobs.
-     */
-    public void setAverageActiveJobs(float avgActiveJobs) {
-        this.avgActiveJobs = avgActiveJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getMaximumWaitingJobs() {
-        return maxWaitingJobs;
-    }
-
-    /**
-     * Sets maximum waiting jobs.
-     *
-     * @param maxWaitingJobs Maximum waiting jobs.
-     */
-    public void setMaximumWaitingJobs(int maxWaitingJobs) {
-        this.maxWaitingJobs = maxWaitingJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getCurrentWaitingJobs() {
-        return curWaitingJobs;
-    }
-
-    /**
-     * Sets current waiting jobs.
-     *
-     * @param curWaitingJobs Current waiting jobs.
-     */
-    public void setCurrentWaitingJobs(int curWaitingJobs) {
-        this.curWaitingJobs = curWaitingJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getAverageWaitingJobs() {
-        return avgWaitingJobs;
-    }
-
-    /**
-     * Sets average waiting jobs.
-     *
-     * @param avgWaitingJobs Average waiting jobs.
-     */
-    public void setAverageWaitingJobs(float avgWaitingJobs) {
-        this.avgWaitingJobs = avgWaitingJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getMaximumRejectedJobs() {
-        return maxRejectedJobs;
-    }
-
-    /**
-     * @param maxRejectedJobs Maximum number of jobs rejected during a single collision resolution event.
-     */
-    public void setMaximumRejectedJobs(int maxRejectedJobs) {
-        this.maxRejectedJobs = maxRejectedJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getCurrentRejectedJobs() {
-        return curRejectedJobs;
-    }
-
-    /**
-     * @param curRejectedJobs Number of jobs rejected during most recent collision resolution.
-     */
-    public void setCurrentRejectedJobs(int curRejectedJobs) {
-        this.curRejectedJobs = curRejectedJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getAverageRejectedJobs() {
-        return avgRejectedJobs;
-    }
-
-    /**
-     * @param avgRejectedJobs Average number of jobs this node rejects.
-     */
-    public void setAverageRejectedJobs(float avgRejectedJobs) {
-        this.avgRejectedJobs = avgRejectedJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalRejectedJobs() {
-        return totalRejectedJobs;
-    }
-
-    /**
-     * @param totalRejectedJobs Total number of jobs this node ever rejected.
-     */
-    public void setTotalRejectedJobs(int totalRejectedJobs) {
-        this.totalRejectedJobs = totalRejectedJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getMaximumCancelledJobs() {
-        return maxCancelledJobs;
-    }
-
-    /**
-     * Sets maximum cancelled jobs.
-     *
-     * @param maxCancelledJobs Maximum cancelled jobs.
-     */
-    public void setMaximumCancelledJobs(int maxCancelledJobs) {
-        this.maxCancelledJobs = maxCancelledJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getCurrentCancelledJobs() {
-        return curCancelledJobs;
-    }
-
-    /**
-     * Sets current cancelled jobs.
-     *
-     * @param curCancelledJobs Current cancelled jobs.
-     */
-    public void setCurrentCancelledJobs(int curCancelledJobs) {
-        this.curCancelledJobs = curCancelledJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getAverageCancelledJobs() {
-        return avgCancelledJobs;
-    }
-
-    /**
-     * Sets average cancelled jobs.
-     *
-     * @param avgCancelledJobs Average cancelled jobs.
-     */
-    public void setAverageCancelledJobs(float avgCancelledJobs) {
-        this.avgCancelledJobs = avgCancelledJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalExecutedJobs() {
-        return totalExecutedJobs;
-    }
-
-    /**
-     * Sets total active jobs.
-     *
-     * @param totalExecutedJobs Total active jobs.
-     */
-    public void setTotalExecutedJobs(int totalExecutedJobs) {
-        this.totalExecutedJobs = totalExecutedJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalCancelledJobs() {
-        return totalCancelledJobs;
-    }
-
-    /**
-     * Sets total cancelled jobs.
-     *
-     * @param totalCancelledJobs Total cancelled jobs.
-     */
-    public void setTotalCancelledJobs(int totalCancelledJobs) {
-        this.totalCancelledJobs = totalCancelledJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getMaximumJobWaitTime() {
-        return maxJobWaitTime;
-    }
-
-    /**
-     * Sets max job wait time.
-     *
-     * @param maxJobWaitTime Max job wait time.
-     */
-    public void setMaximumJobWaitTime(long maxJobWaitTime) {
-        this.maxJobWaitTime = maxJobWaitTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCurrentJobWaitTime() {
-        return curJobWaitTime;
-    }
-
-    /**
-     * Sets current job wait time.
-     *
-     * @param curJobWaitTime Current job wait time.
-     */
-    public void setCurrentJobWaitTime(long curJobWaitTime) {
-        this.curJobWaitTime = curJobWaitTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public double getAverageJobWaitTime() {
-        return avgJobWaitTime;
-    }
-
-    /**
-     * Sets average job wait time.
-     *
-     * @param avgJobWaitTime Average job wait time.
-     */
-    public void setAverageJobWaitTime(double avgJobWaitTime) {
-        this.avgJobWaitTime = avgJobWaitTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getMaximumJobExecuteTime() {
-        return maxJobExecTime;
-    }
-
-    /**
-     * Sets maximum job execution time.
-     *
-     * @param maxJobExecTime Maximum job execution time.
-     */
-    public void setMaximumJobExecuteTime(long maxJobExecTime) {
-        this.maxJobExecTime = maxJobExecTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCurrentJobExecuteTime() {
-        return curJobExecTime;
-    }
-
-    /**
-     * Sets current job execute time.
-     *
-     * @param curJobExecTime Current job execute time.
-     */
-    public void setCurrentJobExecuteTime(long curJobExecTime) {
-        this.curJobExecTime = curJobExecTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public double getAverageJobExecuteTime() {
-        return avgJobExecTime;
-    }
-
-    /**
-     * Sets average job execution time.
-     *
-     * @param avgJobExecTime Average job execution time.
-     */
-    public void setAverageJobExecuteTime(double avgJobExecTime) {
-        this.avgJobExecTime = avgJobExecTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalExecutedTasks() {
-        return totalExecTasks;
-    }
-
-    /**
-     * Sets total executed tasks count.
-     *
-     * @param totalExecTasks total executed tasks count.
-     */
-    public void setTotalExecutedTasks(int totalExecTasks) {
-        this.totalExecTasks = totalExecTasks;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getTotalBusyTime() {
-        return getUpTime() - getTotalIdleTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getTotalIdleTime() {
-        return totalIdleTime;
-    }
-
-    /**
-     * Set total node idle time.
-     *
-     * @param totalIdleTime Total node idle time.
-     */
-    public void setTotalIdleTime(long totalIdleTime) {
-        this.totalIdleTime = totalIdleTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCurrentIdleTime() {
-        return curIdleTime;
-    }
-
-    /**
-     * Sets time elapsed since execution of last job.
-     *
-     * @param curIdleTime Time elapsed since execution of last job.
-     */
-    public void setCurrentIdleTime(long curIdleTime) {
-        this.curIdleTime = curIdleTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getBusyTimePercentage() {
-        return 1 - getIdleTimePercentage();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getIdleTimePercentage() {
-        return getTotalIdleTime() / (float)getUpTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalCpus() {
-        return availProcs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public double getCurrentCpuLoad() {
-        return load;
-    }
-
-    /** {@inheritDoc} */
-    @Override public double getAverageCpuLoad() {
-        return avgLoad;
-    }
-
-    /** {@inheritDoc} */
-    @Override public double getCurrentGcCpuLoad() {
-        return gcLoad;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getHeapMemoryInitialized() {
-        return heapInit;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getHeapMemoryUsed() {
-        return heapUsed;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getHeapMemoryCommitted() {
-        return heapCommitted;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getHeapMemoryMaximum() {
-        return heapMax;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNonHeapMemoryInitialized() {
-        return nonHeapInit;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNonHeapMemoryUsed() {
-        return nonHeapUsed;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNonHeapMemoryCommitted() {
-        return nonHeapCommitted;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNonHeapMemoryMaximum() {
-        return nonHeapMax;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getUpTime() {
-        return upTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getStartTime() {
-        return startTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNodeStartTime() {
-        return nodeStartTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getCurrentThreadCount() {
-        return threadCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getMaximumThreadCount() {
-        return peakThreadCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getTotalStartedThreadCount() {
-        return startedThreadCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getCurrentDaemonThreadCount() {
-        return daemonThreadCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getLastDataVersion() {
-        return lastDataVer;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getSentMessagesCount() {
-        return sentMsgsCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getSentBytesCount() {
-        return sentBytesCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getReceivedMessagesCount() {
-        return rcvdMsgsCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getReceivedBytesCount() {
-        return rcvdBytesCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getOutboundMessagesQueueSize() {
-        return outMesQueueSize;
-    }
-
-    /**
-     * Sets available processors.
-     *
-     * @param availProcs Available processors.
-     */
-    public void setAvailableProcessors(int availProcs) {
-        this.availProcs = availProcs;
-    }
-
-    /**
-     * Sets current CPU load.
-     *
-     * @param load Current CPU load.
-     */
-    public void setCurrentCpuLoad(double load) {
-        this.load = load;
-    }
-
-    /**
-     * Sets CPU load average over the metrics history.
-     *
-     * @param avgLoad CPU load average.
-     */
-    public void setAverageCpuLoad(double avgLoad) {
-        this.avgLoad = avgLoad;
-    }
-
-    /**
-     * Sets current GC load.
-     *
-     * @param gcLoad Current GC load.
-     */
-    public void setCurrentGcCpuLoad(double gcLoad) {
-        this.gcLoad = gcLoad;
-    }
-
-    /**
-     * Sets heap initial memory.
-     *
-     * @param heapInit Heap initial memory.
-     */
-    public void setHeapMemoryInitialized(long heapInit) {
-        this.heapInit = heapInit;
-    }
-
-    /**
-     * Sets used heap memory.
-     *
-     * @param heapUsed Used heap memory.
-     */
-    public void setHeapMemoryUsed(long heapUsed) {
-        this.heapUsed = heapUsed;
-    }
-
-    /**
-     * Sets committed heap memory.
-     *
-     * @param heapCommitted Committed heap memory.
-     */
-    public void setHeapMemoryCommitted(long heapCommitted) {
-        this.heapCommitted = heapCommitted;
-    }
-
-    /**
-     * Sets maximum possible heap memory.
-     *
-     * @param heapMax Maximum possible heap memory.
-     */
-    public void setHeapMemoryMaximum(long heapMax) {
-        this.heapMax = heapMax;
-    }
-
-    /**
-     * Sets initial non-heap memory.
-     *
-     * @param nonHeapInit Initial non-heap memory.
-     */
-    public void setNonHeapMemoryInitialized(long nonHeapInit) {
-        this.nonHeapInit = nonHeapInit;
-    }
-
-    /**
-     * Sets used non-heap memory.
-     *
-     * @param nonHeapUsed Used non-heap memory.
-     */
-    public void setNonHeapMemoryUsed(long nonHeapUsed) {
-        this.nonHeapUsed = nonHeapUsed;
-    }
-
-    /**
-     * Sets committed non-heap memory.
-     *
-     * @param nonHeapCommitted Committed non-heap memory.
-     */
-    public void setNonHeapMemoryCommitted(long nonHeapCommitted) {
-        this.nonHeapCommitted = nonHeapCommitted;
-    }
-
-    /**
-     * Sets maximum possible non-heap memory.
-     *
-     * @param nonHeapMax Maximum possible non-heap memory.
-     */
-    public void setNonHeapMemoryMaximum(long nonHeapMax) {
-        this.nonHeapMax = nonHeapMax;
-    }
-
-    /**
-     * Sets VM up time.
-     *
-     * @param upTime VM up time.
-     */
-    public void setUpTime(long upTime) {
-        this.upTime = upTime;
-    }
-
-    /**
-     * Sets VM start time.
-     *
-     * @param startTime VM start time.
-     */
-    public void setStartTime(long startTime) {
-        this.startTime = startTime;
-    }
-
-    /**
-     * Sets node start time.
-     *
-     * @param nodeStartTime node start time.
-     */
-    public void setNodeStartTime(long nodeStartTime) {
-        this.nodeStartTime = nodeStartTime;
-    }
-
-    /**
-     * Sets thread count.
-     *
-     * @param threadCnt Thread count.
-     */
-    public void setCurrentThreadCount(int threadCnt) {
-        this.threadCnt = threadCnt;
-    }
-
-    /**
-     * Sets peak thread count.
-     *
-     * @param peakThreadCnt Peak thread count.
-     */
-    public void setMaximumThreadCount(int peakThreadCnt) {
-        this.peakThreadCnt = peakThreadCnt;
-    }
-
-    /**
-     * Sets started thread count.
-     *
-     * @param startedThreadCnt Started thread count.
-     */
-    public void setTotalStartedThreadCount(long startedThreadCnt) {
-        this.startedThreadCnt = startedThreadCnt;
-    }
-
-    /**
-     * Sets daemon thread count.
-     *
-     * @param daemonThreadCnt Daemon thread count.
-     */
-    public void setCurrentDaemonThreadCount(int daemonThreadCnt) {
-        this.daemonThreadCnt = daemonThreadCnt;
-    }
-
-    /**
-     * Sets last data version.
-     *
-     * @param lastDataVer Last data version.
-     */
-    public void setLastDataVersion(long lastDataVer) {
-        this.lastDataVer = lastDataVer;
-    }
-
-    /**
-     * Sets sent messages count.
-     *
-     * @param sentMsgsCnt Sent messages count.
-     */
-    public void setSentMessagesCount(int sentMsgsCnt) {
-        this.sentMsgsCnt = sentMsgsCnt;
-    }
-
-    /**
-     * Sets sent bytes count.
-     *
-     * @param sentBytesCnt Sent bytes count.
-     */
-    public void setSentBytesCount(long sentBytesCnt) {
-        this.sentBytesCnt = sentBytesCnt;
-    }
-
-    /**
-     * Sets received messages count.
-     *
-     * @param rcvdMsgsCnt Received messages count.
-     */
-    public void setReceivedMessagesCount(int rcvdMsgsCnt) {
-        this.rcvdMsgsCnt = rcvdMsgsCnt;
-    }
-
-    /**
-     * Sets received bytes count.
-     *
-     * @param rcvdBytesCnt Received bytes count.
-     */
-    public void setReceivedBytesCount(long rcvdBytesCnt) {
-        this.rcvdBytesCnt = rcvdBytesCnt;
-    }
-
-    /**
-     * Sets outbound messages queue size.
-     *
-     * @param outMesQueueSize Outbound messages queue size.
-     */
-    public void setOutboundMessagesQueueSize(int outMesQueueSize) {
-        this.outMesQueueSize = outMesQueueSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeInt(maxActiveJobs);
-        out.writeInt(curActiveJobs);
-        out.writeFloat(avgActiveJobs);
-        out.writeInt(maxWaitingJobs);
-        out.writeInt(curWaitingJobs);
-        out.writeFloat(avgWaitingJobs);
-        out.writeInt(maxCancelledJobs);
-        out.writeInt(curCancelledJobs);
-        out.writeFloat(avgCancelledJobs);
-        out.writeInt(maxRejectedJobs);
-        out.writeInt(curRejectedJobs);
-        out.writeFloat(avgRejectedJobs);
-        out.writeInt(totalExecutedJobs);
-        out.writeInt(totalCancelledJobs);
-        out.writeInt(totalRejectedJobs);
-        out.writeLong(maxJobWaitTime);
-        out.writeLong(curJobWaitTime);
-        out.writeDouble(avgJobWaitTime);
-        out.writeLong(maxJobExecTime);
-        out.writeLong(curJobExecTime);
-        out.writeDouble(avgJobExecTime);
-        out.writeInt(totalExecTasks);
-        out.writeLong(curIdleTime);
-        out.writeLong(totalIdleTime);
-        out.writeInt(availProcs);
-        out.writeLong(totalPhysicalMemory);
-        out.writeDouble(load);
-        out.writeDouble(avgLoad);
-        out.writeDouble(gcLoad);
-        out.writeLong(heapInit);
-        out.writeLong(heapUsed);
-        out.writeLong(heapCommitted);
-        out.writeLong(heapMax);
-        out.writeLong(nonHeapInit);
-        out.writeLong(nonHeapUsed);
-        out.writeLong(nonHeapCommitted);
-        out.writeLong(nonHeapMax);
-        out.writeLong(upTime);
-        out.writeLong(startTime);
-        out.writeLong(nodeStartTime);
-        out.writeInt(threadCnt);
-        out.writeInt(peakThreadCnt);
-        out.writeLong(startedThreadCnt);
-        out.writeInt(daemonThreadCnt);
-        out.writeLong(lastDataVer);
-        out.writeInt(sentMsgsCnt);
-        out.writeLong(sentBytesCnt);
-        out.writeInt(rcvdMsgsCnt);
-        out.writeLong(rcvdBytesCnt);
-        out.writeInt(outMesQueueSize);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException {
-        lastUpdateTime = U.currentTimeMillis();
-
-        maxActiveJobs = in.readInt();
-        curActiveJobs = in.readInt();
-        avgActiveJobs = in.readFloat();
-        maxWaitingJobs = in.readInt();
-        curWaitingJobs = in.readInt();
-        avgWaitingJobs = in.readFloat();
-        maxCancelledJobs = in.readInt();
-        curCancelledJobs = in.readInt();
-        avgCancelledJobs = in.readFloat();
-        maxRejectedJobs = in.readInt();
-        curRejectedJobs = in.readInt();
-        avgRejectedJobs = in.readFloat();
-        totalExecutedJobs = in.readInt();
-        totalCancelledJobs = in.readInt();
-        totalRejectedJobs = in.readInt();
-        maxJobWaitTime = in.readLong();
-        curJobWaitTime = in.readLong();
-        avgJobWaitTime = in.readDouble();
-        maxJobExecTime = in.readLong();
-        curJobExecTime = in.readLong();
-        avgJobExecTime = in.readDouble();
-        totalExecTasks = in.readInt();
-        curIdleTime = in.readLong();
-        totalIdleTime = in.readLong();
-        availProcs = in.readInt();
-        totalPhysicalMemory = in.readLong();
-        load = in.readDouble();
-        avgLoad = in.readDouble();
-        gcLoad = in.readDouble();
-        heapInit = in.readLong();
-        heapUsed = in.readLong();
-        heapCommitted = in.readLong();
-        heapMax = in.readLong();
-        nonHeapInit = in.readLong();
-        nonHeapUsed = in.readLong();
-        nonHeapCommitted = in.readLong();
-        nonHeapMax = in.readLong();
-        upTime = in.readLong();
-        startTime = in.readLong();
-        nodeStartTime = in.readLong();
-        threadCnt = in.readInt();
-        peakThreadCnt = in.readInt();
-        startedThreadCnt = in.readLong();
-        daemonThreadCnt = in.readInt();
-        lastDataVer = in.readLong();
-        sentMsgsCnt = in.readInt();
-        sentBytesCnt = in.readLong();
-        rcvdMsgsCnt = in.readInt();
-        rcvdBytesCnt = in.readLong();
-        outMesQueueSize = in.readInt();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int hashCode() {
-        return System.identityHashCode(this);
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-
-        if (obj == null || getClass() != obj.getClass())
-            return false;
-
-        DiscoveryNodeMetricsAdapter other = (DiscoveryNodeMetricsAdapter)obj;
-
-        return
-            availProcs == other.availProcs &&
-            totalPhysicalMemory == other.totalPhysicalMemory &&
-            curActiveJobs == other.curActiveJobs &&
-            curCancelledJobs == other.curCancelledJobs &&
-            curIdleTime == other.curIdleTime &&
-            curJobExecTime == other.curJobExecTime &&
-            curJobWaitTime == other.curJobWaitTime &&
-            curRejectedJobs == other.curRejectedJobs &&
-            curWaitingJobs == other.curWaitingJobs &&
-            daemonThreadCnt == other.daemonThreadCnt &&
-            heapCommitted == other.heapCommitted &&
-            heapInit == other.heapInit &&
-            heapMax == other.heapMax &&
-            heapUsed == other.heapUsed &&
-            maxActiveJobs == other.maxActiveJobs &&
-            maxCancelledJobs == other.maxCancelledJobs &&
-            maxJobExecTime == other.maxJobExecTime &&
-            maxJobWaitTime == other.maxJobWaitTime &&
-            maxRejectedJobs == other.maxRejectedJobs &&
-            maxWaitingJobs == other.maxWaitingJobs &&
-            nonHeapCommitted == other.nonHeapCommitted &&
-            nonHeapInit == other.nonHeapInit &&
-            nonHeapMax == other.nonHeapMax &&
-            nonHeapUsed == other.nonHeapUsed &&
-            peakThreadCnt == other.peakThreadCnt &&
-            rcvdBytesCnt == other.rcvdBytesCnt &&
-            outMesQueueSize == other.outMesQueueSize &&
-            rcvdMsgsCnt == other.rcvdMsgsCnt &&
-            sentBytesCnt == other.sentBytesCnt &&
-            sentMsgsCnt == other.sentMsgsCnt &&
-            startTime == other.startTime &&
-            nodeStartTime == other.nodeStartTime &&
-            startedThreadCnt == other.startedThreadCnt &&
-            threadCnt == other.threadCnt &&
-            totalCancelledJobs == other.totalCancelledJobs &&
-            totalExecutedJobs == other.totalExecutedJobs &&
-            totalExecTasks == other.totalExecTasks &&
-            totalIdleTime == other.totalIdleTime &&
-            totalRejectedJobs == other.totalRejectedJobs &&
-            upTime == other.upTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(DiscoveryNodeMetricsAdapter.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpi.java
deleted file mode 100644
index 0d868b6..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpi.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.product.*;
-import org.apache.ignite.spi.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Grid discovery SPI allows to discover remote nodes in grid.
- * <p>
- * The default discovery SPI is {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}
- * with default configuration which allows all nodes in local network
- * (with enabled multicast) to discover each other.
- * <p>
- * Gridgain provides the following {@code GridDeploymentSpi} implementation:
- * <ul>
- * <li>{@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}</li>
- * </ul>
- * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
- * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
- * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
- * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
- * methods. Note again that calling methods from this interface on the obtained instance can lead
- * to undefined behavior and explicitly not supported.
- */
-public interface DiscoverySpi extends IgniteSpi {
-    /**
-     * Gets collection of remote nodes in grid or empty collection if no remote nodes found.
-     *
-     * @return Collection of remote nodes.
-     */
-    public Collection<ClusterNode> getRemoteNodes();
-
-    /**
-     * Gets local node.
-     *
-     * @return Local node.
-     */
-    public ClusterNode getLocalNode();
-
-    /**
-     * Gets node by ID.
-     *
-     * @param nodeId Node ID.
-     * @return Node with given ID or {@code null} if node is not found.
-     */
-    @Nullable public ClusterNode getNode(UUID nodeId);
-
-    /**
-     * Pings the remote node to see if it's alive.
-     *
-     * @param nodeId Node Id.
-     * @return {@code true} if node alive, {@code false} otherwise.
-     */
-    public boolean pingNode(UUID nodeId);
-
-    /**
-     * Sets node attributes and node version which will be distributed in grid during
-     * join process. Note that these attributes cannot be changed and set only once.
-     *
-     * @param attrs Map of node attributes.
-     * @param ver Product version.
-     */
-    public void setNodeAttributes(Map<String, Object> attrs, IgniteProductVersion ver);
-
-    /**
-     * Sets a listener for discovery events. Refer to
-     * {@link org.apache.ignite.events.IgniteDiscoveryEvent} for a set of all possible
-     * discovery events.
-     * <p>
-     * Note that as of GridGain 3.0.2 this method is called <b>before</b>
-     * method {@link #spiStart(String)} is called. This is done to
-     * avoid potential window when SPI is started but the listener is
-     * not registered yet.
-     *
-     * @param lsnr Listener to discovery events or {@code null} to unset the listener.
-     */
-    public void setListener(@Nullable DiscoverySpiListener lsnr);
-
-    /**
-     * Sets a handler for initial data exchange between GridGain nodes.
-     *
-     * @param exchange Discovery data exchange handler.
-     */
-    public void setDataExchange(DiscoverySpiDataExchange exchange);
-
-    /**
-     * Sets discovery metrics provider. Use metrics provided by
-     * {@link DiscoveryMetricsProvider#getMetrics()} method to exchange
-     * dynamic metrics between nodes.
-     *
-     * @param metricsProvider Provider of metrics data.
-     */
-    public void setMetricsProvider(DiscoveryMetricsProvider metricsProvider);
-
-    /**
-     * Tells discovery SPI to disconnect from topology. This is very close to calling
-     * {@link #spiStop()} with accounting that it is not a full stop,
-     * but disconnect due to segmentation.
-     *
-     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
-     */
-    public void disconnect() throws IgniteSpiException;
-
-    /**
-     * Sets discovery SPI node authenticator. This method is called before SPI start() method.
-     *
-     * @param auth Discovery SPI authenticator.
-     */
-    public void setAuthenticator(DiscoverySpiNodeAuthenticator auth);
-
-    /**
-     * Gets start time of the very first node in the grid. This value should be the same
-     * on all nodes in the grid and it should not change even if very first node fails
-     * of leaves grid.
-     *
-     * @return Start time of the first node in grid or {@code 0} if SPI implementation
-     *         does not support this method.
-     */
-    public long getGridStartTime();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiDataExchange.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiDataExchange.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiDataExchange.java
deleted file mode 100644
index 645eb7b..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiDataExchange.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import java.util.*;
-
-/**
- * Handler for initial data exchange between GridGain nodes. Data exchange
- * is initiated by a new node when it tries to join topology and finishes
- * before it actually joins.
- */
-public interface DiscoverySpiDataExchange {
-    /**
-     * Collects data from all components. This method is called both
-     * on new node that joins topology to transfer its data to existing
-     * nodes and on all existing nodes to transfer their data to new node.
-     *
-     * @param nodeId ID of new node that joins topology.
-     * @return Collection of discovery data objects from different components.
-     */
-    public List<Object> collect(UUID nodeId);
-
-    /**
-     * Notifies discovery manager about data received from remote node.
-     *
-     * @param data Collection of discovery data objects from different components.
-     */
-    public void onExchange(List<Object> data);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiHistorySupport.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiHistorySupport.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiHistorySupport.java
deleted file mode 100644
index c937736..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiHistorySupport.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import java.lang.annotation.*;
-
-/**
- * This annotation is for all implementations of {@link DiscoverySpi} that support
- * topology snapshots history.
- */
-@Documented
-@Inherited
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.TYPE})
-public @interface DiscoverySpiHistorySupport {
-    /**
-     * Whether or not target SPI supports topology snapshots history.
-     */
-    @SuppressWarnings({"JavaDoc"})
-    public boolean value();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiListener.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiListener.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiListener.java
deleted file mode 100644
index 2926523..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import org.apache.ignite.cluster.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Listener for grid node discovery events. See
- * {@link DiscoverySpi} for information on how grid nodes get discovered.
- */
-public interface DiscoverySpiListener {
-    /**
-     * Notification for grid node discovery events.
-     *
-     * @param type Node discovery event type. See {@link org.apache.ignite.events.IgniteDiscoveryEvent}
-     * @param topVer Topology version or {@code 0} if configured discovery SPI implementation
-     *      does not support versioning.
-     * @param node Node affected (e.g. newly joined node, left node, failed node or local node).
-     * @param topSnapshot Topology snapshot after event has been occurred (e.g. if event is
-     *      {@code EVT_NODE_JOINED}, then joined node will be in snapshot).
-     * @param topHist Topology snapshots history.
-     */
-    public void onDiscovery(int type, long topVer, ClusterNode node, Collection<ClusterNode> topSnapshot,
-        @Nullable Map<Long, Collection<ClusterNode>> topHist);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiNodeAuthenticator.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiNodeAuthenticator.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiNodeAuthenticator.java
deleted file mode 100644
index 8b6b0f4..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiNodeAuthenticator.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import org.apache.ignite.cluster.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.kernal.managers.security.*;
-import org.gridgain.grid.security.*;
-
-/**
- * Node authenticator.
- */
-public interface DiscoverySpiNodeAuthenticator {
-    /**
-     * Security credentials.
-     *
-     * @param node Node to authenticate.
-     * @param cred Security credentials.
-     * @return Security context if authentication succeeded or {@code null} if authentication failed.
-     * @throws GridException If authentication process failed
-     *      (invalid credentials should not lead to this exception).
-     */
-    public GridSecurityContext authenticateNode(ClusterNode node, GridSecurityCredentials cred) throws GridException;
-
-    /**
-     * Gets global node authentication flag.
-     *
-     * @return {@code True} if all nodes in topology should authenticate joining node, {@code false} if only
-     *      coordinator should do the authentication.
-     */
-    public boolean isGlobalNodeAuthentication();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiOrderSupport.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiOrderSupport.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiOrderSupport.java
deleted file mode 100644
index 9934ce6..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/DiscoverySpiOrderSupport.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import java.lang.annotation.*;
-
-/**
- * This annotation is for all implementations of {@link DiscoverySpi} that support
- * proper node ordering. This includes:
- * <ul>
- * <li>
- * Every node gets an order number assigned to it which is provided via {@link org.apache.ignite.cluster.ClusterNode#order()}
- * method. There is no requirement about order value other than that nodes that join grid
- * at later point of time have order values greater than previous nodes.
- * </li>
- * <li>
- * All {@link org.apache.ignite.events.IgniteEventType#EVT_NODE_JOINED} events come in proper order. This means that all
- * listeners to discovery events will receive discovery notifications in proper order.
- * </li>
- * </ul>
- */
-@Documented
-@Inherited
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.TYPE})
-public @interface DiscoverySpiOrderSupport {
-    /**
-     * Whether or not target SPI supports node startup order.
-     */
-    @SuppressWarnings({"JavaDoc"})
-    public boolean value();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/package.html
deleted file mode 100644
index 77f45f1..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains APIs for topology manager SPI.
-</body>
-</html>


[10/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java
index d98173f..8c4e96a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java
@@ -38,7 +38,7 @@ public class GridCacheNearEvictionSelfTest extends GridCommonAbstractTest {
     private int gridCnt;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
index 3a8a945..d0b414c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
@@ -43,7 +43,7 @@ public class GridCacheNearMultiGetSelfTest extends GridCommonAbstractTest {
     private static final int GRID_CNT = 3;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings({"ConstantConditions"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
index a91fc7c..ab260f5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
@@ -52,7 +52,7 @@ public class GridCacheNearMultiNodeSelfTest extends GridCommonAbstractTest {
     private static TestStore store = new TestStore();
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Grid counter. */
     private AtomicInteger cntr = new AtomicInteger(0);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOneNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOneNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOneNodeSelfTest.java
index 965fe5f..bf8323b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOneNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOneNodeSelfTest.java
@@ -56,7 +56,7 @@ public class GridCacheNearOneNodeSelfTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
index 60e9cf3..9fe83ff 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public class GridCacheNearOnlyTopologySelfTest extends GridCommonAbstractTest {
     /** Shared ip finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Near only flag. */
     private boolean nearOnly;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
index c1e2ec3..0e52ff6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
@@ -88,7 +88,7 @@ public class GridCacheNearReaderPreloadSelfTest extends GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     private void startUp() throws Exception {
-        TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+        TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
         Ignite node1 = G.start(dataNode(ipFinder, "node1"));
         Ignite node2 = G.start(dataNode(ipFinder, "node2"));

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java
index 191581e..d5192a3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java
@@ -39,7 +39,7 @@ public class GridCacheNearReadersSelfTest extends GridCommonAbstractTest {
     private int grids = 2;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Grid counter. */
     private static AtomicInteger cntr = new AtomicInteger(0);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java
index cee4a72..efdff27 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java
@@ -38,7 +38,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheNearTxMultiNodeSelfTest extends GridCommonAbstractTest {
     /** */
-    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int GRID_CNT = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java
index 7c919ac..beba906 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java
@@ -41,7 +41,7 @@ public class GridCachePartitionedAffinityExcludeNeighborsPerformanceTest extends
     private boolean excNeighbores;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static Collection<String> msgs = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java
index 8d8b378..75d489f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridCachePartitionedAffinityHashIdResolverSelfTest extends GridCommonAbstractTest {
     /** Shared IP finder. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Hash ID resolver. */
     private GridCacheAffinityNodeHashResolver rslvr;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java
index eb4e365..0985494 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java
@@ -53,7 +53,7 @@ public class GridCachePartitionedAffinitySelfTest extends GridCommonAbstractTest
     private static AtomicBoolean failFlag = new AtomicBoolean(false);
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java
index b9311cd..a0aec93 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCachePartitionedBasicStoreMultiNodeSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Number of grids to start. */
     private static final int GRID_CNT = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java
index 041bc3e..cbe02d5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java
@@ -43,7 +43,7 @@ public class GridCachePartitionedEvictionSelfTest extends GridCacheAbstractSelfT
     private static final int KEY_CNT = 100;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected int gridCount() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java
index 6da1f31..2b4d367 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java
@@ -33,7 +33,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridCachePartitionedExplicitLockNodeFailureSelfTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     public static final int GRID_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java
index d9eea17..861df0c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java
@@ -27,7 +27,7 @@ import static org.gridgain.grid.cache.GridCacheDistributionMode.*;
  */
 public class GridCachePartitionedFilteredPutSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java
index d7637fd..d33cd37 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java
@@ -29,7 +29,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCachePartitionedLoadCacheSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Grids count. */
     private static final int GRID_CNT = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java
index 69f01a3..51dd095 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java
@@ -59,7 +59,7 @@ public class GridCachePartitionedMultiNodeCounterSelfTest extends GridCommonAbst
     private static final String CNTR_KEY = "CNTR_KEY";
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static CountDownLatch startLatchMultiNode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java
index 1c377bb..d3928f2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java
@@ -45,7 +45,7 @@ public class GridCachePartitionedMultiThreadedPutGetSelfTest extends GridCommonA
     private static final int TX_CNT = 500;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java
index aceaad4..288f236 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java
@@ -42,7 +42,7 @@ public class GridCachePartitionedQueryMultiThreadedSelfTest extends GridCommonAb
     private static final int GRID_CNT = 3;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Don't start grid by default. */
     public GridCachePartitionedQueryMultiThreadedSelfTest() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java
index 746f2cc..6e37328 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.kernal.processors.cache.distributed.GridCacheMod
  */
 public class GridCachePartitionedStorePutSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final AtomicInteger CNT = new AtomicInteger(0);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
index ae9e16d..4499014 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
@@ -28,7 +28,7 @@ public class GridCachePartitionedTxMultiThreadedSelfTest extends GridCacheTxMult
     private static final boolean CACHE_DEBUG = false;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings({"ConstantConditions"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
index 7cc9c14..97e951e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
@@ -52,7 +52,7 @@ public class GridCachePartitionedTxSalvageSelfTest extends GridCommonAbstractTes
     private static String salvageTimeoutOld;
 
     /** Standard VM IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
index 8d689a1..ef0c067 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
@@ -29,7 +29,7 @@ public class GridCachePartitionedTxSingleThreadedSelfTest extends GridCacheTxSin
     private static final boolean CACHE_DEBUG = false;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings({"ConstantConditions"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java
index 76ef1e9..dc34749 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java
@@ -27,7 +27,7 @@ public class GridCachePartitionedTxTimeoutSelfTest extends GridCacheTxTimeoutAbs
     private static final long TIMEOUT = 50;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java
index e83c0ee..ab77920 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridPartitionedBackupLoadSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int GRID_CNT = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java
index 0fb9a4c..d848f4e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java
@@ -49,7 +49,7 @@ public class GridCacheReplicatedInvalidateSelfTest extends GridCommonAbstractTes
     private static final String VAL = "test";
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * Don't start grid by default.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java
index b9de6bb..6e5f12c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java
@@ -31,7 +31,7 @@ public class GridCacheReplicatedTxMultiThreadedSelfTest extends GridCacheTxMulti
     private static final boolean LOG_TO_FILE = true;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings({"unchecked"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java
index 9a0c5f3..6821c7d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java
@@ -31,7 +31,7 @@ public class GridCacheReplicatedTxSingleThreadedSelfTest extends GridCacheTxSing
     private static final boolean LOG_TO_FILE = true;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings({"unchecked"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java
index 3b68176..9a27e01 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java
@@ -26,7 +26,7 @@ public class GridCacheReplicatedTxTimeoutSelfTest extends GridCacheTxTimeoutAbst
     private static final long TIMEOUT = 50;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java
index fe9da16..2b39830 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java
@@ -34,7 +34,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridCacheReplicatedUnswapAdvancedSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java
index c3e2b80..1420bf8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheSyncReplicatedPreloadSelfTest extends GridCommonAbstractTest {
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final boolean DISCO_DEBUG_MODE = false;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
index 4dc6dc5..63089ab 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
@@ -48,7 +48,7 @@ public class GridCacheReplicatedPreloadSelfTest extends GridCommonAbstractTest {
     private int poolSize = 2;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java
index 3929857..be5fe6e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java
@@ -29,7 +29,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridCacheReplicatedPreloadStartStopEventsSelfTest extends GridCommonAbstractTest {
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java
index 3a6616e..e08b1a3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheConcurrentEvictionConsistencySelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Default iteration count. */
     private static final int ITERATION_CNT = 50000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java
index 7feb2b1..f0ab280 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheConcurrentEvictionsSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Replicated cache. */
     private GridCacheMode mode = REPLICATED;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java
index b3aac91..b6f0914 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public class GridCacheDistributedEvictionsSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private int gridCnt = 2;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java
index b9347c7..c470b64 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java
@@ -19,7 +19,7 @@ import org.gridgain.grid.cache.store.GridCacheStore;
 import org.gridgain.grid.cache.store.GridCacheStoreAdapter;
 import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi;
 import org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder;
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.U;
 import org.gridgain.testframework.junits.common.GridCommonAbstractTest;
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;
  */
 public abstract class GridCacheEmptyEntriesAbstractSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private GridCacheEvictionPolicy<?, ?> plc;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java
index c439b27..b6503d3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java
@@ -37,7 +37,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
 public abstract class GridCacheEvictionAbstractTest<T extends GridCacheEvictionPolicy<?, ?>>
     extends GridCommonAbstractTest {
     /** IP finder. */
-    protected static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Replicated cache. */
     protected GridCacheMode mode = REPLICATED;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java
index 4dbe7db..06262e2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridCacheEvictionFilterSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Replicated cache. */
     private GridCacheMode mode = REPLICATED;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java
index d2ce3ae..dc2b74b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java
@@ -33,7 +33,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridCacheEvictionLockUnlockSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Evict latch. */
     private static CountDownLatch evictLatch;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java
index 6bbd5ca..032a015 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheEvictionTouchSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private GridCacheEvictionPolicy<?, ?> plc;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java
index e83fc8f..b8ffb93 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheLruNearEvictionPolicySelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Maximum size for near eviction policy. */
     private static final int EVICTION_MAX_SIZE = 10;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java
index 5e18641..0b137fa 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java
@@ -29,7 +29,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheNearOnlyLruNearEvictionPolicySelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Grid count. */
     private static final int GRID_COUNT = 2;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLoadAllSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLoadAllSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLoadAllSelfTest.java
index 07e67a7..afc0687 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLoadAllSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLoadAllSelfTest.java
@@ -52,7 +52,7 @@ public class GridCacheLocalLoadAllSelfTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLockSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLockSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLockSelfTest.java
index d75b965..475e33f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLockSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLockSelfTest.java
@@ -54,7 +54,7 @@ public class GridCacheLocalLockSelfTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalMultithreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalMultithreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalMultithreadedSelfTest.java
index 51c2c12..b074328 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalMultithreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalMultithreadedSelfTest.java
@@ -58,7 +58,7 @@ public class GridCacheLocalMultithreadedSelfTest extends GridCommonAbstractTest
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalTxTimeoutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalTxTimeoutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalTxTimeoutSelfTest.java
index b91fe85..3778726 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalTxTimeoutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalTxTimeoutSelfTest.java
@@ -44,7 +44,7 @@ public class GridCacheLocalTxTimeoutSelfTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java
index 46782f9..48bdce8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public abstract class GridCacheSwapScanQueryAbstractSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     protected static final String ATOMIC_CACHE_NAME = "atomicCache";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
index 626741f..bc95bfa 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
@@ -51,7 +51,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public abstract class GridCacheContinuousQueryAbstractSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Latch timeout. */
     protected static final long LATCH_TIMEOUT = 5000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java
index cadab14..ad00482 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java
@@ -37,7 +37,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public abstract class GridCacheAbstractReduceFieldsQuerySelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Flag indicating if starting node should have cache. */
     protected boolean hasCache;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java
index d95be6e..2e99dd2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java
@@ -29,7 +29,7 @@ import java.util.*;
  */
 public class GridTimeSyncProcessorSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Number of grids in test. */
     public static final int GRID_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java
index 1a53b1f..dc61f99 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java
@@ -45,7 +45,7 @@ public class GridClosureProcessorSelfTest extends GridCommonAbstractTest {
     private static final long JOB_TIMEOUT = 100;
 
     /** IP finder. */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java
index a6a8908..a2d64d7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridDataLoaderImplSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Number of keys to load via data loader. */
     private static final int KEYS_COUNT = 1000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java
index 27db810..13aa139 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridDataLoaderPerformanceTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int GRID_CNT = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java
index fa8e539..8604295 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java
@@ -40,7 +40,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridDataLoaderProcessorSelfTest extends GridCommonAbstractTest {
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private GridCacheMode mode = PARTITIONED;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridCacheGgfsPerBlockLruEvictionPolicySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridCacheGgfsPerBlockLruEvictionPolicySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridCacheGgfsPerBlockLruEvictionPolicySelfTest.java
index cb68163..3d0c919 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridCacheGgfsPerBlockLruEvictionPolicySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridCacheGgfsPerBlockLruEvictionPolicySelfTest.java
@@ -121,7 +121,7 @@ public class GridCacheGgfsPerBlockLruEvictionPolicySelfTest extends GridGgfsComm
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
         cfg.setCacheConfiguration(dataCacheCfg, metaCacheCfg);
@@ -179,7 +179,7 @@ public class GridCacheGgfsPerBlockLruEvictionPolicySelfTest extends GridGgfsComm
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
         cfg.setCacheConfiguration(dataCacheCfg, metaCacheCfg);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsAbstractSelfTest.java
index 25d7fb9..28f7ac5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsAbstractSelfTest.java
@@ -208,7 +208,7 @@ public abstract class GridGgfsAbstractSelfTest extends GridGgfsCommonAbstractTes
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
         cfg.setCacheConfiguration(dataCacheCfg, metaCacheCfg);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsCacheSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsCacheSelfTest.java
index a39e290..7825943 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsCacheSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsCacheSelfTest.java
@@ -44,7 +44,7 @@ public class GridGgfsCacheSelfTest extends GridGgfsCommonAbstractTest {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java
index 06e1f0c..1077e71 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java
@@ -37,7 +37,7 @@ import static org.gridgain.testframework.GridTestUtils.*;
  */
 public class GridGgfsDataManagerSelfTest extends GridGgfsCommonAbstractTest {
     /** Test IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Meta-information cache name. */
     private static final String META_CACHE_NAME = "meta";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java
index 12e81e1..1f694e2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.testframework.GridTestUtils.*;
  */
 public class GridGgfsMetaManagerSelfTest extends GridGgfsCommonAbstractTest {
     /** Test IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Meta-information cache name. */
     private static final String META_CACHE_NAME = "replicated";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java
index b334943..d62796d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java
@@ -43,7 +43,7 @@ public class GridGgfsMetricsSelfTest extends GridGgfsCommonAbstractTest {
     private static final int NODES_CNT = 3;
 
     /** IP finder for the grid with the primary file system. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Primary GGFS instances. */
     private static IgniteFs[] ggfsPrimary;
@@ -184,7 +184,7 @@ public class GridGgfsMetricsSelfTest extends GridGgfsCommonAbstractTest {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
         cfg.setCacheConfiguration(dataCacheCfg, metaCacheCfg);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsModesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsModesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsModesSelfTest.java
index 50733bc..444e27c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsModesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsModesSelfTest.java
@@ -117,7 +117,7 @@ public class GridGgfsModesSelfTest extends GridGgfsCommonAbstractTest {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
         cfg.setCacheConfiguration(metaCacheCfg, cacheCfg);
@@ -171,7 +171,7 @@ public class GridGgfsModesSelfTest extends GridGgfsCommonAbstractTest {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
         cfg.setCacheConfiguration(metaCacheCfg, cacheCfg);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java
index 12ac414..3903ef0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java
@@ -39,7 +39,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridGgfsProcessorSelfTest extends GridGgfsCommonAbstractTest {
     /** Test IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Meta-information cache name. */
     private static final String META_CACHE_NAME = "replicated";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java
index 0a96cb5..31e2043 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java
@@ -36,7 +36,7 @@ import static org.apache.ignite.fs.IgniteFsMode.*;
  */
 public class GridGgfsProcessorValidationSelfTest extends GridGgfsCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Grid #1 config. */
     private IgniteConfiguration g1Cfg;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java
index b7c2e84..899f9d2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java
@@ -36,7 +36,7 @@ import static org.apache.ignite.fs.IgniteFsConfiguration.*;
  */
 public abstract class GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest extends GridGgfsCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     private static final AtomicInteger mgmtPort = new AtomicInteger(DFLT_MGMT_PORT);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java
index 7e3569f..b7fa462 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java
@@ -66,7 +66,7 @@ public class GridGgfsSizeSelfTest extends GridGgfsCommonAbstractTest {
     private static final String GGFS_NAME = "ggfs";
 
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** GGFS management port */
     private static int mgmtPort;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java
index 47f35b1..f8b5fcc 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java
@@ -37,7 +37,7 @@ import static org.gridgain.testframework.GridTestUtils.*;
  */
 public class GridGgfsStreamsSelfTest extends GridGgfsCommonAbstractTest {
     /** Test IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Meta-information cache name. */
     private static final String META_CACHE_NAME = "replicated";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java
index 67bdea9..45a4709 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java
@@ -46,7 +46,7 @@ public class GridGgfsTaskSelfTest extends GridGgfsCommonAbstractTest {
     private static final IgniteFsPath FILE = new IgniteFsPath("/file");
 
     /** Shared IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Block size: 64 Kb. */
     private static final int BLOCK_SIZE = 64 * 1024;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java
index 12bd5c1..70d1903 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java
@@ -36,7 +36,7 @@ public class GridGgfsAbstractRecordResolverSelfTest extends GridCommonAbstractTe
     protected static final IgniteFsPath FILE = new IgniteFsPath("/file");
 
     /** Shared IP finder. */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** GGFS. */
     protected static IgniteFs ggfs;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
index 8383c09..a2e6b0b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
@@ -43,7 +43,7 @@ public class GridCacheCommandHandlerSelfTest extends GridCommonAbstractTest {
         // Discovery config.
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         // Cache config.
         GridCacheConfiguration cacheCfg = defaultCacheConfiguration();


[34/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java
new file mode 100644
index 0000000..dd8807e
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java
@@ -0,0 +1,266 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Base class to implement discovery messages.
+ */
+public abstract class TcpDiscoveryAbstractMessage implements Externalizable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** */
+    protected static final int CLIENT_FLAG_POS = 0;
+
+    /** */
+    protected static final int RESPONDED_FLAG_POS = 1;
+
+    /** */
+    protected static final int CLIENT_RECON_SUCCESS_FLAG_POS = 2;
+
+    /** Sender of the message (transient). */
+    private UUID senderNodeId;
+
+    /** Message ID. */
+    private IgniteUuid id;
+
+    /** Verifier node ID. */
+    private UUID verifierNodeId;
+
+    /** Topology version. */
+    private long topVer;
+
+    /** Destination client node ID. */
+    private UUID destClientNodeId;
+
+    /** Flags. */
+    @GridToStringExclude
+    private int flags;
+
+    /** Pending message index. */
+    private short pendingIdx;
+
+    /**
+     * Default no-arg constructor for {@link Externalizable} interface.
+     */
+    protected TcpDiscoveryAbstractMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     */
+    protected TcpDiscoveryAbstractMessage(UUID creatorNodeId) {
+        id = IgniteUuid.fromUuid(creatorNodeId);
+    }
+
+    /**
+     * Gets creator node.
+     *
+     * @return Creator node ID.
+     */
+    public UUID creatorNodeId() {
+        return id.globalId();
+    }
+
+    /**
+     * Gets message ID.
+     *
+     * @return Message ID.
+     */
+    public IgniteUuid id() {
+        return id;
+    }
+
+    /**
+     * Gets sender node ID.
+     *
+     * @return Sender node ID.
+     */
+    public UUID senderNodeId() {
+        return senderNodeId;
+    }
+
+    /**
+     * Sets sender node ID.
+     *
+     * @param senderNodeId Sender node ID.
+     */
+    public void senderNodeId(UUID senderNodeId) {
+        this.senderNodeId = senderNodeId;
+    }
+
+    /**
+     * Checks whether message is verified.
+     *
+     * @return {@code true} if message was verified.
+     */
+    public boolean verified() {
+        return verifierNodeId != null;
+    }
+
+    /**
+     * Gets verifier node ID.
+     *
+     * @return verifier node ID.
+     */
+    public UUID verifierNodeId() {
+        return verifierNodeId;
+    }
+
+    /**
+     * Verifies the message and stores verifier ID.
+     *
+     * @param verifierNodeId Verifier node ID.
+     */
+    public void verify(UUID verifierNodeId) {
+        this.verifierNodeId = verifierNodeId;
+    }
+
+    /**
+     * Gets topology version.
+     *
+     * @return Topology version.
+     */
+    public long topologyVersion() {
+        return topVer;
+    }
+
+    /**
+     * Sets topology version.
+     *
+     * @param topVer Topology version.
+     */
+    public void topologyVersion(long topVer) {
+        this.topVer = topVer;
+    }
+
+    /**
+     * Get client node flag.
+     *
+     * @return Client node flag.
+     */
+    public boolean client() {
+        return getFlag(CLIENT_FLAG_POS);
+    }
+
+    /**
+     * Sets client node flag.
+     *
+     * @param client Client node flag.
+     */
+    public void client(boolean client) {
+        setFlag(CLIENT_FLAG_POS, client);
+    }
+
+    /**
+     * @return Destination client node ID.
+     */
+    public UUID destinationClientNodeId() {
+        return destClientNodeId;
+    }
+
+    /**
+     * @param destClientNodeId Destination client node ID.
+     */
+    public void destinationClientNodeId(UUID destClientNodeId) {
+        this.destClientNodeId = destClientNodeId;
+    }
+
+    /**
+     * @return Pending message index.
+     */
+    public short pendingIndex() {
+        return pendingIdx;
+    }
+
+    /**
+     * @param pendingIdx Pending message index.
+     */
+    public void pendingIndex(short pendingIdx) {
+        this.pendingIdx = pendingIdx;
+    }
+
+    /**
+     * @param pos Flag position.
+     * @return Flag value.
+     */
+    protected boolean getFlag(int pos) {
+        assert pos >= 0 && pos < 32;
+
+        int mask = 1 << pos;
+
+        return (flags & mask) == mask;
+    }
+
+    /**
+     * @param pos Flag position.
+     * @param val Flag value.
+     */
+    protected void setFlag(int pos, boolean val) {
+        assert pos >= 0 && pos < 32;
+
+        int mask = 1 << pos;
+
+        if (val)
+            flags |= mask;
+        else
+            flags &= ~mask;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        U.writeGridUuid(out, id);
+        U.writeUuid(out, verifierNodeId);
+        out.writeLong(topVer);
+        U.writeUuid(out, destClientNodeId);
+        out.writeInt(flags);
+        out.writeShort(pendingIdx);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        id = U.readGridUuid(in);
+        verifierNodeId = U.readUuid(in);
+        topVer = in.readLong();
+        destClientNodeId = U.readUuid(in);
+        flags = in.readInt();
+        pendingIdx = in.readShort();
+    }
+
+    /** {@inheritDoc} */
+    @Override public final boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        else if (obj instanceof TcpDiscoveryAbstractMessage)
+            return id.equals(((TcpDiscoveryAbstractMessage)obj).id);
+
+        return false;
+    }
+
+    /** {@inheritDoc} */
+    @Override public final int hashCode() {
+        return id.hashCode();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryAbstractMessage.class, this, "isClient", getFlag(CLIENT_FLAG_POS));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
new file mode 100644
index 0000000..1d31d04
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
@@ -0,0 +1,72 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+/**
+ * Message telling joining node that its authentication failed on coordinator.
+ */
+public class TcpDiscoveryAuthFailedMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Coordinator address. */
+    private InetAddress addr;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryAuthFailedMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param addr Coordinator address.
+     */
+    public TcpDiscoveryAuthFailedMessage(UUID creatorNodeId, InetAddress addr) {
+        super(creatorNodeId);
+
+        this.addr = addr;
+    }
+
+    /**
+     * @return Coordinator address.
+     */
+    public InetAddress address() {
+        return addr;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeByteArray(out, addr.getAddress());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        addr = InetAddress.getByAddress(U.readByteArray(in));
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryAuthFailedMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCheckFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCheckFailedMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCheckFailedMessage.java
new file mode 100644
index 0000000..348e7cc
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryCheckFailedMessage.java
@@ -0,0 +1,71 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message telling joining node that it failed coordinator's validation check.
+ */
+public class TcpDiscoveryCheckFailedMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Coordinator version. */
+    private String err;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryCheckFailedMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param err Error message from coordinator.
+     */
+    public TcpDiscoveryCheckFailedMessage(UUID creatorNodeId, String err) {
+        super(creatorNodeId);
+
+        this.err = err;
+    }
+
+    /**
+     * @return Error message from coordinator.
+     */
+    public String error() {
+        return err;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeString(out, err);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        err = U.readString(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryCheckFailedMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryClientReconnectMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryClientReconnectMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryClientReconnectMessage.java
new file mode 100644
index 0000000..273afe8
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryClientReconnectMessage.java
@@ -0,0 +1,119 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message telling that client node is reconnecting to topology.
+ */
+public class TcpDiscoveryClientReconnectMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** New router nodeID. */
+    private UUID routerNodeId;
+
+    /** Last message ID. */
+    private IgniteUuid lastMsgId;
+
+    /** Pending messages. */
+    @GridToStringExclude
+    private Collection<TcpDiscoveryAbstractMessage> msgs;
+
+    /**
+     * For {@link Externalizable}.
+     */
+    public TcpDiscoveryClientReconnectMessage() {
+        // No-op.
+    }
+
+    /**
+     * @param creatorNodeId Creator node ID.
+     * @param routerNodeId New router node ID.
+     * @param lastMsgId Last message ID.
+     */
+    public TcpDiscoveryClientReconnectMessage(UUID creatorNodeId, UUID routerNodeId, IgniteUuid lastMsgId) {
+        super(creatorNodeId);
+
+        this.routerNodeId = routerNodeId;
+        this.lastMsgId = lastMsgId;
+    }
+
+    /**
+     * @return New router node ID.
+     */
+    public UUID routerNodeId() {
+        return routerNodeId;
+    }
+
+    /**
+     * @return Last message ID.
+     */
+    public IgniteUuid lastMessageId() {
+        return lastMsgId;
+    }
+
+    /**
+     * @param msgs Pending messages.
+     */
+    public void pendingMessages(Collection<TcpDiscoveryAbstractMessage> msgs) {
+        this.msgs = msgs;
+    }
+
+    /**
+     * @return Pending messages.
+     */
+    public Collection<TcpDiscoveryAbstractMessage> pendingMessages() {
+        return msgs;
+    }
+
+    /**
+     * @param success Success flag.
+     */
+    public void success(boolean success) {
+        setFlag(CLIENT_RECON_SUCCESS_FLAG_POS, success);
+    }
+
+    /**
+     * @return Success flag.
+     */
+    public boolean success() {
+        return getFlag(CLIENT_RECON_SUCCESS_FLAG_POS);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeUuid(out, routerNodeId);
+        U.writeGridUuid(out, lastMsgId);
+        U.writeCollection(out, msgs);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        routerNodeId = U.readUuid(in);
+        lastMsgId = U.readGridUuid(in);
+        msgs = U.readCollection(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryClientReconnectMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDiscardMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDiscardMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDiscardMessage.java
new file mode 100644
index 0000000..0d1e4dd
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDiscardMessage.java
@@ -0,0 +1,75 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message sent by coordinator when some operation handling is over. All receiving
+ * nodes should discard this and all preceding messages in local buffers.
+ */
+public class TcpDiscoveryDiscardMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** ID of the message to discard (this and all preceding). */
+    private IgniteUuid msgId;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryDiscardMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param msgId Message ID.
+     */
+    public TcpDiscoveryDiscardMessage(UUID creatorNodeId, IgniteUuid msgId) {
+        super(creatorNodeId);
+
+        this.msgId = msgId;
+    }
+
+    /**
+     * Gets message ID to discard (this and all preceding).
+     *
+     * @return Message ID.
+     */
+    public IgniteUuid msgId() {
+        return msgId;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeGridUuid(out, msgId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        msgId = U.readGridUuid(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryDiscardMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java
new file mode 100644
index 0000000..01fe2ee
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java
@@ -0,0 +1,75 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.apache.ignite.spi.discovery.tcp.internal.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message telling joining node that new topology already contain
+ * different node with same ID.
+ */
+public class TcpDiscoveryDuplicateIdMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Node with duplicate ID. */
+    private TcpDiscoveryNode node;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryDuplicateIdMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param node Node with same ID.
+     */
+    public TcpDiscoveryDuplicateIdMessage(UUID creatorNodeId, TcpDiscoveryNode node) {
+        super(creatorNodeId);
+
+        assert node != null;
+
+        this.node = node;
+    }
+
+    /**
+     * @return Node with duplicate ID.
+     */
+    public TcpDiscoveryNode node() {
+        return node;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeObject(node);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        node = (TcpDiscoveryNode)in.readObject();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryDuplicateIdMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryEnsureDelivery.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryEnsureDelivery.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryEnsureDelivery.java
new file mode 100644
index 0000000..bee04a1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryEnsureDelivery.java
@@ -0,0 +1,23 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import java.lang.annotation.*;
+
+/**
+ * Message classes with this annotation attached are processed in a special way to
+ * ensure messages delivery.
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+public @interface TcpDiscoveryEnsureDelivery {
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java
new file mode 100644
index 0000000..7a35823
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java
@@ -0,0 +1,44 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Handshake request.
+ */
+public class TcpDiscoveryHandshakeRequest extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryHandshakeRequest() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     */
+    public TcpDiscoveryHandshakeRequest(UUID creatorNodeId) {
+        super(creatorNodeId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryHandshakeRequest.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
new file mode 100644
index 0000000..6c421c6
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
@@ -0,0 +1,82 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Handshake response.
+ */
+public class TcpDiscoveryHandshakeResponse extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** */
+    private long order;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryHandshakeResponse() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param locNodeOrder Local node order.
+     */
+    public TcpDiscoveryHandshakeResponse(UUID creatorNodeId, long locNodeOrder) {
+        super(creatorNodeId);
+
+        order = locNodeOrder;
+    }
+
+    /**
+     * Gets order of the node sent the response.
+     *
+     * @return Order of the node sent the response.
+     */
+    public long order() {
+        return order;
+    }
+
+    /**
+     * Sets order of the node sent the response.
+     *
+     * @param order Order of the node sent the response.
+     */
+    public void order(long order) {
+        this.order = order;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeLong(order);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        order = in.readLong();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryHandshakeResponse.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java
new file mode 100644
index 0000000..d815f79
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java
@@ -0,0 +1,308 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.spi.discovery.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+import static org.apache.ignite.spi.discovery.DiscoveryMetricsHelper.*;
+
+/**
+ * Heartbeat message.
+ * <p>
+ * It is sent by coordinator node across the ring once a configured period.
+ * Message makes two passes:
+ * <ol>
+ *      <li>During first pass, all nodes add their metrics to the message and
+ *          update local metrics with metrics currently present in the message.</li>
+ *      <li>During second pass, all nodes update all metrics present in the message
+ *          and remove their own metrics from the message.</li>
+ * </ol>
+ * When message reaches coordinator second time it is discarded (it finishes the
+ * second pass).
+ */
+@TcpDiscoveryRedirectToClient
+public class TcpDiscoveryHeartbeatMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Map to store nodes metrics. */
+    @GridToStringExclude
+    private Map<UUID, MetricsSet> metrics;
+
+    /** Client node IDs. */
+    private Collection<UUID> clientNodeIds;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryHeartbeatMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node.
+     */
+    public TcpDiscoveryHeartbeatMessage(UUID creatorNodeId) {
+        super(creatorNodeId);
+
+        metrics = U.newHashMap(1);
+        clientNodeIds = new HashSet<>();
+    }
+
+    /**
+     * Sets metrics for particular node.
+     *
+     * @param nodeId Node ID.
+     * @param metrics Node metrics.
+     */
+    public void setMetrics(UUID nodeId, ClusterNodeMetrics metrics) {
+        assert nodeId != null;
+        assert metrics != null;
+        assert !this.metrics.containsKey(nodeId);
+
+        this.metrics.put(nodeId, new MetricsSet(metrics));
+    }
+
+    /**
+     * Sets metrics for a client node.
+     *
+     * @param nodeId Server node ID.
+     * @param clientNodeId Client node ID.
+     * @param metrics Node metrics.
+     */
+    public void setClientMetrics(UUID nodeId, UUID clientNodeId, ClusterNodeMetrics metrics) {
+        assert nodeId != null;
+        assert clientNodeId != null;
+        assert metrics != null;
+        assert this.metrics.containsKey(nodeId);
+
+        this.metrics.get(nodeId).addClientMetrics(clientNodeId, metrics);
+    }
+
+    /**
+     * Removes metrics for particular node from the message.
+     *
+     * @param nodeId Node ID.
+     */
+    public void removeMetrics(UUID nodeId) {
+        assert nodeId != null;
+
+        metrics.remove(nodeId);
+    }
+
+    /**
+     * Gets metrics map.
+     *
+     * @return Metrics map.
+     */
+    public Map<UUID, MetricsSet> metrics() {
+        return metrics;
+    }
+
+    /**
+     * @return {@code True} if this message contains metrics.
+     */
+    public boolean hasMetrics() {
+        return !metrics.isEmpty();
+    }
+
+    /**
+     * @return {@code True} if this message contains metrics.
+     */
+    public boolean hasMetrics(UUID nodeId) {
+        assert nodeId != null;
+
+        return metrics.get(nodeId) != null;
+    }
+
+    /**
+     * Gets client node IDs for  particular node.
+     *
+     * @return Client node IDs.
+     */
+    public Collection<UUID> clientNodeIds() {
+        return clientNodeIds;
+    }
+
+    /**
+     * Adds client node ID.
+     *
+     * @param clientNodeId Client node ID.
+     */
+    public void addClientNodeId(UUID clientNodeId) {
+        clientNodeIds.add(clientNodeId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeInt(metrics.size());
+
+        if (!metrics.isEmpty()) {
+            for (Map.Entry<UUID, MetricsSet> e : metrics.entrySet()) {
+                U.writeUuid(out, e.getKey());
+                out.writeObject(e.getValue());
+            }
+        }
+
+        U.writeCollection(out, clientNodeIds);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        int metricsSize = in.readInt();
+
+        metrics = U.newHashMap(metricsSize);
+
+        for (int i = 0; i < metricsSize; i++)
+            metrics.put(U.readUuid(in), (MetricsSet)in.readObject());
+
+        clientNodeIds = U.readCollection(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryHeartbeatMessage.class, this, "super", super.toString());
+    }
+
+    /**
+     * @param metrics Metrics.
+     * @return Serialized metrics.
+     */
+    private static byte[] serializeMetrics(ClusterNodeMetrics metrics) {
+        assert metrics != null;
+
+        byte[] buf = new byte[DiscoveryMetricsHelper.METRICS_SIZE];
+
+        serialize(buf, 0, metrics);
+
+        return buf;
+    }
+
+    /**
+     * @param nodeId Node ID.
+     * @param metrics Metrics.
+     * @return Serialized metrics.
+     */
+    private static byte[] serializeMetrics(UUID nodeId, ClusterNodeMetrics metrics) {
+        assert nodeId != null;
+        assert metrics != null;
+
+        byte[] buf = new byte[16 + DiscoveryMetricsHelper.METRICS_SIZE];
+
+        U.longToBytes(nodeId.getMostSignificantBits(), buf, 0);
+        U.longToBytes(nodeId.getLeastSignificantBits(), buf, 8);
+
+        serialize(buf, 16, metrics);
+
+        return buf;
+    }
+
+    /**
+     */
+    @SuppressWarnings("PublicInnerClass")
+    public static class MetricsSet implements Externalizable {
+        /** */
+        private static final long serialVersionUID = 0L;
+
+        /** Metrics. */
+        private byte[] metrics;
+
+        /** Client metrics. */
+        private Collection<byte[]> clientMetrics;
+
+        /**
+         */
+        public MetricsSet() {
+            // No-op.
+        }
+
+        /**
+         * @param metrics Metrics.
+         */
+        public MetricsSet(ClusterNodeMetrics metrics) {
+            assert metrics != null;
+
+            this.metrics = serializeMetrics(metrics);
+        }
+
+        /**
+         * @return Deserialized metrics.
+         */
+        public ClusterNodeMetrics metrics() {
+            return deserialize(metrics, 0);
+        }
+
+        /**
+         * @return Client metrics.
+         */
+        public Collection<T2<UUID, ClusterNodeMetrics>> clientMetrics() {
+            return F.viewReadOnly(clientMetrics, new C1<byte[], T2<UUID, ClusterNodeMetrics>>() {
+                @Override public T2<UUID, ClusterNodeMetrics> apply(byte[] bytes) {
+                    UUID nodeId = new UUID(U.bytesToLong(bytes, 0), U.bytesToLong(bytes, 8));
+
+                    return new T2<>(nodeId, deserialize(bytes, 16));
+                }
+            });
+        }
+
+        /**
+         * @param nodeId Client node ID.
+         * @param metrics Client metrics.
+         */
+        private void addClientMetrics(UUID nodeId, ClusterNodeMetrics metrics) {
+            assert nodeId != null;
+            assert metrics != null;
+
+            if (clientMetrics == null)
+                clientMetrics = new ArrayList<>();
+
+            clientMetrics.add(serializeMetrics(nodeId, metrics));
+        }
+
+        /** {@inheritDoc} */
+        @Override public void writeExternal(ObjectOutput out) throws IOException {
+            U.writeByteArray(out, metrics);
+
+            out.writeInt(clientMetrics != null ? clientMetrics.size() : -1);
+
+            if (clientMetrics != null) {
+                for (byte[] arr : clientMetrics)
+                    U.writeByteArray(out, arr);
+            }
+        }
+
+        /** {@inheritDoc} */
+        @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+            metrics = U.readByteArray(in);
+
+            int clientMetricsSize = in.readInt();
+
+            if (clientMetricsSize >= 0) {
+                clientMetrics = new ArrayList<>(clientMetricsSize);
+
+                for (int i = 0; i < clientMetricsSize; i++)
+                    clientMetrics.add(U.readByteArray(in));
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
new file mode 100644
index 0000000..0a6bc0a
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
@@ -0,0 +1,102 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.apache.ignite.spi.discovery.tcp.internal.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Initial message sent by a node that wants to enter topology.
+ * Sent to random node during SPI start. Then forwarded directly to coordinator.
+ */
+public class TcpDiscoveryJoinRequestMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** New node that wants to join the topology. */
+    private TcpDiscoveryNode node;
+
+    /** Discovery data. */
+    private List<Object> discoData;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryJoinRequestMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param node New node that wants to join.
+     * @param discoData Discovery data.
+     */
+    public TcpDiscoveryJoinRequestMessage(TcpDiscoveryNode node, List<Object> discoData) {
+        super(node.id());
+
+        this.node = node;
+        this.discoData = discoData;
+    }
+
+    /**
+     * Gets new node that wants to join the topology.
+     *
+     * @return Node that wants to join the topology.
+     */
+    public TcpDiscoveryNode node() {
+        return node;
+    }
+
+    /**
+     * @return Discovery data.
+     */
+    public List<Object> discoveryData() {
+        return discoData;
+    }
+
+    /**
+     * @return {@code true} flag.
+     */
+    public boolean responded() {
+        return getFlag(RESPONDED_FLAG_POS);
+    }
+
+    /**
+     * @param responded Responded flag.
+     */
+    public void responded(boolean responded) {
+        setFlag(RESPONDED_FLAG_POS, responded);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeObject(node);
+        U.writeCollection(out, discoData);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        node = (TcpDiscoveryNode)in.readObject();
+        discoData = U.readList(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryJoinRequestMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryLoopbackProblemMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryLoopbackProblemMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryLoopbackProblemMessage.java
new file mode 100644
index 0000000..cc712c5
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryLoopbackProblemMessage.java
@@ -0,0 +1,87 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message telling joining node that it has loopback problem (misconfiguration).
+ * This means that remote node is configured to use loopback address, but joining node is not, or vise versa.
+ */
+public class TcpDiscoveryLoopbackProblemMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Remote node addresses. */
+    private Collection<String> addrs;
+
+    /** Remote node host names. */
+    private Collection<String> hostNames;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryLoopbackProblemMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param addrs Remote node addresses.
+     * @param hostNames Remote node host names.
+     */
+    public TcpDiscoveryLoopbackProblemMessage(UUID creatorNodeId, Collection<String> addrs,
+                                              Collection<String> hostNames) {
+        super(creatorNodeId);
+
+        this.addrs = addrs;
+        this.hostNames = hostNames;
+    }
+
+    /**
+     * @return Remote node addresses.
+     */
+    public Collection<String> addresses() {
+        return addrs;
+    }
+
+    /**
+     * @return Remote node host names.
+     */
+    public Collection<String> hostNames() {
+        return hostNames;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeCollection(out, addrs);
+        U.writeCollection(out, hostNames);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        addrs = U.readCollection(in);
+        hostNames = U.readCollection(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryLoopbackProblemMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddFinishedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddFinishedMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddFinishedMessage.java
new file mode 100644
index 0000000..145b53f
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddFinishedMessage.java
@@ -0,0 +1,75 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Sent by coordinator across the ring to finish node add process.
+ */
+@TcpDiscoveryEnsureDelivery
+@TcpDiscoveryRedirectToClient
+public class TcpDiscoveryNodeAddFinishedMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Added node ID. */
+    private UUID nodeId;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryNodeAddFinishedMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId ID of the creator node (coordinator).
+     * @param nodeId Added node ID.
+     */
+    public TcpDiscoveryNodeAddFinishedMessage(UUID creatorNodeId, UUID nodeId) {
+        super(creatorNodeId);
+
+        this.nodeId = nodeId;
+    }
+
+    /**
+     * Gets ID of the node added.
+     *
+     * @return ID of the node added.
+     */
+    public UUID nodeId() {
+        return nodeId;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeUuid(out, nodeId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        nodeId = U.readUuid(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryNodeAddFinishedMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
new file mode 100644
index 0000000..2c02363
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
@@ -0,0 +1,246 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.discovery.tcp.internal.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message telling nodes that new node should be added to topology.
+ * When newly added node receives the message it connects to its next and finishes
+ * join process.
+ */
+@TcpDiscoveryEnsureDelivery
+@TcpDiscoveryRedirectToClient
+public class TcpDiscoveryNodeAddedMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Added node. */
+    private TcpDiscoveryNode node;
+
+    /** Pending messages from previous node. */
+    private Collection<TcpDiscoveryAbstractMessage> msgs;
+
+    /** Discarded message ID. */
+    private IgniteUuid discardMsgId;
+
+    /** Current topology. Initialized by coordinator. */
+    @GridToStringInclude
+    private Collection<TcpDiscoveryNode> top;
+
+    /** Topology snapshots history. */
+    private Map<Long, Collection<ClusterNode>> topHist;
+
+    /** Discovery data from new node. */
+    private List<Object> newNodeDiscoData;
+
+    /** Discovery data from old nodes. */
+    private Collection<List<Object>> oldNodesDiscoData;
+
+    /** Start time of the first grid node. */
+    private long gridStartTime;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryNodeAddedMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param node Node to add to topology.
+     * @param newNodeDiscoData New Node discovery data.
+     * @param gridStartTime Start time of the first grid node.
+     */
+    public TcpDiscoveryNodeAddedMessage(UUID creatorNodeId, TcpDiscoveryNode node,
+                                        List<Object> newNodeDiscoData, long gridStartTime) {
+        super(creatorNodeId);
+
+        assert node != null;
+        assert gridStartTime > 0;
+
+        this.node = node;
+        this.newNodeDiscoData = newNodeDiscoData;
+        this.gridStartTime = gridStartTime;
+
+        oldNodesDiscoData = new LinkedList<>();
+    }
+
+    /**
+     * Gets newly added node.
+     *
+     * @return New node.
+     */
+    public TcpDiscoveryNode node() {
+        return node;
+    }
+
+    /**
+     * Gets pending messages sent to new node by its previous.
+     *
+     * @return Pending messages from previous node.
+     */
+    @Nullable public Collection<TcpDiscoveryAbstractMessage> messages() {
+        return msgs;
+    }
+
+    /**
+     * Gets discarded message ID.
+     *
+     * @return Discarded message ID.
+     */
+    @Nullable public IgniteUuid discardedMessageId() {
+        return discardMsgId;
+    }
+
+    /**
+     * Sets pending messages to send to new node.
+     *
+     * @param msgs Pending messages to send to new node.
+     * @param discardMsgId Discarded message ID.
+     */
+    public void messages(@Nullable Collection<TcpDiscoveryAbstractMessage> msgs, @Nullable IgniteUuid discardMsgId) {
+        this.msgs = msgs;
+        this.discardMsgId = discardMsgId;
+    }
+
+    /**
+     * Gets topology.
+     *
+     * @return Current topology.
+     */
+    @Nullable public Collection<TcpDiscoveryNode> topology() {
+        return top;
+    }
+
+    /**
+     * Sets topology.
+     *
+     * @param top Current topology.
+     */
+    public void topology(@Nullable Collection<TcpDiscoveryNode> top) {
+        this.top = top;
+    }
+
+    /**
+     * Gets topology snapshots history.
+     *
+     * @return Map with topology snapshots history.
+     */
+    @Nullable public Map<Long, Collection<ClusterNode>> topologyHistory() {
+        return topHist;
+    }
+
+    /**
+     * Sets topology snapshots history.
+     *
+     * @param topHist Map with topology snapshots history.
+     */
+    public void topologyHistory(@Nullable Map<Long, Collection<ClusterNode>> topHist) {
+        this.topHist = topHist;
+    }
+
+    /**
+     * @return Discovery data from new node.
+     */
+    public List<Object> newNodeDiscoveryData() {
+        return newNodeDiscoData;
+    }
+
+    /**
+     * @return Discovery data from old nodes.
+     */
+    public Collection<List<Object>> oldNodesDiscoveryData() {
+        return oldNodesDiscoData;
+    }
+
+    /**
+     * @param discoData Discovery data to add.
+     */
+    public void addDiscoveryData(List<Object> discoData) {
+        // Old nodes disco data may be null if message
+        // makes more than 1 pass due to stopping of the nodes in topology.
+        if (oldNodesDiscoData != null)
+            oldNodesDiscoData.add(discoData);
+    }
+
+    /**
+     * Clears discovery data to minimize message size.
+     */
+    public void clearDiscoveryData() {
+        newNodeDiscoData = null;
+        oldNodesDiscoData = null;
+    }
+
+    /**
+     * @return First grid node start time.
+     */
+    public long gridStartTime() {
+        return gridStartTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeObject(node);
+        U.writeCollection(out, msgs);
+        U.writeGridUuid(out, discardMsgId);
+        U.writeCollection(out, top);
+        U.writeMap(out, topHist);
+        out.writeLong(gridStartTime);
+        U.writeCollection(out, newNodeDiscoData);
+
+        out.writeInt(oldNodesDiscoData != null ? oldNodesDiscoData.size() : -1);
+
+        if (oldNodesDiscoData != null) {
+            for (List<Object> list : oldNodesDiscoData)
+                U.writeCollection(out, list);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        node = (TcpDiscoveryNode)in.readObject();
+        msgs = U.readCollection(in);
+        discardMsgId = U.readGridUuid(in);
+        top = U.readCollection(in);
+        topHist = U.readTreeMap(in);
+        gridStartTime = in.readLong();
+        newNodeDiscoData = U.readList(in);
+
+        int oldNodesDiscoDataSize = in.readInt();
+
+        if (oldNodesDiscoDataSize >= 0) {
+            oldNodesDiscoData = new ArrayList<>(oldNodesDiscoDataSize);
+
+            for (int i = 0; i < oldNodesDiscoDataSize; i++)
+                oldNodesDiscoData.add(U.readList(in));
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryNodeAddedMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
new file mode 100644
index 0000000..cd44670
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
@@ -0,0 +1,93 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Sent by node that has detected node failure to coordinator across the ring,
+ * then sent by coordinator across the ring.
+ */
+@TcpDiscoveryEnsureDelivery
+@TcpDiscoveryRedirectToClient
+public class TcpDiscoveryNodeFailedMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** ID of the failed node. */
+    private UUID failedNodeId;
+
+    /** Internal order of the failed node. */
+    private long order;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryNodeFailedMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId ID of the node that detects nodes failure.
+     * @param failedNodeId ID of the failed nodes.
+     * @param order Order of the failed node.
+     */
+    public TcpDiscoveryNodeFailedMessage(UUID creatorNodeId, UUID failedNodeId, long order) {
+        super(creatorNodeId);
+
+        assert failedNodeId != null;
+        assert order > 0;
+
+        this.failedNodeId = failedNodeId;
+        this.order = order;
+    }
+
+    /**
+     * Gets ID of the failed node.
+     *
+     * @return ID of the failed node.
+     */
+    public UUID failedNodeId() {
+        return failedNodeId;
+    }
+
+    /**
+     * @return Internal order of the failed node.
+     */
+    public long order() {
+        return order;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeUuid(out, failedNodeId);
+        out.writeLong(order);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        failedNodeId = U.readUuid(in);
+        order = in.readLong();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryNodeFailedMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
new file mode 100644
index 0000000..b3cbd03
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
@@ -0,0 +1,47 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Sent by node that is stopping to coordinator across the ring,
+ * then sent by coordinator across the ring.
+ */
+@TcpDiscoveryEnsureDelivery
+@TcpDiscoveryRedirectToClient
+public class TcpDiscoveryNodeLeftMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryNodeLeftMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId ID of the node that is about to leave the topology.
+     */
+    public TcpDiscoveryNodeLeftMessage(UUID creatorNodeId) {
+        super(creatorNodeId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryNodeLeftMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryPingRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryPingRequest.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryPingRequest.java
new file mode 100644
index 0000000..9bd775f
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryPingRequest.java
@@ -0,0 +1,65 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Ping request.
+ */
+public class TcpDiscoveryPingRequest extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Pinged client node ID. */
+    private UUID clientNodeId;
+
+    /**
+     * For {@link Externalizable}.
+     */
+    public TcpDiscoveryPingRequest() {
+        // No-op.
+    }
+
+    /**
+     * @param creatorNodeId Creator node ID.
+     * @param clientNodeId Pinged client node ID.
+     */
+    public TcpDiscoveryPingRequest(UUID creatorNodeId, @Nullable UUID clientNodeId) {
+        super(creatorNodeId);
+
+        this.clientNodeId = clientNodeId;
+    }
+
+    /**
+     * @return Pinged client node ID.
+     */
+    @Nullable public UUID clientNodeId() {
+        return clientNodeId;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeUuid(out, clientNodeId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        clientNodeId = U.readUuid(in);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryPingResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryPingResponse.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryPingResponse.java
new file mode 100644
index 0000000..dd69a04
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryPingResponse.java
@@ -0,0 +1,66 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Ping response.
+ */
+public class TcpDiscoveryPingResponse extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Whether pinged client exists. */
+    private boolean clientExists;
+
+    /**
+     * For {@link Externalizable}.
+     */
+    public TcpDiscoveryPingResponse() {
+        // No-op.
+    }
+
+    /**
+     * @param creatorNodeId Creator node ID.
+     */
+    public TcpDiscoveryPingResponse(UUID creatorNodeId) {
+        super(creatorNodeId);
+    }
+
+    /**
+     * @param clientExists Whether pinged client exists.
+     */
+    public void clientExists(boolean clientExists) {
+        this.clientExists = clientExists;
+    }
+
+    /**
+     * @return Whether pinged client exists.
+     */
+    public boolean clientExists() {
+        return clientExists;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeBoolean(clientExists);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        clientExists = in.readBoolean();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryRedirectToClient.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryRedirectToClient.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryRedirectToClient.java
new file mode 100644
index 0000000..338ecf7
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryRedirectToClient.java
@@ -0,0 +1,23 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import java.lang.annotation.*;
+
+/**
+ * Message classes with this annotation attached will be
+ * redirected to client nodes when going through ring.
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+public @interface TcpDiscoveryRedirectToClient {
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
new file mode 100644
index 0000000..91684f0
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
@@ -0,0 +1,123 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.messages;
+
+import org.apache.ignite.spi.discovery.tcp.internal.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message sent by node to its next to ensure that next node and
+ * connection to it are alive. Receiving node should send it across the ring,
+ * until message does not reach coordinator. Coordinator responds directly to node.
+ * <p>
+ * If a failed node id is specified then the message is sent across the ring up to the sender node
+ * to ensure that the failed node is actually failed.
+ */
+public class TcpDiscoveryStatusCheckMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Status OK. */
+    public static final int STATUS_OK = 1;
+
+    /** Status RECONNECT. */
+    public static final int STATUS_RECON = 2;
+
+    /** Creator node. */
+    private TcpDiscoveryNode creatorNode;
+
+    /** Failed node id. */
+    private UUID failedNodeId;
+
+    /** Creator node status (initialized by coordinator). */
+    private int status;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryStatusCheckMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNode Creator node.
+     * @param failedNodeId Failed node id.
+     */
+    public TcpDiscoveryStatusCheckMessage(TcpDiscoveryNode creatorNode, UUID failedNodeId) {
+        super(creatorNode.id());
+
+        this.creatorNode = creatorNode;
+        this.failedNodeId = failedNodeId;
+    }
+
+    /**
+     * Gets creator node.
+     *
+     * @return Creator node.
+     */
+    public TcpDiscoveryNode creatorNode() {
+        return creatorNode;
+    }
+
+    /**
+     * Gets failed node id.
+     *
+     * @return Failed node id.
+     */
+    public UUID failedNodeId() {
+        return failedNodeId;
+    }
+
+    /**
+     * Gets creator status.
+     *
+     * @return Creator node status.
+     */
+    public int status() {
+        return status;
+    }
+
+    /**
+     * Sets creator node status (should be set by coordinator).
+     *
+     * @param status Creator node status.
+     */
+    public void status(int status) {
+        this.status = status;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeObject(creatorNode);
+        U.writeUuid(out, failedNodeId);
+        out.writeInt(status);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        creatorNode = (TcpDiscoveryNode)in.readObject();
+        failedNodeId = U.readUuid(in);
+        status = in.readInt();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryStatusCheckMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/package.html b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/package.html
new file mode 100644
index 0000000..c397e93
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains implementation messages.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/package.html b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/package.html
new file mode 100644
index 0000000..7199f2e
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+     Contains <b>default</b> TCP/IP implementation for discovery SPI.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java b/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java
index ee2c343..aeeec08 100644
--- a/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java
+++ b/modules/core/src/main/java/org/gridgain/grid/GridBasicWarmupClosure.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.logger.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
index 5469e86..1442ec9 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
@@ -40,9 +40,9 @@ import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
 import org.apache.ignite.spi.deployment.*;
 import org.apache.ignite.spi.deployment.local.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.*;
 import org.gridgain.grid.spi.eventstorage.*;
 import org.gridgain.grid.spi.eventstorage.memory.*;
 import org.gridgain.grid.spi.failover.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
index bad2129..1acd9d5 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
@@ -27,7 +27,7 @@ import org.gridgain.grid.kernal.processors.jobmetrics.*;
 import org.gridgain.grid.kernal.processors.service.*;
 import org.gridgain.grid.security.*;
 import org.gridgain.grid.segmentation.*;
-import org.gridgain.grid.spi.discovery.*;
+import org.apache.ignite.spi.discovery.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.lang.*;
@@ -361,7 +361,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
              * @return {@code True} if specified component should collect data after all other components,
              *      {@code false} otherwise.
              * @deprecated We shouldn't rely on exact order and size of
-             *      {@link org.gridgain.grid.spi.discovery.DiscoverySpiDataExchange#collect(UUID)} output because it may easily break backward
+             *      {@link org.apache.ignite.spi.discovery.DiscoverySpiDataExchange#collect(UUID)} output because it may easily break backward
              *      compatibility (for example, if we will add new grid component in the middle of components startup
              *      routine). This method should be changed to return map (component id -> collected data)
              *      in the next major release.
@@ -1178,7 +1178,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
     }
 
     /**
-     * Gets first grid node start time, see {@link org.gridgain.grid.spi.discovery.DiscoverySpi#getGridStartTime()}.
+     * Gets first grid node start time, see {@link org.apache.ignite.spi.discovery.DiscoverySpi#getGridStartTime()}.
      *
      * @return Start time of the first grid node.
      */


[11/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java
index eeaa64d..e36ca58 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java
@@ -46,7 +46,7 @@ public class GridCacheReplicatedSynchronousCommitTest extends GridCommonAbstract
     private final Collection<TestCommunicationSpi> commSpis = new ConcurrentLinkedDeque8<>();
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java
index 09bdfef..ed7c88d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java
@@ -27,7 +27,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridCacheSlowTxWarnTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStopSelfTest.java
index 0538cd3..d65506e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStopSelfTest.java
@@ -44,7 +44,7 @@ public class GridCacheStopSelfTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi disc = new TcpDiscoverySpi();
 
-        disc.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disc.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(disc);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java
index a38660d..8a4e85b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheStorePutxSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static AtomicInteger loads;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java
index 6978ce6..88bb025 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java
@@ -29,7 +29,7 @@ public class GridCacheStoreValueBytesSelfTest extends GridCommonAbstractTest {
     private boolean storeValBytes;
 
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java
index d9d6a82..70870b3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java
@@ -34,7 +34,7 @@ public class GridCacheSwapPreloadSelfTest extends GridCommonAbstractTest {
     private static final int ENTRY_CNT = 15000;
 
     /** */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private GridCacheMode cacheMode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java
index 7e2103a..557c76f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java
@@ -39,7 +39,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridCacheSwapReloadSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java
index 3198dfc..cab5a3a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java
@@ -28,7 +28,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridCacheTtlManagerSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Test cache mode. */
     protected GridCacheMode cacheMode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java
index 8a3929d..f4cd3e0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java
@@ -41,7 +41,7 @@ abstract class GridCacheTxAbstractTest extends GridCommonAbstractTest {
     private static final AtomicInteger cntr = new AtomicInteger();
 
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * Start grid by default.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java
index 0d771ad..b3100cf 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java
@@ -34,7 +34,7 @@ public abstract class GridCacheTxConcurrentGetAbstractTest extends GridCommonAbs
     private static final boolean DEBUG = false;
 
     /** */
-    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int THREAD_NUM = 20;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java
index 4b49361..50e3728 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java
@@ -50,7 +50,7 @@ public abstract class GridCacheTxMultiNodeAbstractTest extends GridCommonAbstrac
     protected static final int GRID_CNT = 4;
 
     /** */
-    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     protected static final int RETRIES = 300;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java
index acc6ae8..1aba84f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public abstract class GridCacheTxReentryAbstractSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** @return Cache mode. */
     protected abstract GridCacheMode cacheMode();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java
index f909704..672e10f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java
@@ -34,7 +34,7 @@ public class GridCacheVariableTopologySelfTest extends GridCommonAbstractTest {
     private static final Random RAND = new Random();
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Constructs test. */
     public GridCacheVariableTopologySelfTest() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStoreAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStoreAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStoreAbstractTest.java
index 0dbbf4e..eb94447 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStoreAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStoreAbstractTest.java
@@ -69,7 +69,7 @@ public abstract class GridCacheWriteBehindStoreAbstractTest extends GridCommonAb
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java
index 2bb3540..27ccf56 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java
@@ -33,7 +33,7 @@ public class GridCacheWriteBehindStorePartitionedMultiNodeSelfTest extends GridC
     private static final int GRID_CNT = 5;
 
     /** Ip finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Flush frequency. */
     public static final int WRITE_BEHIND_FLUSH_FREQ = 1000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java
index 0694ba8..b36cc97 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java
@@ -34,7 +34,7 @@ public class GridCacheAtomicLongApiSelfTest extends GridCommonAbstractTest {
     private static final Random RND = new Random();
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java
index bdf3956..08e247e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.cache.GridCacheDistributionMode.*;
  */
 public abstract class GridCacheAtomicReferenceApiSelfAbstractTest extends GridCommonAbstractTest {
     /** */
-    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs a test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java
index 76e1242..1766a6a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java
@@ -30,7 +30,7 @@ public abstract class GridCacheAtomicReferenceMultiNodeAbstractTest extends Grid
     protected static final int GRID_CNT = 4;
 
     /** */
-    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java
index 8089f91..de5afc0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java
@@ -24,7 +24,7 @@ import java.util.*;
  */
 public abstract class GridCacheAtomicStampedApiSelfAbstractTest extends GridCommonAbstractTest {
     /** */
-    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs a test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java
index 05e67e6..51bfc91 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java
@@ -46,7 +46,7 @@ public class GridCacheCountDownLatchSelfTest extends GridCommonAbstractTest impl
     private static final int THREADS_CNT = 5;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final Random RND = new Random();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java
index b45f353..419e5ad 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java
@@ -28,7 +28,7 @@ import java.util.concurrent.atomic.*;
  */
 public abstract class GridCacheQueueApiSelfAbstractTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int QUEUE_CAPACITY = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java
index 235dd7f..d6816f5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java
@@ -35,7 +35,7 @@ public abstract class GridCacheQueueJoinedNodeSelfAbstractTest extends GridCommo
     protected static final int GRID_CNT = 3;
 
     /** */
-    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     protected static final int ITEMS_CNT = 300;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
index 522550e..f3cbc43 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
@@ -39,7 +39,7 @@ public abstract class GridCacheQueueMultiNodeAbstractSelfTest extends GridCommon
     private static final int GRID_CNT = 4;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int RETRIES = 20;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java
index 60c1787..3ed07f2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java
@@ -34,7 +34,7 @@ public class GridCacheQueueMultiNodeConsistencySelfTest extends GridCommonAbstra
     protected static final int GRID_CNT = 3;
 
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     protected static final int RETRIES = 20;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java
index ec0a7fa..5eafd21 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java
@@ -35,7 +35,7 @@ public abstract class GridCacheQueueRotativeMultiNodeAbstractTest extends GridCo
     protected static final int GRID_CNT = 4;
 
     /** */
-    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     protected static final int RETRIES = 133;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
index 97929ad..67ecd5e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
@@ -53,7 +53,7 @@ public abstract class GridCacheSequenceApiSelfAbstractTest extends GridCommonAbs
     private static GridCacheAtomicSequence[] seqArr = new GridCacheAtomicSequence[SEQ_NUM];
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructor.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java
index 9e7c38b..41ebf2c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java
@@ -37,7 +37,7 @@ public abstract class GridCacheSequenceMultiNodeAbstractSelfTest extends GridCom
     protected static final int BATCH_SIZE = 33;
 
     /** */
-    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     protected static final int RETRIES = 1111;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
index e2ba3db..0a9f353 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheDistributionMode.*;
  */
 public class GridCachePartitionedAtomicSequenceMultiThreadedTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Number of threads for multithreaded test. */
     private static final int THREAD_NUM = 30;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java
index cb018d5..373a70f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java
@@ -26,7 +26,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCachePartitionedNodeRestartSelfTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs a test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java
index b3cb278..67ed72d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCachePartitionedNodeRestartTxSelfTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int INIT_GRID_NUM = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
index dc7b7c7..d396692 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCachePartitionedQueueCreateMultiNodeSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java
index e3513a8..ef8911c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java
@@ -37,7 +37,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridCachePartitionedQueueEntryMoveSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Queue capacity. */
     private static final int QUEUE_CAP = 5;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java
index 454ccbc..5ac5326 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public abstract class GridCacheAbstractJobExecutionTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Job counter. */
     private static final AtomicInteger cntr = new AtomicInteger(0);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
index 0af42d7..dd1a7ae 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
@@ -84,7 +84,7 @@ public abstract class GridCacheAbstractNodeRestartSelfTest extends GridCommonAbs
     private int retries = DFLT_RETRIES;
 
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java
index 0d19161..ff4de8b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java
@@ -31,7 +31,7 @@ public abstract class GridCacheAbstractPrimarySyncSelfTest extends GridCommonAbs
     private static final int GRID_CNT = 3;
 
     /** IP_FINDER. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java
index 8ed5b37..ef914a1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java
@@ -42,7 +42,7 @@ public abstract class GridCacheBasicOpAbstractTest extends GridCommonAbstractTes
     private static Ignite ignite3;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java
index ac0a43e..1f3b3df 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java
@@ -47,7 +47,7 @@ public abstract class GridCacheLockAbstractTest extends GridCommonAbstractTest {
     private static GridCache<Integer, String> cache2;
 
     /** Ip-finder. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java
index 5b6f1ea..70747f1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java
@@ -51,7 +51,7 @@ public abstract class GridCacheMultiNodeAbstractTest extends GridCommonAbstractT
     private static GridCache<Integer, String> cache3;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Listeners. */
     private static Collection<CacheEventListener> lsnrs = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java
index 09e1880..0075a70 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java
@@ -42,7 +42,7 @@ public abstract class GridCacheMultiNodeLockAbstractTest extends GridCommonAbstr
     private static Ignite ignite2;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Listeners. */
     private static Collection<IgnitePredicate<IgniteEvent>> lsnrs = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java
index 3c1ff8c..e6be5fa 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java
@@ -56,7 +56,7 @@ public class GridCacheMultithreadedFailoverAbstractTest extends GridCommonAbstra
     private final Condition putCond = lock.newCondition();
 
     /** Shared IP finder. */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Caches comparison start latch. */
     private CountDownLatch cmpLatch;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
index f0b75c5..bf60481 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
@@ -47,7 +47,7 @@ public abstract class GridCacheNodeFailureAbstractTest extends GridCommonAbstrac
     private static final String VALUE = "test";
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Grid instances. */
     private static final List<Ignite> IGNITEs = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java
index 04028b7..4ddde21 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
 @SuppressWarnings({"PointlessArithmeticExpression"})
 public class GridCachePartitionedAffinityFilterSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Backup count. */
     private static final int BACKUPS = 1;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java
index 9fd391d..7b326dc 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java
@@ -41,7 +41,7 @@ public abstract class GridCachePartitionedReloadAllAbstractSelfTest extends Grid
     private static final int BACKUP_CNT = 1;
 
     /** IP finder. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Map where dummy cache store values are stored. */
     private final Map<Integer, String> map = new ConcurrentHashMap8<>();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
index f4d4c64..d851651 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public abstract class GridCachePreloadEventsAbstractSelfTest extends GridCommonAbstractTest {
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
index 56b2f67..16bc993 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
@@ -44,7 +44,7 @@ public abstract class GridCachePreloadLifecycleAbstractTest extends GridCommonAb
     protected LifecycleBean lifecycleBean;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Default keys. */
     protected static final String[] DFLT_KEYS = new String[] {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java
index 9daddb6..7ffeecc 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java
@@ -84,7 +84,7 @@ public abstract class GridCachePreloadRestartAbstractSelfTest extends GridCommon
     private int retries = DFLT_RETRIES;
 
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
index cab8006..892dc0f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
@@ -59,7 +59,7 @@ public class GridCacheTransformEventSelfTest extends GridCommonAbstractTest {
     private Set<Integer> keys;
 
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Nodes. */
     private Ignite[] ignites;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java
index 253c844..80d68be 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public abstract class GridCacheTxConsistencyRestartAbstractSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Grid count. */
     private static final int GRID_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java
index 21880d6..9b5873b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java
@@ -52,7 +52,7 @@ public abstract class GridCacheAbstractTransformWriteThroughSelfTest extends Gri
     public static final int KEYS_CNT = 30;
 
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Value increment closure. */
     private static final IgniteClosure<Integer, Integer> INCR_CLOS = new IgniteClosure<Integer, Integer>() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java
index 625a3e2..b29dff9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java
@@ -40,7 +40,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheColocatedDebugTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Test thread count. */
     private static final int THREAD_CNT = 10;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java
index b6cbf97..ed0de91 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java
@@ -43,7 +43,7 @@ public class GridCacheColocatedOptimisticTransactionSelfTest extends GridCommonA
     private static final String VAL = "val";
 
     /** Shared IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Grids. */
     private static Ignite[] ignites;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
index d484dfb..caa87e8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
@@ -29,7 +29,7 @@ public class GridCacheColocatedTxSingleThreadedSelfTest extends GridCacheTxSingl
     private static final boolean CACHE_DEBUG = false;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings({"ConstantConditions"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java
index 6b0060e..6e10498 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java
@@ -38,7 +38,7 @@ public class GridCacheDhtEntrySelfTest extends GridCommonAbstractTest {
     private static final int GRID_CNT = 2;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
index f614082..d659716 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
@@ -42,7 +42,7 @@ public class GridCacheDhtEvictionNearReadersSelfTest extends GridCommonAbstractT
     private static final int GRID_CNT = 4;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Default constructor. */
     public GridCacheDhtEvictionNearReadersSelfTest() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java
index 9680b14..c660e68 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java
@@ -43,7 +43,7 @@ public class GridCacheDhtEvictionSelfTest extends GridCommonAbstractTest {
     private static final int GRID_CNT = 2;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Default constructor. */
     public GridCacheDhtEvictionSelfTest() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java
index 3e7729d..d0316f0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java
@@ -25,7 +25,7 @@ import static org.gridgain.grid.cache.GridCacheDistributionMode.*;
  */
 public class GridCacheDhtEvictionsDisabledSelfTest extends GridCommonAbstractTest {
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java
index c328599..ef1f758 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java
@@ -38,7 +38,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridCacheDhtInternalEntrySelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Grid count. */
     private static final int GRID_CNT = 2;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java
index eb27ef3..c11628d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java
@@ -32,7 +32,7 @@ public class GridCacheDhtMappingSelfTest extends GridCommonAbstractTest {
     private static final int BACKUPS = 1;
 
     /** IP finder. */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java
index 98b87f1..7632932 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java
@@ -59,7 +59,7 @@ public class GridCacheDhtPreloadBigDataSelfTest extends GridCommonAbstractTest {
     private LifecycleBean lbean;
 
     /** IP finder. */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
index 09f6f85..d3aa06a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
@@ -57,7 +57,7 @@ public class GridCacheDhtPreloadDelayedSelfTest extends GridCommonAbstractTest {
     private long delay = -1;
 
     /** IP finder. */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java
index 6ba74ae..1aef75b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java
@@ -57,7 +57,7 @@ public class GridCacheDhtPreloadDisabledSelfTest extends GridCommonAbstractTest
     private int partitions = DFLT_PARTITIONS;
 
     /** IP finder. */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
index 154acbf..7799773 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
@@ -46,7 +46,7 @@ public class GridCacheDhtPreloadMessageCountTest extends GridCommonAbstractTest
     private GridCachePreloadMode preloadMode = GridCachePreloadMode.SYNC;
 
     /** IP finder. */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java
index a8da0da..1d1cebd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java
@@ -30,7 +30,7 @@ import java.util.concurrent.*;
  */
 public class GridCacheDhtPreloadMultiThreadedSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private boolean cacheEnabled = true;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java
index 787615d..bd65074 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java
@@ -52,7 +52,7 @@ public class GridCacheDhtPreloadPutGetSelfTest extends GridCommonAbstractTest {
     private GridCachePreloadMode preloadMode;
 
     /** IP finder. */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java
index 591096e..c8c9bb5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java
@@ -68,7 +68,7 @@ public class GridCacheDhtPreloadSelfTest extends GridCommonAbstractTest {
     private int partitions = DFLT_PARTITIONS;
 
     /** IP finder. */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java
index 0feb90e..b4cf4d9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java
@@ -68,7 +68,7 @@ public class GridCacheDhtPreloadStartStopSelfTest extends GridCommonAbstractTest
     private int cacheCnt = DFLT_CACHE_CNT;
 
     /** IP finder. */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java
index 7a6c511..2530659 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java
@@ -57,7 +57,7 @@ public class GridCacheDhtPreloadUnloadSelfTest extends GridCommonAbstractTest {
     private LifecycleBean lbean;
 
     /** IP finder. */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Network timeout. */
     private long netTimeout = 1000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java
index 15f26c8..945634c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java
@@ -50,7 +50,7 @@ public class GridCachePartitionedTopologyChangeSelfTest extends GridCommonAbstra
     private static final int PARTITION_BACKUP = 2;
 
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java
index c6a8ff4..bfaff8d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java
@@ -32,7 +32,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridCachePartitionedUnloadEventsSelfTest extends GridCommonAbstractTest {
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
index 007b9f7..ba470f5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
@@ -42,7 +42,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
 @SuppressWarnings("ErrorNotRethrown")
 public class GridCacheAtomicInvalidPartitionHandlingSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Delay flag. */
     private static volatile boolean delay;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
index 9a81479..50e64f1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
@@ -40,7 +40,7 @@ public abstract class GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest
     private int gridInstanceNum;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(final String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java
index 73edb05..7b63819 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheDistributionMode.*;
  */
 public class GridCacheGetStoreErrorSelfTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Near enabled flag. */
     private boolean nearEnabled;


[51/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingSpi.java
deleted file mode 100644
index d95905a..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingSpi.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.cache.*;
-import org.gridgain.grid.cache.query.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Indexing SPI allows user to index cache content. Using indexing SPI user can index data in cache and run SQL,
- * TEXT or individual field queries against these indexes. Usually indexing SPI is used by caches by name
- * (see {@link GridCacheConfiguration#getIndexingSpiName()}). Logically storage is organized into separate spaces.
- * Usually cache name will be used as space name, so multiple caches can write to single indexing SPI instance.
- * <p>
- * Functionality of this SPI is exposed to {@link GridCacheQueries} interface:
- * <ul>
- *      <li>{@link GridCacheQueries#createSqlQuery(Class, String)}</li>
- *      <li>{@link GridCacheQueries#createSqlFieldsQuery(String)}</li>
- *      <li>{@link GridCacheQueries#createFullTextQuery(Class, String)}</li>
- * </ul>
- * <p>
- * The default indexing SPI implementation is
- * {@gglink org.gridgain.grid.spi.indexing.h2.GridH2IndexingSpi} which uses H2 database engine
- * for data indexing and querying. User can implement his own indexing SPI and use his own data structures
- * and query language instead of SQL. SPI can be configured for grid using {@link org.apache.ignite.configuration.IgniteConfiguration#getIndexingSpi()}.
- * <p>
- * GridGain comes with following built-in indexing SPI implementations:
- * <ul>
- *      <li>{@gglink org.gridgain.grid.spi.indexing.h2.GridH2IndexingSpi}</li>
- * </ul>
- * <p>
- * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
- * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
- * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
- * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
- * methods. Note again that calling methods from this interface on the obtained instance can lead
- * to undefined behavior and explicitly not supported.
- */
-public interface IndexingSpi extends IgniteSpi {
-    /**
-     * Queries individual fields (generally used by JDBC drivers).
-     *
-     * @param spaceName Space name.
-     * @param qry Query.
-     * @param params Query parameters.
-     * @param filters Space name and key filters.
-     * @return Query result.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K, V> IndexingFieldsResult queryFields(@Nullable String spaceName, String qry,
-        Collection<Object> params, IndexingQueryFilter filters) throws IgniteSpiException;
-
-    /**
-     * Executes regular query.
-     *
-     * @param spaceName Space name.
-     * @param qry Query.
-     * @param params Query parameters.
-     * @param type Query return type.
-     * @param filters Space name and key filters.
-     * @return Queried rows.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> query(@Nullable String spaceName, String qry,
-        Collection<Object> params, IndexingTypeDescriptor type, IndexingQueryFilter filters)
-        throws IgniteSpiException;
-
-    /**
-     * Executes text query.
-     *
-     * @param spaceName Space name.
-     * @param qry Text query.
-     * @param type Query return type.
-     * @param filters Space name and key filter.
-     * @return Queried rows.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> queryText(@Nullable String spaceName, String qry,
-        IndexingTypeDescriptor type, IndexingQueryFilter filters) throws IgniteSpiException;
-
-    /**
-     * Gets size of index for given type or -1 if it is a unknown type.
-     *
-     * @param spaceName Space name.
-     * @param desc Type descriptor.
-     * @return Objects number.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public long size(@Nullable String spaceName, IndexingTypeDescriptor desc) throws IgniteSpiException;
-
-    /**
-     * Registers type if it was not known before or updates it otherwise.
-     *
-     * @param spaceName Space name.
-     * @param desc Type descriptor.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     * @return {@code True} if type was registered, {@code false} if for some reason it was rejected.
-     */
-    public boolean registerType(@Nullable String spaceName, IndexingTypeDescriptor desc) throws IgniteSpiException;
-
-    /**
-     * Unregisters type and removes all corresponding data.
-     *
-     * @param spaceName Space name.
-     * @param type Type descriptor.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public void unregisterType(@Nullable String spaceName, IndexingTypeDescriptor type) throws IgniteSpiException;
-
-    /**
-     * Updates index. Note that key is unique for space, so if space contains multiple indexes
-     * the key should be removed from indexes other than one being updated.
-     *
-     * @param spaceName Space name.
-     * @param type Value type.
-     * @param key Key.
-     * @param val Value.
-     * @param ver Version.
-     * @param expirationTime Expiration time or 0 if never expires.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K, V> void store(@Nullable String spaceName, IndexingTypeDescriptor type, IndexingEntity<K> key,
-        IndexingEntity<V> val, byte[] ver, long expirationTime) throws IgniteSpiException;
-
-    /**
-     * Removes index entry by key.
-     *
-     * @param spaceName Space name.
-     * @param key Key.
-     * @return {@code True} if removed by this operation, {@code false} otherwise.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K> boolean remove(@Nullable String spaceName, IndexingEntity<K> key) throws IgniteSpiException;
-
-    /**
-     * Will be called when entry with given key is swapped.
-     *
-     * @param spaceName Space name.
-     * @param swapSpaceName Swap space name.
-     * @param key Key.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K> void onSwap(@Nullable String spaceName, String swapSpaceName, K key) throws IgniteSpiException;
-
-    /**
-     * Will be called when entry with given key is unswapped.
-     *
-     * @param spaceName Space name.
-     * @param key Key.
-     * @param val Value.
-     * @param valBytes Value bytes.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K, V> void onUnswap(@Nullable String spaceName, K key, V val, byte[] valBytes) throws IgniteSpiException;
-
-    /**
-     * Marshaller to be used by SPI.
-     *
-     * @param marshaller Marshaller.
-     */
-    public void registerMarshaller(IndexingMarshaller marshaller);
-
-    /**
-     * Registers space in this SPI.
-     *
-     * @param spaceName Space name.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public void registerSpace(String spaceName) throws IgniteSpiException;
-
-    /**
-     * Rebuilds all indexes of given type.
-     *
-     * @param spaceName Space name.
-     * @param type Type descriptor.
-     */
-    public void rebuildIndexes(@Nullable String spaceName, IndexingTypeDescriptor type);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingTypeDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingTypeDescriptor.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingTypeDescriptor.java
deleted file mode 100644
index dfcb7d4..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingTypeDescriptor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-
-import org.apache.ignite.spi.*;
-
-import java.util.*;
-
-/**
- * Value descriptor which allows to extract fields from value object of given type.
- * See also {@link IndexingSpi#registerType(String, IndexingTypeDescriptor)}.
- */
-public interface IndexingTypeDescriptor {
-    /**
-     * Gets type name which uniquely identifies this type.
-     *
-     * @return Type name which uniquely identifies this type.
-     */
-    public String name();
-
-    /**
-     * Gets mapping from values field name to its type.
-     *
-     * @return Fields that can be indexed, participate in queries and can be queried using
-     *      {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}
-     *      method.
-     */
-    public Map<String, Class<?>> valueFields();
-
-    /**
-     * Gets mapping from keys field name to its type.
-     *
-     * @return Fields that can be indexed, participate in queries and can be queried using
-     *      {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}
-     *      method.
-     */
-    public Map<String, Class<?>> keyFields();
-
-    /**
-     * Gets field value for given object.
-     *
-     * @param obj Object to get field value from.
-     * @param field Field name.
-     * @return Value for given field.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <T> T value(Object obj, String field) throws IgniteSpiException;
-
-    /**
-     * Gets indexes for this type.
-     *
-     * @return Indexes for this type.
-     */
-    public Map<String, IndexDescriptor> indexes();
-
-    /**
-     * Gets value class.
-     *
-     * @return Value class.
-     */
-    public Class<?> valueClass();
-
-    /**
-     * Gets key class.
-     *
-     * @return Key class.
-     */
-    public Class<?> keyClass();
-
-    /**
-     * Returns {@code true} if string representation of value should be indexed as text.
-     *
-     * @return If string representation of value should be full-text indexed.
-     */
-    public boolean valueTextIndex();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/NoopIndexingSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/NoopIndexingSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/NoopIndexingSpi.java
deleted file mode 100644
index d82954c..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/NoopIndexingSpi.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * No-op implementation of {@link IndexingSpi}, throws exception on query attempt.
- */
-@IgniteSpiNoop
-public class NoopIndexingSpi extends IgniteSpiAdapter implements IndexingSpi {
-    /** */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** {@inheritDoc} */
-    @Override public <K, V> IndexingFieldsResult queryFields(@Nullable String spaceName, String qry,
-        Collection<Object> params, IndexingQueryFilter filters) throws IgniteSpiException {
-        throw spiException();
-    }
-
-    /** {@inheritDoc} */
-    @Override public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> query(@Nullable String spaceName,
-        String qry, Collection<Object> params, IndexingTypeDescriptor type,
-        IndexingQueryFilter filters) throws IgniteSpiException {
-        throw spiException();
-    }
-
-    /** {@inheritDoc} */
-    @Override public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> queryText(@Nullable
-        String spaceName, String qry, IndexingTypeDescriptor type, IndexingQueryFilter filters)
-        throws IgniteSpiException {
-        throw spiException();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long size(@Nullable String spaceName, IndexingTypeDescriptor desc) throws IgniteSpiException {
-        throw spiException();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean registerType(@Nullable String spaceName, IndexingTypeDescriptor desc)
-        throws IgniteSpiException {
-        return false;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void unregisterType(@Nullable String spaceName, IndexingTypeDescriptor type)
-        throws IgniteSpiException {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public <K, V> void store(@Nullable String spaceName, IndexingTypeDescriptor type,
-        IndexingEntity<K> key, IndexingEntity<V> val, byte[] ver, long expirationTime) throws IgniteSpiException {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public <K> boolean remove(@Nullable String spaceName, IndexingEntity<K> key) throws IgniteSpiException {
-        return false;
-    }
-
-    /** {@inheritDoc} */
-    @Override public <K> void onSwap(@Nullable String spaceName, String swapSpaceName, K key) throws IgniteSpiException {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public <K, V> void onUnswap(@Nullable String spaceName, K key, V val, byte[] valBytes)
-        throws IgniteSpiException {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public void registerMarshaller(IndexingMarshaller marshaller) {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public void registerSpace(String spaceName) throws IgniteSpiException {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public void rebuildIndexes(@Nullable String spaceName, IndexingTypeDescriptor type) {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(@Nullable String gridName) throws IgniteSpiException {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        // No-op.
-    }
-
-    /**
-     * @return No-op SPI usage exception.
-     */
-    private IgniteSpiException spiException() {
-        return new IgniteSpiException("Current grid configuration does not support queries " +
-            "(please configure GridH2IndexingSpi).");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/package.html
deleted file mode 100644
index 9929a70..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains APIs for indexing SPI.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxExceptionAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxExceptionAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxExceptionAbstractSelfTest.java
index f319eb3..5e2f6c2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxExceptionAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxExceptionAbstractSelfTest.java
@@ -13,10 +13,10 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.testframework.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexingSpi.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexingSpi.java b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexingSpi.java
index 4a0f8bb..9d42582 100644
--- a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexingSpi.java
+++ b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexingSpi.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.marshaller.*;
 import org.apache.ignite.resources.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.spi.indexing.h2.opt.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.offheap.unsafe.*;
@@ -45,7 +45,7 @@ import java.util.*;
 import java.util.concurrent.*;
 
 import static org.apache.ignite.IgniteSystemProperties.*;
-import static org.gridgain.grid.spi.indexing.IndexType.*;
+import static org.apache.ignite.spi.indexing.IndexType.*;
 import static org.gridgain.grid.spi.indexing.h2.opt.GridH2AbstractKeyValueRow.*;
 import static org.h2.result.SortOrder.*;
 
@@ -56,10 +56,10 @@ import static org.h2.result.SortOrder.*;
  * with name {@code PUBLIC} will be used. To avoid name conflicts user should not explicitly name
  * a schema {@code PUBLIC}.
  * <p>
- * For each registered {@link org.gridgain.grid.spi.indexing.IndexingTypeDescriptor} this SPI will create respective SQL table with
+ * For each registered {@link org.apache.ignite.spi.indexing.IndexingTypeDescriptor} this SPI will create respective SQL table with
  * {@code '_key'} and {@code '_val'} fields for key and value, and fields from
- * {@link org.gridgain.grid.spi.indexing.IndexingTypeDescriptor#keyFields()} and {@link org.gridgain.grid.spi.indexing.IndexingTypeDescriptor#valueFields()}.
- * For each table it will create indexes declared in {@link org.gridgain.grid.spi.indexing.IndexingTypeDescriptor#indexes()}.
+ * {@link org.apache.ignite.spi.indexing.IndexingTypeDescriptor#keyFields()} and {@link org.apache.ignite.spi.indexing.IndexingTypeDescriptor#valueFields()}.
+ * For each table it will create indexes declared in {@link org.apache.ignite.spi.indexing.IndexingTypeDescriptor#indexes()}.
  * <p>
  * Note that you can monitor longer queries by setting {@link #setLongQueryExplain(boolean)} to {@code true}.
  * In this case a warning and execution plan are printed out if query exceeds certain time threshold. The
@@ -131,7 +131,7 @@ import static org.h2.result.SortOrder.*;
  * <img src="http://www.gridgain.com/images/spring-small.png">
  * <br>
  * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
- * @see org.gridgain.grid.spi.indexing.IndexingSpi
+ * @see org.apache.ignite.spi.indexing.IndexingSpi
  */
 @IgniteSpiMultipleInstancesSupport(true)
 @SuppressWarnings({"UnnecessaryFullyQualifiedName", "NonFinalStaticVariableUsedInClassInitialization"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2AbstractKeyValueRow.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2AbstractKeyValueRow.java b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2AbstractKeyValueRow.java
index 99b778f..ce56b57 100644
--- a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2AbstractKeyValueRow.java
+++ b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2AbstractKeyValueRow.java
@@ -24,7 +24,7 @@ import java.sql.*;
 import java.util.*;
 
 /**
- * Table row implementation based on {@link org.gridgain.grid.spi.indexing.IndexingTypeDescriptor}.
+ * Table row implementation based on {@link org.apache.ignite.spi.indexing.IndexingTypeDescriptor}.
  */
 public abstract class GridH2AbstractKeyValueRow extends GridH2Row {
     /** */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2IndexBase.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2IndexBase.java b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2IndexBase.java
index d605d1a..af07538 100644
--- a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2IndexBase.java
+++ b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2IndexBase.java
@@ -10,8 +10,8 @@
 package org.gridgain.grid.spi.indexing.h2.opt;
 
 import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.h2.engine.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2TreeIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2TreeIndex.java b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2TreeIndex.java
index ecc89fe..9788414 100644
--- a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2TreeIndex.java
+++ b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2TreeIndex.java
@@ -9,14 +9,15 @@
 
 package org.gridgain.grid.spi.indexing.h2.opt;
 
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.snaptree.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.offheap.unsafe.*;
 import org.h2.engine.*;
 import org.h2.index.*;
+import org.h2.index.IndexType;
 import org.h2.result.*;
 import org.h2.table.*;
 import org.h2.value.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndex.java b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndex.java
index 6844093..fe55c81 100644
--- a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndex.java
+++ b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndex.java
@@ -12,6 +12,7 @@ package org.gridgain.grid.spi.indexing.h2.opt;
 import org.apache.commons.codec.binary.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.indexing.*;
 import org.apache.lucene.analysis.standard.*;
 import org.apache.lucene.document.*;
 import org.apache.lucene.index.*;
@@ -19,7 +20,6 @@ import org.apache.lucene.queryParser.*;
 import org.apache.lucene.search.*;
 import org.apache.lucene.util.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.offheap.unsafe.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
index 8e8bccb..e387840 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
@@ -12,6 +12,7 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.optimized.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
@@ -21,7 +22,6 @@ import org.apache.ignite.spi.discovery.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedFieldsQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedFieldsQuerySelfTest.java
index db9cf0b..81c1c95 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedFieldsQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedFieldsQuerySelfTest.java
@@ -13,12 +13,12 @@ import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedQuerySelfTest.java
index bfb6803..c3da7e0 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedQuerySelfTest.java
@@ -14,13 +14,13 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.query.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/GridIndexingSpiAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/GridIndexingSpiAbstractSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/GridIndexingSpiAbstractSelfTest.java
index 461f62e..bd647f5 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/GridIndexingSpiAbstractSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/GridIndexingSpiAbstractSelfTest.java
@@ -12,6 +12,7 @@ package org.gridgain.grid.spi.indexing;
 import org.apache.ignite.*;
 import org.apache.ignite.marshaller.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexRebuildTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexRebuildTest.java b/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexRebuildTest.java
index e91c607..e9ec568 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexRebuildTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexRebuildTest.java
@@ -11,11 +11,11 @@ package org.gridgain.grid.spi.indexing.h2;
 
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndexLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndexLoadTest.java b/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndexLoadTest.java
index 26b360c..48767e4 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndexLoadTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndexLoadTest.java
@@ -11,8 +11,8 @@ package org.gridgain.grid.spi.indexing.h2.opt;
 
 import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.typedef.*;
 
 import java.io.*;


[29/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
deleted file mode 100644
index 68dd179..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
+++ /dev/null
@@ -1,639 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.internal;
-
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.spi.discovery.tcp.messages.*;
-import org.gridgain.grid.util.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-/**
- * Statistics for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
- */
-public class TcpDiscoveryStatistics {
-    /** Join started timestamp. */
-    private long joinStartedTs;
-
-    /** Join finished timestamp. */
-    private long joinFinishedTs;
-
-    /** Coordinator since timestamp. */
-    private final AtomicLong crdSinceTs = new AtomicLong();
-
-    /** Joined nodes count. */
-    private int joinedNodesCnt;
-
-    /** Failed nodes count. */
-    private int failedNodesCnt;
-
-    /** Left nodes count. */
-    private int leftNodesCnt;
-
-    /** Ack timeouts count. */
-    private int ackTimeoutsCnt;
-
-    /** Socket timeouts count. */
-    private int sockTimeoutsCnt;
-
-    /** Received messages. */
-    @GridToStringInclude
-    private final Map<String, Integer> rcvdMsgs = new HashMap<>();
-
-    /** Processed messages. */
-    @GridToStringInclude
-    private final Map<String, Integer> procMsgs = new HashMap<>();
-
-    /** Average time taken to serialize messages. */
-    @GridToStringInclude
-    private final Map<String, Long> avgMsgsSndTimes = new HashMap<>();
-
-    /** Average time taken to serialize messages. */
-    @GridToStringInclude
-    private final Map<String, Long> maxMsgsSndTimes = new HashMap<>();
-
-    /** Sent messages. */
-    @GridToStringInclude
-    private final Map<String, Integer> sentMsgs = new HashMap<>();
-
-    /** Messages receive timestamps. */
-    private final Map<IgniteUuid, Long> msgsRcvTs = new GridBoundedLinkedHashMap<>(1024);
-
-    /** Messages processing start timestamps. */
-    private final Map<IgniteUuid, Long> msgsProcStartTs = new GridBoundedLinkedHashMap<>(1024);
-
-    /** Ring messages sent timestamps. */
-    private final Map<IgniteUuid, Long> ringMsgsSndTs = new GridBoundedLinkedHashMap<>(1024);
-
-    /** Average time messages is in queue. */
-    private long avgMsgQueueTime;
-
-    /** Max time messages is in queue. */
-    private long maxMsgQueueTime;
-
-    /** Total number of ring messages sent. */
-    private int ringMsgsSent;
-
-    /** Average time it takes for messages to pass the full ring. */
-    private long avgRingMsgTime;
-
-    /** Max time it takes for messages to pass the full ring. */
-    private long maxRingMsgTime;
-
-    /** Class name of ring message that required the biggest time for full ring traverse. */
-    private String maxRingTimeMsgCls;
-
-    /** Average message processing time. */
-    private long avgMsgProcTime;
-
-    /** Max message processing time. */
-    private long maxMsgProcTime;
-
-    /** Class name of the message that required the biggest time to process. */
-    private String maxProcTimeMsgCls;
-
-    /** Socket readers created count. */
-    private int sockReadersCreated;
-
-    /** Socket readers removed count. */
-    private int sockReadersRmv;
-
-    /** Average time it takes to initialize connection from another node. */
-    private long avgSrvSockInitTime;
-
-    /** Max time it takes to initialize connection from another node. */
-    private long maxSrvSockInitTime;
-
-    /** Number of outgoing connections established. */
-    private int clientSockCreatedCnt;
-
-    /** Average time it takes to connect to another node. */
-    private long avgClientSockInitTime;
-
-    /** Max time it takes to connect to another node. */
-    private long maxClientSockInitTime;
-
-    /** Pending messages registered count. */
-    private int pendingMsgsRegistered;
-
-    /** Pending messages discarded count. */
-    private int pendingMsgsDiscarded;
-
-    /**
-     * Increments joined nodes count.
-     */
-    public synchronized void onNodeJoined() {
-        joinedNodesCnt++;
-    }
-
-    /**
-     * Increments left nodes count.
-     */
-    public synchronized void onNodeLeft() {
-        leftNodesCnt++;
-    }
-
-    /**
-     * Increments failed nodes count.
-     */
-    public synchronized void onNodeFailed() {
-        failedNodesCnt++;
-    }
-
-    /**
-     * Increments ack timeouts count.
-     */
-    public synchronized void onAckTimeout() {
-        ackTimeoutsCnt++;
-    }
-
-    /**
-     * Increments socket timeouts count.
-     */
-    public synchronized void onSocketTimeout() {
-        sockTimeoutsCnt++;
-    }
-
-    /**
-     * Initializes coordinator since date (if needed).
-     */
-    public void onBecomingCoordinator() {
-        crdSinceTs.compareAndSet(0, U.currentTimeMillis());
-    }
-
-    /**
-     * Initializes join started timestamp.
-     */
-    public synchronized void onJoinStarted() {
-        joinStartedTs = U.currentTimeMillis();
-    }
-
-    /**
-     * Initializes join finished timestamp.
-     */
-    public synchronized void onJoinFinished() {
-        joinFinishedTs = U.currentTimeMillis();
-    }
-
-    /**
-     * @return Join started timestamp.
-     */
-    public synchronized long joinStarted() {
-        return joinStartedTs;
-    }
-
-    /**
-     * @return Join finished timestamp.
-     */
-    public synchronized long joinFinished() {
-        return joinFinishedTs;
-    }
-
-    /**
-     * Collects necessary stats for message received by SPI.
-     *
-     * @param msg Received message.
-     */
-    public synchronized void onMessageReceived(TcpDiscoveryAbstractMessage msg) {
-        assert msg != null;
-
-        Integer cnt = F.addIfAbsent(rcvdMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
-            @Override public Integer call() {
-                return 0;
-            }
-        });
-
-        assert cnt != null;
-
-        rcvdMsgs.put(msg.getClass().getSimpleName(), ++cnt);
-
-        msgsRcvTs.put(msg.id(), U.currentTimeMillis());
-    }
-
-    /**
-     * Collects necessary stats for message processed by SPI.
-     *
-     * @param msg Processed message.
-     */
-    public synchronized void onMessageProcessingStarted(TcpDiscoveryAbstractMessage msg) {
-        assert msg != null;
-
-        Integer cnt = F.addIfAbsent(procMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
-            @Override public Integer call() {
-                return 0;
-            }
-        });
-
-        assert cnt != null;
-
-        procMsgs.put(msg.getClass().getSimpleName(), ++cnt);
-
-        Long rcvdTs = msgsRcvTs.remove(msg.id());
-
-        if (rcvdTs != null) {
-            long duration = U.currentTimeMillis() - rcvdTs;
-
-            if (maxMsgQueueTime < duration)
-                maxMsgQueueTime = duration;
-
-            avgMsgQueueTime = (avgMsgQueueTime * (totalReceivedMessages() -1)) / totalProcessedMessages();
-        }
-
-        msgsProcStartTs.put(msg.id(), U.currentTimeMillis());
-    }
-
-    /**
-     * Collects necessary stats for message processed by SPI.
-     *
-     * @param msg Processed message.
-     */
-    public synchronized void onMessageProcessingFinished(TcpDiscoveryAbstractMessage msg) {
-        assert msg != null;
-
-        Long startTs = msgsProcStartTs.get(msg.id());
-
-        if (startTs != null) {
-            long duration = U.currentTimeMillis() - startTs;
-
-            avgMsgProcTime = (avgMsgProcTime * (totalProcessedMessages() - 1) + duration) / totalProcessedMessages();
-
-            if (duration > maxMsgProcTime) {
-                maxMsgProcTime = duration;
-
-                maxProcTimeMsgCls = msg.getClass().getSimpleName();
-            }
-
-            msgsProcStartTs.remove(msg.id());
-        }
-    }
-
-    /**
-     * Called by coordinator when ring message is sent.
-     *
-     * @param msg Sent message.
-     * @param time Time taken to serialize message.
-     */
-    public synchronized void onMessageSent(TcpDiscoveryAbstractMessage msg, long time) {
-        assert msg != null;
-        assert time >= 0;
-
-        if (crdSinceTs.get() > 0 &&
-            (msg instanceof TcpDiscoveryNodeAddedMessage) ||
-            (msg instanceof TcpDiscoveryNodeLeftMessage) ||
-            (msg instanceof TcpDiscoveryNodeFailedMessage)) {
-            ringMsgsSndTs.put(msg.id(), U.currentTimeMillis());
-
-            ringMsgsSent++;
-        }
-
-        Integer cnt = F.addIfAbsent(sentMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
-            @Override public Integer call() {
-                return 0;
-            }
-        });
-
-        assert cnt != null;
-
-        sentMsgs.put(msg.getClass().getSimpleName(), ++cnt);
-
-        Long avgTime = F.addIfAbsent(avgMsgsSndTimes, msg.getClass().getSimpleName(), new Callable<Long>() {
-            @Override public Long call() {
-                return 0L;
-            }
-        });
-
-        assert avgTime != null;
-
-        avgTime = (avgTime * (cnt - 1) + time) / cnt;
-
-        avgMsgsSndTimes.put(msg.getClass().getSimpleName(), avgTime);
-
-        Long maxTime = F.addIfAbsent(maxMsgsSndTimes, msg.getClass().getSimpleName(), new Callable<Long>() {
-            @Override public Long call() {
-                return 0L;
-            }
-        });
-
-        assert maxTime != null;
-
-        if (time > maxTime)
-            maxMsgsSndTimes.put(msg.getClass().getSimpleName(), time);
-    }
-
-    /**
-     * Called by coordinator when ring message makes full pass.
-     *
-     * @param msg Message.
-     */
-    public synchronized void onRingMessageReceived(TcpDiscoveryAbstractMessage msg) {
-        assert msg != null;
-
-        Long sentTs = ringMsgsSndTs.get(msg.id());
-
-        if (sentTs != null) {
-            long duration  = U.currentTimeMillis() - sentTs;
-
-            if (maxRingMsgTime < duration) {
-                maxRingMsgTime = duration;
-
-                maxRingTimeMsgCls = msg.getClass().getSimpleName();
-            }
-
-            if (ringMsgsSent != 0)
-                avgRingMsgTime = (avgRingMsgTime * (ringMsgsSent - 1) + duration) / ringMsgsSent;
-        }
-    }
-
-    /**
-     * Gets max time for ring message to make full pass.
-     *
-     * @return Max full pass time.
-     */
-    public synchronized long maxRingMessageTime() {
-        return maxRingMsgTime;
-    }
-
-    /**
-     * Gets class name of the message that took max time to make full pass.
-     *
-     * @return Message class name.
-     */
-    public synchronized String maxRingDurationMessageClass() {
-        return maxRingTimeMsgCls;
-    }
-
-    /**
-     * Gets class name of the message took max time to process.
-     *
-     * @return Message class name.
-     */
-    public synchronized String maxProcessingTimeMessageClass() {
-        return maxProcTimeMsgCls;
-    }
-
-    /**
-     * @param initTime Time socket was initialized in.
-     */
-    public synchronized void onServerSocketInitialized(long initTime) {
-        assert initTime >= 0;
-
-        if (maxSrvSockInitTime < initTime)
-            maxSrvSockInitTime = initTime;
-
-        avgSrvSockInitTime = (avgSrvSockInitTime * (sockReadersCreated - 1) + initTime) / sockReadersCreated;
-    }
-
-    /**
-     * @param initTime Time socket was initialized in.
-     */
-    public synchronized void onClientSocketInitialized(long initTime) {
-        assert initTime >= 0;
-
-        clientSockCreatedCnt++;
-
-        if (maxClientSockInitTime < initTime)
-            maxClientSockInitTime = initTime;
-
-        avgClientSockInitTime = (avgClientSockInitTime * (clientSockCreatedCnt - 1) + initTime) / clientSockCreatedCnt;
-    }
-
-    /**
-     * Increments pending messages registered count.
-     */
-    public synchronized void onPendingMessageRegistered() {
-        pendingMsgsRegistered++;
-    }
-
-    /**
-     * Increments pending messages discarded count.
-     */
-    public synchronized void onPendingMessageDiscarded() {
-        pendingMsgsDiscarded++;
-    }
-
-    /**
-     * Increments socket readers created count.
-     */
-    public synchronized void onSocketReaderCreated() {
-        sockReadersCreated++;
-    }
-
-    /**
-     * Increments socket readers removed count.
-     */
-    public synchronized void onSocketReaderRemoved() {
-        sockReadersRmv++;
-    }
-
-    /**
-     * Gets processed messages counts (grouped by type).
-     *
-     * @return Map containing message types and respective counts.
-     */
-    public synchronized Map<String, Integer> processedMessages() {
-        return new HashMap<>(procMsgs);
-    }
-
-    /**
-     * Gets received messages counts (grouped by type).
-     *
-     * @return Map containing message types and respective counts.
-     */
-    public synchronized Map<String, Integer> receivedMessages() {
-        return new HashMap<>(rcvdMsgs);
-    }
-
-    /**
-     * Gets max messages send time (grouped by type).
-     *
-     * @return Map containing messages types and max send times.
-     */
-    public synchronized Map<String, Long> maxMessagesSendTimes() {
-        return new HashMap<>(maxMsgsSndTimes);
-    }
-
-    /**
-     * Gets average messages send time (grouped by type).
-     *
-     * @return Map containing messages types and average send times.
-     */
-    public synchronized Map<String, Long> avgMessagesSendTimes() {
-        return new HashMap<>(avgMsgsSndTimes);
-    }
-
-    /**
-     * Gets total received messages count.
-     *
-     * @return Total received messages count.
-     */
-    public synchronized int totalReceivedMessages() {
-        return F.sumInt(receivedMessages().values());
-    }
-
-    /**
-     * Gets total processed messages count.
-     *
-     * @return Total processed messages count.
-     */
-    public synchronized int totalProcessedMessages() {
-        return F.sumInt(processedMessages().values());
-    }
-
-    /**
-     * Gets max message processing time.
-     *
-     * @return Max message processing time.
-     */
-    public synchronized long maxMessageProcessingTime(){
-        return maxMsgProcTime;
-    }
-
-    /**
-     * Gets average message processing time.
-     *
-     * @return Average message processing time.
-     */
-    public synchronized long avgMessageProcessingTime() {
-        return avgMsgProcTime;
-    }
-
-    /**
-     * Gets pending messages registered count.
-     *
-     * @return Pending messages registered count.
-     */
-    public synchronized long pendingMessagesRegistered() {
-        return pendingMsgsRegistered;
-    }
-
-    /**
-     * Gets pending messages discarded count.
-     *
-     * @return Pending messages registered count.
-     */
-    public synchronized long pendingMessagesDiscarded() {
-        return pendingMsgsDiscarded;
-    }
-
-    /**
-     * Gets nodes joined count.
-     *
-     * @return Nodes joined count.
-     */
-    public synchronized int joinedNodesCount() {
-        return joinedNodesCnt;
-    }
-
-    /**
-     * Gets nodes left count.
-     *
-     * @return Nodes left count.
-     */
-    public synchronized int leftNodesCount() {
-        return leftNodesCnt;
-    }
-
-    /**
-     * Gets failed nodes count.
-     *
-     * @return Failed nodes count.
-     */
-    public synchronized int failedNodesCount() {
-        return failedNodesCnt;
-    }
-
-    /**
-     * @return Ack timeouts count.
-     */
-    public synchronized int ackTimeoutsCount() {
-        return ackTimeoutsCnt;
-    }
-
-    /**
-     * @return Socket timeouts count.
-     */
-    public synchronized int socketTimeoutsCount() {
-        return sockTimeoutsCnt;
-    }
-
-    /**
-     * Gets socket readers created count.
-     *
-     * @return Socket readers created count.
-     */
-    public synchronized int socketReadersCreated() {
-        return sockReadersCreated;
-    }
-
-    /**
-     * Gets socket readers removed count.
-     *
-     * @return Socket readers removed count.
-     */
-    public synchronized int socketReadersRemoved() {
-        return sockReadersRmv;
-    }
-
-    /**
-     * Gets time local node has been coordinator since.
-     *
-     * @return Coordinator since timestamp.
-     */
-    public long coordinatorSinceTimestamp() {
-        return crdSinceTs.get();
-    }
-
-    /**
-     * Clears statistics.
-     */
-    public synchronized void clear() {
-        ackTimeoutsCnt = 0;
-        avgClientSockInitTime = 0;
-        avgMsgProcTime = 0;
-        avgMsgQueueTime = 0;
-        avgMsgsSndTimes.clear();
-        avgRingMsgTime = 0;
-        avgSrvSockInitTime = 0;
-        clientSockCreatedCnt = 0;
-        crdSinceTs.set(0);
-        failedNodesCnt = 0;
-        joinedNodesCnt = 0;
-        joinFinishedTs = 0;
-        joinStartedTs = 0;
-        leftNodesCnt = 0;
-        maxClientSockInitTime = 0;
-        maxMsgProcTime = 0;
-        maxMsgQueueTime = 0;
-        maxMsgsSndTimes.clear();
-        maxProcTimeMsgCls = null;
-        maxRingMsgTime = 0;
-        maxRingTimeMsgCls = null;
-        maxSrvSockInitTime = 0;
-        pendingMsgsDiscarded = 0;
-        pendingMsgsRegistered = 0;
-        procMsgs.clear();
-        rcvdMsgs.clear();
-        ringMsgsSent = 0;
-        sentMsgs.clear();
-        sockReadersCreated = 0;
-        sockReadersRmv = 0;
-        sockTimeoutsCnt = 0;
-    }
-
-    /** {@inheritDoc} */
-    @Override public synchronized String toString() {
-        return S.toString(TcpDiscoveryStatistics.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/package.html
deleted file mode 100644
index b44e05c..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal implementation.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java
deleted file mode 100644
index b5ff462..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder;
-
-import org.apache.ignite.spi.*;
-
-import java.net.*;
-import java.util.*;
-
-/**
- * IP finder interface for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
- */
-public interface TcpDiscoveryIpFinder {
-    /**
-     * Callback invoked when SPI context is initialized after {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi#spiStart(String)}
-     * method is completed, SPI context can be stored for future access.
-     *
-     * @param spiCtx Spi context.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException;
-
-    /**
-     * Callback invoked prior to stopping grid before SPI context is destroyed.
-     * Note that invoking SPI context after this callback is complete is considered
-     * illegal and may produce unknown results.
-     */
-    public void onSpiContextDestroyed();
-
-    /**
-     * Initializes addresses discovery SPI binds to.
-     *
-     * @param addrs Addresses discovery SPI binds to.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
-
-    /**
-     * Gets all addresses registered in this finder.
-     *
-     * @return All known addresses, potentially empty, but never {@code null}.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException;
-
-    /**
-     * Checks whether IP finder is shared or not.
-     * <p>
-     * If it is shared then only coordinator can unregister addresses.
-     * <p>
-     * All nodes should register their address themselves, as early as possible on node start.
-     *
-     * @return {@code true} if IP finder is shared.
-     */
-    public boolean isShared();
-
-    /**
-     * Registers new addresses.
-     * <p>
-     * Implementation should accept duplicates quietly, but should not register address if it
-     * is already registered.
-     *
-     * @param addrs Addresses to register. Not {@code null} and not empty.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
-
-    /**
-     * Unregisters provided addresses.
-     * <p>
-     * Implementation should accept addresses that are currently not
-     * registered quietly (just no-op).
-     *
-     * @param addrs Addresses to unregister. Not {@code null} and not empty.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
-
-    /**
-     * Closes this IP finder and releases any system resources associated with it.
-     */
-    public void close();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
deleted file mode 100644
index 27eb5ed..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder;
-
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.net.*;
-import java.util.*;
-
-/**
- * IP finder interface implementation adapter.
- */
-public abstract class TcpDiscoveryIpFinderAdapter implements TcpDiscoveryIpFinder {
-    /** Shared flag. */
-    private boolean shared;
-
-    /** SPI context. */
-    @GridToStringExclude
-    private volatile IgniteSpiContext spiCtx;
-
-    /** {@inheritDoc} */
-    @Override public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException {
-        this.spiCtx = spiCtx;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void onSpiContextDestroyed() {
-        spiCtx = null;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        registerAddresses(addrs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isShared() {
-        return shared;
-    }
-
-    /**
-     * Sets shared flag. If {@code true} then it is expected that IP addresses registered
-     * with IP finder will be seen by IP finders on all other nodes.
-     *
-     * @param shared {@code true} if this IP finder is shared.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setShared(boolean shared) {
-        this.shared = shared;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryIpFinderAdapter.class, this);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void close() {
-        // No-op.
-    }
-
-    /**
-     * @return SPI context.
-     */
-    protected IgniteSpiContext spiContext() {
-        return spiCtx;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java
deleted file mode 100644
index 4b5c00b..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc;
-
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-
-import javax.sql.*;
-import java.net.*;
-import java.sql.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-import static java.sql.Connection.*;
-
-/**
- * JDBC-based IP finder.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * <ul>
- *     <li>Data source (see {@link #setDataSource(DataSource)}).</li>
- * </ul>
- * <h2 class="header">Optional</h2>
- * The following configuration parameters are optional:
- * <ul>
- *     <li>Flag indicating whether DB schema should be initialized by GridGain (default behaviour) or
- *         was explicitly created by user (see {@link #setInitSchema(boolean)})</li>
- * </ul>
- * <p>
- * The database will contain 1 table which will hold IP addresses.
- */
-public class TcpDiscoveryJdbcIpFinder extends TcpDiscoveryIpFinderAdapter {
-    /** Query to get addresses. */
-    public static final String GET_ADDRS_QRY = "select hostname, port from tbl_addrs";
-
-    /** Query to register address. */
-    public static final String REG_ADDR_QRY = "insert into tbl_addrs values (?, ?)";
-
-    /** Query to unregister address. */
-    public static final String UNREG_ADDR_QRY = "delete from tbl_addrs where hostname = ? and port = ?";
-
-    /** Query to create addresses table. */
-    public static final String CREATE_ADDRS_TABLE_QRY =
-        "create table if not exists tbl_addrs (" +
-        "hostname VARCHAR(1024), " +
-        "port INT)";
-
-    /** Query to check database validity. */
-    public static final String CHK_QRY = "select count(*) from tbl_addrs";
-
-    /** Grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Data source. */
-    private DataSource dataSrc;
-
-    /** Flag for schema initialization. */
-    private boolean initSchema = true;
-
-    /** Init guard. */
-    @GridToStringExclude
-    private final AtomicBoolean initGuard = new AtomicBoolean();
-
-    /** Init latch. */
-    @GridToStringExclude
-    private final CountDownLatch initLatch = new CountDownLatch(1);
-
-    /**
-     * Constructor.
-     */
-    public TcpDiscoveryJdbcIpFinder() {
-        setShared(true);
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
-        init();
-
-        Connection conn = null;
-
-        PreparedStatement stmt = null;
-
-        ResultSet rs = null;
-
-        try {
-            conn = dataSrc.getConnection();
-
-            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
-            stmt = conn.prepareStatement(GET_ADDRS_QRY);
-
-            rs = stmt.executeQuery();
-
-            Collection<InetSocketAddress> addrs = new LinkedList<>();
-
-            while (rs.next())
-                addrs.add(new InetSocketAddress(rs.getString(1), rs.getInt(2)));
-
-            return addrs;
-        }
-        catch (SQLException e) {
-            throw new IgniteSpiException("Failed to get registered addresses version.", e);
-        }
-        finally {
-            U.closeQuiet(rs);
-            U.closeQuiet(stmt);
-            U.closeQuiet(conn);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        assert !F.isEmpty(addrs);
-
-        init();
-
-        Connection conn = null;
-
-        PreparedStatement stmtUnreg = null;
-
-        PreparedStatement stmtReg = null;
-
-        boolean committed = false;
-
-        try {
-            conn = dataSrc.getConnection();
-
-            conn.setAutoCommit(false);
-
-            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
-            stmtUnreg = conn.prepareStatement(UNREG_ADDR_QRY);
-            stmtReg = conn.prepareStatement(REG_ADDR_QRY);
-
-            for (InetSocketAddress addr : addrs) {
-                stmtUnreg.setString(1, addr.getAddress().getHostAddress());
-                stmtUnreg.setInt(2, addr.getPort());
-
-                stmtUnreg.addBatch();
-
-                stmtReg.setString(1, addr.getAddress().getHostAddress());
-                stmtReg.setInt(2, addr.getPort());
-
-                stmtReg.addBatch();
-            }
-
-            stmtUnreg.executeBatch();
-            stmtUnreg.close();
-
-            stmtReg.executeBatch();
-            stmtReg.close();
-
-            conn.commit();
-
-            committed = true;
-        }
-        catch (SQLException e) {
-            U.rollbackConnectionQuiet(conn);
-
-            throw new IgniteSpiException("Failed to register addresses: " + addrs, e);
-        }
-        finally {
-            if (!committed)
-                U.rollbackConnectionQuiet(conn);
-
-            U.closeQuiet(stmtUnreg);
-            U.closeQuiet(stmtReg);
-            U.closeQuiet(conn);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        assert !F.isEmpty(addrs);
-
-        init();
-
-        Connection conn = null;
-
-        PreparedStatement stmt = null;
-
-        boolean committed = false;
-
-        try {
-            conn = dataSrc.getConnection();
-
-            conn.setAutoCommit(false);
-
-            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
-            stmt = conn.prepareStatement(UNREG_ADDR_QRY);
-
-            for (InetSocketAddress addr : addrs) {
-                stmt.setString(1, addr.getAddress().getHostAddress());
-                stmt.setInt(2, addr.getPort());
-
-                stmt.addBatch();
-            }
-
-            stmt.executeBatch();
-            conn.commit();
-
-            committed = true;
-        }
-        catch (SQLException e) {
-            U.rollbackConnectionQuiet(conn);
-
-            throw new IgniteSpiException("Failed to unregister addresses: " + addrs, e);
-        }
-        finally {
-            if (!committed)
-                U.rollbackConnectionQuiet(conn);
-
-            U.closeQuiet(stmt);
-            U.closeQuiet(conn);
-        }
-    }
-
-    /**
-     * Sets data source.
-     * <p>
-     * Data source should be fully configured and ready-to-use.
-     *
-     * @param dataSrc Data source.
-     */
-    @IgniteSpiConfiguration(optional = false)
-    public void setDataSource(DataSource dataSrc) {
-        this.dataSrc = dataSrc;
-    }
-
-    /**
-     * Flag indicating whether DB schema should be initialized by GridGain (default behaviour) or
-     * was explicitly created by user.
-     *
-     * @param initSchema {@code True} if DB schema should be initialized by GridGain (default behaviour),
-     *      {code @false} if schema was explicitly created by user.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setInitSchema(boolean initSchema) {
-        this.initSchema = initSchema;
-    }
-
-    /**
-     * Checks configuration validity.
-     *
-     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
-     */
-    private void init() throws IgniteSpiException {
-        if (initGuard.compareAndSet(false, true)) {
-            if (dataSrc == null)
-                throw new IgniteSpiException("Data source is null (you must configure it via setDataSource(..)" +
-                    " configuration property)");
-
-            if (!initSchema) {
-                initLatch.countDown();
-
-                checkSchema();
-
-                return;
-            }
-
-            Connection conn = null;
-
-            Statement stmt = null;
-
-            boolean committed = false;
-
-            try {
-                conn = dataSrc.getConnection();
-
-                conn.setAutoCommit(false);
-
-                conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
-                // Create tbl_addrs.
-                stmt = conn.createStatement();
-
-                stmt.executeUpdate(CREATE_ADDRS_TABLE_QRY);
-
-                conn.commit();
-
-                committed = true;
-
-                if (log.isDebugEnabled())
-                    log.debug("DB schema has been initialized.");
-            }
-            catch (SQLException e) {
-                U.rollbackConnectionQuiet(conn);
-
-                throw new IgniteSpiException("Failed to initialize DB schema.", e);
-            }
-            finally {
-                if (!committed)
-                    U.rollbackConnectionQuiet(conn);
-
-                U.closeQuiet(stmt);
-                U.closeQuiet(conn);
-
-                initLatch.countDown();
-            }
-        }
-        else
-            checkSchema();
-    }
-
-    /**
-     * Checks correctness of existing DB schema.
-     *
-     * @throws org.apache.ignite.spi.IgniteSpiException If schema wasn't properly initialized.
-     */
-    private void checkSchema() throws IgniteSpiException {
-        try {
-            U.await(initLatch);
-        }
-        catch (GridInterruptedException e) {
-            throw new IgniteSpiException("Thread has been interrupted.", e);
-        }
-
-        Connection conn = null;
-
-        Statement stmt = null;
-
-        try {
-            conn = dataSrc.getConnection();
-
-            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
-            // Check if tbl_addrs exists and database initialized properly.
-            stmt = conn.createStatement();
-
-            stmt.execute(CHK_QRY);
-        }
-        catch (SQLException e) {
-            throw new IgniteSpiException("IP finder has not been properly initialized.", e);
-        }
-        finally {
-            U.closeQuiet(stmt);
-            U.closeQuiet(conn);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryJdbcIpFinder.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/package.html
deleted file mode 100644
index dfe23f6..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains JDBC IP finder implementation.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
deleted file mode 100644
index acc20a4..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
+++ /dev/null
@@ -1,752 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast;
-
-import org.apache.ignite.*;
-import org.apache.ignite.marshaller.*;
-import org.apache.ignite.marshaller.jdk.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import static org.apache.ignite.IgniteSystemProperties.*;
-import static org.apache.ignite.spi.IgnitePortProtocol.*;
-
-/**
- * Multicast-based IP finder.
- * <p>
- * When TCP discovery starts this finder sends multicast request and waits
- * for some time when others nodes reply to this request with messages containing
- * their addresses (time IP finder waits for response and number of attempts to
- * re-send multicast request in case if no replies are received can be configured,
- * see {@link #setResponseWaitTime(int)} and {@link #setAddressRequestAttempts(int)}).
- * <p>
- * In addition to address received via multicast this finder can work with pre-configured
- * list of addresses specified via {@link #setAddresses(Collection)} method.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * There are no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * <ul>
- *      <li>Multicast IP address (see {@link #setMulticastGroup(String)}).</li>
- *      <li>Multicast port number (see {@link #setMulticastPort(int)}).</li>
- *      <li>Address response wait time (see {@link #setResponseWaitTime(int)}).</li>
- *      <li>Address request attempts (see {@link #setAddressRequestAttempts(int)}).</li>
- *      <li>Pre-configured addresses (see {@link #setAddresses(Collection)})</li>
- *      <li>Local address (see {@link #setLocalAddress(String)})</li>
- * </ul>
- */
-public class TcpDiscoveryMulticastIpFinder extends TcpDiscoveryVmIpFinder {
-    /** Default multicast IP address (value is {@code 228.1.2.4}). */
-    public static final String DFLT_MCAST_GROUP = "228.1.2.4";
-
-    /** Default multicast port number (value is {@code 47400}). */
-    public static final int DFLT_MCAST_PORT = 47400;
-
-    /** Default time IP finder waits for reply to multicast address request (value is {@code 500}). */
-    public static final int DFLT_RES_WAIT_TIME = 500;
-
-    /** Default number of attempts to send multicast address request (value is {@code 2}). */
-    public static final int DFLT_ADDR_REQ_ATTEMPTS = 2;
-
-    /** Address request message data. */
-    private static final byte[] MSG_ADDR_REQ_DATA = U.GG_HEADER;
-
-    /** */
-    private static final IgniteMarshaller marsh = new IgniteJdkMarshaller();
-
-    /** Grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Grid name. */
-    @IgniteNameResource
-    @GridToStringExclude
-    private String gridName;
-
-    /** Multicast IP address as string. */
-    private String mcastGrp = DFLT_MCAST_GROUP;
-
-    /** Multicast port number. */
-    private int mcastPort = DFLT_MCAST_PORT;
-
-    /** Time IP finder waits for reply to multicast address request. */
-    private int resWaitTime = DFLT_RES_WAIT_TIME;
-
-    /** Number of attempts to send multicast address request. */
-    private int addrReqAttempts = DFLT_ADDR_REQ_ATTEMPTS;
-
-    /** Local address */
-    private String locAddr;
-
-    /** */
-    @GridToStringExclude
-    private Collection<AddressSender> addrSnds;
-
-    /**
-     * Constructs new IP finder.
-     */
-    public TcpDiscoveryMulticastIpFinder() {
-        setShared(true);
-    }
-
-    /**
-     * Sets IP address of multicast group.
-     * <p>
-     * If not provided, default value is {@link #DFLT_MCAST_GROUP}.
-     *
-     * @param mcastGrp Multicast IP address.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setMulticastGroup(String mcastGrp) {
-        this.mcastGrp = mcastGrp;
-    }
-
-    /**
-     * Gets IP address of multicast group.
-     *
-     * @return Multicast IP address.
-     */
-    public String getMulticastGroup() {
-        return mcastGrp;
-    }
-
-    /**
-     * Sets port number which multicast messages are sent to.
-     * <p>
-     * If not provided, default value is {@link #DFLT_MCAST_PORT}.
-     *
-     * @param mcastPort Multicast port number.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setMulticastPort(int mcastPort) {
-        this.mcastPort = mcastPort;
-    }
-
-    /**
-     * Gets port number which multicast messages are sent to.
-     *
-     * @return Port number.
-     */
-    public int getMulticastPort() {
-        return mcastPort;
-    }
-
-    /**
-     * Sets time in milliseconds IP finder waits for reply to
-     * multicast address request.
-     * <p>
-     * If not provided, default value is {@link #DFLT_RES_WAIT_TIME}.
-     *
-     * @param resWaitTime Time IP finder waits for reply to multicast address request.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setResponseWaitTime(int resWaitTime) {
-        this.resWaitTime = resWaitTime;
-    }
-
-    /**
-     * Gets time in milliseconds IP finder waits for reply to
-     * multicast address request.
-     *
-     * @return Time IP finder waits for reply to multicast address request.
-     */
-    public int getResponseWaitTime() {
-        return resWaitTime;
-    }
-
-    /**
-     * Sets number of attempts to send multicast address request. IP finder re-sends
-     * request only in case if no reply for previous request is received.
-     * <p>
-     * If not provided, default value is {@link #DFLT_ADDR_REQ_ATTEMPTS}.
-     *
-     * @param addrReqAttempts Number of attempts to send multicast address request.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setAddressRequestAttempts(int addrReqAttempts) {
-        this.addrReqAttempts = addrReqAttempts;
-    }
-
-    /**
-     * Gets number of attempts to send multicast address request. IP finder re-sends
-     * request only in case if no reply for previous request is received.
-     *
-     * @return Number of attempts to send multicast address request.
-     */
-    public int getAddressRequestAttempts() {
-        return addrReqAttempts;
-    }
-
-    /**
-     * Sets local host address used by this IP finder. If provided address is non-loopback then multicast
-     * socket is bound to this interface. If local address is not set or is any local address then IP finder
-     * creates multicast sockets for all found non-loopback addresses.
-     * <p>
-     * If not provided then this property is initialized by the local address set in {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}
-     * configuration.
-     *
-     * @param locAddr Local host address.
-     * @see org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi#setLocalAddress(String)
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setLocalAddress(String locAddr) {
-        this.locAddr = locAddr;
-    }
-
-    /**
-     * Gets local address that multicast IP finder uses.
-     *
-     * @return Local address.
-     */
-    public String getLocalAddress() {
-        return locAddr;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        // If GRIDGAIN_OVERRIDE_MCAST_GRP system property is set, use its value to override multicast group from
-        // configuration. Used for testing purposes.
-        String overrideMcastGrp = System.getProperty(GG_OVERRIDE_MCAST_GRP);
-
-        if (overrideMcastGrp != null)
-            mcastGrp = overrideMcastGrp;
-
-        if (F.isEmpty(mcastGrp))
-            throw new IgniteSpiException("Multicast IP address is not specified.");
-
-        if (mcastPort < 0 || mcastPort > 65535)
-            throw new IgniteSpiException("Invalid multicast port: " + mcastPort);
-
-        if (resWaitTime <= 0)
-            throw new IgniteSpiException("Invalid wait time, value greater than zero is expected: " + resWaitTime);
-
-        if (addrReqAttempts <= 0)
-            throw new IgniteSpiException("Invalid number of address request attempts, " +
-                "value greater than zero is expected: " + addrReqAttempts);
-
-        if (F.isEmpty(getRegisteredAddresses()))
-            U.warn(log, "GridTcpDiscoveryMulticastIpFinder has no pre-configured addresses " +
-                "(it is recommended in production to specify at least one address in " +
-                "GridTcpDiscoveryMulticastIpFinder.getAddresses() configuration property)");
-
-        InetAddress mcastAddr;
-
-        try {
-            mcastAddr = InetAddress.getByName(mcastGrp);
-        }
-        catch (UnknownHostException e) {
-            throw new IgniteSpiException("Unknown multicast group: " + mcastGrp, e);
-        }
-
-        if (!mcastAddr.isMulticastAddress())
-            throw new IgniteSpiException("Invalid multicast group address: " + mcastAddr);
-
-        Collection<String> locAddrs;
-
-        try {
-            locAddrs = U.resolveLocalAddresses(U.resolveLocalHost(locAddr)).get1();
-        }
-        catch (IOException | GridException e) {
-            throw new IgniteSpiException("Failed to resolve local addresses [locAddr=" + locAddr + ']', e);
-        }
-
-        assert locAddrs != null;
-
-        addrSnds = new ArrayList<>(locAddrs.size());
-
-        Collection<InetAddress> reqItfs = new ArrayList<>(locAddrs.size()); // Interfaces used to send requests.
-
-        for (String locAddr : locAddrs) {
-            InetAddress addr;
-
-            try {
-                addr = InetAddress.getByName(locAddr);
-            }
-            catch (UnknownHostException e) {
-                if (log.isDebugEnabled())
-                    log.debug("Failed to resolve local address [locAddr=" + locAddr + ", err=" + e + ']');
-
-                continue;
-            }
-
-            if (!addr.isLoopbackAddress()) {
-                try {
-                    addrSnds.add(new AddressSender(mcastAddr, addr, addrs));
-
-                    reqItfs.add(addr);
-                }
-                catch (IOException e) {
-                    if (log.isDebugEnabled())
-                        log.debug("Failed to create multicast socket [mcastAddr=" + mcastAddr +
-                            ", mcastGrp=" + mcastGrp + ", mcastPort=" + mcastPort + ", locAddr=" + addr +
-                            ", err=" + e + ']');
-                }
-            }
-        }
-
-        if (addrSnds.isEmpty()) {
-            try {
-                // Create non-bound socket if local host is loopback or failed to create sockets explicitly
-                // bound to interfaces.
-                addrSnds.add(new AddressSender(mcastAddr, null, addrs));
-            }
-            catch (IOException e) {
-                throw new IgniteSpiException("Failed to create multicast socket [mcastAddr=" + mcastAddr +
-                    ", mcastGrp=" + mcastGrp + ", mcastPort=" + mcastPort + ']', e);
-            }
-        }
-
-        for (AddressSender addrSnd :addrSnds)
-            addrSnd.start();
-
-        Collection<InetSocketAddress> ret;
-
-        if (reqItfs.size() > 1) {
-            ret = new HashSet<>();
-
-            Collection<AddressReceiver> rcvrs = new ArrayList<>();
-
-            for (InetAddress itf : reqItfs) {
-                AddressReceiver rcvr = new AddressReceiver(mcastAddr, itf);
-
-                rcvr.start();
-
-                rcvrs.add(rcvr);
-            }
-
-            for (AddressReceiver rcvr : rcvrs) {
-                try {
-                    rcvr.join();
-
-                    ret.addAll(rcvr.addresses());
-                }
-                catch (InterruptedException ignore) {
-                    U.warn(log, "Got interrupted while receiving address request.");
-
-                    Thread.currentThread().interrupt();
-
-                    break;
-                }
-            }
-        }
-        else
-            ret = requestAddresses(mcastAddr, F.first(reqItfs));
-
-        if (!ret.isEmpty())
-            registerAddresses(ret);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException {
-        super.onSpiContextInitialized(spiCtx);
-
-        spiCtx.registerPort(mcastPort, UDP);
-    }
-
-    /**
-     * Sends multicast address request message and waits for reply. Response wait time and number
-     * of request attempts are configured as properties {@link #setResponseWaitTime} and
-     * {@link #setAddressRequestAttempts}.
-     *
-     * @param mcastAddr Multicast address where to send request.
-     * @param sockItf Optional interface multicast socket should be bound to.
-     * @return Collection of received addresses.
-     */
-    private Collection<InetSocketAddress> requestAddresses(InetAddress mcastAddr, @Nullable InetAddress sockItf) {
-        Collection<InetSocketAddress> rmtAddrs = new HashSet<>();
-
-        try {
-            DatagramPacket reqPckt = new DatagramPacket(MSG_ADDR_REQ_DATA, MSG_ADDR_REQ_DATA.length,
-                mcastAddr, mcastPort);
-
-            byte[] resData = new byte[AddressResponse.MAX_DATA_LENGTH];
-
-            DatagramPacket resPckt = new DatagramPacket(resData, resData.length);
-
-            boolean sndError = false;
-
-            for (int i = 0; i < addrReqAttempts; i++) {
-                MulticastSocket sock = null;
-
-                try {
-                    sock = new MulticastSocket(0);
-
-                    // Use 'false' to enable support for more than one node on the same machine.
-                    sock.setLoopbackMode(false);
-
-                    if (sockItf != null)
-                        sock.setInterface(sockItf);
-
-                    sock.setSoTimeout(resWaitTime);
-
-                    reqPckt.setData(MSG_ADDR_REQ_DATA);
-
-                    try {
-                        sock.send(reqPckt);
-                    }
-                    catch (IOException e) {
-                        if (!handleNetworkError(e))
-                            break;
-
-                        if (i < addrReqAttempts - 1) {
-                            if (log.isDebugEnabled())
-                                log.debug("Failed to send multicast address request (will retry in 500 ms): " + e);
-
-                            U.sleep(500);
-                        }
-                        else {
-                            if (log.isDebugEnabled())
-                                log.debug("Failed to send multicast address request: " + e);
-                        }
-
-                        sndError = true;
-
-                        continue;
-                    }
-
-                    long rcvEnd = U.currentTimeMillis() + resWaitTime;
-
-                    try {
-                        while (U.currentTimeMillis() < rcvEnd) { // Try to receive multiple responses.
-                            sock.receive(resPckt);
-
-                            byte[] data = resPckt.getData();
-
-                            if (!U.bytesEqual(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length)) {
-                                U.error(log, "Failed to verify message header.");
-
-                                continue;
-                            }
-
-                            AddressResponse addrRes;
-
-                            try {
-                                addrRes = new AddressResponse(data);
-                            }
-                            catch (GridException e) {
-                                LT.warn(log, e, "Failed to deserialize multicast response.");
-
-                                continue;
-                            }
-
-                            rmtAddrs.addAll(addrRes.addresses());
-                        }
-                    }
-                    catch (SocketTimeoutException ignored) {
-                        if (log.isDebugEnabled()) // DatagramSocket.receive timeout has expired.
-                            log.debug("Address receive timeout.");
-                    }
-                }
-                catch (IOException e) {
-                    U.error(log, "Failed to request nodes addresses.", e);
-                }
-                finally {
-                    U.close(sock);
-                }
-
-                if (!rmtAddrs.isEmpty())
-                    break;
-
-                if (i < addrReqAttempts - 1) // Wait some time before re-sending address request.
-                    U.sleep(200);
-            }
-
-            if (log.isDebugEnabled())
-                log.debug("Received nodes addresses: " + rmtAddrs);
-
-            if (rmtAddrs.isEmpty() && sndError)
-                U.quietAndWarn(log, "Failed to send multicast message (is multicast enabled on this node?).");
-
-            return rmtAddrs;
-        }
-        catch (GridInterruptedException ignored) {
-            U.warn(log, "Got interrupted while sending address request.");
-
-            Thread.currentThread().interrupt();
-
-            return rmtAddrs;
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void close() {
-        for (AddressSender addrSnd : addrSnds)
-            U.interrupt(addrSnd);
-
-        for (AddressSender addrSnd : addrSnds)
-            U.join(addrSnd, log);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryMulticastIpFinder.class, this, "super", super.toString());
-    }
-
-    /**
-     * @param e Network error to handle.
-     * @return {@code True} if this error is recoverable and the operation can be retried.
-     */
-    private boolean handleNetworkError(IOException e) {
-        if ("Network is unreachable".equals(e.getMessage()) && U.isMacOs()) {
-            U.warn(log, "Multicast does not work on Mac OS JVM loopback address (configure external IP address " +
-                "for 'localHost' configuration property)");
-
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Response to multicast address request.
-     */
-    private static class AddressResponse {
-        /** Maximum supported multicast message. */
-        public static final int MAX_DATA_LENGTH = 64 * 1024;
-
-        /** */
-        private byte[] data;
-
-        /** */
-        private Collection<InetSocketAddress> addrs;
-
-        /**
-         * @param addrs Addresses discovery SPI binds to.
-         * @throws GridException If marshalling failed.
-         */
-        private AddressResponse(Collection<InetSocketAddress> addrs) throws GridException {
-            this.addrs = addrs;
-
-            byte[] addrsData = marsh.marshal(addrs);
-            data = new byte[U.GG_HEADER.length + addrsData.length];
-
-            if (data.length > MAX_DATA_LENGTH)
-                throw new GridException("Too long data packet [size=" + data.length + ", max=" + MAX_DATA_LENGTH + "]");
-
-            System.arraycopy(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length);
-            System.arraycopy(addrsData, 0, data, 4, addrsData.length);
-        }
-
-        /**
-         * @param data Message data.
-         * @throws GridException If unmarshalling failed.
-         */
-        private AddressResponse(byte[] data) throws GridException {
-            assert U.bytesEqual(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length);
-
-            this.data = data;
-
-            addrs = marsh.unmarshal(Arrays.copyOfRange(data, U.GG_HEADER.length, data.length), null);
-        }
-
-        /**
-         * @return Message data.
-         */
-        byte[] data() {
-            return data;
-        }
-
-        /**
-         * @return IP address discovery SPI binds to.
-         */
-        public Collection<InetSocketAddress> addresses() {
-            return addrs;
-        }
-    }
-
-    /**
-     * Thread sends multicast address request message and waits for reply.
-     */
-    private class AddressReceiver extends IgniteSpiThread {
-        /** */
-        private final InetAddress mcastAddr;
-
-        /** */
-        private final InetAddress sockAddr;
-
-        /** */
-        private Collection<InetSocketAddress> addrs;
-
-        /**
-         * @param mcastAddr Multicast address where to send request.
-         * @param sockAddr Optional address multicast socket should be bound to.
-         */
-        private AddressReceiver(InetAddress mcastAddr, InetAddress sockAddr) {
-            super(gridName, "tcp-disco-multicast-addr-rcvr", log);
-            this.mcastAddr = mcastAddr;
-            this.sockAddr = sockAddr;
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void body() throws InterruptedException {
-            addrs = requestAddresses(mcastAddr, sockAddr);
-        }
-
-        /**
-         * @return Received addresses.
-         */
-        Collection<InetSocketAddress> addresses() {
-            return addrs;
-        }
-    }
-
-    /**
-     * Thread listening for multicast address requests and sending response
-     * containing socket address this node's discovery SPI listens to.
-     */
-    private class AddressSender extends IgniteSpiThread {
-        /** */
-        @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
-        private MulticastSocket sock;
-
-        /** */
-        private final InetAddress mcastGrp;
-
-        /** */
-        private final Collection<InetSocketAddress> addrs;
-
-        /** */
-        private final InetAddress sockItf;
-
-        /**
-         * @param mcastGrp Multicast address.
-         * @param sockItf Optional interface multicast socket should be bound to.
-         * @param addrs Local node addresses.
-         * @throws IOException If fails to create multicast socket.
-         */
-        private AddressSender(InetAddress mcastGrp, @Nullable InetAddress sockItf, Collection<InetSocketAddress> addrs)
-            throws IOException {
-            super(gridName, "tcp-disco-multicast-addr-sender", log);
-            this.mcastGrp = mcastGrp;
-            this.addrs = addrs;
-            this.sockItf = sockItf;
-
-            sock = createSocket();
-        }
-
-        /**
-         * Creates multicast socket and joins multicast group.
-         *
-         * @throws IOException If fails to create socket or join multicast group.
-         * @return Multicast socket.
-         */
-        private MulticastSocket createSocket() throws IOException {
-            MulticastSocket sock = new MulticastSocket(mcastPort);
-
-            sock.setLoopbackMode(false); // Use 'false' to enable support for more than one node on the same machine.
-
-            if (sockItf != null)
-                sock.setInterface(sockItf);
-
-            if (sock.getLoopbackMode())
-                U.warn(log, "Loopback mode is disabled which prevents nodes on the same machine from discovering " +
-                    "each other.");
-
-            sock.joinGroup(mcastGrp);
-
-            return sock;
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void body() throws InterruptedException {
-            AddressResponse res;
-
-            try {
-                res = new AddressResponse(addrs);
-            }
-            catch (GridException e) {
-                U.error(log, "Failed to prepare multicast message.", e);
-
-                return;
-            }
-
-            byte[] reqData = new byte[MSG_ADDR_REQ_DATA.length];
-
-            DatagramPacket pckt = new DatagramPacket(reqData, reqData.length);
-
-            while (!isInterrupted()) {
-                try {
-                    MulticastSocket sock;
-
-                    synchronized (this) {
-                        if (isInterrupted())
-                            return;
-
-                        sock = this.sock;
-
-                        if (sock == null)
-                            sock = createSocket();
-                    }
-
-                    sock.receive(pckt);
-
-                    if (!U.bytesEqual(U.GG_HEADER, 0, reqData, 0, U.GG_HEADER.length)) {
-                        U.error(log, "Failed to verify message header.");
-
-                        continue;
-                    }
-
-                    try {
-                        sock.send(new DatagramPacket(res.data(), res.data().length, pckt.getAddress(), pckt.getPort()));
-                    }
-                    catch (IOException e) {
-                        if (e.getMessage().contains("Operation not permitted")) {
-                            if (log.isDebugEnabled())
-                                log.debug("Got 'operation not permitted' error, ignoring: " + e);
-                        }
-                        else
-                            throw e;
-                    }
-                }
-                catch (IOException e) {
-                    if (!isInterrupted()) {
-                        U.error(log, "Failed to send/receive address message (will try to reconnect).", e);
-
-                        synchronized (this) {
-                            U.close(sock);
-
-                            sock = null;
-                        }
-                    }
-                }
-            }
-        }
-
-        /** {@inheritDoc} */
-        @Override public void interrupt() {
-            super.interrupt();
-
-            synchronized (this) {
-                U.close(sock);
-
-                sock = null;
-            }
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void cleanup() {
-            synchronized (this) {
-                U.close(sock);
-
-                sock = null;
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/package.html
deleted file mode 100644
index c3ced9e..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains multicast-based IP finder.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/package.html
deleted file mode 100644
index 0a05db1..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains IP finder interface and adapter.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java
deleted file mode 100644
index 7ee5631..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs;
-
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-/**
- * Shared filesystem-based IP finder.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * There are no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * <ul>
- *      <li>Path (see {@link #setPath(String)})</li>
- *      <li>Shared flag (see {@link #setShared(boolean)})</li>
- * </ul>
- * <p>
- * If {@link #getPath()} is not provided, then {@link #DFLT_PATH} will be used and
- * only local nodes will discover each other. To enable discovery over network
- * you must provide a path to a shared directory explicitly.
- * <p>
- * The directory will contain empty files named like the following 192.168.1.136#1001.
- * <p>
- * Note that this finder is shared by default (see {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()}.
- */
-public class TcpDiscoverySharedFsIpFinder extends TcpDiscoveryIpFinderAdapter {
-    /**
-     * Default path for discovering of local nodes (testing only). Note that this path is relative to
-     * {@code GRIDGAIN_HOME/work} folder if {@code GRIDGAIN_HOME} system or environment variable specified,
-     * otherwise it is relative to {@code work} folder under system {@code java.io.tmpdir} folder.
-     *
-     * @see org.apache.ignite.configuration.IgniteConfiguration#getWorkDirectory()
-     */
-    public static final String DFLT_PATH = "disco/tcp";
-
-    /** Delimiter to use between address and port tokens in file names. */
-    public static final String DELIM = "#";
-
-    /** Grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** File-system path. */
-    private String path = DFLT_PATH;
-
-    /** Folder to keep items in. */
-    @GridToStringExclude
-    private File folder;
-
-    /** Warning guard. */
-    @GridToStringExclude
-    private final AtomicBoolean warnGuard = new AtomicBoolean();
-
-    /** Init guard. */
-    @GridToStringExclude
-    private final AtomicBoolean initGuard = new AtomicBoolean();
-
-    /** Init latch. */
-    @GridToStringExclude
-    private final CountDownLatch initLatch = new CountDownLatch(1);
-
-    /**
-     * Constructor.
-     */
-    public TcpDiscoverySharedFsIpFinder() {
-        setShared(true);
-    }
-
-    /**
-     * Gets path.
-     *
-     * @return Shared path.
-     */
-    public String getPath() {
-        return path;
-    }
-
-    /**
-     * Sets path.
-     *
-     * @param path Shared path.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setPath(String path) {
-        this.path = path;
-    }
-
-    /**
-     * Initializes folder to work with.
-     *
-     * @return Folder.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    private File initFolder() throws IgniteSpiException {
-        if (initGuard.compareAndSet(false, true)) {
-            if (path == null)
-                throw new IgniteSpiException("Shared file system path is null " +
-                    "(it should be configured via setPath(..) configuration property).");
-
-            if (path.equals(DFLT_PATH) && warnGuard.compareAndSet(false, true))
-                U.warn(log, "Default local computer-only share is used by IP finder.");
-
-            try {
-                File tmp;
-
-                if (new File(path).exists())
-                    tmp = new File(path);
-                else {
-                    try {
-                        tmp = U.resolveWorkDirectory(path, false);
-                    }
-                    catch (GridException e) {
-                        throw new IgniteSpiException("Failed to resolve directory [path=" + path +
-                            ", exception=" + e.getMessage() + ']');
-                    }
-                }
-
-                if (!tmp.isDirectory())
-                    throw new IgniteSpiException("Failed to initialize shared file system path " +
-                        "(path must point to folder): " + path);
-
-                if (!tmp.canRead() || !tmp.canWrite())
-                    throw new IgniteSpiException("Failed to initialize shared file system path " +
-                        "(path must be readable and writable): " + path);
-
-                folder = tmp;
-            }
-            finally {
-                initLatch.countDown();
-            }
-        }
-        else {
-            try {
-                U.await(initLatch);
-            }
-            catch (GridInterruptedException e) {
-                throw new IgniteSpiException("Thread has been interrupted.", e);
-            }
-
-            if (folder == null)
-                throw new IgniteSpiException("Failed to initialize shared file system folder (check logs for errors).");
-        }
-
-        return folder;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
-        initFolder();
-
-        Collection<InetSocketAddress> addrs = new LinkedList<>();
-
-        for (String fileName : folder.list())
-            if (!".svn".equals(fileName)) {
-                InetSocketAddress addr = null;
-
-                StringTokenizer st = new StringTokenizer(fileName, DELIM);
-
-                if (st.countTokens() == 2) {
-                    String addrStr = st.nextToken();
-                    String portStr = st.nextToken();
-
-                    try {
-                        int port = Integer.parseInt(portStr);
-
-                        addr = new InetSocketAddress(addrStr, port);
-                    }
-                    catch (IllegalArgumentException e) {
-                        U.error(log, "Failed to parse file entry: " + fileName, e);
-                    }
-                }
-
-                if (addr != null)
-                    addrs.add(addr);
-            }
-
-        return Collections.unmodifiableCollection(addrs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        assert !F.isEmpty(addrs);
-
-        initFolder();
-
-        try {
-            for (InetSocketAddress addr : addrs) {
-                File file = new File(folder, name(addr));
-
-                file.createNewFile();
-            }
-        }
-        catch (IOException e) {
-            throw new IgniteSpiException("Failed to create file.", e);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        assert !F.isEmpty(addrs);
-
-        initFolder();
-
-        try {
-            for (InetSocketAddress addr : addrs) {
-                File file = new File(folder, name(addr));
-
-                file.delete();
-            }
-        }
-        catch (SecurityException e) {
-            throw new IgniteSpiException("Failed to delete file.", e);
-        }
-    }
-
-    /**
-     * Creates file name for address.
-     *
-     * @param addr Node address.
-     * @return Name.
-     */
-    private String name(InetSocketAddress addr) {
-        assert addr != null;
-
-        SB sb = new SB();
-
-        sb.a(addr.getAddress().getHostAddress())
-            .a(DELIM)
-            .a(addr.getPort());
-
-        return sb.toString();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoverySharedFsIpFinder.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/package.html
deleted file mode 100644
index e1305a3..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains shared filesystem-based IP finder.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
deleted file mode 100644
index fdcee08..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.vm;
-
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.net.*;
-import java.util.*;
-
-import static org.apache.ignite.IgniteSystemProperties.*;
-
-/**
- * IP Finder which works only with pre-configured list of IP addresses specified
- * via {@link #setAddresses(Collection)} method. By default, this IP finder is
- * not {@code shared}, which means that all grid nodes have to be configured with the
- * same list of IP addresses when this IP finder is used.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * There are no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * <ul>
- *      <li>Addresses for initialization (see {@link #setAddresses(Collection)})</li>
- *      <li>Shared flag (see {@link #setShared(boolean)})</li>
- * </ul>
- */
-public class TcpDiscoveryVmIpFinder extends TcpDiscoveryIpFinderAdapter {
-    /** Grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Addresses. */
-    @GridToStringInclude
-    private Collection<InetSocketAddress> addrs;
-
-    /**
-     * Initialize from system property.
-     */
-    {
-        String ips = IgniteSystemProperties.getString(GG_TCP_DISCOVERY_ADDRESSES);
-
-        if (!F.isEmpty(ips)) {
-            Collection<InetSocketAddress> addrsList = new LinkedHashSet<>();
-
-            for (String s : ips.split(",")) {
-                if (!F.isEmpty(s)) {
-                    s = s.trim();
-
-                    if (!F.isEmpty(s)) {
-                        try {
-                            addrsList.addAll(address(s));
-                        }
-                        catch (IgniteSpiException e) {
-                            throw new GridRuntimeException(e);
-                        }
-                    }
-                }
-            }
-
-            addrs = addrsList;
-        }
-        else
-            addrs = new LinkedHashSet<>();
-    }
-
-    /**
-     * Constructs new IP finder.
-     */
-    public TcpDiscoveryVmIpFinder() {
-        // No-op.
-    }
-
-    /**
-     * Constructs new IP finder.
-     *
-     * @param shared {@code true} if IP finder is shared.
-     * @see #setShared(boolean)
-     */
-    public TcpDiscoveryVmIpFinder(boolean shared) {
-        setShared(shared);
-    }
-
-    /**
-     * Parses provided values and initializes the internal collection of addresses.
-     * <p>
-     * Addresses may be represented as follows:
-     * <ul>
-     *     <li>IP address (e.g. 127.0.0.1, 9.9.9.9, etc);</li>
-     *     <li>IP address and port (e.g. 127.0.0.1:47500, 9.9.9.9:47501, etc);</li>
-     *     <li>IP address and port range (e.g. 127.0.0.1:47500..47510, 9.9.9.9:47501..47504, etc);</li>
-     *     <li>Hostname (e.g. host1.com, host2, etc);</li>
-     *     <li>Hostname and port (e.g. host1.com:47500, host2:47502, etc).</li>
-     *     <li>Hostname and port range (e.g. host1.com:47500..47510, host2:47502..47508, etc).</li>
-     * </ul>
-     * <p>
-     * If port is 0 or not provided then default port will be used (depends on
-     * discovery SPI configuration).
-     * <p>
-     * If port range is provided (e.g. host:port1..port2) the following should be considered:
-     * <ul>
-     *     <li>{@code port1 < port2} should be {@code true};</li>
-     *     <li>Both {@code port1} and {@code port2} should be greater than {@code 0}.</li>
-     * </ul>
-     *
-     * @param addrs Known nodes addresses.
-     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public synchronized void setAddresses(Collection<String> addrs) throws IgniteSpiException {
-        if (F.isEmpty(addrs))
-            return;
-
-        Collection<InetSocketAddress> newAddrs = new LinkedHashSet<>();
-
-        for (String ipStr : addrs)
-            newAddrs.addAll(address(ipStr));
-
-        this.addrs = newAddrs;
-    }
-
-    /**
-     * Creates address from string.
-     *
-     * @param ipStr Address string.
-     * @return Socket addresses (may contain 1 or more addresses if provided string
-     *      includes port range).
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    private static Collection<InetSocketAddress> address(String ipStr) throws IgniteSpiException {
-        ipStr = ipStr.trim();
-
-        String errMsg = "Failed to parse provided address: " + ipStr;
-
-        int colonCnt = ipStr.length() - ipStr.replace(":", "").length();
-
-        if (colonCnt > 1) {
-            // IPv6 address (literal IPv6 addresses are enclosed in square brackets, for example
-            // https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443).
-            if (ipStr.startsWith("[")) {
-                ipStr = ipStr.substring(1);
-
-                if (ipStr.contains("]:"))
-                    return addresses(ipStr, "\\]\\:", errMsg);
-                else if (ipStr.endsWith("]"))
-                    ipStr = ipStr.substring(0, ipStr.length() - 1);
-                else
-                    throw new IgniteSpiException(errMsg);
-            }
-        }
-        else {
-            // IPv4 address.
-            if (ipStr.endsWith(":"))
-                ipStr = ipStr.substring(0, ipStr.length() - 1);
-            else if (ipStr.indexOf(':') >= 0)
-                return addresses(ipStr, "\\:", errMsg);
-        }
-
-        // Provided address does not contain port (will use default one).
-        return Collections.singleton(new InetSocketAddress(ipStr, 0));
-    }
-
-    /**
-     * Creates address from string with port information.
-     *
-     * @param ipStr Address string
-     * @param regexDelim Port regex delimiter.
-     * @param errMsg Error message.
-     * @return Socket addresses (may contain 1 or more addresses if provided string
-     *      includes port range).
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    private static Collection<InetSocketAddress> addresses(String ipStr, String regexDelim, String errMsg)
-        throws IgniteSpiException {
-        String[] tokens = ipStr.split(regexDelim);
-
-        if (tokens.length == 2) {
-            String addrStr = tokens[0];
-            String portStr = tokens[1];
-
-            if (portStr.contains("..")) {
-                try {
-                    int port1 = Integer.parseInt(portStr.substring(0, portStr.indexOf("..")));
-                    int port2 = Integer.parseInt(portStr.substring(portStr.indexOf("..") + 2, portStr.length()));
-
-                    if (port2 < port1 || port1 == port2 || port1 <= 0 || port2 <= 0)
-                        throw new IgniteSpiException(errMsg);
-
-                    Collection<InetSocketAddress> res = new ArrayList<>(port2 - port1);
-
-                    // Upper bound included.
-                    for (int i = port1; i <= port2; i++)
-                        res.add(new InetSocketAddress(addrStr, i));
-
-                    return res;
-                }
-                catch (IllegalArgumentException e) {
-                    throw new IgniteSpiException(errMsg, e);
-                }
-            }
-            else {
-                try {
-                    int port = Integer.parseInt(portStr);
-
-                    return Collections.singleton(new InetSocketAddress(addrStr, port));
-                }
-                catch (IllegalArgumentException e) {
-                    throw new IgniteSpiException(errMsg, e);
-                }
-            }
-        }
-        else
-            throw new IgniteSpiException(errMsg);
-    }
-
-    /** {@inheritDoc} */
-    @Override public synchronized Collection<InetSocketAddress> getRegisteredAddresses() {
-        return Collections.unmodifiableCollection(addrs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public synchronized void registerAddresses(Collection<InetSocketAddress> addrs) {
-        assert !F.isEmpty(addrs);
-
-        this.addrs = new LinkedHashSet<>(this.addrs);
-
-        this.addrs.addAll(addrs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public synchronized void unregisterAddresses(Collection<InetSocketAddress> addrs) {
-        assert !F.isEmpty(addrs);
-
-        this.addrs = new LinkedHashSet<>(this.addrs);
-
-        this.addrs.removeAll(addrs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryVmIpFinder.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/package.html
deleted file mode 100644
index 7016083..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains local JVM-based IP finder.
-</body>
-</html>


[43/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
# Renaming


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

Branch: refs/heads/master
Commit: 50d1554cf9e98cc3d5abba8ef37dd1950eeec6e9
Parents: 1ef8f69
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 5 16:58:51 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 5 16:58:51 2014 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/IgniteCompute.java   |   3 +-
 .../compute/ComputeJobBeforeFailover.java       |   4 +-
 .../ignite/compute/ComputeJobContext.java       |   3 +-
 .../org/apache/ignite/compute/ComputeTask.java  |   3 +-
 .../apache/ignite/compute/ComputeTaskSpis.java  |   3 +-
 .../configuration/IgniteConfiguration.java      |  26 +-
 .../jobstealing/JobStealingCollisionSpi.java    |   3 +-
 .../org/gridgain/grid/kernal/GridGainEx.java    |   8 +-
 .../eventstorage/GridEventStorageManager.java   |   2 +-
 .../failover/GridFailoverContextImpl.java       |   2 +-
 .../managers/failover/GridFailoverManager.java  |   2 +-
 .../grid/spi/eventstorage/EventStorageSpi.java  |  57 +++
 .../spi/eventstorage/GridEventStorageSpi.java   |  57 ---
 .../memory/GridMemoryEventStorageSpi.java       | 272 ---------------
 .../memory/GridMemoryEventStorageSpiMBean.java  |  57 ---
 .../memory/MemoryEventStorageSpi.java           | 272 +++++++++++++++
 .../memory/MemoryEventStorageSpiMBean.java      |  57 +++
 .../grid/spi/failover/FailoverContext.java      |  47 +++
 .../gridgain/grid/spi/failover/FailoverSpi.java |  60 ++++
 .../grid/spi/failover/GridFailoverContext.java  |  47 ---
 .../grid/spi/failover/GridFailoverSpi.java      |  63 ----
 .../spi/failover/always/AlwaysFailoverSpi.java  | 238 +++++++++++++
 .../failover/always/AlwaysFailoverSpiMBean.java |  36 ++
 .../failover/always/GridAlwaysFailoverSpi.java  | 238 -------------
 .../always/GridAlwaysFailoverSpiMBean.java      |  36 --
 .../jobstealing/GridJobStealingFailoverSpi.java | 344 -------------------
 .../GridJobStealingFailoverSpiMBean.java        |  46 ---
 .../jobstealing/JobStealingFailoverSpi.java     | 343 ++++++++++++++++++
 .../JobStealingFailoverSpiMBean.java            |  46 +++
 .../failover/never/GridNeverFailoverSpi.java    |  94 -----
 .../never/GridNeverFailoverSpiMBean.java        |  21 --
 .../spi/failover/never/NeverFailoverSpi.java    |  94 +++++
 .../failover/never/NeverFailoverSpiMBean.java   |  21 ++
 .../src/test/config/job-loadtest/client.xml     |   2 +-
 .../src/test/config/job-loadtest/server.xml     |   2 +-
 .../core/src/test/config/load/dsi-load-base.xml |   2 +-
 ...bStealingCollisionSpiAttributesSelfTest.java |   2 +-
 ...alingCollisionSpiCustomTopologySelfTest.java |   2 +-
 .../GridJobStealingCollisionSpiSelfTest.java    |   2 +-
 ...obStealingCollisionSpiStartStopSelfTest.java |   2 +-
 .../GridAlwaysFailoverSpiFailSelfTest.java      |   4 +-
 .../GridFailoverCustomTopologySelfTest.java     |   4 +-
 .../grid/kernal/GridFailoverSelfTest.java       |   2 +-
 .../GridFailoverTaskWithPredicateSelfTest.java  |   4 +-
 .../kernal/GridFailoverTopologySelfTest.java    |   4 +-
 .../grid/kernal/GridJobStealingSelfTest.java    |   4 +-
 .../GridJobStealingZeroActiveJobsSelfTest.java  |   4 +-
 .../grid/kernal/GridMultipleSpisSelfTest.java   |   4 +-
 .../GridMultithreadedJobStealingSelfTest.java   |   4 +-
 .../grid/kernal/GridSpiExceptionSelfTest.java   |   2 +-
 .../grid/kernal/GridStopWithWaitSelfTest.java   |   2 +-
 .../managers/GridManagerStopSelfTest.java       |   4 +-
 .../GridCacheGroupLockFailoverSelfTest.java     |   4 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |   4 +-
 .../GridCachePreloadEventsAbstractSelfTest.java |   2 +-
 .../GridCacheReplicatedPreloadSelfTest.java     |   2 +-
 .../p2p/GridAbstractMultinodeRedeployTest.java  |   2 +-
 .../session/GridSessionJobFailoverSelfTest.java |   2 +-
 ...MemoryEventStorageMultiThreadedSelfTest.java |   4 +-
 ...GridMemoryEventStorageSpiConfigSelfTest.java |   8 +-
 .../GridMemoryEventStorageSpiSelfTest.java      |  10 +-
 ...dMemoryEventStorageSpiStartStopSelfTest.java |   4 +-
 .../spi/failover/GridFailoverTestContext.java   |   2 +-
 .../GridAlwaysFailoverSpiConfigSelfTest.java    |   6 +-
 .../always/GridAlwaysFailoverSpiSelfTest.java   |  12 +-
 .../GridAlwaysFailoverSpiStartStopSelfTest.java |   4 +-
 ...ridJobStealingFailoverSpiConfigSelfTest.java |   6 +-
 ...idJobStealingFailoverSpiOneNodeSelfTest.java |   4 +-
 .../GridJobStealingFailoverSpiSelfTest.java     |   8 +-
 ...JobStealingFailoverSpiStartStopSelfTest.java |   4 +-
 .../never/GridNeverFailoverSpiSelfTest.java     |   4 +-
 .../GridNeverFailoverSpiStartStopSelfTest.java  |   4 +-
 .../direct/stealing/GridStealingLoadTest.java   |   4 +-
 73 files changed, 1374 insertions(+), 1387 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java b/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java
index 3d0185c..309a547 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java
@@ -13,7 +13,6 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.compute.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.*;
 import org.gridgain.grid.spi.loadbalancing.*;
 import org.jetbrains.annotations.*;
 
@@ -64,7 +63,7 @@ import java.util.concurrent.*;
  * or has rejected execution due to lack of resources. By default, in case of failover, next
  * load balanced node will be picked for job execution. Also jobs will never be re-routed to the
  * nodes they have failed on. This behavior can be changed by configuring any of the existing or a custom
- * {@link GridFailoverSpi} in grid configuration.
+ * {@link org.gridgain.grid.spi.failover.FailoverSpi} in grid configuration.
  * <h1 class="header">Resource Injection</h1>
  * All compute jobs, including closures, runnables, callables, and tasks can be injected with
  * grid resources. Both, field and method based injections are supported. The following grid

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobBeforeFailover.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobBeforeFailover.java b/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobBeforeFailover.java
index ae2f9dc..48067c6 100644
--- a/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobBeforeFailover.java
+++ b/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobBeforeFailover.java
@@ -9,13 +9,11 @@
 
 package org.apache.ignite.compute;
 
-import org.gridgain.grid.spi.failover.*;
-
 import java.lang.annotation.*;
 
 /**
  * This annotation allows to call a method right before job is submitted to
- * {@link GridFailoverSpi}. In this method job can re-create necessary state that was
+ * {@link org.gridgain.grid.spi.failover.FailoverSpi}. In this method job can re-create necessary state that was
  * cleared, for example, in method with {@link ComputeJobAfterSend} annotation.
  * <p>
  * This annotation can be applied to methods of {@link ComputeJob} instances only. It is

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobContext.java b/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobContext.java
index b1107d2..a03641d 100644
--- a/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobContext.java
@@ -10,7 +10,6 @@
 package org.apache.ignite.compute;
 
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.spi.failover.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;
@@ -36,7 +35,7 @@ import java.util.concurrent.*;
  * For example, if you need to cancel an actively running job from {@link org.apache.ignite.spi.collision.CollisionSpi}
  * you may choose to set some context attribute on the job to mark the fact
  * that a job was cancelled by grid and not by a user. Context attributes can
- * also be assigned in {@link GridFailoverSpi} prior to failing over a job.
+ * also be assigned in {@link org.gridgain.grid.spi.failover.FailoverSpi} prior to failing over a job.
  * <p>
  * From within {@link ComputeTask#result(ComputeJobResult, List)} or {@link ComputeTask#reduce(List)} methods,
  * job context is available via {@link ComputeJobResult#getJobContext()} method which gives user the

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/apache/ignite/compute/ComputeTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/compute/ComputeTask.java b/modules/core/src/main/java/org/apache/ignite/compute/ComputeTask.java
index 3497983..cb81e8c 100644
--- a/modules/core/src/main/java/org/apache/ignite/compute/ComputeTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/compute/ComputeTask.java
@@ -11,7 +11,6 @@ package org.apache.ignite.compute;
 
 import org.apache.ignite.cluster.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.*;
 import org.jetbrains.annotations.*;
 
 import java.io.*;
@@ -73,7 +72,7 @@ import java.util.*;
  *      <li>
  *          If {@link ComputeJobResultPolicy#FAILOVER} policy is returned, then job will
  *          be failed over to another node for execution. The node to which job will get
- *          failed over is decided by {@link GridFailoverSpi} SPI implementation.
+ *          failed over is decided by {@link org.gridgain.grid.spi.failover.FailoverSpi} SPI implementation.
  *          Note that if you use {@link ComputeTaskAdapter} adapter for {@code GridComputeTask}
  *          implementation, then it will automatically fail jobs to another node for 2
  *          known failure cases:

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/apache/ignite/compute/ComputeTaskSpis.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/compute/ComputeTaskSpis.java b/modules/core/src/main/java/org/apache/ignite/compute/ComputeTaskSpis.java
index 05e43ef..1598d47 100644
--- a/modules/core/src/main/java/org/apache/ignite/compute/ComputeTaskSpis.java
+++ b/modules/core/src/main/java/org/apache/ignite/compute/ComputeTaskSpis.java
@@ -9,7 +9,6 @@
 
 package org.apache.ignite.compute;
 
-import org.gridgain.grid.spi.failover.*;
 import org.gridgain.grid.spi.loadbalancing.*;
 
 import java.lang.annotation.*;
@@ -18,7 +17,7 @@ import java.lang.annotation.*;
  * This annotation allows task to specify what SPIs it wants to use.
  * Starting with {@code GridGain 2.1} you can start multiple instances
  * of {@link GridLoadBalancingSpi},
- * {@link GridFailoverSpi}, and {@link org.apache.ignite.spi.checkpoint.CheckpointSpi}. If you do that,
+ * {@link org.gridgain.grid.spi.failover.FailoverSpi}, and {@link org.apache.ignite.spi.checkpoint.CheckpointSpi}. If you do that,
  * you need to tell a task which SPI to use (by default it will use the fist
  * SPI in the list).
  */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 78e61b2..fc5349d 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@ -33,9 +33,7 @@ import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.deployment.*;
 import org.apache.ignite.spi.discovery.*;
 import org.gridgain.grid.spi.eventstorage.*;
-import org.gridgain.grid.spi.eventstorage.memory.*;
 import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.spi.failover.always.*;
 import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.spi.loadbalancing.*;
 import org.gridgain.grid.spi.loadbalancing.roundrobin.*;
@@ -348,7 +346,7 @@ public class IgniteConfiguration {
     private CommunicationSpi commSpi;
 
     /** Event storage SPI. */
-    private GridEventStorageSpi evtSpi;
+    private EventStorageSpi evtSpi;
 
     /** Collision SPI. */
     private CollisionSpi colSpi;
@@ -366,7 +364,7 @@ public class IgniteConfiguration {
     private CheckpointSpi[] cpSpi;
 
     /** Failover SPI. */
-    private GridFailoverSpi[] failSpi;
+    private FailoverSpi[] failSpi;
 
     /** Load balancing SPI. */
     private GridLoadBalancingSpi[] loadBalancingSpi;
@@ -1754,21 +1752,21 @@ public class IgniteConfiguration {
 
     /**
      * Should return fully configured event SPI implementation. If not provided,
-     * {@link GridMemoryEventStorageSpi} will be used.
+     * {@link org.gridgain.grid.spi.eventstorage.memory.MemoryEventStorageSpi} will be used.
      *
      * @return Grid event SPI implementation or {@code null} to use default implementation.
      */
-    public GridEventStorageSpi getEventStorageSpi() {
+    public EventStorageSpi getEventStorageSpi() {
         return evtSpi;
     }
 
     /**
-     * Sets fully configured instance of {@link GridEventStorageSpi}.
+     * Sets fully configured instance of {@link org.gridgain.grid.spi.eventstorage.EventStorageSpi}.
      *
-     * @param evtSpi Fully configured instance of {@link GridEventStorageSpi}.
+     * @param evtSpi Fully configured instance of {@link org.gridgain.grid.spi.eventstorage.EventStorageSpi}.
      * @see IgniteConfiguration#getEventStorageSpi()
      */
-    public void setEventStorageSpi(GridEventStorageSpi evtSpi) {
+    public void setEventStorageSpi(EventStorageSpi evtSpi) {
         this.evtSpi = evtSpi;
     }
 
@@ -2055,22 +2053,22 @@ public class IgniteConfiguration {
 
     /**
      * Should return fully configured failover SPI implementation. If not provided,
-     * {@link GridAlwaysFailoverSpi} will be used.
+     * {@link org.gridgain.grid.spi.failover.always.AlwaysFailoverSpi} will be used.
      *
      * @return Grid failover SPI implementation or {@code null} to use default implementation.
      */
-    public GridFailoverSpi[] getFailoverSpi() {
+    public FailoverSpi[] getFailoverSpi() {
         return failSpi;
     }
 
     /**
-     * Sets fully configured instance of {@link GridFailoverSpi}.
+     * Sets fully configured instance of {@link org.gridgain.grid.spi.failover.FailoverSpi}.
      *
-     * @param failSpi Fully configured instance of {@link GridFailoverSpi} or
+     * @param failSpi Fully configured instance of {@link org.gridgain.grid.spi.failover.FailoverSpi} or
      *      {@code null} if no SPI provided.
      * @see IgniteConfiguration#getFailoverSpi()
      */
-    public void setFailoverSpi(GridFailoverSpi... failSpi) {
+    public void setFailoverSpi(FailoverSpi... failSpi) {
         this.failSpi = failSpi;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingCollisionSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingCollisionSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingCollisionSpi.java
index 47f69de..0e356af 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingCollisionSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingCollisionSpi.java
@@ -18,7 +18,6 @@ import org.apache.ignite.spi.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.managers.eventstorage.*;
 import org.apache.ignite.spi.collision.*;
-import org.gridgain.grid.spi.failover.jobstealing.*;
 import org.gridgain.grid.util.tostring.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
@@ -55,7 +54,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  * <p>
  * <i>
  * Note that this SPI must always be used in conjunction with
- * {@link GridJobStealingFailoverSpi}.
+ * {@link org.gridgain.grid.spi.failover.jobstealing.JobStealingFailoverSpi}.
  * Also note that job metrics update should be enabled in order for this SPI
  * to work properly (i.e. {@link org.apache.ignite.configuration.IgniteConfiguration#getMetricsUpdateFrequency()}
  * should be set to {@code 0} or greater value).

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
index 1442ec9..716c435 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
@@ -1465,13 +1465,13 @@ public class GridGainEx {
 
             CommunicationSpi commSpi = cfg.getCommunicationSpi();
             DiscoverySpi discoSpi = cfg.getDiscoverySpi();
-            GridEventStorageSpi evtSpi = cfg.getEventStorageSpi();
+            EventStorageSpi evtSpi = cfg.getEventStorageSpi();
             CollisionSpi colSpi = cfg.getCollisionSpi();
             AuthenticationSpi authSpi = cfg.getAuthenticationSpi();
             GridSecureSessionSpi sesSpi = cfg.getSecureSessionSpi();
             DeploymentSpi deploySpi = cfg.getDeploymentSpi();
             CheckpointSpi[] cpSpi = cfg.getCheckpointSpi();
-            GridFailoverSpi[] failSpi = cfg.getFailoverSpi();
+            FailoverSpi[] failSpi = cfg.getFailoverSpi();
             GridLoadBalancingSpi[] loadBalancingSpi = cfg.getLoadBalancingSpi();
             GridSwapSpaceSpi swapspaceSpi = cfg.getSwapSpaceSpi();
             GridIndexingSpi[] indexingSpi = cfg.getIndexingSpi();
@@ -1680,7 +1680,7 @@ public class GridGainEx {
             }
 
             if (evtSpi == null)
-                evtSpi = new GridMemoryEventStorageSpi();
+                evtSpi = new MemoryEventStorageSpi();
 
             if (colSpi == null)
                 colSpi = new NoopCollisionSpi();
@@ -1698,7 +1698,7 @@ public class GridGainEx {
                 cpSpi = new CheckpointSpi[] {new NoopCheckpointSpi()};
 
             if (failSpi == null)
-                failSpi = new GridFailoverSpi[] {new GridAlwaysFailoverSpi()};
+                failSpi = new FailoverSpi[] {new AlwaysFailoverSpi()};
 
             if (loadBalancingSpi == null)
                 loadBalancingSpi = new GridLoadBalancingSpi[] {new GridRoundRobinLoadBalancingSpi()};

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java
index dbcca7d..b595b6c 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java
@@ -40,7 +40,7 @@ import static org.gridgain.grid.kernal.managers.communication.GridIoPolicy.*;
 /**
  * Grid event storage SPI manager.
  */
-public class GridEventStorageManager extends GridManagerAdapter<GridEventStorageSpi> {
+public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi> {
     /** */
     private static final int[] EMPTY = new int[0];
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverContextImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverContextImpl.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverContextImpl.java
index 7e18357..a63dad9 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverContextImpl.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverContextImpl.java
@@ -22,7 +22,7 @@ import java.util.*;
 /**
  * GridFailoverContext implementation.
  */
-public class GridFailoverContextImpl implements GridFailoverContext {
+public class GridFailoverContextImpl implements FailoverContext {
     /** Grid task session. */
     private final GridTaskSessionImpl taskSes;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverManager.java
index 367ab3a..b4fbde0 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverManager.java
@@ -20,7 +20,7 @@ import java.util.*;
 /**
  * Grid failover spi manager.
  */
-public class GridFailoverManager extends GridManagerAdapter<GridFailoverSpi> {
+public class GridFailoverManager extends GridManagerAdapter<FailoverSpi> {
     /**
      * @param ctx Kernal context.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/EventStorageSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/EventStorageSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/EventStorageSpi.java
new file mode 100644
index 0000000..da21ba9
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/EventStorageSpi.java
@@ -0,0 +1,57 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.eventstorage;
+
+import org.apache.ignite.events.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.*;
+
+import java.util.*;
+
+/**
+ * This SPI provides local node events storage. SPI allows for recording local
+ * node events and querying recorded local events. Every node during its life-cycle
+ * goes through a serious of events such as task deployment, task execution, job
+ * execution, etc. For
+ * performance reasons GridGain is designed to store all locally produced events
+ * locally. These events can be later retrieved using either distributed query:
+ * <ul>
+ *      <li>{@link org.apache.ignite.IgniteEvents#remoteQuery(org.apache.ignite.lang.IgnitePredicate, long, int...)}</li>
+ * </ul>
+ * or local only query:
+ * <ul>
+ *      <li>{@link org.apache.ignite.IgniteEvents#localQuery(org.apache.ignite.lang.IgnitePredicate, int...)}</li>
+ * </ul>
+ * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
+ * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
+ * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
+ * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
+ * methods. Note again that calling methods from this interface on the obtained instance can lead
+ * to undefined behavior and explicitly not supported.
+ * @see org.apache.ignite.events.IgniteEvent
+ */
+public interface EventStorageSpi extends IgniteSpi {
+    /**
+     * Queries locally-stored events only. Events could be filtered out
+     * by given predicate filter.
+     *
+     * @param p Event predicate filter.
+     * @return Collection of events.
+     */
+    public <T extends IgniteEvent> Collection<T> localEvents(IgnitePredicate<T> p);
+
+    /**
+     * Records single event.
+     *
+     * @param evt Event that should be recorded.
+     * @throws org.apache.ignite.spi.IgniteSpiException If event recording failed for any reason.
+     */
+    public void record(IgniteEvent evt) throws IgniteSpiException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/GridEventStorageSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/GridEventStorageSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/GridEventStorageSpi.java
deleted file mode 100644
index 6ed1c63..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/GridEventStorageSpi.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.eventstorage;
-
-import org.apache.ignite.events.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.spi.*;
-
-import java.util.*;
-
-/**
- * This SPI provides local node events storage. SPI allows for recording local
- * node events and querying recorded local events. Every node during its life-cycle
- * goes through a serious of events such as task deployment, task execution, job
- * execution, etc. For
- * performance reasons GridGain is designed to store all locally produced events
- * locally. These events can be later retrieved using either distributed query:
- * <ul>
- *      <li>{@link org.apache.ignite.IgniteEvents#remoteQuery(org.apache.ignite.lang.IgnitePredicate, long, int...)}</li>
- * </ul>
- * or local only query:
- * <ul>
- *      <li>{@link org.apache.ignite.IgniteEvents#localQuery(org.apache.ignite.lang.IgnitePredicate, int...)}</li>
- * </ul>
- * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
- * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
- * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
- * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
- * methods. Note again that calling methods from this interface on the obtained instance can lead
- * to undefined behavior and explicitly not supported.
- * @see org.apache.ignite.events.IgniteEvent
- */
-public interface GridEventStorageSpi extends IgniteSpi {
-    /**
-     * Queries locally-stored events only. Events could be filtered out
-     * by given predicate filter.
-     *
-     * @param p Event predicate filter.
-     * @return Collection of events.
-     */
-    public <T extends IgniteEvent> Collection<T> localEvents(IgnitePredicate<T> p);
-
-    /**
-     * Records single event.
-     *
-     * @param evt Event that should be recorded.
-     * @throws org.apache.ignite.spi.IgniteSpiException If event recording failed for any reason.
-     */
-    public void record(IgniteEvent evt) throws IgniteSpiException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpi.java
deleted file mode 100644
index bae13fa..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpi.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.eventstorage.memory;
-
-import org.apache.ignite.*;
-import org.apache.ignite.events.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.spi.eventstorage.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jdk8.backport.*;
-
-import java.util.*;
-
-import static org.apache.ignite.events.IgniteEventType.*;
-
-/**
- * In-memory {@link GridEventStorageSpi} implementation. All events are
- * kept in the FIFO queue. If no configuration is provided a default expiration
- * {@link #DFLT_EXPIRE_AGE_MS} and default count {@link #DFLT_EXPIRE_COUNT} will
- * be used.
- * <p>
- * It's recommended not to set huge size and unlimited TTL because this might
- * lead to consuming a lot of memory and result in {@link OutOfMemoryError}.
- * Both event expiration time and maximum queue size could be changed at
- * runtime.
- * <p>
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * This SPI has no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * The following configuration parameters are optional:
- * <ul>
- * <li>Event queue size (see {@link #setExpireCount(long)})</li>
- * <li>Event time-to-live value (see {@link #setExpireAgeMs(long)})</li>
- * <li>{@link #setFilter(org.apache.ignite.lang.IgnitePredicate)} - Event filter that should be used for decision to accept event.</li>
- * </ul>
- * <h2 class="header">Java Example</h2>
- * GridMemoryEventStorageSpi is used by default and should be explicitly configured only
- * if some SPI configuration parameters need to be overridden. Examples below insert own
- * events queue size value that differs from default 10000.
- * <pre name="code" class="java">
- * GridMemoryEventStorageSpi = new GridMemoryEventStorageSpi();
- *
- * // Init own events size.
- * spi.setExpireCount(2000);
- *
- * GridConfiguration cfg = new GridConfiguration();
- *
- * // Override default event storage SPI.
- * cfg.setEventStorageSpi(spi);
- *
- * // Starts grid.
- * G.start(cfg);
- * </pre>
- * <h2 class="header">Spring Example</h2>
- * GridMemoryEventStorageSpi can be configured from Spring XML configuration file:
- * <pre name="code" class="xml">
- * &lt;bean id="grid.custom.cfg" class="org.gridgain.grid.GridConfiguration" singleton="true"&gt;
- *         ...
- *         &lt;property name="discoverySpi"&gt;
- *             &lt;bean class="org.gridgain.grid.spi.eventStorage.memory.GridMemoryEventStorageSpi"&gt;
- *                 &lt;property name="expireCount" value="2000"/&gt;
- *             &lt;/bean&gt;
- *         &lt;/property&gt;
- *         ...
- * &lt;/bean&gt;
- * </pre>
- * <p>
- * <img src="http://www.gridgain.com/images/spring-small.png">
- * <br>
- * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
- * @see GridEventStorageSpi
- */
-@IgniteSpiMultipleInstancesSupport(true)
-public class GridMemoryEventStorageSpi extends IgniteSpiAdapter implements GridEventStorageSpi,
-    GridMemoryEventStorageSpiMBean {
-    /** Default event time to live value in milliseconds (value is {@link Long#MAX_VALUE}). */
-    public static final long DFLT_EXPIRE_AGE_MS = Long.MAX_VALUE;
-
-    /** Default expire count (value is {@code 10000}). */
-    public static final int DFLT_EXPIRE_COUNT = 10000;
-
-    /** */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Event time-to-live value in milliseconds. */
-    private long expireAgeMs = DFLT_EXPIRE_AGE_MS;
-
-    /** Maximum queue size. */
-    private long expireCnt = DFLT_EXPIRE_COUNT;
-
-    /** Events queue. */
-    private ConcurrentLinkedDeque8<IgniteEvent> evts = new ConcurrentLinkedDeque8<>();
-
-    /** Configured event predicate filter. */
-    private IgnitePredicate<IgniteEvent> filter;
-
-    /**
-     * Gets filter for events to be recorded.
-     *
-     * @return Filter to use.
-     */
-    public IgnitePredicate<IgniteEvent> getFilter() {
-        return filter;
-    }
-
-    /**
-     * Sets filter for events to be recorded.
-     *
-     * @param filter Filter to use.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setFilter(IgnitePredicate<IgniteEvent> filter) {
-        this.filter = filter;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(String gridName) throws IgniteSpiException {
-        // Start SPI start stopwatch.
-        startStopwatch();
-
-        assertParameter(expireCnt > 0, "expireCnt > 0");
-        assertParameter(expireAgeMs > 0, "expireAgeMs > 0");
-
-        // Ack parameters.
-        if (log.isDebugEnabled()) {
-            log.debug(configInfo("expireAgeMs", expireAgeMs));
-            log.debug(configInfo("expireCnt", expireCnt));
-        }
-
-        registerMBean(gridName, this, GridMemoryEventStorageSpiMBean.class);
-
-        // Ack ok start.
-        if (log.isDebugEnabled())
-            log.debug(startInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        unregisterMBean();
-
-        // Reset events.
-        evts.clear();
-
-        // Ack ok stop.
-        if (log.isDebugEnabled())
-            log.debug(stopInfo());
-    }
-
-    /**
-     * Sets events expiration time. All events that exceed this value
-     * will be removed from the queue when next event comes.
-     * <p>
-     * If not provided, default value is {@link #DFLT_EXPIRE_AGE_MS}.
-     *
-     * @param expireAgeMs Expiration time in milliseconds.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setExpireAgeMs(long expireAgeMs) {
-        this.expireAgeMs = expireAgeMs;
-    }
-
-    /**
-     * Sets events queue size. Events will be filtered out when new request comes.
-     * <p>
-     * If not provided, default value {@link #DFLT_EXPIRE_COUNT} will be used.
-     *
-     * @param expireCnt Maximum queue size.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setExpireCount(long expireCnt) {
-        this.expireCnt = expireCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getExpireAgeMs() {
-        return expireAgeMs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getExpireCount() {
-        return expireCnt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getQueueSize() {
-        return evts.sizex();
-    }
-
-    /** {@inheritDoc} */
-    @Override public void clearAll() {
-        evts.clear();
-    }
-
-    /** {@inheritDoc} */
-    @Override public <T extends IgniteEvent> Collection<T> localEvents(IgnitePredicate<T> p) {
-        A.notNull(p, "p");
-
-        cleanupQueue();
-
-        return F.retain((Collection<T>)evts, true, p);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void record(IgniteEvent evt) throws IgniteSpiException {
-        assert evt != null;
-
-        // Filter out events.
-        if (filter == null || filter.apply(evt)) {
-            cleanupQueue();
-
-            evts.add(evt);
-
-            // Make sure to filter out metrics updates to prevent log from flooding.
-            if (evt.type() != EVT_NODE_METRICS_UPDATED && log.isDebugEnabled())
-                log.debug("Event recorded: " + evt);
-        }
-    }
-
-    /**
-     * Method cleans up all events that either outnumber queue size
-     * or exceeds time-to-live value. It does none if someone else
-     * cleans up queue (lock is locked) or if there are queue readers
-     * (readersNum > 0).
-     */
-    private void cleanupQueue() {
-        long now = U.currentTimeMillis();
-
-        long queueOversize = evts.sizex() - expireCnt;
-
-        for (int i = 0; i < queueOversize && evts.sizex() > expireCnt; i++) {
-            IgniteEvent expired = evts.poll();
-
-            if (log.isDebugEnabled())
-                log.debug("Event expired by count: " + expired);
-        }
-
-        while (true) {
-            ConcurrentLinkedDeque8.Node<IgniteEvent> node = evts.peekx();
-
-            if (node == null) // Queue is empty.
-                break;
-
-            IgniteEvent evt = node.item();
-
-            if (evt == null) // Competing with another thread.
-                continue;
-
-            if (now - evt.timestamp() < expireAgeMs)
-                break;
-
-            if (evts.unlinkx(node) && log.isDebugEnabled())
-                log.debug("Event expired by age: " + node.item());
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridMemoryEventStorageSpi.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiMBean.java
deleted file mode 100644
index 97b35ad..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiMBean.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.eventstorage.memory;
-
-import org.apache.ignite.mbean.*;
-import org.apache.ignite.spi.*;
-
-/**
- * Management bean for {@link GridMemoryEventStorageSpi}.
- * Beside properties defined for every SPI bean this one gives access to:
- * <ul>
- * <li>Event expiration time (see {@link #getExpireAgeMs()})</li>
- * <li>Maximum queue size (see {@link #getExpireCount()})</li>
- * <li>Method that removes all items from queue (see {@link #clearAll()})</li>
- * </ul>
- */
-@IgniteMBeanDescription("MBean that provides access to memory event storage SPI configuration.")
-public interface GridMemoryEventStorageSpiMBean extends IgniteSpiManagementMBean {
-    /**
-     * Gets event time-to-live value. Implementation must guarantee
-     * that event would not be accessible if its lifetime exceeds this value.
-     *
-     * @return Event time-to-live.
-     */
-    @IgniteMBeanDescription("Event time-to-live value.")
-    public long getExpireAgeMs();
-
-    /**
-     * Gets maximum event queue size. New incoming events will oust
-     * oldest ones if queue size exceeds this limit.
-     *
-     * @return Maximum event queue size.
-     */
-    @IgniteMBeanDescription("Maximum event queue size.")
-    public long getExpireCount();
-
-    /**
-     * Gets current queue size of the event queue.
-     *
-     * @return Current queue size of the event queue.
-     */
-    @IgniteMBeanDescription("Current event queue size.")
-    public long getQueueSize();
-
-    /**
-     * Removes all events from the event queue.
-     */
-    @IgniteMBeanDescription("Removes all events from the event queue.")
-    public void clearAll();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpi.java
new file mode 100644
index 0000000..3364320
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpi.java
@@ -0,0 +1,272 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.eventstorage.memory;
+
+import org.apache.ignite.*;
+import org.apache.ignite.events.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.spi.eventstorage.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jdk8.backport.*;
+
+import java.util.*;
+
+import static org.apache.ignite.events.IgniteEventType.*;
+
+/**
+ * In-memory {@link org.gridgain.grid.spi.eventstorage.EventStorageSpi} implementation. All events are
+ * kept in the FIFO queue. If no configuration is provided a default expiration
+ * {@link #DFLT_EXPIRE_AGE_MS} and default count {@link #DFLT_EXPIRE_COUNT} will
+ * be used.
+ * <p>
+ * It's recommended not to set huge size and unlimited TTL because this might
+ * lead to consuming a lot of memory and result in {@link OutOfMemoryError}.
+ * Both event expiration time and maximum queue size could be changed at
+ * runtime.
+ * <p>
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * This SPI has no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * The following configuration parameters are optional:
+ * <ul>
+ * <li>Event queue size (see {@link #setExpireCount(long)})</li>
+ * <li>Event time-to-live value (see {@link #setExpireAgeMs(long)})</li>
+ * <li>{@link #setFilter(org.apache.ignite.lang.IgnitePredicate)} - Event filter that should be used for decision to accept event.</li>
+ * </ul>
+ * <h2 class="header">Java Example</h2>
+ * GridMemoryEventStorageSpi is used by default and should be explicitly configured only
+ * if some SPI configuration parameters need to be overridden. Examples below insert own
+ * events queue size value that differs from default 10000.
+ * <pre name="code" class="java">
+ * GridMemoryEventStorageSpi = new GridMemoryEventStorageSpi();
+ *
+ * // Init own events size.
+ * spi.setExpireCount(2000);
+ *
+ * GridConfiguration cfg = new GridConfiguration();
+ *
+ * // Override default event storage SPI.
+ * cfg.setEventStorageSpi(spi);
+ *
+ * // Starts grid.
+ * G.start(cfg);
+ * </pre>
+ * <h2 class="header">Spring Example</h2>
+ * GridMemoryEventStorageSpi can be configured from Spring XML configuration file:
+ * <pre name="code" class="xml">
+ * &lt;bean id="grid.custom.cfg" class="org.gridgain.grid.GridConfiguration" singleton="true"&gt;
+ *         ...
+ *         &lt;property name="discoverySpi"&gt;
+ *             &lt;bean class="org.gridgain.grid.spi.eventStorage.memory.GridMemoryEventStorageSpi"&gt;
+ *                 &lt;property name="expireCount" value="2000"/&gt;
+ *             &lt;/bean&gt;
+ *         &lt;/property&gt;
+ *         ...
+ * &lt;/bean&gt;
+ * </pre>
+ * <p>
+ * <img src="http://www.gridgain.com/images/spring-small.png">
+ * <br>
+ * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
+ * @see org.gridgain.grid.spi.eventstorage.EventStorageSpi
+ */
+@IgniteSpiMultipleInstancesSupport(true)
+public class MemoryEventStorageSpi extends IgniteSpiAdapter implements EventStorageSpi,
+    MemoryEventStorageSpiMBean {
+    /** Default event time to live value in milliseconds (value is {@link Long#MAX_VALUE}). */
+    public static final long DFLT_EXPIRE_AGE_MS = Long.MAX_VALUE;
+
+    /** Default expire count (value is {@code 10000}). */
+    public static final int DFLT_EXPIRE_COUNT = 10000;
+
+    /** */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Event time-to-live value in milliseconds. */
+    private long expireAgeMs = DFLT_EXPIRE_AGE_MS;
+
+    /** Maximum queue size. */
+    private long expireCnt = DFLT_EXPIRE_COUNT;
+
+    /** Events queue. */
+    private ConcurrentLinkedDeque8<IgniteEvent> evts = new ConcurrentLinkedDeque8<>();
+
+    /** Configured event predicate filter. */
+    private IgnitePredicate<IgniteEvent> filter;
+
+    /**
+     * Gets filter for events to be recorded.
+     *
+     * @return Filter to use.
+     */
+    public IgnitePredicate<IgniteEvent> getFilter() {
+        return filter;
+    }
+
+    /**
+     * Sets filter for events to be recorded.
+     *
+     * @param filter Filter to use.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setFilter(IgnitePredicate<IgniteEvent> filter) {
+        this.filter = filter;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(String gridName) throws IgniteSpiException {
+        // Start SPI start stopwatch.
+        startStopwatch();
+
+        assertParameter(expireCnt > 0, "expireCnt > 0");
+        assertParameter(expireAgeMs > 0, "expireAgeMs > 0");
+
+        // Ack parameters.
+        if (log.isDebugEnabled()) {
+            log.debug(configInfo("expireAgeMs", expireAgeMs));
+            log.debug(configInfo("expireCnt", expireCnt));
+        }
+
+        registerMBean(gridName, this, MemoryEventStorageSpiMBean.class);
+
+        // Ack ok start.
+        if (log.isDebugEnabled())
+            log.debug(startInfo());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        unregisterMBean();
+
+        // Reset events.
+        evts.clear();
+
+        // Ack ok stop.
+        if (log.isDebugEnabled())
+            log.debug(stopInfo());
+    }
+
+    /**
+     * Sets events expiration time. All events that exceed this value
+     * will be removed from the queue when next event comes.
+     * <p>
+     * If not provided, default value is {@link #DFLT_EXPIRE_AGE_MS}.
+     *
+     * @param expireAgeMs Expiration time in milliseconds.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setExpireAgeMs(long expireAgeMs) {
+        this.expireAgeMs = expireAgeMs;
+    }
+
+    /**
+     * Sets events queue size. Events will be filtered out when new request comes.
+     * <p>
+     * If not provided, default value {@link #DFLT_EXPIRE_COUNT} will be used.
+     *
+     * @param expireCnt Maximum queue size.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setExpireCount(long expireCnt) {
+        this.expireCnt = expireCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getExpireAgeMs() {
+        return expireAgeMs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getExpireCount() {
+        return expireCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getQueueSize() {
+        return evts.sizex();
+    }
+
+    /** {@inheritDoc} */
+    @Override public void clearAll() {
+        evts.clear();
+    }
+
+    /** {@inheritDoc} */
+    @Override public <T extends IgniteEvent> Collection<T> localEvents(IgnitePredicate<T> p) {
+        A.notNull(p, "p");
+
+        cleanupQueue();
+
+        return F.retain((Collection<T>)evts, true, p);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void record(IgniteEvent evt) throws IgniteSpiException {
+        assert evt != null;
+
+        // Filter out events.
+        if (filter == null || filter.apply(evt)) {
+            cleanupQueue();
+
+            evts.add(evt);
+
+            // Make sure to filter out metrics updates to prevent log from flooding.
+            if (evt.type() != EVT_NODE_METRICS_UPDATED && log.isDebugEnabled())
+                log.debug("Event recorded: " + evt);
+        }
+    }
+
+    /**
+     * Method cleans up all events that either outnumber queue size
+     * or exceeds time-to-live value. It does none if someone else
+     * cleans up queue (lock is locked) or if there are queue readers
+     * (readersNum > 0).
+     */
+    private void cleanupQueue() {
+        long now = U.currentTimeMillis();
+
+        long queueOversize = evts.sizex() - expireCnt;
+
+        for (int i = 0; i < queueOversize && evts.sizex() > expireCnt; i++) {
+            IgniteEvent expired = evts.poll();
+
+            if (log.isDebugEnabled())
+                log.debug("Event expired by count: " + expired);
+        }
+
+        while (true) {
+            ConcurrentLinkedDeque8.Node<IgniteEvent> node = evts.peekx();
+
+            if (node == null) // Queue is empty.
+                break;
+
+            IgniteEvent evt = node.item();
+
+            if (evt == null) // Competing with another thread.
+                continue;
+
+            if (now - evt.timestamp() < expireAgeMs)
+                break;
+
+            if (evts.unlinkx(node) && log.isDebugEnabled())
+                log.debug("Event expired by age: " + node.item());
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(MemoryEventStorageSpi.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpiMBean.java
new file mode 100644
index 0000000..eab8a92
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/memory/MemoryEventStorageSpiMBean.java
@@ -0,0 +1,57 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.eventstorage.memory;
+
+import org.apache.ignite.mbean.*;
+import org.apache.ignite.spi.*;
+
+/**
+ * Management bean for {@link MemoryEventStorageSpi}.
+ * Beside properties defined for every SPI bean this one gives access to:
+ * <ul>
+ * <li>Event expiration time (see {@link #getExpireAgeMs()})</li>
+ * <li>Maximum queue size (see {@link #getExpireCount()})</li>
+ * <li>Method that removes all items from queue (see {@link #clearAll()})</li>
+ * </ul>
+ */
+@IgniteMBeanDescription("MBean that provides access to memory event storage SPI configuration.")
+public interface MemoryEventStorageSpiMBean extends IgniteSpiManagementMBean {
+    /**
+     * Gets event time-to-live value. Implementation must guarantee
+     * that event would not be accessible if its lifetime exceeds this value.
+     *
+     * @return Event time-to-live.
+     */
+    @IgniteMBeanDescription("Event time-to-live value.")
+    public long getExpireAgeMs();
+
+    /**
+     * Gets maximum event queue size. New incoming events will oust
+     * oldest ones if queue size exceeds this limit.
+     *
+     * @return Maximum event queue size.
+     */
+    @IgniteMBeanDescription("Maximum event queue size.")
+    public long getExpireCount();
+
+    /**
+     * Gets current queue size of the event queue.
+     *
+     * @return Current queue size of the event queue.
+     */
+    @IgniteMBeanDescription("Current event queue size.")
+    public long getQueueSize();
+
+    /**
+     * Removes all events from the event queue.
+     */
+    @IgniteMBeanDescription("Removes all events from the event queue.")
+    public void clearAll();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverContext.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverContext.java
new file mode 100644
index 0000000..7db8c1c
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverContext.java
@@ -0,0 +1,47 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.failover;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.compute.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.spi.loadbalancing.*;
+import java.util.*;
+
+/**
+ * This interface defines a set of operations available to failover SPI
+ * one a given failed job.
+ */
+public interface FailoverContext {
+    /**
+     * Gets current task session.
+     *
+     * @return Grid task session.
+     */
+    public ComputeTaskSession getTaskSession();
+
+    /**
+     * Gets failed result of job execution.
+     *
+     * @return Result of a failed job.
+     */
+    public ComputeJobResult getJobResult();
+
+    /**
+     * Gets the next balanced node for failed job. Internally this method will
+     * delegate to load balancing SPI (see {@link GridLoadBalancingSpi} to
+     * determine the optimal node for execution.
+     *
+     * @param top Topology to pick balanced node from.
+     * @return The next balanced node.
+     * @throws GridException If anything failed.
+     */
+    public ClusterNode getBalancedNode(List<ClusterNode> top) throws GridException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverSpi.java
new file mode 100644
index 0000000..393391d
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/failover/FailoverSpi.java
@@ -0,0 +1,60 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.failover;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.spi.*;
+
+import java.util.*;
+
+/**
+ * Failover SPI provides developer with ability to supply custom logic for handling
+ * failed execution of a grid job. Job execution can fail for a number of reasons:
+ * <ul>
+ *      <li>Job execution threw an exception (runtime, assertion or error)</li>
+ *      <li>Node on which job was execution left topology (crashed or stopped)</li>
+ *      <li>Collision SPI on remote node cancelled a job before it got a chance to execute (job rejection).</li>
+ * </ul>
+ * In all cases failover SPI takes failed job (as failover context) and list of all
+ * grid nodes and provides another node on which the job execution will be retried.
+ * It is up to failover SPI to make sure that job is not mapped to the node it
+ * failed on. The failed node can be retrieved from
+ * {@link org.apache.ignite.compute.ComputeJobResult#getNode() GridFailoverContext.getJobResult().node()}
+ * method.
+ * <p>
+ * GridGain comes with the following built-in failover SPI implementations:
+ * <ul>
+ *      <li>{@link org.gridgain.grid.spi.failover.never.NeverFailoverSpi}</li>
+ *      <li>{@link org.gridgain.grid.spi.failover.always.AlwaysFailoverSpi}</li>
+ *      <li>{@link org.gridgain.grid.spi.failover.jobstealing.JobStealingFailoverSpi}</li>
+ * </ul>
+ * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
+ * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
+ * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
+ * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
+ * methods. Note again that calling methods from this interface on the obtained instance can lead
+ * to undefined behavior and explicitly not supported.
+ */
+public interface FailoverSpi extends IgniteSpi {
+    /**
+     * This method is called when method {@link org.apache.ignite.compute.ComputeTask#result(org.apache.ignite.compute.ComputeJobResult, List)} returns
+     * value {@link org.apache.ignite.compute.ComputeJobResultPolicy#FAILOVER} policy indicating that the result of
+     * job execution must be failed over. Implementation of this method should examine failover
+     * context and choose one of the grid nodes from supplied {@code topology} to retry job execution
+     * on it. For best performance it is advised that {@link FailoverContext#getBalancedNode(List)}
+     * method is used to select node for execution of failed job.
+     *
+     * @param ctx Failover context.
+     * @param top Collection of all grid nodes within task topology (may include failed node).
+     * @return New node to route this job to or {@code null} if new node cannot be picked.
+     *      If job failover fails (returns {@code null}) the whole task will be failed.
+     */
+    public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top);
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/GridFailoverContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/GridFailoverContext.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/GridFailoverContext.java
deleted file mode 100644
index b89b1db..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/GridFailoverContext.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.compute.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.loadbalancing.*;
-import java.util.*;
-
-/**
- * This interface defines a set of operations available to failover SPI
- * one a given failed job.
- */
-public interface GridFailoverContext {
-    /**
-     * Gets current task session.
-     *
-     * @return Grid task session.
-     */
-    public ComputeTaskSession getTaskSession();
-
-    /**
-     * Gets failed result of job execution.
-     *
-     * @return Result of a failed job.
-     */
-    public ComputeJobResult getJobResult();
-
-    /**
-     * Gets the next balanced node for failed job. Internally this method will
-     * delegate to load balancing SPI (see {@link GridLoadBalancingSpi} to
-     * determine the optimal node for execution.
-     *
-     * @param top Topology to pick balanced node from.
-     * @return The next balanced node.
-     * @throws GridException If anything failed.
-     */
-    public ClusterNode getBalancedNode(List<ClusterNode> top) throws GridException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/GridFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/GridFailoverSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/GridFailoverSpi.java
deleted file mode 100644
index a0f8ac8..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/GridFailoverSpi.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.spi.failover.always.*;
-import org.gridgain.grid.spi.failover.jobstealing.*;
-import org.gridgain.grid.spi.failover.never.*;
-
-import java.util.*;
-
-/**
- * Failover SPI provides developer with ability to supply custom logic for handling
- * failed execution of a grid job. Job execution can fail for a number of reasons:
- * <ul>
- *      <li>Job execution threw an exception (runtime, assertion or error)</li>
- *      <li>Node on which job was execution left topology (crashed or stopped)</li>
- *      <li>Collision SPI on remote node cancelled a job before it got a chance to execute (job rejection).</li>
- * </ul>
- * In all cases failover SPI takes failed job (as failover context) and list of all
- * grid nodes and provides another node on which the job execution will be retried.
- * It is up to failover SPI to make sure that job is not mapped to the node it
- * failed on. The failed node can be retrieved from
- * {@link org.apache.ignite.compute.ComputeJobResult#getNode() GridFailoverContext.getJobResult().node()}
- * method.
- * <p>
- * GridGain comes with the following built-in failover SPI implementations:
- * <ul>
- *      <li>{@link GridNeverFailoverSpi}</li>
- *      <li>{@link GridAlwaysFailoverSpi}</li>
- *      <li>{@link GridJobStealingFailoverSpi}</li>
- * </ul>
- * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
- * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
- * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
- * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
- * methods. Note again that calling methods from this interface on the obtained instance can lead
- * to undefined behavior and explicitly not supported.
- */
-public interface GridFailoverSpi extends IgniteSpi {
-    /**
-     * This method is called when method {@link org.apache.ignite.compute.ComputeTask#result(org.apache.ignite.compute.ComputeJobResult, List)} returns
-     * value {@link org.apache.ignite.compute.ComputeJobResultPolicy#FAILOVER} policy indicating that the result of
-     * job execution must be failed over. Implementation of this method should examine failover
-     * context and choose one of the grid nodes from supplied {@code topology} to retry job execution
-     * on it. For best performance it is advised that {@link GridFailoverContext#getBalancedNode(List)}
-     * method is used to select node for execution of failed job.
-     *
-     * @param ctx Failover context.
-     * @param top Collection of all grid nodes within task topology (may include failed node).
-     * @return New node to route this job to or {@code null} if new node cannot be picked.
-     *      If job failover fails (returns {@code null}) the whole task will be failed.
-     */
-    public ClusterNode failover(GridFailoverContext ctx, List<ClusterNode> top);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpi.java
new file mode 100644
index 0000000..a33e519
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpi.java
@@ -0,0 +1,238 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.failover.always;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.spi.failover.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.util.*;
+
+/**
+ * Failover SPI that always reroutes a failed job to another node.
+ * Note, that at first an attempt will be made to reroute the failed job
+ * to a node that was not part of initial split for a better chance of
+ * success. If no such nodes are available, then an attempt will be made to
+ * reroute the failed job to the nodes in the initial split minus the node
+ * the job is failed on. If none of the above attempts succeeded, then the
+ * job will not be failed over and {@code null} will be returned.
+ * <p>
+ * <h1 class="header">Configuration</h1>
+ * This SPI is default failover SPI and does not have to be explicitly
+ * configured unless configuration parameters need to be changed.
+ * <h2 class="header">Mandatory</h2>
+ * This SPI has no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * This SPI has following optional configuration parameters:
+ * <ul>
+ *      <li>
+ *          Maximum failover attempts for a single job (see {@link #setMaximumFailoverAttempts(int)}).
+ *          If maximum failover attempts is reached, then job will not be failed-over and,
+ *          hence, will fail.
+ *      </li>
+ * </ul>
+ * Here is a Java example how to configure grid with {@code GridAlwaysFailoverSpi} failover SPI.
+ * <pre name="code" class="java">
+ * GridAlwaysFailoverSpi spi = new GridAlwaysFailoverSpi();
+ *
+ * // Override maximum failover attempts.
+ * spi.setMaximumFailoverAttempts(5);
+ *
+ * GridConfiguration cfg = new GridConfiguration();
+ *
+ * // Override default failover SPI.
+ * cfg.setFailoverSpiSpi(spi);
+ *
+ * // Starts grid.
+ * G.start(cfg);
+ * </pre>
+ * Here is an example of how to configure {@code GridAlwaysFailoverSpi} from Spring XML configuration file.
+ * <pre name="code" class="xml">
+ * &lt;property name="failoverSpi"&gt;
+ *     &lt;bean class="org.gridgain.grid.spi.failover.always.GridAlwaysFailoverSpi"&gt;
+ *         &lt;property name="maximumFailoverAttempts" value="5"/&gt;
+ *     &lt;/bean&gt;
+ * &lt;/property&gt;
+ * </pre>
+ * <p>
+ * <img src="http://www.gridgain.com/images/spring-small.png">
+ * <br>
+ * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
+ * @see org.gridgain.grid.spi.failover.FailoverSpi
+ */
+@IgniteSpiMultipleInstancesSupport(true)
+@IgniteSpiConsistencyChecked(optional = true)
+public class AlwaysFailoverSpi extends IgniteSpiAdapter implements FailoverSpi, AlwaysFailoverSpiMBean {
+    /** Maximum number of attempts to execute a failed job on another node (default is {@code 5}). */
+    public static final int DFLT_MAX_FAILOVER_ATTEMPTS = 5;
+
+    /**
+     * Name of job context attribute containing all nodes a job failed on.
+     *
+     * @see org.apache.ignite.compute.ComputeJobContext
+     */
+    public static final String FAILED_NODE_LIST_ATTR = "gg:failover:failednodelist";
+
+    /** Maximum attempts attribute key should be the same on all nodes. */
+    public static final String MAX_FAILOVER_ATTEMPT_ATTR = "gg:failover:maxattempts";
+
+    /** Injected grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Maximum number of attempts to execute a failed job on another node. */
+    private int maxFailoverAttempts = DFLT_MAX_FAILOVER_ATTEMPTS;
+
+    /** Number of jobs that were failed over. */
+    private int totalFailoverJobs;
+
+    /** {@inheritDoc} */
+    @Override public int getMaximumFailoverAttempts() {
+        return maxFailoverAttempts;
+    }
+
+    /**
+     * Sets maximum number of attempts to execute a failed job on another node.
+     * If not specified, {@link #DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
+     *
+     * @param maxFailoverAttempts Maximum number of attempts to execute a failed job on another node.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setMaximumFailoverAttempts(int maxFailoverAttempts) {
+        this.maxFailoverAttempts = maxFailoverAttempts;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalFailoverJobsCount() {
+        return totalFailoverJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Map<String, Object> getNodeAttributes() throws IgniteSpiException {
+        return F.<String, Object>asMap(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR), maxFailoverAttempts);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(String gridName) throws IgniteSpiException {
+        // Start SPI start stopwatch.
+        startStopwatch();
+
+        assertParameter(maxFailoverAttempts >= 0, "maxFailoverAttempts >= 0");
+
+        if (log.isDebugEnabled())
+            log.debug(configInfo("maximumFailoverAttempts", maxFailoverAttempts));
+
+        registerMBean(gridName, this, AlwaysFailoverSpiMBean.class);
+
+        // Ack ok start.
+        if (log.isDebugEnabled())
+            log.debug(startInfo());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        unregisterMBean();
+
+        // Ack ok stop.
+        if (log.isDebugEnabled())
+            log.debug(stopInfo());
+    }
+
+    /** {@inheritDoc} */
+    @SuppressWarnings("unchecked")
+    @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top) {
+        assert ctx != null;
+        assert top != null;
+
+        if (log.isDebugEnabled())
+            log.debug("Received failed job result: " + ctx.getJobResult());
+
+        if (top.isEmpty()) {
+            U.warn(log, "Received empty topology for failover and is forced to fail.");
+
+            // Nowhere to failover to.
+            return null;
+        }
+
+        Collection<UUID> failedNodes = ctx.getJobResult().getJobContext().getAttribute(FAILED_NODE_LIST_ATTR);
+
+        if (failedNodes == null)
+            failedNodes = U.newHashSet(1);
+
+        Integer failoverCnt = failedNodes.size();
+
+        if (failoverCnt >= maxFailoverAttempts) {
+            U.warn(log, "Job failover failed because number of maximum failover attempts is exceeded [failedJob=" +
+                ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']');
+
+            return null;
+        }
+
+        failedNodes.add(ctx.getJobResult().getNode().id());
+
+        // Copy.
+        List<ClusterNode> newTop = new ArrayList<>(top.size());
+
+        for (ClusterNode node : top)
+            if (!failedNodes.contains(node.id()))
+                newTop.add(node);
+
+        if (newTop.isEmpty()) {
+            U.warn(log, "Received topology with only nodes that job had failed on (forced to fail) [failedNodes=" +
+                failedNodes + ']');
+
+            // Nowhere to failover to.
+            return null;
+        }
+
+        try {
+            ClusterNode node = ctx.getBalancedNode(newTop);
+
+            if (node == null)
+                U.warn(log, "Load balancer returned null node for topology: " + newTop);
+            else {
+                // Increment failover count.
+                ctx.getJobResult().getJobContext().setAttribute(FAILED_NODE_LIST_ATTR, failedNodes);
+
+                totalFailoverJobs++;
+            }
+
+            if (node != null)
+                U.warn(log, "Failed over job to a new node [newNode=" + node.id() +
+                    ", oldNode=" + ctx.getJobResult().getNode().id() +
+                    ", sesId=" + ctx.getTaskSession().getId() +
+                    ", job=" + ctx.getJobResult().getJob() +
+                    ", jobCtx=" + ctx.getJobResult().getJobContext() +
+                    ", task=" + ctx.getTaskSession().getTaskName() + ']');
+
+            return node;
+        }
+        catch (GridException e) {
+            U.error(log, "Failed to get next balanced node for failover: " + ctx, e);
+
+            return null;
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override protected List<String> getConsistentAttributeNames() {
+        return Collections.singletonList(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR));
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(AlwaysFailoverSpi.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpiMBean.java
new file mode 100644
index 0000000..d91be08
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/AlwaysFailoverSpiMBean.java
@@ -0,0 +1,36 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.failover.always;
+
+import org.apache.ignite.mbean.*;
+import org.apache.ignite.spi.*;
+
+/**
+ * Management bean for {@link AlwaysFailoverSpi}.
+ */
+@IgniteMBeanDescription("MBean that provides access to always failover SPI configuration.")
+public interface AlwaysFailoverSpiMBean extends IgniteSpiManagementMBean {
+    /**
+     * Gets maximum number of attempts to execute a failed job on another node.
+     * If not specified, {@link AlwaysFailoverSpi#DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
+     *
+     * @return Maximum number of attempts to execute a failed job on another node.
+     */
+    @IgniteMBeanDescription("Maximum number of attempts to execute a failed job on another node.")
+    public int getMaximumFailoverAttempts();
+
+    /**
+     * Get total number of jobs that were failed over.
+     *
+     * @return Total number of failed over jobs.
+     */
+    @IgniteMBeanDescription("Total number of jobs that were failed over.")
+    public int getTotalFailoverJobsCount();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpi.java
deleted file mode 100644
index 81975eb..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpi.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.always;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.util.*;
-
-/**
- * Failover SPI that always reroutes a failed job to another node.
- * Note, that at first an attempt will be made to reroute the failed job
- * to a node that was not part of initial split for a better chance of
- * success. If no such nodes are available, then an attempt will be made to
- * reroute the failed job to the nodes in the initial split minus the node
- * the job is failed on. If none of the above attempts succeeded, then the
- * job will not be failed over and {@code null} will be returned.
- * <p>
- * <h1 class="header">Configuration</h1>
- * This SPI is default failover SPI and does not have to be explicitly
- * configured unless configuration parameters need to be changed.
- * <h2 class="header">Mandatory</h2>
- * This SPI has no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * This SPI has following optional configuration parameters:
- * <ul>
- *      <li>
- *          Maximum failover attempts for a single job (see {@link #setMaximumFailoverAttempts(int)}).
- *          If maximum failover attempts is reached, then job will not be failed-over and,
- *          hence, will fail.
- *      </li>
- * </ul>
- * Here is a Java example how to configure grid with {@code GridAlwaysFailoverSpi} failover SPI.
- * <pre name="code" class="java">
- * GridAlwaysFailoverSpi spi = new GridAlwaysFailoverSpi();
- *
- * // Override maximum failover attempts.
- * spi.setMaximumFailoverAttempts(5);
- *
- * GridConfiguration cfg = new GridConfiguration();
- *
- * // Override default failover SPI.
- * cfg.setFailoverSpiSpi(spi);
- *
- * // Starts grid.
- * G.start(cfg);
- * </pre>
- * Here is an example of how to configure {@code GridAlwaysFailoverSpi} from Spring XML configuration file.
- * <pre name="code" class="xml">
- * &lt;property name="failoverSpi"&gt;
- *     &lt;bean class="org.gridgain.grid.spi.failover.always.GridAlwaysFailoverSpi"&gt;
- *         &lt;property name="maximumFailoverAttempts" value="5"/&gt;
- *     &lt;/bean&gt;
- * &lt;/property&gt;
- * </pre>
- * <p>
- * <img src="http://www.gridgain.com/images/spring-small.png">
- * <br>
- * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
- * @see GridFailoverSpi
- */
-@IgniteSpiMultipleInstancesSupport(true)
-@IgniteSpiConsistencyChecked(optional = true)
-public class GridAlwaysFailoverSpi extends IgniteSpiAdapter implements GridFailoverSpi, GridAlwaysFailoverSpiMBean {
-    /** Maximum number of attempts to execute a failed job on another node (default is {@code 5}). */
-    public static final int DFLT_MAX_FAILOVER_ATTEMPTS = 5;
-
-    /**
-     * Name of job context attribute containing all nodes a job failed on.
-     *
-     * @see org.apache.ignite.compute.ComputeJobContext
-     */
-    public static final String FAILED_NODE_LIST_ATTR = "gg:failover:failednodelist";
-
-    /** Maximum attempts attribute key should be the same on all nodes. */
-    public static final String MAX_FAILOVER_ATTEMPT_ATTR = "gg:failover:maxattempts";
-
-    /** Injected grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Maximum number of attempts to execute a failed job on another node. */
-    private int maxFailoverAttempts = DFLT_MAX_FAILOVER_ATTEMPTS;
-
-    /** Number of jobs that were failed over. */
-    private int totalFailoverJobs;
-
-    /** {@inheritDoc} */
-    @Override public int getMaximumFailoverAttempts() {
-        return maxFailoverAttempts;
-    }
-
-    /**
-     * Sets maximum number of attempts to execute a failed job on another node.
-     * If not specified, {@link #DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
-     *
-     * @param maxFailoverAttempts Maximum number of attempts to execute a failed job on another node.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setMaximumFailoverAttempts(int maxFailoverAttempts) {
-        this.maxFailoverAttempts = maxFailoverAttempts;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalFailoverJobsCount() {
-        return totalFailoverJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Map<String, Object> getNodeAttributes() throws IgniteSpiException {
-        return F.<String, Object>asMap(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR), maxFailoverAttempts);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(String gridName) throws IgniteSpiException {
-        // Start SPI start stopwatch.
-        startStopwatch();
-
-        assertParameter(maxFailoverAttempts >= 0, "maxFailoverAttempts >= 0");
-
-        if (log.isDebugEnabled())
-            log.debug(configInfo("maximumFailoverAttempts", maxFailoverAttempts));
-
-        registerMBean(gridName, this, GridAlwaysFailoverSpiMBean.class);
-
-        // Ack ok start.
-        if (log.isDebugEnabled())
-            log.debug(startInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        unregisterMBean();
-
-        // Ack ok stop.
-        if (log.isDebugEnabled())
-            log.debug(stopInfo());
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override public ClusterNode failover(GridFailoverContext ctx, List<ClusterNode> top) {
-        assert ctx != null;
-        assert top != null;
-
-        if (log.isDebugEnabled())
-            log.debug("Received failed job result: " + ctx.getJobResult());
-
-        if (top.isEmpty()) {
-            U.warn(log, "Received empty topology for failover and is forced to fail.");
-
-            // Nowhere to failover to.
-            return null;
-        }
-
-        Collection<UUID> failedNodes = ctx.getJobResult().getJobContext().getAttribute(FAILED_NODE_LIST_ATTR);
-
-        if (failedNodes == null)
-            failedNodes = U.newHashSet(1);
-
-        Integer failoverCnt = failedNodes.size();
-
-        if (failoverCnt >= maxFailoverAttempts) {
-            U.warn(log, "Job failover failed because number of maximum failover attempts is exceeded [failedJob=" +
-                ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']');
-
-            return null;
-        }
-
-        failedNodes.add(ctx.getJobResult().getNode().id());
-
-        // Copy.
-        List<ClusterNode> newTop = new ArrayList<>(top.size());
-
-        for (ClusterNode node : top)
-            if (!failedNodes.contains(node.id()))
-                newTop.add(node);
-
-        if (newTop.isEmpty()) {
-            U.warn(log, "Received topology with only nodes that job had failed on (forced to fail) [failedNodes=" +
-                failedNodes + ']');
-
-            // Nowhere to failover to.
-            return null;
-        }
-
-        try {
-            ClusterNode node = ctx.getBalancedNode(newTop);
-
-            if (node == null)
-                U.warn(log, "Load balancer returned null node for topology: " + newTop);
-            else {
-                // Increment failover count.
-                ctx.getJobResult().getJobContext().setAttribute(FAILED_NODE_LIST_ATTR, failedNodes);
-
-                totalFailoverJobs++;
-            }
-
-            if (node != null)
-                U.warn(log, "Failed over job to a new node [newNode=" + node.id() +
-                    ", oldNode=" + ctx.getJobResult().getNode().id() +
-                    ", sesId=" + ctx.getTaskSession().getId() +
-                    ", job=" + ctx.getJobResult().getJob() +
-                    ", jobCtx=" + ctx.getJobResult().getJobContext() +
-                    ", task=" + ctx.getTaskSession().getTaskName() + ']');
-
-            return node;
-        }
-        catch (GridException e) {
-            U.error(log, "Failed to get next balanced node for failover: " + ctx, e);
-
-            return null;
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override protected List<String> getConsistentAttributeNames() {
-        return Collections.singletonList(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR));
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridAlwaysFailoverSpi.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiMBean.java
deleted file mode 100644
index 74aeec2..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiMBean.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.always;
-
-import org.apache.ignite.mbean.*;
-import org.apache.ignite.spi.*;
-
-/**
- * Management bean for {@link GridAlwaysFailoverSpi}.
- */
-@IgniteMBeanDescription("MBean that provides access to always failover SPI configuration.")
-public interface GridAlwaysFailoverSpiMBean extends IgniteSpiManagementMBean {
-    /**
-     * Gets maximum number of attempts to execute a failed job on another node.
-     * If not specified, {@link GridAlwaysFailoverSpi#DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
-     *
-     * @return Maximum number of attempts to execute a failed job on another node.
-     */
-    @IgniteMBeanDescription("Maximum number of attempts to execute a failed job on another node.")
-    public int getMaximumFailoverAttempts();
-
-    /**
-     * Get total number of jobs that were failed over.
-     *
-     * @return Total number of failed over jobs.
-     */
-    @IgniteMBeanDescription("Total number of jobs that were failed over.")
-    public int getTotalFailoverJobsCount();
-}


[44/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 896a97d..80c806a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -679,11 +679,11 @@
                                         </group>
                                         <group>
                                             <title>SPI: Failover</title>
-                                            <packages>org.gridgain.grid.spi.failover:org.gridgain.grid.spi.failover.never:org.gridgain.grid.spi.failover.jobstealing:org.gridgain.grid.spi.failover.always</packages>
+                                            <packages>org.gridgain.grid.spi.failover:org.apache.ignite.spi.failover.never:org.apache.ignite.spi.failover.jobstealing:org.apache.ignite.spi.failover.always</packages>
                                         </group>
                                         <group>
                                             <title>SPI: Event Storage</title>
-                                            <packages>org.gridgain.grid.spi.eventstorage:org.gridgain.grid.spi.eventstorage.memory</packages>
+                                            <packages>org.gridgain.grid.spi.eventstorage:org.apache.ignite.spi.eventstorage.memory</packages>
                                         </group>
                                         <group>
                                             <title>Segmentation Detection</title>
@@ -881,11 +881,11 @@
                                         </group>
                                         <group>
                                             <title>SPI: Failover</title>
-                                            <packages>org.gridgain.grid.spi.failover:org.gridgain.grid.spi.failover.never:org.gridgain.grid.spi.failover.jobstealing:org.gridgain.grid.spi.failover.always</packages>
+                                            <packages>org.gridgain.grid.spi.failover:org.apache.ignite.spi.failover.never:org.apache.ignite.spi.failover.jobstealing:org.apache.ignite.spi.failover.always</packages>
                                         </group>
                                         <group>
                                             <title>SPI: Event Storage</title>
-                                            <packages>org.gridgain.grid.spi.eventstorage:org.gridgain.grid.spi.eventstorage.memory</packages>
+                                            <packages>org.gridgain.grid.spi.eventstorage:org.apache.ignite.spi.eventstorage.memory</packages>
                                         </group>
                                         <group>
                                             <title>Segmentation Detection</title>


[20/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
deleted file mode 100644
index bd40d7f..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiWildcardSelfTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.configuration.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.testframework.junits.common.*;
-
-/**
- *
- */
-public class GridTcpDiscoverySpiWildcardSelfTest extends GridCommonAbstractTest {
-    /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
-
-    /** */
-    private static final int NODES = 5;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        TcpDiscoverySpi spi = new TcpDiscoverySpi();
-
-        spi.setIpFinder(IP_FINDER);
-
-        cfg.setDiscoverySpi(spi);
-        cfg.setLocalHost(null);
-
-        return cfg;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testTopology() throws Exception {
-        try {
-            startGridsMultiThreaded(NODES);
-
-            for (int i = 0; i < NODES; i++)
-                assertEquals(NODES, grid(i).nodes().size());
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java
deleted file mode 100644
index 123867e..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/GridTcpDiscoveryIpFinderAbstractSelfTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder;
-
-import org.apache.ignite.resources.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.testframework.junits.common.*;
-
-import java.lang.reflect.*;
-import java.net.*;
-import java.util.*;
-
-/**
- * Abstract test for ip finder.
- */
-public abstract class GridTcpDiscoveryIpFinderAbstractSelfTest<T extends TcpDiscoveryIpFinder>
-    extends GridCommonAbstractTest {
-    /** */
-    private T finder;
-
-    /**
-     * Constructor.
-     *
-     * @throws Exception If any error occurs.
-     */
-    @SuppressWarnings({"AbstractMethodCallInConstructor", "OverriddenMethodCallDuringObjectConstruction"})
-    protected GridTcpDiscoveryIpFinderAbstractSelfTest() throws Exception {
-        super(false);
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        finder = ipFinder();
-
-        injectLogger(finder);
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testIpFinder() throws Exception {
-        finder.initializeLocalAddresses(Arrays.asList(new InetSocketAddress(InetAddress.getLocalHost(), 1000)));
-
-        InetSocketAddress node1 = new InetSocketAddress(InetAddress.getLocalHost(), 1000);
-        InetSocketAddress node2 = new InetSocketAddress(InetAddress.getLocalHost(), 1001);
-
-        List<InetSocketAddress> initAddrs = Arrays.asList(node1, node2);
-
-        finder.registerAddresses(Collections.singletonList(node1));
-
-        finder.registerAddresses(initAddrs);
-
-        Collection<InetSocketAddress> addrs = finder.getRegisteredAddresses();
-
-        for (int i = 0; i < 5 && addrs.size() != 2; i++) {
-            U.sleep(1000);
-
-            addrs = finder.getRegisteredAddresses();
-        }
-
-        assertEquals("Wrong collection size", 2, addrs.size());
-
-        for (InetSocketAddress addr : initAddrs)
-            assert addrs.contains(addr) : "Address is missing (got inconsistent addrs collection): " + addr;
-
-        finder.unregisterAddresses(Collections.singletonList(node1));
-
-        addrs = finder.getRegisteredAddresses();
-
-        for (int i = 0; i < 5 && addrs.size() != 1; i++) {
-            U.sleep(1000);
-
-            addrs = finder.getRegisteredAddresses();
-        }
-
-        assertEquals("Wrong collection size", 1, addrs.size());
-
-        finder.unregisterAddresses(finder.getRegisteredAddresses());
-
-        finder.close();
-    }
-
-    /**
-     * @param finder IP finder.
-     * @throws IllegalAccessException If any error occurs.
-     */
-    protected void injectLogger(T finder) throws IllegalAccessException {
-        assert finder != null;
-
-        for (Class cls = finder.getClass(); cls != Object.class; cls = cls.getSuperclass())
-            for (Field fld : cls.getDeclaredFields())
-                if (fld.getAnnotation(IgniteLoggerResource.class) != null) {
-                    boolean accessible = fld.isAccessible();
-
-                    fld.setAccessible(true);
-
-                    fld.set(finder, log);
-
-                    fld.setAccessible(accessible);
-                }
-    }
-
-    /**
-     * Creates and initializes ip finder.
-     *
-     * @return IP finder.
-     * @throws Exception If any error occurs.
-     */
-    protected abstract T ipFinder() throws Exception;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java
deleted file mode 100644
index 9422458..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc;
-
-import com.mchange.v2.c3p0.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-
-/**
- * JDBC IP finder self test.
- */
-public class GridTcpDiscoveryJdbcIpFinderSelfTest extends
-    GridTcpDiscoveryIpFinderAbstractSelfTest<TcpDiscoveryJdbcIpFinder> {
-    /** */
-    private ComboPooledDataSource dataSrc;
-
-    /** */
-    private boolean initSchema = true;
-
-    /**
-     * Constructor.
-     *
-     * @throws Exception If failed.
-     */
-    public GridTcpDiscoveryJdbcIpFinderSelfTest() throws Exception {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override protected TcpDiscoveryJdbcIpFinder ipFinder() throws Exception {
-        TcpDiscoveryJdbcIpFinder finder = new TcpDiscoveryJdbcIpFinder();
-
-        assert finder.isShared() : "IP finder should be shared by default.";
-
-        dataSrc = new ComboPooledDataSource();
-        dataSrc.setDriverClass("org.h2.Driver");
-
-        if (initSchema)
-            dataSrc.setJdbcUrl("jdbc:h2:mem");
-        else {
-            dataSrc.setJdbcUrl("jdbc:h2:mem:jdbc_ipfinder_not_initialized_schema");
-
-            finder.setInitSchema(false);
-        }
-
-        finder.setDataSource(dataSrc);
-
-        return finder;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testInitSchemaFlag() throws Exception {
-        initSchema = false;
-
-        try {
-            ipFinder().getRegisteredAddresses();
-
-            fail("IP finder didn't throw expected exception.");
-        }
-        catch (IgniteSpiException e) {
-            assertTrue(e.getMessage().contains("IP finder has not been properly initialized"));
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTest() throws Exception {
-        super.afterTest();
-
-        initSchema = true;
-
-        dataSrc.close();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/package.html b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal tests or test related classes and interfaces.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java
deleted file mode 100644
index e24fd57..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast;
-
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.testframework.*;
-
-import java.net.*;
-import java.util.*;
-
-/**
- * GridTcpDiscoveryMulticastIpFinder test.
- */
-public class GridTcpDiscoveryMulticastIpFinderSelfTest
-    extends GridTcpDiscoveryIpFinderAbstractSelfTest<TcpDiscoveryMulticastIpFinder> {
-    /**
-     * @throws Exception In case of error.
-     */
-    public GridTcpDiscoveryMulticastIpFinderSelfTest() throws Exception {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override protected TcpDiscoveryMulticastIpFinder ipFinder() throws Exception {
-        TcpDiscoveryMulticastIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();
-
-        ipFinder.setMulticastGroup(GridTestUtils.getNextMulticastGroup(getClass()));
-        ipFinder.setMulticastPort(GridTestUtils.getNextMulticastPort(getClass()));
-
-        return ipFinder;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    @SuppressWarnings({"TooBroadScope", "BusyWait"})
-    public void testExchange() throws Exception {
-        String locAddr = null;
-
-        TcpDiscoveryMulticastIpFinder ipFinder1 = null;
-        TcpDiscoveryMulticastIpFinder ipFinder2 = null;
-        TcpDiscoveryMulticastIpFinder ipFinder3 = null;
-
-        try {
-            ipFinder1 = ipFinder();
-
-            ipFinder2 = new TcpDiscoveryMulticastIpFinder();
-
-            ipFinder2.setMulticastGroup(ipFinder1.getMulticastGroup());
-            ipFinder2.setMulticastPort(ipFinder1.getMulticastPort());
-
-            ipFinder3 = new TcpDiscoveryMulticastIpFinder();
-
-            ipFinder3.setMulticastGroup(ipFinder1.getMulticastGroup());
-            ipFinder3.setMulticastPort(ipFinder1.getMulticastPort());
-
-            injectLogger(ipFinder1);
-            injectLogger(ipFinder2);
-            injectLogger(ipFinder3);
-
-            ipFinder1.setLocalAddress(locAddr);
-            ipFinder2.setLocalAddress(locAddr);
-            ipFinder3.setLocalAddress(locAddr);
-
-            ipFinder1.initializeLocalAddresses(Collections.singleton(new InetSocketAddress("host1", 1001)));
-            ipFinder2.initializeLocalAddresses(Collections.singleton(new InetSocketAddress("host2", 1002)));
-            ipFinder3.initializeLocalAddresses(Collections.singleton(new InetSocketAddress("host3", 1003)));
-
-            for (int i = 0; i < 5; i++) {
-                Collection<InetSocketAddress> addrs1 = ipFinder1.getRegisteredAddresses();
-                Collection<InetSocketAddress> addrs2 = ipFinder2.getRegisteredAddresses();
-                Collection<InetSocketAddress> addrs3 = ipFinder3.getRegisteredAddresses();
-
-                if (addrs1.size() != 1 || addrs2.size() != 2 || addrs3.size() != 3) {
-                    info("Addrs1: " + addrs1);
-                    info("Addrs2: " + addrs2);
-                    info("Addrs2: " + addrs3);
-
-                    Thread.sleep(1000);
-                }
-                else
-                    break;
-            }
-
-            assertEquals(1, ipFinder1.getRegisteredAddresses().size());
-            assertEquals(2, ipFinder2.getRegisteredAddresses().size());
-            assertEquals(3, ipFinder3.getRegisteredAddresses().size());
-        }
-        finally {
-            if (ipFinder1 != null)
-                ipFinder1.close();
-
-            if (ipFinder2 != null)
-                ipFinder2.close();
-
-            if (ipFinder3 != null)
-                ipFinder3.close();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/package.html b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal tests or test related classes and interfaces.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java
deleted file mode 100644
index 31cb8e2..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs;
-
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * GridTcpDiscoverySharedFsIpFinder test.
- */
-public class GridTcpDiscoverySharedFsIpFinderSelfTest
-    extends GridTcpDiscoveryIpFinderAbstractSelfTest<TcpDiscoverySharedFsIpFinder> {
-    /**
-     * Constructor.
-     *
-     * @throws Exception If any error occurs.
-     */
-    public GridTcpDiscoverySharedFsIpFinderSelfTest() throws Exception {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override protected TcpDiscoverySharedFsIpFinder ipFinder() {
-        TcpDiscoverySharedFsIpFinder finder = new TcpDiscoverySharedFsIpFinder();
-
-        assert finder.isShared() : "Ip finder should be shared by default.";
-
-        File tmpFile = new File(System.getProperty("java.io.tmpdir"), UUID.randomUUID().toString());
-
-        assert !tmpFile.exists();
-
-        if (!tmpFile.mkdir())
-            assert false;
-
-        finder.setPath(tmpFile.getAbsolutePath());
-
-        return finder;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/package.html b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal tests or test related classes and interfaces.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java
deleted file mode 100644
index 76dded6..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/GridTcpDiscoveryVmIpFinderSelfTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.vm;
-
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-
-import java.util.*;
-
-/**
- * GridTcpDiscoveryVmIpFinder test.
- */
-public class GridTcpDiscoveryVmIpFinderSelfTest
-    extends GridTcpDiscoveryIpFinderAbstractSelfTest<TcpDiscoveryVmIpFinder> {
-    /**
-     * Constructor.
-     *
-     * @throws Exception If any error occurs.
-     */
-    public GridTcpDiscoveryVmIpFinderSelfTest() throws Exception {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override protected TcpDiscoveryVmIpFinder ipFinder() {
-        TcpDiscoveryVmIpFinder finder = new TcpDiscoveryVmIpFinder();
-
-        assert !finder.isShared() : "Ip finder should NOT be shared by default.";
-
-        return finder;
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testAddressesInitialization() throws Exception {
-        TcpDiscoveryVmIpFinder finder = ipFinder();
-
-        try {
-            finder.setAddresses(Arrays.asList("127.0.0.1:475000001"));
-
-            assert false;
-        }
-        catch (IgniteSpiException e) {
-            info("Caught expected exception: " + e);
-
-            assert e.getMessage().contains("127.0.0.1:475000001");
-        }
-
-        try {
-            finder.setAddresses(Arrays.asList("127.0.0.1:-2"));
-
-            assert false;
-        }
-        catch (IgniteSpiException e) {
-            info("Caught expected exception: " + e);
-
-            assert e.getMessage().contains("127.0.0.1:-2");
-        }
-
-        finder.setAddresses(Arrays.asList("127.0.0.1:45555", "8.8.8.8", "some-dns-name", "some-dns-name1:200",
-            "127.0.0.1:"));
-
-        info("IP finder initialized: " + finder);
-
-        assert finder.getRegisteredAddresses().size() == 5;
-
-        finder = ipFinder();
-
-        try {
-            finder.setAddresses(Collections.singleton("127.0.0.1:555..444"));
-
-            assert false;
-        }
-        catch (IgniteSpiException e) {
-            info("Caught expected exception: " + e);
-        }
-
-        try {
-            finder.setAddresses(Collections.singleton("127.0.0.1:0..444"));
-
-            assert false;
-        }
-        catch (IgniteSpiException e) {
-            info("Caught expected exception: " + e);
-        }
-
-        try {
-            finder.setAddresses(Collections.singleton("127.0.0.1:-8080..-80"));
-
-            assert false;
-        }
-        catch (IgniteSpiException e) {
-            info("Caught expected exception: " + e);
-        }
-
-        finder.setAddresses(Collections.singleton("127.0.0.1:47500..47509"));
-
-        assert finder.getRegisteredAddresses().size() == 10 : finder.getRegisteredAddresses();
-    }
-
-    /**
-     * @throws Exception If any error occurs.
-     */
-    public void testIpV6AddressesInitialization() throws Exception {
-        TcpDiscoveryVmIpFinder finder = ipFinder();
-
-        try {
-            finder.setAddresses(Arrays.asList("[::1]:475000001"));
-
-            fail();
-        }
-        catch (IgniteSpiException e) {
-            info("Caught expected exception: " + e);
-        }
-
-        try {
-            finder.setAddresses(Arrays.asList("[::1]:-2"));
-
-            fail();
-        }
-        catch (IgniteSpiException e) {
-            info("Caught expected exception: " + e);
-        }
-
-        finder.setAddresses(Arrays.asList("[::1]:45555", "8.8.8.8", "some-dns-name", "some-dns-name1:200", "::1"));
-
-        info("IP finder initialized: " + finder);
-
-        assertEquals(5, finder.getRegisteredAddresses().size());
-
-        finder = ipFinder();
-
-        try {
-            finder.setAddresses(Collections.singleton("[::1]:555..444"));
-
-            fail();
-        }
-        catch (IgniteSpiException e) {
-            info("Caught expected exception: " + e);
-        }
-
-        try {
-            finder.setAddresses(Collections.singleton("[::1]:0..444"));
-
-            fail();
-        }
-        catch (IgniteSpiException e) {
-            info("Caught expected exception: " + e);
-        }
-
-        try {
-            finder.setAddresses(Collections.singleton("[::1]:-8080..-80"));
-
-            fail();
-        }
-        catch (IgniteSpiException e) {
-            info("Caught expected exception: " + e);
-        }
-
-        finder.setAddresses(Collections.singleton("0:0:0:0:0:0:0:1"));
-
-        assertEquals(1, finder.getRegisteredAddresses().size());
-
-        finder.setAddresses(Collections.singleton("[0:0:0:0:0:0:0:1]"));
-
-        assertEquals(1, finder.getRegisteredAddresses().size());
-
-        finder.setAddresses(Collections.singleton("[0:0:0:0:0:0:0:1]:47509"));
-
-        assertEquals(1, finder.getRegisteredAddresses().size());
-
-        finder.setAddresses(Collections.singleton("[::1]:47500..47509"));
-
-        assertEquals("Registered addresses: " + finder.getRegisteredAddresses().toString(),
-            10, finder.getRegisteredAddresses().size());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/package.html b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/vm/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal tests or test related classes and interfaces.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/package.html b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains internal tests or test related classes and interfaces.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/swapspace/noop/GridNoopSwapSpaceSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/swapspace/noop/GridNoopSwapSpaceSpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/swapspace/noop/GridNoopSwapSpaceSpiSelfTest.java
index 4105847..9a1cbc7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/swapspace/noop/GridNoopSwapSpaceSpiSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/swapspace/noop/GridNoopSwapSpaceSpiSelfTest.java
@@ -11,8 +11,8 @@ package org.gridgain.grid.spi.swapspace.noop;
 
 import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.swapspace.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java
index 739085b..3ef53ac 100644
--- a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithSpecifiedWorkDirectorySelfTest.java
@@ -13,9 +13,9 @@ import junit.framework.*;
 import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.logger.java.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java
index 03d68b3..977fc72 100644
--- a/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/util/GridStartupWithUndefinedGridGainHomeSelfTest.java
@@ -12,9 +12,9 @@ import junit.framework.*;
 import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.logger.java.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java
index 12eb861..ccb7c27 100644
--- a/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/util/GridTopologyHeapSizeSelfTest.java
@@ -11,10 +11,10 @@ package org.gridgain.grid.util;
 
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryNodeStartup.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryNodeStartup.java b/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryNodeStartup.java
index e53c3a1..c72f2da 100644
--- a/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryNodeStartup.java
+++ b/modules/core/src/test/java/org/gridgain/grid/util/ipc/shmem/GridIpcSharedMemoryNodeStartup.java
@@ -13,8 +13,8 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.fs.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java
index 4f0663e..068b83a 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/GridCacheMultiNodeLoadTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.lru.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java
index 7e6c260..017a864 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheAffinityTransactionsOffHeapTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import java.io.*;
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheSingleNodeLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheSingleNodeLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheSingleNodeLoadTest.java
index 4f4e261..dd18b81 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheSingleNodeLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheSingleNodeLoadTest.java
@@ -14,8 +14,8 @@ import org.apache.ignite.thread.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.lru.*;
 import org.apache.ignite.spi.collision.fifoqueue.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheWriteBehindStoreLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheWriteBehindStoreLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheWriteBehindStoreLoadTest.java
index 57b62a6..ee984db 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheWriteBehindStoreLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/cache/GridCacheWriteBehindStoreLoadTest.java
@@ -14,8 +14,8 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/capacity/spring-capacity-cache.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/capacity/spring-capacity-cache.xml b/modules/core/src/test/java/org/gridgain/loadtests/capacity/spring-capacity-cache.xml
index 57538ad..8d50201 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/capacity/spring-capacity-cache.xml
+++ b/modules/core/src/test/java/org/gridgain/loadtests/capacity/spring-capacity-cache.xml
@@ -88,9 +88,9 @@
             (at least one address must be provided).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/colocation/spring-colocation.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/colocation/spring-colocation.xml b/modules/core/src/test/java/org/gridgain/loadtests/colocation/spring-colocation.xml
index 83087cd..51c7cf7 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/colocation/spring-colocation.xml
+++ b/modules/core/src/test/java/org/gridgain/loadtests/colocation/spring-colocation.xml
@@ -159,9 +159,9 @@
             (at least one address must be provided).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java b/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java
index 16bb1df..6153da0 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/communication/GridIoManagerBenchmark0.java
@@ -17,9 +17,9 @@ import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java
index e069208..500a21b 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/datastructures/GridCachePartitionedAtomicLongLoadTest.java
@@ -15,9 +15,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.cache.datastructures.*;
 import org.gridgain.grid.cache.eviction.lru.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.concurrent.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/direct/multisplit/GridMultiSplitsLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/direct/multisplit/GridMultiSplitsLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/direct/multisplit/GridMultiSplitsLoadTest.java
index ec29d18..15b05f9 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/direct/multisplit/GridMultiSplitsLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/direct/multisplit/GridMultiSplitsLoadTest.java
@@ -16,8 +16,8 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.loadtest.*;
 import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.config.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/direct/newnodes/GridSingleSplitsNewNodesAbstractLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/direct/newnodes/GridSingleSplitsNewNodesAbstractLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/direct/newnodes/GridSingleSplitsNewNodesAbstractLoadTest.java
index 28f1315..178c902 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/direct/newnodes/GridSingleSplitsNewNodesAbstractLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/direct/newnodes/GridSingleSplitsNewNodesAbstractLoadTest.java
@@ -15,7 +15,7 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.thread.*;
 import org.gridgain.grid.loadtest.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.*;
+import org.apache.ignite.spi.discovery.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.config.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/direct/newnodes/GridSingleSplitsNewNodesMulticastLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/direct/newnodes/GridSingleSplitsNewNodesMulticastLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/direct/newnodes/GridSingleSplitsNewNodesMulticastLoadTest.java
index 7125d35..6619fef 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/direct/newnodes/GridSingleSplitsNewNodesMulticastLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/direct/newnodes/GridSingleSplitsNewNodesMulticastLoadTest.java
@@ -10,8 +10,8 @@
 package org.gridgain.loadtests.direct.newnodes;
 
 import org.apache.ignite.configuration.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.testframework.junits.common.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/direct/redeploy/GridSingleSplitsRedeployLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/direct/redeploy/GridSingleSplitsRedeployLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/direct/redeploy/GridSingleSplitsRedeployLoadTest.java
index 565214c..e7a4aee 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/direct/redeploy/GridSingleSplitsRedeployLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/direct/redeploy/GridSingleSplitsRedeployLoadTest.java
@@ -16,8 +16,8 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.loadtest.*;
 import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.config.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java b/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java
index c396189..1656512 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/direct/stealing/GridStealingLoadTest.java
@@ -14,8 +14,8 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.loadtest.*;
 import org.apache.ignite.spi.collision.jobstealing.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.grid.spi.failover.jobstealing.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.config.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java b/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java
index 85f3e3d..fad2628 100644
--- a/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java
+++ b/modules/core/src/test/java/org/gridgain/loadtests/swap/GridSwapEvictAllBenchmark.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.swapspace.file.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.loadtests.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/testframework/GridSpiTestContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testframework/GridSpiTestContext.java b/modules/core/src/test/java/org/gridgain/testframework/GridSpiTestContext.java
index 1b59aa3..dfc1c7f 100644
--- a/modules/core/src/test/java/org/gridgain/testframework/GridSpiTestContext.java
+++ b/modules/core/src/test/java/org/gridgain/testframework/GridSpiTestContext.java
@@ -17,7 +17,7 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.managers.eventstorage.*;
 import org.gridgain.grid.security.*;
-import org.gridgain.grid.spi.discovery.*;
+import org.apache.ignite.spi.discovery.*;
 import org.gridgain.grid.spi.swapspace.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/gridgain/testframework/junits/GridAbstractTest.java
index 15271ad..7f97db7 100644
--- a/modules/core/src/test/java/org/gridgain/testframework/junits/GridAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/testframework/junits/GridAbstractTest.java
@@ -26,8 +26,8 @@ import org.gridgain.grid.kernal.processors.license.*;
 import org.gridgain.grid.kernal.processors.resource.*;
 import org.apache.ignite.spi.checkpoint.sharedfs.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractConfigTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractConfigTest.java b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractConfigTest.java
index b02a85f..a9bd78c 100644
--- a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractConfigTest.java
+++ b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractConfigTest.java
@@ -10,7 +10,7 @@
 package org.gridgain.testframework.junits.spi;
 
 import org.apache.ignite.spi.*;
-import org.gridgain.grid.spi.discovery.*;
+import org.apache.ignite.spi.discovery.*;
 import org.jetbrains.annotations.*;
 
 import java.lang.reflect.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
index 4b9b4ac..798c1dd 100644
--- a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
@@ -17,11 +17,11 @@ import org.gridgain.grid.kernal.managers.security.*;
 import org.gridgain.grid.security.*;
 import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiTest.java b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiTest.java
index 195f226..cc1b236 100644
--- a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiTest.java
+++ b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiTest.java
@@ -10,8 +10,8 @@
 package org.gridgain.testframework.junits.spi;
 
 import org.apache.ignite.spi.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 
 import java.lang.annotation.*;
 
@@ -42,7 +42,7 @@ public @interface GridSpiTest {
 
     /**
      * Optional discovery SPI property to specify which SPI to use for discovering other nodes.
-     * This property is ignored if the spi being tested is an implementation of {@link org.gridgain.grid.spi.discovery.DiscoverySpi} or
+     * This property is ignored if the spi being tested is an implementation of {@link org.apache.ignite.spi.discovery.DiscoverySpi} or
      * {@link #triggerDiscovery()} is set to {@code false}.
      */
     public Class<? extends DiscoverySpi> discoverySpi() default TcpDiscoverySpi.class;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/testsuites/GridSpiDiscoverySelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testsuites/GridSpiDiscoverySelfTestSuite.java b/modules/core/src/test/java/org/gridgain/testsuites/GridSpiDiscoverySelfTestSuite.java
index e056b52..09e3186 100644
--- a/modules/core/src/test/java/org/gridgain/testsuites/GridSpiDiscoverySelfTestSuite.java
+++ b/modules/core/src/test/java/org/gridgain/testsuites/GridSpiDiscoverySelfTestSuite.java
@@ -11,11 +11,11 @@ package org.gridgain.testsuites;
 
 import junit.framework.*;
 import org.gridgain.grid.spi.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.jdbc.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.sharedfs.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 /**
  * Test suite for all discovery spi implementations.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/testsuites/GridUtilSelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testsuites/GridUtilSelfTestSuite.java b/modules/core/src/test/java/org/gridgain/testsuites/GridUtilSelfTestSuite.java
index b7bb17b..5c05824 100644
--- a/modules/core/src/test/java/org/gridgain/testsuites/GridUtilSelfTestSuite.java
+++ b/modules/core/src/test/java/org/gridgain/testsuites/GridUtilSelfTestSuite.java
@@ -12,7 +12,7 @@ package org.gridgain.testsuites;
 import junit.framework.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.lang.*;
-import org.gridgain.grid.spi.discovery.*;
+import org.apache.ignite.spi.discovery.*;
 import org.gridgain.grid.thread.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.mbeans.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/webapp/META-INF/gg-config.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/webapp/META-INF/gg-config.xml b/modules/core/src/test/webapp/META-INF/gg-config.xml
index 57d0a96..b0f0af8 100644
--- a/modules/core/src/test/webapp/META-INF/gg-config.xml
+++ b/modules/core/src/test/webapp/META-INF/gg-config.xml
@@ -283,9 +283,9 @@
             of one or more servers which will always be started first.
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
index 4a77163..f5cd2c3 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
@@ -23,9 +23,9 @@ import org.gridgain.grid.kernal.ggfs.hadoop.*;
 import org.gridgain.grid.kernal.processors.ggfs.*;
 import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopDualAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopDualAbstractSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopDualAbstractSelfTest.java
index b77e386..f7b935d 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopDualAbstractSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopDualAbstractSelfTest.java
@@ -17,8 +17,8 @@ import org.apache.ignite.fs.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.ggfs.hadoop.*;
 import org.gridgain.grid.kernal.processors.ggfs.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java
index d58c7a1..756191e 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemAbstractSelfTest.java
@@ -24,9 +24,9 @@ import org.gridgain.grid.kernal.ggfs.hadoop.*;
 import org.gridgain.grid.kernal.processors.ggfs.*;
 import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemClientSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemClientSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemClientSelfTest.java
index e11bc13..7386f31 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemClientSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemClientSelfTest.java
@@ -18,8 +18,8 @@ import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.ggfs.common.*;
 import org.gridgain.grid.kernal.ggfs.hadoop.*;
 import org.gridgain.grid.kernal.processors.ggfs.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
index 8d0b646..fc442e6 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
@@ -18,9 +18,9 @@ import org.apache.ignite.fs.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.ggfs.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
index d984d55..3b702e8 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
@@ -17,9 +17,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.ggfs.hadoop.*;
 import org.gridgain.grid.kernal.processors.ggfs.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.ipc.shmem.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
index e5b6890..b05070f 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
@@ -18,8 +18,8 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.ggfs.hadoop.v1.*;
 import org.gridgain.grid.kernal.ggfs.common.*;
 import org.gridgain.grid.kernal.processors.ggfs.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java
index d4f0603..dc67aab 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java
@@ -18,8 +18,8 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.ggfs.hadoop.v1.*;
 import org.gridgain.grid.kernal.ggfs.hadoop.*;
 import org.gridgain.grid.kernal.processors.ggfs.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java
index 5b7d74f..7829a09 100644
--- a/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java
+++ b/modules/hadoop/src/test/java/org/gridgain/grid/ggfs/GridGgfsNearOnlyMultiNodeSelfTest.java
@@ -16,9 +16,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.fs.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.ipc.shmem.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheConfigurationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheConfigurationSelfTest.java b/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheConfigurationSelfTest.java
index e98103e..5bb5392 100644
--- a/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheConfigurationSelfTest.java
+++ b/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheConfigurationSelfTest.java
@@ -11,8 +11,8 @@ package org.gridgain.grid.cache.hibernate;
 
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.hibernate.*;
 import org.hibernate.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java b/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java
index 51f1565..4700c9e 100644
--- a/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java
+++ b/modules/hibernate/src/test/java/org/gridgain/grid/cache/hibernate/GridHibernateL2CacheSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.cache.hibernate;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 import org.hibernate.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
index 3966b70..0ae13c5 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFieldsQuerySelfTest.java
@@ -17,10 +17,10 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.processors.cache.query.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java
index 6db5615..ede7b64 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractQuerySelfTest.java
@@ -20,9 +20,9 @@ import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.cache.store.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.grid.spi.swapspace.file.*;
 import org.gridgain.grid.util.tostring.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
index 20c6146..72e171e 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java
index c74556e..7e9cc9b 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.grid.spi.swapspace.file.*;
 import org.gridgain.grid.util.lang.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java
index 9654fb6..034d433 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryLoadSelfTest.java
@@ -17,9 +17,9 @@ import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.cache.store.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java
index 9410c94..10adf07 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMetricsSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java
index 01dc06a..a512a2f 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryMultiThreadedSelfTest.java
@@ -20,9 +20,9 @@ import org.gridgain.grid.cache.eviction.lru.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.grid.spi.swapspace.file.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java
index 6db0a1c..18101a4 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheQueryUserResourceSelfTest.java
@@ -15,10 +15,10 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java
index 935045d..11ddf84 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSqlQueryMultiThreadedSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.indexing.h2.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java
index 1f71618..14bf8ec 100644
--- a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java
+++ b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapSelfTest.java
@@ -16,9 +16,9 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.swapspace.*;
 import org.gridgain.grid.spi.swapspace.noop.*;
 import org.gridgain.grid.util.typedef.*;


[28/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java
deleted file mode 100644
index 70a705b..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Base class to implement discovery messages.
- */
-public abstract class TcpDiscoveryAbstractMessage implements Externalizable {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** */
-    protected static final int CLIENT_FLAG_POS = 0;
-
-    /** */
-    protected static final int RESPONDED_FLAG_POS = 1;
-
-    /** */
-    protected static final int CLIENT_RECON_SUCCESS_FLAG_POS = 2;
-
-    /** Sender of the message (transient). */
-    private UUID senderNodeId;
-
-    /** Message ID. */
-    private IgniteUuid id;
-
-    /** Verifier node ID. */
-    private UUID verifierNodeId;
-
-    /** Topology version. */
-    private long topVer;
-
-    /** Destination client node ID. */
-    private UUID destClientNodeId;
-
-    /** Flags. */
-    @GridToStringExclude
-    private int flags;
-
-    /** Pending message index. */
-    private short pendingIdx;
-
-    /**
-     * Default no-arg constructor for {@link Externalizable} interface.
-     */
-    protected TcpDiscoveryAbstractMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     */
-    protected TcpDiscoveryAbstractMessage(UUID creatorNodeId) {
-        id = IgniteUuid.fromUuid(creatorNodeId);
-    }
-
-    /**
-     * Gets creator node.
-     *
-     * @return Creator node ID.
-     */
-    public UUID creatorNodeId() {
-        return id.globalId();
-    }
-
-    /**
-     * Gets message ID.
-     *
-     * @return Message ID.
-     */
-    public IgniteUuid id() {
-        return id;
-    }
-
-    /**
-     * Gets sender node ID.
-     *
-     * @return Sender node ID.
-     */
-    public UUID senderNodeId() {
-        return senderNodeId;
-    }
-
-    /**
-     * Sets sender node ID.
-     *
-     * @param senderNodeId Sender node ID.
-     */
-    public void senderNodeId(UUID senderNodeId) {
-        this.senderNodeId = senderNodeId;
-    }
-
-    /**
-     * Checks whether message is verified.
-     *
-     * @return {@code true} if message was verified.
-     */
-    public boolean verified() {
-        return verifierNodeId != null;
-    }
-
-    /**
-     * Gets verifier node ID.
-     *
-     * @return verifier node ID.
-     */
-    public UUID verifierNodeId() {
-        return verifierNodeId;
-    }
-
-    /**
-     * Verifies the message and stores verifier ID.
-     *
-     * @param verifierNodeId Verifier node ID.
-     */
-    public void verify(UUID verifierNodeId) {
-        this.verifierNodeId = verifierNodeId;
-    }
-
-    /**
-     * Gets topology version.
-     *
-     * @return Topology version.
-     */
-    public long topologyVersion() {
-        return topVer;
-    }
-
-    /**
-     * Sets topology version.
-     *
-     * @param topVer Topology version.
-     */
-    public void topologyVersion(long topVer) {
-        this.topVer = topVer;
-    }
-
-    /**
-     * Get client node flag.
-     *
-     * @return Client node flag.
-     */
-    public boolean client() {
-        return getFlag(CLIENT_FLAG_POS);
-    }
-
-    /**
-     * Sets client node flag.
-     *
-     * @param client Client node flag.
-     */
-    public void client(boolean client) {
-        setFlag(CLIENT_FLAG_POS, client);
-    }
-
-    /**
-     * @return Destination client node ID.
-     */
-    public UUID destinationClientNodeId() {
-        return destClientNodeId;
-    }
-
-    /**
-     * @param destClientNodeId Destination client node ID.
-     */
-    public void destinationClientNodeId(UUID destClientNodeId) {
-        this.destClientNodeId = destClientNodeId;
-    }
-
-    /**
-     * @return Pending message index.
-     */
-    public short pendingIndex() {
-        return pendingIdx;
-    }
-
-    /**
-     * @param pendingIdx Pending message index.
-     */
-    public void pendingIndex(short pendingIdx) {
-        this.pendingIdx = pendingIdx;
-    }
-
-    /**
-     * @param pos Flag position.
-     * @return Flag value.
-     */
-    protected boolean getFlag(int pos) {
-        assert pos >= 0 && pos < 32;
-
-        int mask = 1 << pos;
-
-        return (flags & mask) == mask;
-    }
-
-    /**
-     * @param pos Flag position.
-     * @param val Flag value.
-     */
-    protected void setFlag(int pos, boolean val) {
-        assert pos >= 0 && pos < 32;
-
-        int mask = 1 << pos;
-
-        if (val)
-            flags |= mask;
-        else
-            flags &= ~mask;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        U.writeGridUuid(out, id);
-        U.writeUuid(out, verifierNodeId);
-        out.writeLong(topVer);
-        U.writeUuid(out, destClientNodeId);
-        out.writeInt(flags);
-        out.writeShort(pendingIdx);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        id = U.readGridUuid(in);
-        verifierNodeId = U.readUuid(in);
-        topVer = in.readLong();
-        destClientNodeId = U.readUuid(in);
-        flags = in.readInt();
-        pendingIdx = in.readShort();
-    }
-
-    /** {@inheritDoc} */
-    @Override public final boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-        else if (obj instanceof TcpDiscoveryAbstractMessage)
-            return id.equals(((TcpDiscoveryAbstractMessage)obj).id);
-
-        return false;
-    }
-
-    /** {@inheritDoc} */
-    @Override public final int hashCode() {
-        return id.hashCode();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryAbstractMessage.class, this, "isClient", getFlag(CLIENT_FLAG_POS));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
deleted file mode 100644
index 906b687..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-/**
- * Message telling joining node that its authentication failed on coordinator.
- */
-public class TcpDiscoveryAuthFailedMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Coordinator address. */
-    private InetAddress addr;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryAuthFailedMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param addr Coordinator address.
-     */
-    public TcpDiscoveryAuthFailedMessage(UUID creatorNodeId, InetAddress addr) {
-        super(creatorNodeId);
-
-        this.addr = addr;
-    }
-
-    /**
-     * @return Coordinator address.
-     */
-    public InetAddress address() {
-        return addr;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeByteArray(out, addr.getAddress());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        addr = InetAddress.getByAddress(U.readByteArray(in));
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryAuthFailedMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryCheckFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryCheckFailedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryCheckFailedMessage.java
deleted file mode 100644
index 9247b68..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryCheckFailedMessage.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message telling joining node that it failed coordinator's validation check.
- */
-public class TcpDiscoveryCheckFailedMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Coordinator version. */
-    private String err;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryCheckFailedMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param err Error message from coordinator.
-     */
-    public TcpDiscoveryCheckFailedMessage(UUID creatorNodeId, String err) {
-        super(creatorNodeId);
-
-        this.err = err;
-    }
-
-    /**
-     * @return Error message from coordinator.
-     */
-    public String error() {
-        return err;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeString(out, err);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        err = U.readString(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryCheckFailedMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryClientReconnectMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryClientReconnectMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryClientReconnectMessage.java
deleted file mode 100644
index 4951f5b..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryClientReconnectMessage.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message telling that client node is reconnecting to topology.
- */
-public class TcpDiscoveryClientReconnectMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** New router nodeID. */
-    private UUID routerNodeId;
-
-    /** Last message ID. */
-    private IgniteUuid lastMsgId;
-
-    /** Pending messages. */
-    @GridToStringExclude
-    private Collection<TcpDiscoveryAbstractMessage> msgs;
-
-    /**
-     * For {@link Externalizable}.
-     */
-    public TcpDiscoveryClientReconnectMessage() {
-        // No-op.
-    }
-
-    /**
-     * @param creatorNodeId Creator node ID.
-     * @param routerNodeId New router node ID.
-     * @param lastMsgId Last message ID.
-     */
-    public TcpDiscoveryClientReconnectMessage(UUID creatorNodeId, UUID routerNodeId, IgniteUuid lastMsgId) {
-        super(creatorNodeId);
-
-        this.routerNodeId = routerNodeId;
-        this.lastMsgId = lastMsgId;
-    }
-
-    /**
-     * @return New router node ID.
-     */
-    public UUID routerNodeId() {
-        return routerNodeId;
-    }
-
-    /**
-     * @return Last message ID.
-     */
-    public IgniteUuid lastMessageId() {
-        return lastMsgId;
-    }
-
-    /**
-     * @param msgs Pending messages.
-     */
-    public void pendingMessages(Collection<TcpDiscoveryAbstractMessage> msgs) {
-        this.msgs = msgs;
-    }
-
-    /**
-     * @return Pending messages.
-     */
-    public Collection<TcpDiscoveryAbstractMessage> pendingMessages() {
-        return msgs;
-    }
-
-    /**
-     * @param success Success flag.
-     */
-    public void success(boolean success) {
-        setFlag(CLIENT_RECON_SUCCESS_FLAG_POS, success);
-    }
-
-    /**
-     * @return Success flag.
-     */
-    public boolean success() {
-        return getFlag(CLIENT_RECON_SUCCESS_FLAG_POS);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeUuid(out, routerNodeId);
-        U.writeGridUuid(out, lastMsgId);
-        U.writeCollection(out, msgs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        routerNodeId = U.readUuid(in);
-        lastMsgId = U.readGridUuid(in);
-        msgs = U.readCollection(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryClientReconnectMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDiscardMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDiscardMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDiscardMessage.java
deleted file mode 100644
index a607285..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDiscardMessage.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message sent by coordinator when some operation handling is over. All receiving
- * nodes should discard this and all preceding messages in local buffers.
- */
-public class TcpDiscoveryDiscardMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** ID of the message to discard (this and all preceding). */
-    private IgniteUuid msgId;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryDiscardMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param msgId Message ID.
-     */
-    public TcpDiscoveryDiscardMessage(UUID creatorNodeId, IgniteUuid msgId) {
-        super(creatorNodeId);
-
-        this.msgId = msgId;
-    }
-
-    /**
-     * Gets message ID to discard (this and all preceding).
-     *
-     * @return Message ID.
-     */
-    public IgniteUuid msgId() {
-        return msgId;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeGridUuid(out, msgId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        msgId = U.readGridUuid(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryDiscardMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java
deleted file mode 100644
index 755f10e..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message telling joining node that new topology already contain
- * different node with same ID.
- */
-public class TcpDiscoveryDuplicateIdMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Node with duplicate ID. */
-    private TcpDiscoveryNode node;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryDuplicateIdMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param node Node with same ID.
-     */
-    public TcpDiscoveryDuplicateIdMessage(UUID creatorNodeId, TcpDiscoveryNode node) {
-        super(creatorNodeId);
-
-        assert node != null;
-
-        this.node = node;
-    }
-
-    /**
-     * @return Node with duplicate ID.
-     */
-    public TcpDiscoveryNode node() {
-        return node;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeObject(node);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        node = (TcpDiscoveryNode)in.readObject();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryDuplicateIdMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryEnsureDelivery.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryEnsureDelivery.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryEnsureDelivery.java
deleted file mode 100644
index d6b90da..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryEnsureDelivery.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import java.lang.annotation.*;
-
-/**
- * Message classes with this annotation attached are processed in a special way to
- * ensure messages delivery.
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface TcpDiscoveryEnsureDelivery {
-    // No-op.
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java
deleted file mode 100644
index 5fc78dd..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Handshake request.
- */
-public class TcpDiscoveryHandshakeRequest extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryHandshakeRequest() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     */
-    public TcpDiscoveryHandshakeRequest(UUID creatorNodeId) {
-        super(creatorNodeId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryHandshakeRequest.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
deleted file mode 100644
index 0413216..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Handshake response.
- */
-public class TcpDiscoveryHandshakeResponse extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** */
-    private long order;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryHandshakeResponse() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param locNodeOrder Local node order.
-     */
-    public TcpDiscoveryHandshakeResponse(UUID creatorNodeId, long locNodeOrder) {
-        super(creatorNodeId);
-
-        order = locNodeOrder;
-    }
-
-    /**
-     * Gets order of the node sent the response.
-     *
-     * @return Order of the node sent the response.
-     */
-    public long order() {
-        return order;
-    }
-
-    /**
-     * Sets order of the node sent the response.
-     *
-     * @param order Order of the node sent the response.
-     */
-    public void order(long order) {
-        this.order = order;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeLong(order);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        order = in.readLong();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryHandshakeResponse.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java
deleted file mode 100644
index 4632eaf..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.apache.ignite.cluster.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-import static org.gridgain.grid.spi.discovery.DiscoveryMetricsHelper.*;
-
-/**
- * Heartbeat message.
- * <p>
- * It is sent by coordinator node across the ring once a configured period.
- * Message makes two passes:
- * <ol>
- *      <li>During first pass, all nodes add their metrics to the message and
- *          update local metrics with metrics currently present in the message.</li>
- *      <li>During second pass, all nodes update all metrics present in the message
- *          and remove their own metrics from the message.</li>
- * </ol>
- * When message reaches coordinator second time it is discarded (it finishes the
- * second pass).
- */
-@TcpDiscoveryRedirectToClient
-public class TcpDiscoveryHeartbeatMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Map to store nodes metrics. */
-    @GridToStringExclude
-    private Map<UUID, MetricsSet> metrics;
-
-    /** Client node IDs. */
-    private Collection<UUID> clientNodeIds;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryHeartbeatMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node.
-     */
-    public TcpDiscoveryHeartbeatMessage(UUID creatorNodeId) {
-        super(creatorNodeId);
-
-        metrics = U.newHashMap(1);
-        clientNodeIds = new HashSet<>();
-    }
-
-    /**
-     * Sets metrics for particular node.
-     *
-     * @param nodeId Node ID.
-     * @param metrics Node metrics.
-     */
-    public void setMetrics(UUID nodeId, ClusterNodeMetrics metrics) {
-        assert nodeId != null;
-        assert metrics != null;
-        assert !this.metrics.containsKey(nodeId);
-
-        this.metrics.put(nodeId, new MetricsSet(metrics));
-    }
-
-    /**
-     * Sets metrics for a client node.
-     *
-     * @param nodeId Server node ID.
-     * @param clientNodeId Client node ID.
-     * @param metrics Node metrics.
-     */
-    public void setClientMetrics(UUID nodeId, UUID clientNodeId, ClusterNodeMetrics metrics) {
-        assert nodeId != null;
-        assert clientNodeId != null;
-        assert metrics != null;
-        assert this.metrics.containsKey(nodeId);
-
-        this.metrics.get(nodeId).addClientMetrics(clientNodeId, metrics);
-    }
-
-    /**
-     * Removes metrics for particular node from the message.
-     *
-     * @param nodeId Node ID.
-     */
-    public void removeMetrics(UUID nodeId) {
-        assert nodeId != null;
-
-        metrics.remove(nodeId);
-    }
-
-    /**
-     * Gets metrics map.
-     *
-     * @return Metrics map.
-     */
-    public Map<UUID, MetricsSet> metrics() {
-        return metrics;
-    }
-
-    /**
-     * @return {@code True} if this message contains metrics.
-     */
-    public boolean hasMetrics() {
-        return !metrics.isEmpty();
-    }
-
-    /**
-     * @return {@code True} if this message contains metrics.
-     */
-    public boolean hasMetrics(UUID nodeId) {
-        assert nodeId != null;
-
-        return metrics.get(nodeId) != null;
-    }
-
-    /**
-     * Gets client node IDs for  particular node.
-     *
-     * @return Client node IDs.
-     */
-    public Collection<UUID> clientNodeIds() {
-        return clientNodeIds;
-    }
-
-    /**
-     * Adds client node ID.
-     *
-     * @param clientNodeId Client node ID.
-     */
-    public void addClientNodeId(UUID clientNodeId) {
-        clientNodeIds.add(clientNodeId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeInt(metrics.size());
-
-        if (!metrics.isEmpty()) {
-            for (Map.Entry<UUID, MetricsSet> e : metrics.entrySet()) {
-                U.writeUuid(out, e.getKey());
-                out.writeObject(e.getValue());
-            }
-        }
-
-        U.writeCollection(out, clientNodeIds);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        int metricsSize = in.readInt();
-
-        metrics = U.newHashMap(metricsSize);
-
-        for (int i = 0; i < metricsSize; i++)
-            metrics.put(U.readUuid(in), (MetricsSet)in.readObject());
-
-        clientNodeIds = U.readCollection(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryHeartbeatMessage.class, this, "super", super.toString());
-    }
-
-    /**
-     * @param metrics Metrics.
-     * @return Serialized metrics.
-     */
-    private static byte[] serializeMetrics(ClusterNodeMetrics metrics) {
-        assert metrics != null;
-
-        byte[] buf = new byte[DiscoveryMetricsHelper.METRICS_SIZE];
-
-        serialize(buf, 0, metrics);
-
-        return buf;
-    }
-
-    /**
-     * @param nodeId Node ID.
-     * @param metrics Metrics.
-     * @return Serialized metrics.
-     */
-    private static byte[] serializeMetrics(UUID nodeId, ClusterNodeMetrics metrics) {
-        assert nodeId != null;
-        assert metrics != null;
-
-        byte[] buf = new byte[16 + DiscoveryMetricsHelper.METRICS_SIZE];
-
-        U.longToBytes(nodeId.getMostSignificantBits(), buf, 0);
-        U.longToBytes(nodeId.getLeastSignificantBits(), buf, 8);
-
-        serialize(buf, 16, metrics);
-
-        return buf;
-    }
-
-    /**
-     */
-    @SuppressWarnings("PublicInnerClass")
-    public static class MetricsSet implements Externalizable {
-        /** */
-        private static final long serialVersionUID = 0L;
-
-        /** Metrics. */
-        private byte[] metrics;
-
-        /** Client metrics. */
-        private Collection<byte[]> clientMetrics;
-
-        /**
-         */
-        public MetricsSet() {
-            // No-op.
-        }
-
-        /**
-         * @param metrics Metrics.
-         */
-        public MetricsSet(ClusterNodeMetrics metrics) {
-            assert metrics != null;
-
-            this.metrics = serializeMetrics(metrics);
-        }
-
-        /**
-         * @return Deserialized metrics.
-         */
-        public ClusterNodeMetrics metrics() {
-            return deserialize(metrics, 0);
-        }
-
-        /**
-         * @return Client metrics.
-         */
-        public Collection<T2<UUID, ClusterNodeMetrics>> clientMetrics() {
-            return F.viewReadOnly(clientMetrics, new C1<byte[], T2<UUID, ClusterNodeMetrics>>() {
-                @Override public T2<UUID, ClusterNodeMetrics> apply(byte[] bytes) {
-                    UUID nodeId = new UUID(U.bytesToLong(bytes, 0), U.bytesToLong(bytes, 8));
-
-                    return new T2<>(nodeId, deserialize(bytes, 16));
-                }
-            });
-        }
-
-        /**
-         * @param nodeId Client node ID.
-         * @param metrics Client metrics.
-         */
-        private void addClientMetrics(UUID nodeId, ClusterNodeMetrics metrics) {
-            assert nodeId != null;
-            assert metrics != null;
-
-            if (clientMetrics == null)
-                clientMetrics = new ArrayList<>();
-
-            clientMetrics.add(serializeMetrics(nodeId, metrics));
-        }
-
-        /** {@inheritDoc} */
-        @Override public void writeExternal(ObjectOutput out) throws IOException {
-            U.writeByteArray(out, metrics);
-
-            out.writeInt(clientMetrics != null ? clientMetrics.size() : -1);
-
-            if (clientMetrics != null) {
-                for (byte[] arr : clientMetrics)
-                    U.writeByteArray(out, arr);
-            }
-        }
-
-        /** {@inheritDoc} */
-        @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-            metrics = U.readByteArray(in);
-
-            int clientMetricsSize = in.readInt();
-
-            if (clientMetricsSize >= 0) {
-                clientMetrics = new ArrayList<>(clientMetricsSize);
-
-                for (int i = 0; i < clientMetricsSize; i++)
-                    clientMetrics.add(U.readByteArray(in));
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
deleted file mode 100644
index 2546aeb..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Initial message sent by a node that wants to enter topology.
- * Sent to random node during SPI start. Then forwarded directly to coordinator.
- */
-public class TcpDiscoveryJoinRequestMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** New node that wants to join the topology. */
-    private TcpDiscoveryNode node;
-
-    /** Discovery data. */
-    private List<Object> discoData;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryJoinRequestMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param node New node that wants to join.
-     * @param discoData Discovery data.
-     */
-    public TcpDiscoveryJoinRequestMessage(TcpDiscoveryNode node, List<Object> discoData) {
-        super(node.id());
-
-        this.node = node;
-        this.discoData = discoData;
-    }
-
-    /**
-     * Gets new node that wants to join the topology.
-     *
-     * @return Node that wants to join the topology.
-     */
-    public TcpDiscoveryNode node() {
-        return node;
-    }
-
-    /**
-     * @return Discovery data.
-     */
-    public List<Object> discoveryData() {
-        return discoData;
-    }
-
-    /**
-     * @return {@code true} flag.
-     */
-    public boolean responded() {
-        return getFlag(RESPONDED_FLAG_POS);
-    }
-
-    /**
-     * @param responded Responded flag.
-     */
-    public void responded(boolean responded) {
-        setFlag(RESPONDED_FLAG_POS, responded);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeObject(node);
-        U.writeCollection(out, discoData);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        node = (TcpDiscoveryNode)in.readObject();
-        discoData = U.readList(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryJoinRequestMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryLoopbackProblemMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryLoopbackProblemMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryLoopbackProblemMessage.java
deleted file mode 100644
index fce327b..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryLoopbackProblemMessage.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message telling joining node that it has loopback problem (misconfiguration).
- * This means that remote node is configured to use loopback address, but joining node is not, or vise versa.
- */
-public class TcpDiscoveryLoopbackProblemMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Remote node addresses. */
-    private Collection<String> addrs;
-
-    /** Remote node host names. */
-    private Collection<String> hostNames;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryLoopbackProblemMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param addrs Remote node addresses.
-     * @param hostNames Remote node host names.
-     */
-    public TcpDiscoveryLoopbackProblemMessage(UUID creatorNodeId, Collection<String> addrs,
-                                              Collection<String> hostNames) {
-        super(creatorNodeId);
-
-        this.addrs = addrs;
-        this.hostNames = hostNames;
-    }
-
-    /**
-     * @return Remote node addresses.
-     */
-    public Collection<String> addresses() {
-        return addrs;
-    }
-
-    /**
-     * @return Remote node host names.
-     */
-    public Collection<String> hostNames() {
-        return hostNames;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeCollection(out, addrs);
-        U.writeCollection(out, hostNames);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        addrs = U.readCollection(in);
-        hostNames = U.readCollection(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryLoopbackProblemMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddFinishedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddFinishedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddFinishedMessage.java
deleted file mode 100644
index ddb4ae7..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddFinishedMessage.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Sent by coordinator across the ring to finish node add process.
- */
-@TcpDiscoveryEnsureDelivery
-@TcpDiscoveryRedirectToClient
-public class TcpDiscoveryNodeAddFinishedMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Added node ID. */
-    private UUID nodeId;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryNodeAddFinishedMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId ID of the creator node (coordinator).
-     * @param nodeId Added node ID.
-     */
-    public TcpDiscoveryNodeAddFinishedMessage(UUID creatorNodeId, UUID nodeId) {
-        super(creatorNodeId);
-
-        this.nodeId = nodeId;
-    }
-
-    /**
-     * Gets ID of the node added.
-     *
-     * @return ID of the node added.
-     */
-    public UUID nodeId() {
-        return nodeId;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeUuid(out, nodeId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        nodeId = U.readUuid(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryNodeAddFinishedMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
deleted file mode 100644
index 0e9317f..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message telling nodes that new node should be added to topology.
- * When newly added node receives the message it connects to its next and finishes
- * join process.
- */
-@TcpDiscoveryEnsureDelivery
-@TcpDiscoveryRedirectToClient
-public class TcpDiscoveryNodeAddedMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Added node. */
-    private TcpDiscoveryNode node;
-
-    /** Pending messages from previous node. */
-    private Collection<TcpDiscoveryAbstractMessage> msgs;
-
-    /** Discarded message ID. */
-    private IgniteUuid discardMsgId;
-
-    /** Current topology. Initialized by coordinator. */
-    @GridToStringInclude
-    private Collection<TcpDiscoveryNode> top;
-
-    /** Topology snapshots history. */
-    private Map<Long, Collection<ClusterNode>> topHist;
-
-    /** Discovery data from new node. */
-    private List<Object> newNodeDiscoData;
-
-    /** Discovery data from old nodes. */
-    private Collection<List<Object>> oldNodesDiscoData;
-
-    /** Start time of the first grid node. */
-    private long gridStartTime;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryNodeAddedMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param node Node to add to topology.
-     * @param newNodeDiscoData New Node discovery data.
-     * @param gridStartTime Start time of the first grid node.
-     */
-    public TcpDiscoveryNodeAddedMessage(UUID creatorNodeId, TcpDiscoveryNode node,
-                                        List<Object> newNodeDiscoData, long gridStartTime) {
-        super(creatorNodeId);
-
-        assert node != null;
-        assert gridStartTime > 0;
-
-        this.node = node;
-        this.newNodeDiscoData = newNodeDiscoData;
-        this.gridStartTime = gridStartTime;
-
-        oldNodesDiscoData = new LinkedList<>();
-    }
-
-    /**
-     * Gets newly added node.
-     *
-     * @return New node.
-     */
-    public TcpDiscoveryNode node() {
-        return node;
-    }
-
-    /**
-     * Gets pending messages sent to new node by its previous.
-     *
-     * @return Pending messages from previous node.
-     */
-    @Nullable public Collection<TcpDiscoveryAbstractMessage> messages() {
-        return msgs;
-    }
-
-    /**
-     * Gets discarded message ID.
-     *
-     * @return Discarded message ID.
-     */
-    @Nullable public IgniteUuid discardedMessageId() {
-        return discardMsgId;
-    }
-
-    /**
-     * Sets pending messages to send to new node.
-     *
-     * @param msgs Pending messages to send to new node.
-     * @param discardMsgId Discarded message ID.
-     */
-    public void messages(@Nullable Collection<TcpDiscoveryAbstractMessage> msgs, @Nullable IgniteUuid discardMsgId) {
-        this.msgs = msgs;
-        this.discardMsgId = discardMsgId;
-    }
-
-    /**
-     * Gets topology.
-     *
-     * @return Current topology.
-     */
-    @Nullable public Collection<TcpDiscoveryNode> topology() {
-        return top;
-    }
-
-    /**
-     * Sets topology.
-     *
-     * @param top Current topology.
-     */
-    public void topology(@Nullable Collection<TcpDiscoveryNode> top) {
-        this.top = top;
-    }
-
-    /**
-     * Gets topology snapshots history.
-     *
-     * @return Map with topology snapshots history.
-     */
-    @Nullable public Map<Long, Collection<ClusterNode>> topologyHistory() {
-        return topHist;
-    }
-
-    /**
-     * Sets topology snapshots history.
-     *
-     * @param topHist Map with topology snapshots history.
-     */
-    public void topologyHistory(@Nullable Map<Long, Collection<ClusterNode>> topHist) {
-        this.topHist = topHist;
-    }
-
-    /**
-     * @return Discovery data from new node.
-     */
-    public List<Object> newNodeDiscoveryData() {
-        return newNodeDiscoData;
-    }
-
-    /**
-     * @return Discovery data from old nodes.
-     */
-    public Collection<List<Object>> oldNodesDiscoveryData() {
-        return oldNodesDiscoData;
-    }
-
-    /**
-     * @param discoData Discovery data to add.
-     */
-    public void addDiscoveryData(List<Object> discoData) {
-        // Old nodes disco data may be null if message
-        // makes more than 1 pass due to stopping of the nodes in topology.
-        if (oldNodesDiscoData != null)
-            oldNodesDiscoData.add(discoData);
-    }
-
-    /**
-     * Clears discovery data to minimize message size.
-     */
-    public void clearDiscoveryData() {
-        newNodeDiscoData = null;
-        oldNodesDiscoData = null;
-    }
-
-    /**
-     * @return First grid node start time.
-     */
-    public long gridStartTime() {
-        return gridStartTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeObject(node);
-        U.writeCollection(out, msgs);
-        U.writeGridUuid(out, discardMsgId);
-        U.writeCollection(out, top);
-        U.writeMap(out, topHist);
-        out.writeLong(gridStartTime);
-        U.writeCollection(out, newNodeDiscoData);
-
-        out.writeInt(oldNodesDiscoData != null ? oldNodesDiscoData.size() : -1);
-
-        if (oldNodesDiscoData != null) {
-            for (List<Object> list : oldNodesDiscoData)
-                U.writeCollection(out, list);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        node = (TcpDiscoveryNode)in.readObject();
-        msgs = U.readCollection(in);
-        discardMsgId = U.readGridUuid(in);
-        top = U.readCollection(in);
-        topHist = U.readTreeMap(in);
-        gridStartTime = in.readLong();
-        newNodeDiscoData = U.readList(in);
-
-        int oldNodesDiscoDataSize = in.readInt();
-
-        if (oldNodesDiscoDataSize >= 0) {
-            oldNodesDiscoData = new ArrayList<>(oldNodesDiscoDataSize);
-
-            for (int i = 0; i < oldNodesDiscoDataSize; i++)
-                oldNodesDiscoData.add(U.readList(in));
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryNodeAddedMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
deleted file mode 100644
index 8a40122..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Sent by node that has detected node failure to coordinator across the ring,
- * then sent by coordinator across the ring.
- */
-@TcpDiscoveryEnsureDelivery
-@TcpDiscoveryRedirectToClient
-public class TcpDiscoveryNodeFailedMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** ID of the failed node. */
-    private UUID failedNodeId;
-
-    /** Internal order of the failed node. */
-    private long order;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryNodeFailedMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId ID of the node that detects nodes failure.
-     * @param failedNodeId ID of the failed nodes.
-     * @param order Order of the failed node.
-     */
-    public TcpDiscoveryNodeFailedMessage(UUID creatorNodeId, UUID failedNodeId, long order) {
-        super(creatorNodeId);
-
-        assert failedNodeId != null;
-        assert order > 0;
-
-        this.failedNodeId = failedNodeId;
-        this.order = order;
-    }
-
-    /**
-     * Gets ID of the failed node.
-     *
-     * @return ID of the failed node.
-     */
-    public UUID failedNodeId() {
-        return failedNodeId;
-    }
-
-    /**
-     * @return Internal order of the failed node.
-     */
-    public long order() {
-        return order;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeUuid(out, failedNodeId);
-        out.writeLong(order);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        failedNodeId = U.readUuid(in);
-        order = in.readLong();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryNodeFailedMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
deleted file mode 100644
index 2e49505..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Sent by node that is stopping to coordinator across the ring,
- * then sent by coordinator across the ring.
- */
-@TcpDiscoveryEnsureDelivery
-@TcpDiscoveryRedirectToClient
-public class TcpDiscoveryNodeLeftMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryNodeLeftMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId ID of the node that is about to leave the topology.
-     */
-    public TcpDiscoveryNodeLeftMessage(UUID creatorNodeId) {
-        super(creatorNodeId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryNodeLeftMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingRequest.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingRequest.java
deleted file mode 100644
index e2e5f51..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingRequest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Ping request.
- */
-public class TcpDiscoveryPingRequest extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Pinged client node ID. */
-    private UUID clientNodeId;
-
-    /**
-     * For {@link Externalizable}.
-     */
-    public TcpDiscoveryPingRequest() {
-        // No-op.
-    }
-
-    /**
-     * @param creatorNodeId Creator node ID.
-     * @param clientNodeId Pinged client node ID.
-     */
-    public TcpDiscoveryPingRequest(UUID creatorNodeId, @Nullable UUID clientNodeId) {
-        super(creatorNodeId);
-
-        this.clientNodeId = clientNodeId;
-    }
-
-    /**
-     * @return Pinged client node ID.
-     */
-    @Nullable public UUID clientNodeId() {
-        return clientNodeId;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeUuid(out, clientNodeId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        clientNodeId = U.readUuid(in);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingResponse.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingResponse.java
deleted file mode 100644
index 18a5be1..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingResponse.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Ping response.
- */
-public class TcpDiscoveryPingResponse extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Whether pinged client exists. */
-    private boolean clientExists;
-
-    /**
-     * For {@link Externalizable}.
-     */
-    public TcpDiscoveryPingResponse() {
-        // No-op.
-    }
-
-    /**
-     * @param creatorNodeId Creator node ID.
-     */
-    public TcpDiscoveryPingResponse(UUID creatorNodeId) {
-        super(creatorNodeId);
-    }
-
-    /**
-     * @param clientExists Whether pinged client exists.
-     */
-    public void clientExists(boolean clientExists) {
-        this.clientExists = clientExists;
-    }
-
-    /**
-     * @return Whether pinged client exists.
-     */
-    public boolean clientExists() {
-        return clientExists;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeBoolean(clientExists);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        clientExists = in.readBoolean();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryRedirectToClient.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryRedirectToClient.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryRedirectToClient.java
deleted file mode 100644
index 972067b..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryRedirectToClient.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import java.lang.annotation.*;
-
-/**
- * Message classes with this annotation attached will be
- * redirected to client nodes when going through ring.
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface TcpDiscoveryRedirectToClient {
-    // No-op.
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
deleted file mode 100644
index 3481488..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message sent by node to its next to ensure that next node and
- * connection to it are alive. Receiving node should send it across the ring,
- * until message does not reach coordinator. Coordinator responds directly to node.
- * <p>
- * If a failed node id is specified then the message is sent across the ring up to the sender node
- * to ensure that the failed node is actually failed.
- */
-public class TcpDiscoveryStatusCheckMessage extends TcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Status OK. */
-    public static final int STATUS_OK = 1;
-
-    /** Status RECONNECT. */
-    public static final int STATUS_RECON = 2;
-
-    /** Creator node. */
-    private TcpDiscoveryNode creatorNode;
-
-    /** Failed node id. */
-    private UUID failedNodeId;
-
-    /** Creator node status (initialized by coordinator). */
-    private int status;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public TcpDiscoveryStatusCheckMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNode Creator node.
-     * @param failedNodeId Failed node id.
-     */
-    public TcpDiscoveryStatusCheckMessage(TcpDiscoveryNode creatorNode, UUID failedNodeId) {
-        super(creatorNode.id());
-
-        this.creatorNode = creatorNode;
-        this.failedNodeId = failedNodeId;
-    }
-
-    /**
-     * Gets creator node.
-     *
-     * @return Creator node.
-     */
-    public TcpDiscoveryNode creatorNode() {
-        return creatorNode;
-    }
-
-    /**
-     * Gets failed node id.
-     *
-     * @return Failed node id.
-     */
-    public UUID failedNodeId() {
-        return failedNodeId;
-    }
-
-    /**
-     * Gets creator status.
-     *
-     * @return Creator node status.
-     */
-    public int status() {
-        return status;
-    }
-
-    /**
-     * Sets creator node status (should be set by coordinator).
-     *
-     * @param status Creator node status.
-     */
-    public void status(int status) {
-        this.status = status;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeObject(creatorNode);
-        U.writeUuid(out, failedNodeId);
-        out.writeInt(status);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        creatorNode = (TcpDiscoveryNode)in.readObject();
-        failedNodeId = U.readUuid(in);
-        status = in.readInt();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(TcpDiscoveryStatusCheckMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/package.html
deleted file mode 100644
index c397e93..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-    Contains implementation messages.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/package.html b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/package.html
deleted file mode 100644
index 7199f2e..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
-    @html.file.header
-    _________        _____ __________________        _____
-    __  ____/___________(_)______  /__  ____/______ ____(_)_______
-    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
--->
-<html>
-<body>
-    <!-- Package description. -->
-     Contains <b>default</b> TCP/IP implementation for discovery SPI.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/loadbalancing/adaptive/GridAdaptiveLoadBalancingSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/loadbalancing/adaptive/GridAdaptiveLoadBalancingSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/loadbalancing/adaptive/GridAdaptiveLoadBalancingSpi.java
index 424497c..d02529b 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/loadbalancing/adaptive/GridAdaptiveLoadBalancingSpi.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/loadbalancing/adaptive/GridAdaptiveLoadBalancingSpi.java
@@ -70,7 +70,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  * are exchanged, the more precise the metrics are. However, you should keep in mind that if
  * heartbeats are exchanged too often then it may create unnecessary traffic in the network.
  * Heartbeats (or metrics update frequency) can be configured via underlying
- * {@link org.gridgain.grid.spi.discovery.DiscoverySpi} used in your grid.
+ * {@link org.apache.ignite.spi.discovery.DiscoverySpi} used in your grid.
  * <p>
  * Here is an example of how probing can be implemented to use
  * number of active and waiting jobs as probing mechanism:

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java b/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java
index 28511fb..f0f2812 100644
--- a/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java
+++ b/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java
@@ -26,7 +26,7 @@ import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.deployment.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.streamer.*;
-import org.gridgain.grid.spi.discovery.*;
+import org.apache.ignite.spi.discovery.*;
 import org.gridgain.grid.util.io.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml
index 4d0d4d7..91c0b2a 100644
--- a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml
+++ b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml
@@ -96,9 +96,9 @@
             (at least one address must be provided).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml
index 2aa4ba5..5540c1b 100644
--- a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml
+++ b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml
@@ -86,9 +86,9 @@
             (at least one address must be provided).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml
index b807184..8bf00a1 100644
--- a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml
+++ b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml
@@ -86,9 +86,9 @@
             (at least one address must be provided).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/discovery-stress.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/discovery-stress.xml b/modules/core/src/test/config/discovery-stress.xml
index 1b8f421..d0809ac 100644
--- a/modules/core/src/test/config/discovery-stress.xml
+++ b/modules/core/src/test/config/discovery-stress.xml
@@ -39,12 +39,12 @@
         <property name="networkTimeout" value="10000"/>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="networkTimeout" value="10000"/>
                 <property name="ackTimeout" value="10000"/>
                 <property name="reconnectCount" value="3"/>
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>fosters-210:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/example-cache.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/example-cache.xml b/modules/core/src/test/config/example-cache.xml
index aff7229..db06e43 100644
--- a/modules/core/src/test/config/example-cache.xml
+++ b/modules/core/src/test/config/example-cache.xml
@@ -102,11 +102,11 @@
 
         <!-- Explicitly configure TCP discovery SPI to provide list of initial nodes. -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
                     <!-- Uncomment multicast IP finder to enable multicast-based discovery of initial nodes. -->
                     <!--<bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">-->
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!-- In distributed environment, replace with actual host IP address. -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/ggfs-loopback.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/ggfs-loopback.xml b/modules/core/src/test/config/ggfs-loopback.xml
index 450a72a..5843874 100644
--- a/modules/core/src/test/config/ggfs-loopback.xml
+++ b/modules/core/src/test/config/ggfs-loopback.xml
@@ -146,10 +146,10 @@
             TCP discovery SPI (uses VM-shared IP-finder).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <!-- Override default IP-finder.-->
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/ggfs-no-endpoint.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/ggfs-no-endpoint.xml b/modules/core/src/test/config/ggfs-no-endpoint.xml
index ecd68e9..2ba637a 100644
--- a/modules/core/src/test/config/ggfs-no-endpoint.xml
+++ b/modules/core/src/test/config/ggfs-no-endpoint.xml
@@ -146,10 +146,10 @@
             TCP discovery SPI (uses VM-shared IP-finder).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <!-- Override default IP-finder.-->
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/ggfs-shmem.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/ggfs-shmem.xml b/modules/core/src/test/config/ggfs-shmem.xml
index d264ffb..432153b 100644
--- a/modules/core/src/test/config/ggfs-shmem.xml
+++ b/modules/core/src/test/config/ggfs-shmem.xml
@@ -146,10 +146,10 @@
             TCP discovery SPI (uses VM-shared IP-finder).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <!-- Override default IP-finder.-->
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/io-manager-benchmark.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/io-manager-benchmark.xml b/modules/core/src/test/config/io-manager-benchmark.xml
index 0566a47..67e2b37 100644
--- a/modules/core/src/test/config/io-manager-benchmark.xml
+++ b/modules/core/src/test/config/io-manager-benchmark.xml
@@ -56,9 +56,9 @@
         </property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/job-loadtest/client.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/job-loadtest/client.xml b/modules/core/src/test/config/job-loadtest/client.xml
index 2ad72f5..8f74a41 100644
--- a/modules/core/src/test/config/job-loadtest/client.xml
+++ b/modules/core/src/test/config/job-loadtest/client.xml
@@ -84,9 +84,9 @@
         </property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/job-loadtest/server.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/job-loadtest/server.xml b/modules/core/src/test/config/job-loadtest/server.xml
index 8009d6a..74841e9 100644
--- a/modules/core/src/test/config/job-loadtest/server.xml
+++ b/modules/core/src/test/config/job-loadtest/server.xml
@@ -57,9 +57,9 @@
         </property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/jobs-load-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/jobs-load-base.xml b/modules/core/src/test/config/jobs-load-base.xml
index df43b94..d61356d 100644
--- a/modules/core/src/test/config/jobs-load-base.xml
+++ b/modules/core/src/test/config/jobs-load-base.xml
@@ -29,9 +29,9 @@
             (at least one address must be provided).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--


[18/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
# Renaming


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

Branch: refs/heads/master
Commit: cdb10bc1abfc04fc6fb663f03fa90aeeb096cd95
Parents: 4f31df3
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 5 16:52:18 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 5 16:52:18 2014 +0300

----------------------------------------------------------------------
 .../discovery/tcp/TcpClientDiscoverySpi.java    |  72 ++---
 .../grid/spi/discovery/tcp/TcpDiscoverySpi.java | 246 +++++++--------
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |  28 +-
 .../tcp/internal/TcpDiscoveryStatistics.java    |  16 +-
 .../GridTcpDiscoveryAbstractMessage.java        | 266 ----------------
 .../GridTcpDiscoveryAuthFailedMessage.java      |  72 -----
 .../GridTcpDiscoveryCheckFailedMessage.java     |  71 -----
 .../GridTcpDiscoveryClientReconnectMessage.java | 119 -------
 .../GridTcpDiscoveryDiscardMessage.java         |  75 -----
 .../GridTcpDiscoveryDuplicateIdMessage.java     |  75 -----
 .../GridTcpDiscoveryEnsureDelivery.java         |  23 --
 .../GridTcpDiscoveryHandshakeRequest.java       |  44 ---
 .../GridTcpDiscoveryHandshakeResponse.java      |  82 -----
 .../GridTcpDiscoveryHeartbeatMessage.java       | 308 -------------------
 .../GridTcpDiscoveryJoinRequestMessage.java     | 102 ------
 .../GridTcpDiscoveryLoopbackProblemMessage.java |  87 ------
 .../GridTcpDiscoveryNodeAddFinishedMessage.java |  75 -----
 .../GridTcpDiscoveryNodeAddedMessage.java       | 246 ---------------
 .../GridTcpDiscoveryNodeFailedMessage.java      |  93 ------
 .../GridTcpDiscoveryNodeLeftMessage.java        |  47 ---
 .../messages/GridTcpDiscoveryPingRequest.java   |  65 ----
 .../messages/GridTcpDiscoveryPingResponse.java  |  66 ----
 .../GridTcpDiscoveryRedirectToClient.java       |  23 --
 .../GridTcpDiscoveryStatusCheckMessage.java     | 123 --------
 .../messages/TcpDiscoveryAbstractMessage.java   | 266 ++++++++++++++++
 .../messages/TcpDiscoveryAuthFailedMessage.java |  72 +++++
 .../TcpDiscoveryCheckFailedMessage.java         |  71 +++++
 .../TcpDiscoveryClientReconnectMessage.java     | 119 +++++++
 .../messages/TcpDiscoveryDiscardMessage.java    |  75 +++++
 .../TcpDiscoveryDuplicateIdMessage.java         |  75 +++++
 .../messages/TcpDiscoveryEnsureDelivery.java    |  23 ++
 .../messages/TcpDiscoveryHandshakeRequest.java  |  44 +++
 .../messages/TcpDiscoveryHandshakeResponse.java |  82 +++++
 .../messages/TcpDiscoveryHeartbeatMessage.java  | 308 +++++++++++++++++++
 .../TcpDiscoveryJoinRequestMessage.java         | 102 ++++++
 .../TcpDiscoveryLoopbackProblemMessage.java     |  87 ++++++
 .../TcpDiscoveryNodeAddFinishedMessage.java     |  75 +++++
 .../messages/TcpDiscoveryNodeAddedMessage.java  | 246 +++++++++++++++
 .../messages/TcpDiscoveryNodeFailedMessage.java |  93 ++++++
 .../messages/TcpDiscoveryNodeLeftMessage.java   |  47 +++
 .../tcp/messages/TcpDiscoveryPingRequest.java   |  65 ++++
 .../tcp/messages/TcpDiscoveryPingResponse.java  |  66 ++++
 .../messages/TcpDiscoveryRedirectToClient.java  |  23 ++
 .../TcpDiscoveryStatusCheckMessage.java         | 123 ++++++++
 .../discovery/tcp/GridTcpDiscoverySelfTest.java |   4 +-
 45 files changed, 2245 insertions(+), 2245 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
index bb3a2ca..4881a36 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -30,7 +30,7 @@ import java.util.concurrent.*;
 
 import static java.util.concurrent.TimeUnit.*;
 import static org.apache.ignite.events.IgniteEventType.*;
-import static org.gridgain.grid.spi.discovery.tcp.messages.GridTcpDiscoveryHeartbeatMessage.*;
+import static org.gridgain.grid.spi.discovery.tcp.messages.TcpDiscoveryHeartbeatMessage.*;
 
 /**
  * Client discovery SPI implementation that uses TCP/IP for node discovery.
@@ -285,7 +285,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
             leaveLatch = new CountDownLatch(1);
 
             try {
-                GridTcpDiscoveryNodeLeftMessage msg = new GridTcpDiscoveryNodeLeftMessage(locNodeId);
+                TcpDiscoveryNodeLeftMessage msg = new TcpDiscoveryNodeLeftMessage(locNodeId);
 
                 msg.client(true);
 
@@ -411,9 +411,9 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
 
                         locNode.clientRouterNodeId(rmtNodeId);
 
-                        GridTcpDiscoveryAbstractMessage msg = recon ?
-                            new GridTcpDiscoveryClientReconnectMessage(locNodeId, rmtNodeId, lastMsgId) :
-                            new GridTcpDiscoveryJoinRequestMessage(locNode, null);
+                        TcpDiscoveryAbstractMessage msg = recon ?
+                            new TcpDiscoveryClientReconnectMessage(locNodeId, rmtNodeId, lastMsgId) :
+                            new TcpDiscoveryJoinRequestMessage(locNode, null);
 
                         msg.client(true);
 
@@ -531,13 +531,13 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
 
         Socket sock = openSocket(addr);
 
-        GridTcpDiscoveryHandshakeRequest req = new GridTcpDiscoveryHandshakeRequest(locNodeId);
+        TcpDiscoveryHandshakeRequest req = new TcpDiscoveryHandshakeRequest(locNodeId);
 
         req.client(true);
 
         writeToSocket(sock, req);
 
-        GridTcpDiscoveryHandshakeResponse res = readMessage(sock, null, ackTimeout);
+        TcpDiscoveryHandshakeResponse res = readMessage(sock, null, ackTimeout);
 
         UUID nodeId = res.creatorNodeId();
 
@@ -646,7 +646,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
                 while (!isInterrupted()) {
                     U.sleep(hbFreq);
 
-                    GridTcpDiscoveryHeartbeatMessage msg = new GridTcpDiscoveryHeartbeatMessage(locNodeId);
+                    TcpDiscoveryHeartbeatMessage msg = new TcpDiscoveryHeartbeatMessage(locNodeId);
 
                     msg.client(true);
 
@@ -710,7 +710,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
 
                 while (!isInterrupted()) {
                     try {
-                        GridTcpDiscoveryAbstractMessage msg = marsh.unmarshal(in, U.gridClassLoader());
+                        TcpDiscoveryAbstractMessage msg = marsh.unmarshal(in, U.gridClassLoader());
 
                         msg.senderNodeId(nodeId);
 
@@ -722,12 +722,12 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
                         IgniteSpiException err = null;
 
                         if (joinLatch.getCount() > 0) {
-                            if (msg instanceof GridTcpDiscoveryDuplicateIdMessage)
-                                err = duplicateIdError((GridTcpDiscoveryDuplicateIdMessage)msg);
-                            else if (msg instanceof GridTcpDiscoveryAuthFailedMessage)
-                                err = authenticationFailedError((GridTcpDiscoveryAuthFailedMessage)msg);
-                            else if (msg instanceof GridTcpDiscoveryCheckFailedMessage)
-                                err = checkFailedError((GridTcpDiscoveryCheckFailedMessage)msg);
+                            if (msg instanceof TcpDiscoveryDuplicateIdMessage)
+                                err = duplicateIdError((TcpDiscoveryDuplicateIdMessage)msg);
+                            else if (msg instanceof TcpDiscoveryAuthFailedMessage)
+                                err = authenticationFailedError((TcpDiscoveryAuthFailedMessage)msg);
+                            else if (msg instanceof TcpDiscoveryCheckFailedMessage)
+                                err = checkFailedError((TcpDiscoveryCheckFailedMessage)msg);
 
                             if (err != null) {
                                 joinErr = err;
@@ -786,7 +786,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
         /**
          * @param msg Message.
          */
-        void addMessage(GridTcpDiscoveryAbstractMessage msg) {
+        void addMessage(TcpDiscoveryAbstractMessage msg) {
             assert msg != null;
 
             msgWrk.addMessage(msg);
@@ -816,30 +816,30 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
         }
 
         /** {@inheritDoc} */
-        @Override protected void processMessage(GridTcpDiscoveryAbstractMessage msg) {
+        @Override protected void processMessage(TcpDiscoveryAbstractMessage msg) {
             assert msg != null;
             assert msg.verified() || msg.senderNodeId() == null;
 
             stats.onMessageProcessingStarted(msg);
 
-            if (msg instanceof GridTcpDiscoveryClientReconnectMessage)
-                processClientReconnectMessage((GridTcpDiscoveryClientReconnectMessage)msg);
+            if (msg instanceof TcpDiscoveryClientReconnectMessage)
+                processClientReconnectMessage((TcpDiscoveryClientReconnectMessage)msg);
             else {
                 if (recon && !pending) {
                     if (log.isDebugEnabled())
                         log.debug("Discarding message received during reconnection: " + msg);
                 }
                 else {
-                    if (msg instanceof GridTcpDiscoveryNodeAddedMessage)
-                        processNodeAddedMessage((GridTcpDiscoveryNodeAddedMessage)msg);
-                    else if (msg instanceof GridTcpDiscoveryNodeAddFinishedMessage)
-                        processNodeAddFinishedMessage((GridTcpDiscoveryNodeAddFinishedMessage)msg);
-                    else if (msg instanceof GridTcpDiscoveryNodeLeftMessage)
-                        processNodeLeftMessage((GridTcpDiscoveryNodeLeftMessage)msg);
-                    else if (msg instanceof GridTcpDiscoveryNodeFailedMessage)
-                        processNodeFailedMessage((GridTcpDiscoveryNodeFailedMessage)msg);
-                    else if (msg instanceof GridTcpDiscoveryHeartbeatMessage)
-                        processHeartbeatMessage((GridTcpDiscoveryHeartbeatMessage)msg);
+                    if (msg instanceof TcpDiscoveryNodeAddedMessage)
+                        processNodeAddedMessage((TcpDiscoveryNodeAddedMessage)msg);
+                    else if (msg instanceof TcpDiscoveryNodeAddFinishedMessage)
+                        processNodeAddFinishedMessage((TcpDiscoveryNodeAddFinishedMessage)msg);
+                    else if (msg instanceof TcpDiscoveryNodeLeftMessage)
+                        processNodeLeftMessage((TcpDiscoveryNodeLeftMessage)msg);
+                    else if (msg instanceof TcpDiscoveryNodeFailedMessage)
+                        processNodeFailedMessage((TcpDiscoveryNodeFailedMessage)msg);
+                    else if (msg instanceof TcpDiscoveryHeartbeatMessage)
+                        processHeartbeatMessage((TcpDiscoveryHeartbeatMessage)msg);
 
                     if (ensured(msg))
                         lastMsgId = msg.id();
@@ -852,7 +852,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
         /**
          * @param msg Message.
          */
-        private void processNodeAddedMessage(GridTcpDiscoveryNodeAddedMessage msg) {
+        private void processNodeAddedMessage(TcpDiscoveryNodeAddedMessage msg) {
             if (leaveLatch != null)
                 return;
 
@@ -912,7 +912,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
         /**
          * @param msg Message.
          */
-        private void processNodeAddFinishedMessage(GridTcpDiscoveryNodeAddFinishedMessage msg) {
+        private void processNodeAddFinishedMessage(TcpDiscoveryNodeAddFinishedMessage msg) {
             if (leaveLatch != null)
                 return;
 
@@ -968,7 +968,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
         /**
          * @param msg Message.
          */
-        private void processNodeLeftMessage(GridTcpDiscoveryNodeLeftMessage msg) {
+        private void processNodeLeftMessage(TcpDiscoveryNodeLeftMessage msg) {
             if (locNodeId.equals(msg.creatorNodeId())) {
                 if (log.isDebugEnabled())
                     log.debug("Received node left message for local node: " + msg);
@@ -1010,7 +1010,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
         /**
          * @param msg Message.
          */
-        private void processNodeFailedMessage(GridTcpDiscoveryNodeFailedMessage msg) {
+        private void processNodeFailedMessage(TcpDiscoveryNodeFailedMessage msg) {
             if (leaveLatch != null)
                 return;
 
@@ -1042,7 +1042,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
         /**
          * @param msg Message.
          */
-        private void processHeartbeatMessage(GridTcpDiscoveryHeartbeatMessage msg) {
+        private void processHeartbeatMessage(TcpDiscoveryHeartbeatMessage msg) {
             if (leaveLatch != null)
                 return;
 
@@ -1096,7 +1096,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
         /**
          * @param msg Message.
          */
-        private void processClientReconnectMessage(GridTcpDiscoveryClientReconnectMessage msg) {
+        private void processClientReconnectMessage(TcpDiscoveryClientReconnectMessage msg) {
             if (leaveLatch != null)
                 return;
 
@@ -1105,7 +1105,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
                     pending = true;
 
                     try {
-                        for (GridTcpDiscoveryAbstractMessage pendingMsg : msg.pendingMessages())
+                        for (TcpDiscoveryAbstractMessage pendingMsg : msg.pendingMessages())
                             processMessage(pendingMsg);
                     }
                     finally {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
index acd2599..40e4418 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -43,8 +43,8 @@ import static org.apache.ignite.events.IgniteEventType.*;
 import static org.gridgain.grid.kernal.GridNodeAttributes.*;
 import static org.apache.ignite.spi.IgnitePortProtocol.*;
 import static org.gridgain.grid.spi.discovery.tcp.internal.TcpDiscoverySpiState.*;
-import static org.gridgain.grid.spi.discovery.tcp.messages.GridTcpDiscoveryHeartbeatMessage.*;
-import static org.gridgain.grid.spi.discovery.tcp.messages.GridTcpDiscoveryStatusCheckMessage.*;
+import static org.gridgain.grid.spi.discovery.tcp.messages.TcpDiscoveryHeartbeatMessage.*;
+import static org.gridgain.grid.spi.discovery.tcp.messages.TcpDiscoveryStatusCheckMessage.*;
 
 /**
  * Discovery SPI implementation that uses TCP/IP for node discovery.
@@ -253,7 +253,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
     private final Collection<SocketAddress> fromAddrs = new GridConcurrentHashSet<>();
 
     /** Response on join request from coordinator (in case of duplicate ID or auth failure). */
-    private final GridTuple<GridTcpDiscoveryAbstractMessage> joinRes = F.t1();
+    private final GridTuple<TcpDiscoveryAbstractMessage> joinRes = F.t1();
 
     /** Context initialization latch. */
     @GridToStringExclude
@@ -919,7 +919,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
         if (msgWorker != null && msgWorker.isAlive() && !disconnect) {
             // Send node left message only if it is final stop.
-            msgWorker.addMessage(new GridTcpDiscoveryNodeLeftMessage(locNodeId));
+            msgWorker.addMessage(new TcpDiscoveryNodeLeftMessage(locNodeId));
 
             synchronized (mux) {
                 long threshold = U.currentTimeMillis() + netTimeout;
@@ -1093,7 +1093,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
         if (!res && !node.isClient()) {
             LT.warn(log, null, "Failed to ping node (status check will be initiated): " + nodeId);
 
-            msgWorker.addMessage(new GridTcpDiscoveryStatusCheckMessage(locNode, node.id()));
+            msgWorker.addMessage(new TcpDiscoveryStatusCheckMessage(locNode, node.id()));
         }
 
         return res;
@@ -1175,9 +1175,9 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
                         sock = openSocket(addr);
 
-                        writeToSocket(sock, new GridTcpDiscoveryPingRequest(locNodeId, clientNodeId));
+                        writeToSocket(sock, new TcpDiscoveryPingRequest(locNodeId, clientNodeId));
 
-                        GridTcpDiscoveryPingResponse res = readMessage(sock, null, netTimeout);
+                        TcpDiscoveryPingResponse res = readMessage(sock, null, netTimeout);
 
                         if (locNodeId.equals(res.creatorNodeId())) {
                             if (log.isDebugEnabled())
@@ -1322,13 +1322,13 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 if (spiState == CONNECTED)
                     break;
                 else if (spiState == DUPLICATE_ID)
-                    throw duplicateIdError((GridTcpDiscoveryDuplicateIdMessage)joinRes.get());
+                    throw duplicateIdError((TcpDiscoveryDuplicateIdMessage)joinRes.get());
                 else if (spiState == AUTH_FAILED)
-                    throw authenticationFailedError((GridTcpDiscoveryAuthFailedMessage)joinRes.get());
+                    throw authenticationFailedError((TcpDiscoveryAuthFailedMessage)joinRes.get());
                 else if (spiState == CHECK_FAILED)
-                    throw checkFailedError((GridTcpDiscoveryCheckFailedMessage)joinRes.get());
+                    throw checkFailedError((TcpDiscoveryCheckFailedMessage)joinRes.get());
                 else if (spiState == LOOPBACK_PROBLEM) {
-                    GridTcpDiscoveryLoopbackProblemMessage msg = (GridTcpDiscoveryLoopbackProblemMessage)joinRes.get();
+                    TcpDiscoveryLoopbackProblemMessage msg = (TcpDiscoveryLoopbackProblemMessage)joinRes.get();
 
                     boolean locHostLoopback = locHost.isLoopbackAddress();
 
@@ -1362,7 +1362,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
      * @param msg Error message.
      * @return Remote grid version parsed from error message.
      * @deprecated This method was created for preserving backward compatibility. During major version update
-     *      parsing of error message should be replaced with new {@link GridTcpDiscoveryCheckFailedMessage}
+     *      parsing of error message should be replaced with new {@link org.gridgain.grid.spi.discovery.tcp.messages.TcpDiscoveryCheckFailedMessage}
      *      which contains all necessary information.
      */
     @Deprecated
@@ -1393,7 +1393,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
      */
     @SuppressWarnings({"BusyWait"})
     private boolean sendJoinRequestMessage() throws IgniteSpiException {
-        GridTcpDiscoveryAbstractMessage joinReq = new GridTcpDiscoveryJoinRequestMessage(locNode,
+        TcpDiscoveryAbstractMessage joinReq = new TcpDiscoveryJoinRequestMessage(locNode,
             exchange.collect(locNodeId));
 
         // Time when it has been detected, that addresses from IP finder do not respond.
@@ -1516,7 +1516,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
      * @return Response read from the recipient or {@code null} if no response is supposed.
      * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
      */
-    @Nullable private Integer sendMessageDirectly(GridTcpDiscoveryAbstractMessage msg, InetSocketAddress addr)
+    @Nullable private Integer sendMessageDirectly(TcpDiscoveryAbstractMessage msg, InetSocketAddress addr)
         throws IgniteSpiException {
         assert msg != null;
         assert addr != null;
@@ -1546,9 +1546,9 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 openSock = true;
 
                 // Handshake.
-                writeToSocket(sock, new GridTcpDiscoveryHandshakeRequest(locNodeId));
+                writeToSocket(sock, new TcpDiscoveryHandshakeRequest(locNodeId));
 
-                GridTcpDiscoveryHandshakeResponse res = readMessage(sock, null, ackTimeout0);
+                TcpDiscoveryHandshakeResponse res = readMessage(sock, null, ackTimeout0);
 
                 if (locNodeId.equals(res.creatorNodeId())) {
                     if (log.isDebugEnabled())
@@ -1577,7 +1577,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 // Connection has been established, but
                 // join request may not be unmarshalled on remote host.
                 // E.g. due to class not found issue.
-                joinReqSent = msg instanceof GridTcpDiscoveryJoinRequestMessage;
+                joinReqSent = msg instanceof TcpDiscoveryJoinRequestMessage;
 
                 return readReceipt(sock, ackTimeout0);
             }
@@ -1888,12 +1888,12 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
      * @param msgs Messages to include.
      * @param discardMsgId Discarded message ID.
      */
-    private void prepareNodeAddedMessage(GridTcpDiscoveryAbstractMessage msg, UUID destNodeId,
-        @Nullable Collection<GridTcpDiscoveryAbstractMessage> msgs, @Nullable IgniteUuid discardMsgId) {
+    private void prepareNodeAddedMessage(TcpDiscoveryAbstractMessage msg, UUID destNodeId,
+        @Nullable Collection<TcpDiscoveryAbstractMessage> msgs, @Nullable IgniteUuid discardMsgId) {
         assert destNodeId != null;
 
-        if (msg instanceof GridTcpDiscoveryNodeAddedMessage) {
-            GridTcpDiscoveryNodeAddedMessage nodeAddedMsg = (GridTcpDiscoveryNodeAddedMessage)msg;
+        if (msg instanceof TcpDiscoveryNodeAddedMessage) {
+            TcpDiscoveryNodeAddedMessage nodeAddedMsg = (TcpDiscoveryNodeAddedMessage)msg;
 
             TcpDiscoveryNode node = nodeAddedMsg.node();
 
@@ -1929,10 +1929,10 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
     /**
      * @param msg Message to clear.
      */
-    private void clearNodeAddedMessage(GridTcpDiscoveryAbstractMessage msg) {
-        if (msg instanceof GridTcpDiscoveryNodeAddedMessage) {
+    private void clearNodeAddedMessage(TcpDiscoveryAbstractMessage msg) {
+        if (msg instanceof TcpDiscoveryNodeAddedMessage) {
             // Nullify topology before registration.
-            GridTcpDiscoveryNodeAddedMessage nodeAddedMsg = (GridTcpDiscoveryNodeAddedMessage)msg;
+            TcpDiscoveryNodeAddedMessage nodeAddedMsg = (TcpDiscoveryNodeAddedMessage)msg;
 
             nodeAddedMsg.topology(null);
             nodeAddedMsg.topologyHistory(null);
@@ -1998,7 +1998,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
         }
 
         if (next != null)
-            msgWorker.addMessage(new GridTcpDiscoveryNodeFailedMessage(locNodeId, next.id(), next.internalOrder()));
+            msgWorker.addMessage(new TcpDiscoveryNodeFailedMessage(locNodeId, next.id(), next.internalOrder()));
     }
 
     /**
@@ -2119,10 +2119,10 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
      * @param msg Message.
      * @return {@code True} if recordable in debug mode.
      */
-    private boolean recordable(GridTcpDiscoveryAbstractMessage msg) {
-        return !(msg instanceof GridTcpDiscoveryHeartbeatMessage) &&
-            !(msg instanceof GridTcpDiscoveryStatusCheckMessage) &&
-            !(msg instanceof GridTcpDiscoveryDiscardMessage);
+    private boolean recordable(TcpDiscoveryAbstractMessage msg) {
+        return !(msg instanceof TcpDiscoveryHeartbeatMessage) &&
+            !(msg instanceof TcpDiscoveryStatusCheckMessage) &&
+            !(msg instanceof TcpDiscoveryDiscardMessage);
     }
 
     /**
@@ -2189,7 +2189,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                     return;
                 }
 
-                GridTcpDiscoveryHeartbeatMessage msg = new GridTcpDiscoveryHeartbeatMessage(locNodeId);
+                TcpDiscoveryHeartbeatMessage msg = new TcpDiscoveryHeartbeatMessage(locNodeId);
 
                 msg.verify(locNodeId);
 
@@ -2202,7 +2202,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
     /**
      * Thread that sends status check messages to next node if local node has not
-     * been receiving heartbeats ({@link GridTcpDiscoveryHeartbeatMessage})
+     * been receiving heartbeats ({@link org.gridgain.grid.spi.discovery.tcp.messages.TcpDiscoveryHeartbeatMessage})
      * for {@link TcpDiscoverySpi#getMaxMissedHeartbeats()} *
      * {@link TcpDiscoverySpi#getHeartbeatFrequency()}.
      */
@@ -2258,7 +2258,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 // 4. Send status check message.
                 lastSent = U.currentTimeMillis();
 
-                msgWorker.addMessage(new GridTcpDiscoveryStatusCheckMessage(locNode, null));
+                msgWorker.addMessage(new TcpDiscoveryStatusCheckMessage(locNode, null));
             }
         }
     }
@@ -2395,7 +2395,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
         private static final int MAX = 1024;
 
         /** Pending messages. */
-        private final Queue<GridTcpDiscoveryAbstractMessage> msgs = new ArrayDeque<>(MAX * 2);
+        private final Queue<TcpDiscoveryAbstractMessage> msgs = new ArrayDeque<>(MAX * 2);
 
         /** Discarded message ID. */
         private IgniteUuid discardId;
@@ -2406,11 +2406,11 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          *
          * @param msg Message to add.
          */
-        void add(GridTcpDiscoveryAbstractMessage msg) {
+        void add(TcpDiscoveryAbstractMessage msg) {
             msgs.add(msg);
 
             while (msgs.size() > MAX) {
-                GridTcpDiscoveryAbstractMessage polled = msgs.poll();
+                TcpDiscoveryAbstractMessage polled = msgs.poll();
 
                 assert polled != null;
 
@@ -2427,14 +2427,14 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          * @param lastMsgId Last message ID.
          * @return Collection of messages.
          */
-        @Nullable Collection<GridTcpDiscoveryAbstractMessage> messages(IgniteUuid lastMsgId) {
+        @Nullable Collection<TcpDiscoveryAbstractMessage> messages(IgniteUuid lastMsgId) {
             assert lastMsgId != null;
 
-            Collection<GridTcpDiscoveryAbstractMessage> copy = new ArrayList<>(msgs.size());
+            Collection<TcpDiscoveryAbstractMessage> copy = new ArrayList<>(msgs.size());
 
             boolean skip = true;
 
-            for (GridTcpDiscoveryAbstractMessage msg : msgs) {
+            for (TcpDiscoveryAbstractMessage msg : msgs) {
                 if (skip) {
                     if (msg.id().equals(lastMsgId))
                         skip = false;
@@ -2452,7 +2452,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          * @param msgs Message.
          * @param discardId Discarded message ID.
          */
-        void reset(@Nullable Collection<GridTcpDiscoveryAbstractMessage> msgs, @Nullable IgniteUuid discardId) {
+        void reset(@Nullable Collection<TcpDiscoveryAbstractMessage> msgs, @Nullable IgniteUuid discardId) {
             this.msgs.clear();
 
             if (msgs != null)
@@ -2492,7 +2492,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
         private final PendingMessages pendingMsgs = new PendingMessages();
 
         /** Last message that updated topology. */
-        private GridTcpDiscoveryAbstractMessage lastMsg;
+        private TcpDiscoveryAbstractMessage lastMsg;
 
         /** Force pending messages send. */
         private boolean forceSndPending;
@@ -2509,7 +2509,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
         /**
          * @param msg Message to process.
          */
-        @Override protected void processMessage(GridTcpDiscoveryAbstractMessage msg) {
+        @Override protected void processMessage(TcpDiscoveryAbstractMessage msg) {
             if (log.isDebugEnabled())
                 log.debug("Processing message [cls=" + msg.getClass().getSimpleName() + ", id=" + msg.id() + ']');
 
@@ -2518,25 +2518,25 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
             stats.onMessageProcessingStarted(msg);
 
-            if (msg instanceof GridTcpDiscoveryJoinRequestMessage)
-                processJoinRequestMessage((GridTcpDiscoveryJoinRequestMessage)msg);
+            if (msg instanceof TcpDiscoveryJoinRequestMessage)
+                processJoinRequestMessage((TcpDiscoveryJoinRequestMessage)msg);
 
-            else if (msg instanceof GridTcpDiscoveryClientReconnectMessage)
-                processClientReconnectMessage((GridTcpDiscoveryClientReconnectMessage)msg);
+            else if (msg instanceof TcpDiscoveryClientReconnectMessage)
+                processClientReconnectMessage((TcpDiscoveryClientReconnectMessage)msg);
 
-            else if (msg instanceof GridTcpDiscoveryNodeAddedMessage)
-                processNodeAddedMessage((GridTcpDiscoveryNodeAddedMessage)msg);
+            else if (msg instanceof TcpDiscoveryNodeAddedMessage)
+                processNodeAddedMessage((TcpDiscoveryNodeAddedMessage)msg);
 
-            else if (msg instanceof GridTcpDiscoveryNodeAddFinishedMessage)
-                processNodeAddFinishedMessage((GridTcpDiscoveryNodeAddFinishedMessage)msg);
+            else if (msg instanceof TcpDiscoveryNodeAddFinishedMessage)
+                processNodeAddFinishedMessage((TcpDiscoveryNodeAddFinishedMessage)msg);
 
-            else if (msg instanceof GridTcpDiscoveryNodeLeftMessage)
-                processNodeLeftMessage((GridTcpDiscoveryNodeLeftMessage)msg);
+            else if (msg instanceof TcpDiscoveryNodeLeftMessage)
+                processNodeLeftMessage((TcpDiscoveryNodeLeftMessage)msg);
 
-            else if (msg instanceof GridTcpDiscoveryNodeFailedMessage)
-                processNodeFailedMessage((GridTcpDiscoveryNodeFailedMessage)msg);
+            else if (msg instanceof TcpDiscoveryNodeFailedMessage)
+                processNodeFailedMessage((TcpDiscoveryNodeFailedMessage)msg);
 
-            else if (msg instanceof GridTcpDiscoveryHeartbeatMessage) {
+            else if (msg instanceof TcpDiscoveryHeartbeatMessage) {
                 if (msg.client()) {
                     ClientMessageWorker wrk = clientMsgWorkers.get(msg.creatorNodeId());
 
@@ -2549,13 +2549,13 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                         log.debug("Received heartbeat message from unknown client node: " + msg);
                 }
                 else
-                    processHeartbeatMessage((GridTcpDiscoveryHeartbeatMessage)msg);
+                    processHeartbeatMessage((TcpDiscoveryHeartbeatMessage)msg);
             }
-            else if (msg instanceof GridTcpDiscoveryStatusCheckMessage)
-                processStatusCheckMessage((GridTcpDiscoveryStatusCheckMessage)msg);
+            else if (msg instanceof TcpDiscoveryStatusCheckMessage)
+                processStatusCheckMessage((TcpDiscoveryStatusCheckMessage)msg);
 
-            else if (msg instanceof GridTcpDiscoveryDiscardMessage)
-                processDiscardMessage((GridTcpDiscoveryDiscardMessage)msg);
+            else if (msg instanceof TcpDiscoveryDiscardMessage)
+                processDiscardMessage((TcpDiscoveryDiscardMessage)msg);
 
             else
                 assert false : "Unknown message type: " + msg.getClass().getSimpleName();
@@ -2569,7 +2569,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          * @param msg Message to send
          */
         @SuppressWarnings({"BreakStatementWithLabel", "LabeledStatement", "ContinueStatementWithLabel"})
-        private void sendMessageAcrossRing(GridTcpDiscoveryAbstractMessage msg) {
+        private void sendMessageAcrossRing(TcpDiscoveryAbstractMessage msg) {
             assert msg != null;
 
             assert ring.hasRemoteNodes();
@@ -2662,9 +2662,9 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                 openSock = true;
 
                                 // Handshake.
-                                writeToSocket(sock, new GridTcpDiscoveryHandshakeRequest(locNodeId));
+                                writeToSocket(sock, new TcpDiscoveryHandshakeRequest(locNodeId));
 
-                                GridTcpDiscoveryHandshakeResponse res = readMessage(sock, null, ackTimeout0);
+                                TcpDiscoveryHandshakeResponse res = readMessage(sock, null, ackTimeout0);
 
                                 if (locNodeId.equals(res.creatorNodeId())) {
                                     if (log.isDebugEnabled())
@@ -2699,8 +2699,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                     // ID is as expected. Check node order.
                                     if (nextOrder != next.internalOrder()) {
                                         // Is next currently being added?
-                                        boolean nextNew = (msg instanceof GridTcpDiscoveryNodeAddedMessage &&
-                                            ((GridTcpDiscoveryNodeAddedMessage)msg).node().id().equals(nextId));
+                                        boolean nextNew = (msg instanceof TcpDiscoveryNodeAddedMessage &&
+                                            ((TcpDiscoveryNodeAddedMessage)msg).node().id().equals(nextId));
 
                                         if (!nextNew) {
                                             if (log.isDebugEnabled())
@@ -2769,7 +2769,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                 failure = TcpDiscoverySpi.this.failedNodes.size() < failedNodes.size();
                             }
 
-                            assert !forceSndPending || msg instanceof GridTcpDiscoveryNodeLeftMessage;
+                            assert !forceSndPending || msg instanceof TcpDiscoveryNodeLeftMessage;
 
                             if (failure || forceSndPending) {
                                 if (log.isDebugEnabled())
@@ -2782,7 +2782,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
                                 boolean skip = pendingMsgs.discardId != null;
 
-                                for (GridTcpDiscoveryAbstractMessage pendingMsg : pendingMsgs.msgs) {
+                                for (TcpDiscoveryAbstractMessage pendingMsg : pendingMsgs.msgs) {
                                     if (skip) {
                                         if (pendingMsg.id().equals(pendingMsgs.discardId))
                                             skip = false;
@@ -2903,8 +2903,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                         }
                     }
 
-                    if (msg instanceof GridTcpDiscoveryStatusCheckMessage) {
-                        GridTcpDiscoveryStatusCheckMessage msg0 = (GridTcpDiscoveryStatusCheckMessage)msg;
+                    if (msg instanceof TcpDiscoveryStatusCheckMessage) {
+                        TcpDiscoveryStatusCheckMessage msg0 = (TcpDiscoveryStatusCheckMessage)msg;
 
                         if (next.id().equals(msg0.failedNodeId())) {
                             next = null;
@@ -2947,7 +2947,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 }
 
                 for (TcpDiscoveryNode n : failedNodes)
-                    msgWorker.addMessage(new GridTcpDiscoveryNodeFailedMessage(locNodeId, n.id(), n.internalOrder()));
+                    msgWorker.addMessage(new TcpDiscoveryNodeFailedMessage(locNodeId, n.id(), n.internalOrder()));
             }
         }
 
@@ -2955,8 +2955,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          * @param msg Message.
          * @return Whether to redirect message to client nodes.
          */
-        private boolean redirectToClients(GridTcpDiscoveryAbstractMessage msg) {
-            return msg.verified() && U.getAnnotation(msg.getClass(), GridTcpDiscoveryRedirectToClient.class) != null;
+        private boolean redirectToClients(TcpDiscoveryAbstractMessage msg) {
+            return msg.verified() && U.getAnnotation(msg.getClass(), TcpDiscoveryRedirectToClient.class) != null;
         }
 
         /**
@@ -2964,7 +2964,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          *
          * @param msg Message to register.
          */
-        private void registerPendingMessage(GridTcpDiscoveryAbstractMessage msg) {
+        private void registerPendingMessage(TcpDiscoveryAbstractMessage msg) {
             assert msg != null;
 
             if (ensured(msg)) {
@@ -2982,7 +2982,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          *
          * @param msg Join request message.
          */
-        private void processJoinRequestMessage(GridTcpDiscoveryJoinRequestMessage msg) {
+        private void processJoinRequestMessage(TcpDiscoveryJoinRequestMessage msg) {
             assert msg != null;
 
             TcpDiscoveryNode node = msg.node();
@@ -3012,7 +3012,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                         log.debug(errMsg);
 
                     try {
-                        trySendMessageDirectly(node, new GridTcpDiscoveryLoopbackProblemMessage(
+                        trySendMessageDirectly(node, new TcpDiscoveryLoopbackProblemMessage(
                             locNodeId, locNode.addresses(), locNode.hostNames()));
                     }
                     catch (IgniteSpiException e) {
@@ -3032,7 +3032,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 if (existingNode != null) {
                     if (!node.socketAddresses().equals(existingNode.socketAddresses())) {
                         if (!pingNode(existingNode)) {
-                            addMessage(new GridTcpDiscoveryNodeFailedMessage(locNodeId,
+                            addMessage(new TcpDiscoveryNodeFailedMessage(locNodeId,
                                 existingNode.id(), existingNode.internalOrder()));
 
                             // Ignore this join request since existing node is about to fail
@@ -3041,7 +3041,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                         }
 
                         try {
-                            trySendMessageDirectly(node, new GridTcpDiscoveryDuplicateIdMessage(locNodeId,
+                            trySendMessageDirectly(node, new TcpDiscoveryDuplicateIdMessage(locNodeId,
                                 existingNode));
                         }
                         catch (IgniteSpiException e) {
@@ -3085,7 +3085,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                 U.addressesAsString(node));
 
                         try {
-                            trySendMessageDirectly(node, new GridTcpDiscoveryAuthFailedMessage(locNodeId, locHost));
+                            trySendMessageDirectly(node, new TcpDiscoveryAuthFailedMessage(locNodeId, locHost));
                         }
                         catch (IgniteSpiException e) {
                             if (log.isDebugEnabled())
@@ -3112,7 +3112,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                     ", addrs=" + U.addressesAsString(node));
 
                             try {
-                                trySendMessageDirectly(node, new GridTcpDiscoveryAuthFailedMessage(locNodeId, locHost));
+                                trySendMessageDirectly(node, new TcpDiscoveryAuthFailedMessage(locNodeId, locHost));
                             }
                             catch (IgniteSpiException e) {
                                 if (log.isDebugEnabled())
@@ -3167,7 +3167,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
                     try {
                         trySendMessageDirectly(node,
-                            new GridTcpDiscoveryCheckFailedMessage(locNodeId, err.sendMessage()));
+                            new TcpDiscoveryCheckFailedMessage(locNodeId, err.sendMessage()));
                     }
                     catch (IgniteSpiException e) {
                         if (log.isDebugEnabled())
@@ -3217,7 +3217,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                 ", rmtNodeId=" + locNode.id() + ']';
 
                             trySendMessageDirectly(node,
-                                new GridTcpDiscoveryCheckFailedMessage(locNodeId, sndMsg));
+                                new TcpDiscoveryCheckFailedMessage(locNodeId, sndMsg));
                         }
                         catch (IgniteSpiException e) {
                             if (log.isDebugEnabled())
@@ -3256,7 +3256,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                 ", rmtNodeId=" + locNode.id() + ']';
 
                             trySendMessageDirectly(node,
-                                new GridTcpDiscoveryCheckFailedMessage(locNodeId, sndMsg));
+                                new TcpDiscoveryCheckFailedMessage(locNodeId, sndMsg));
                         }
                         catch (IgniteSpiException e) {
                             if (log.isDebugEnabled())
@@ -3316,7 +3316,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                 ", rmtNodeId=" + locNode.id() + ']';
 
                             trySendMessageDirectly(node,
-                                new GridTcpDiscoveryCheckFailedMessage(locNodeId, sndMsg));
+                                new TcpDiscoveryCheckFailedMessage(locNodeId, sndMsg));
                         }
                         catch (IgniteSpiException e) {
                             if (log.isDebugEnabled())
@@ -3357,7 +3357,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                             ", rmtNodeId=" + locNode.id() + ']';
 
                         trySendMessageDirectly(node,
-                            new GridTcpDiscoveryCheckFailedMessage(locNodeId, sndMsg));
+                            new TcpDiscoveryCheckFailedMessage(locNodeId, sndMsg));
                     }
                     catch (IgniteSpiException e) {
                         if (log.isDebugEnabled())
@@ -3375,7 +3375,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 if (log.isDebugEnabled())
                     log.debug("Internal order has been assigned to node: " + node);
 
-                GridTcpDiscoveryNodeAddedMessage nodeAddedMsg = new GridTcpDiscoveryNodeAddedMessage(locNodeId,
+                TcpDiscoveryNodeAddedMessage nodeAddedMsg = new TcpDiscoveryNodeAddedMessage(locNodeId,
                     node, msg.discoveryData(), gridStartTime);
 
                 nodeAddedMsg.client(msg.client());
@@ -3393,7 +3393,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          * @param msg Message.
          * @throws org.apache.ignite.spi.IgniteSpiException Last failure if all attempts failed.
          */
-        private void trySendMessageDirectly(TcpDiscoveryNode node, GridTcpDiscoveryAbstractMessage msg)
+        private void trySendMessageDirectly(TcpDiscoveryNode node, TcpDiscoveryAbstractMessage msg)
             throws IgniteSpiException {
             if (node.isClient()) {
                 TcpDiscoveryNode routerNode = ring.node(node.clientRouterNodeId());
@@ -3432,7 +3432,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          *
          * @param msg Client reconnect message.
          */
-        private void processClientReconnectMessage(GridTcpDiscoveryClientReconnectMessage msg) {
+        private void processClientReconnectMessage(TcpDiscoveryClientReconnectMessage msg) {
             boolean isLocalNodeRouter = locNodeId.equals(msg.routerNodeId());
 
             if (!msg.verified()) {
@@ -3454,7 +3454,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                     node.aliveCheck(maxMissedClientHbs);
 
                     if (isLocalNodeCoordinator()) {
-                        Collection<GridTcpDiscoveryAbstractMessage> pending =
+                        Collection<TcpDiscoveryAbstractMessage> pending =
                             pendingMsgs.messages(msg.lastMessageId());
 
                         if (pending != null) {
@@ -3466,7 +3466,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                 log.debug("Failing reconnecting client node because failed to restore pending " +
                                     "messages [locNodeId=" + locNodeId + ", clientNodeId=" + nodeId + ']');
 
-                            processNodeFailedMessage(new GridTcpDiscoveryNodeFailedMessage(locNodeId,
+                            processNodeFailedMessage(new TcpDiscoveryNodeFailedMessage(locNodeId,
                                 node.id(), node.order()));
                         }
                     }
@@ -3498,7 +3498,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          *      and only then initiate failure.
          */
         @Deprecated
-        private void processNodeAddedMessage(GridTcpDiscoveryNodeAddedMessage msg) {
+        private void processNodeAddedMessage(TcpDiscoveryNodeAddedMessage msg) {
             assert msg != null;
 
             TcpDiscoveryNode node = msg.node();
@@ -3517,9 +3517,9 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 if (msg.verified()) {
                     stats.onRingMessageReceived(msg);
 
-                    processNodeAddFinishedMessage(new GridTcpDiscoveryNodeAddFinishedMessage(locNodeId, node.id()));
+                    processNodeAddFinishedMessage(new TcpDiscoveryNodeAddFinishedMessage(locNodeId, node.id()));
 
-                    addMessage(new GridTcpDiscoveryDiscardMessage(locNodeId, msg.id()));
+                    addMessage(new TcpDiscoveryDiscardMessage(locNodeId, msg.id()));
 
                     return;
                 }
@@ -3589,7 +3589,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                     finally {
                         if (authFailed) {
                             try {
-                                trySendMessageDirectly(node, new GridTcpDiscoveryAuthFailedMessage(locNodeId, locHost));
+                                trySendMessageDirectly(node, new TcpDiscoveryAuthFailedMessage(locNodeId, locHost));
                             }
                             catch (IgniteSpiException e) {
                                 if (log.isDebugEnabled())
@@ -3597,7 +3597,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                         "[node=" + node + ", err=" + e.getMessage() + ']');
                             }
 
-                            addMessage(new GridTcpDiscoveryNodeFailedMessage(locNodeId, node.id(),
+                            addMessage(new TcpDiscoveryNodeFailedMessage(locNodeId, node.id(),
                                 node.internalOrder()));
                         }
                     }
@@ -3699,7 +3699,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          *
          * @param msg Node add finished message.
          */
-        private void processNodeAddFinishedMessage(GridTcpDiscoveryNodeAddFinishedMessage msg) {
+        private void processNodeAddFinishedMessage(TcpDiscoveryNodeAddFinishedMessage msg) {
             assert msg != null;
 
             UUID nodeId = msg.nodeId();
@@ -3725,7 +3725,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 if (msg.verified()) {
                     stats.onRingMessageReceived(msg);
 
-                    addMessage(new GridTcpDiscoveryDiscardMessage(locNodeId, msg.id()));
+                    addMessage(new TcpDiscoveryDiscardMessage(locNodeId, msg.id()));
 
                     return;
                 }
@@ -3822,7 +3822,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          *
          * @param msg Node left message.
          */
-        private void processNodeLeftMessage(GridTcpDiscoveryNodeLeftMessage msg) {
+        private void processNodeLeftMessage(TcpDiscoveryNodeLeftMessage msg) {
             assert msg != null;
 
             UUID leavingNodeId = msg.creatorNodeId();
@@ -3892,7 +3892,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 if (msg.verified()) {
                     stats.onRingMessageReceived(msg);
 
-                    addMessage(new GridTcpDiscoveryDiscardMessage(locNodeId, msg.id()));
+                    addMessage(new TcpDiscoveryDiscardMessage(locNodeId, msg.id()));
 
                     return;
                 }
@@ -4006,7 +4006,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          *
          * @param msg Node failed message.
          */
-        private void processNodeFailedMessage(GridTcpDiscoveryNodeFailedMessage msg) {
+        private void processNodeFailedMessage(TcpDiscoveryNodeFailedMessage msg) {
             assert msg != null;
 
             UUID sndId = msg.senderNodeId();
@@ -4067,7 +4067,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                 if (msg.verified()) {
                     stats.onRingMessageReceived(msg);
 
-                    addMessage(new GridTcpDiscoveryDiscardMessage(locNodeId, msg.id()));
+                    addMessage(new TcpDiscoveryDiscardMessage(locNodeId, msg.id()));
 
                     return;
                 }
@@ -4144,7 +4144,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          *
          * @param msg Status check message.
          */
-        private void processStatusCheckMessage(GridTcpDiscoveryStatusCheckMessage msg) {
+        private void processStatusCheckMessage(TcpDiscoveryStatusCheckMessage msg) {
             assert msg != null;
 
             if (msg.failedNodeId() != null) {
@@ -4261,7 +4261,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          *
          * @param msg Heartbeat message.
          */
-        private void processHeartbeatMessage(GridTcpDiscoveryHeartbeatMessage msg) {
+        private void processHeartbeatMessage(TcpDiscoveryHeartbeatMessage msg) {
             assert msg != null;
 
             if (ring.node(msg.creatorNodeId()) == null) {
@@ -4339,7 +4339,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                 int aliveCheck = clientNode.decrementAliveCheck();
 
                                 if (aliveCheck == 0 && isLocalNodeCoordinator()) {
-                                    processNodeFailedMessage(new GridTcpDiscoveryNodeFailedMessage(locNodeId,
+                                    processNodeFailedMessage(new TcpDiscoveryNodeFailedMessage(locNodeId,
                                         clientNode.id(), clientNode.order()));
                                 }
                             }
@@ -4385,7 +4385,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          * @param msg Discard message.
          */
         @SuppressWarnings("StatementWithEmptyBody")
-        private void processDiscardMessage(GridTcpDiscoveryDiscardMessage msg) {
+        private void processDiscardMessage(TcpDiscoveryDiscardMessage msg) {
             assert msg != null;
 
             IgniteUuid msgId = msg.msgId();
@@ -4584,13 +4584,13 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                     // Restore timeout.
                     sock.setSoTimeout(timeout);
 
-                    GridTcpDiscoveryAbstractMessage msg = readMessage(sock, in, netTimeout);
+                    TcpDiscoveryAbstractMessage msg = readMessage(sock, in, netTimeout);
 
                     // Ping.
-                    if (msg instanceof GridTcpDiscoveryPingRequest) {
-                        GridTcpDiscoveryPingRequest req = (GridTcpDiscoveryPingRequest)msg;
+                    if (msg instanceof TcpDiscoveryPingRequest) {
+                        TcpDiscoveryPingRequest req = (TcpDiscoveryPingRequest)msg;
 
-                        GridTcpDiscoveryPingResponse res = new GridTcpDiscoveryPingResponse(locNodeId);
+                        TcpDiscoveryPingResponse res = new TcpDiscoveryPingResponse(locNodeId);
 
                         if (req.clientNodeId() != null)
                             res.clientExists(clientMsgWorkers.containsKey(req.clientNodeId()));
@@ -4601,7 +4601,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                     }
 
                     // Handshake.
-                    GridTcpDiscoveryHandshakeRequest req = (GridTcpDiscoveryHandshakeRequest)msg;
+                    TcpDiscoveryHandshakeRequest req = (TcpDiscoveryHandshakeRequest)msg;
 
                     UUID nodeId = req.creatorNodeId();
                     boolean client = req.client();
@@ -4609,8 +4609,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                     this.nodeId = nodeId;
                     this.client = client;
 
-                    GridTcpDiscoveryHandshakeResponse res =
-                        new GridTcpDiscoveryHandshakeResponse(locNodeId, locNode.internalOrder());
+                    TcpDiscoveryHandshakeResponse res =
+                        new TcpDiscoveryHandshakeResponse(locNodeId, locNode.internalOrder());
 
                     writeToSocket(sock, res);
 
@@ -4684,7 +4684,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
                 while (!isInterrupted()) {
                     try {
-                        GridTcpDiscoveryAbstractMessage msg = marsh.unmarshal(in, U.gridClassLoader());
+                        TcpDiscoveryAbstractMessage msg = marsh.unmarshal(in, U.gridClassLoader());
 
                         UUID destClientNodeId = msg.destinationClientNodeId();
 
@@ -4714,8 +4714,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                         if (debugMode && recordable(msg))
                             debugLog("Message has been received: " + msg);
 
-                        if (msg instanceof GridTcpDiscoveryJoinRequestMessage) {
-                            GridTcpDiscoveryJoinRequestMessage req = (GridTcpDiscoveryJoinRequestMessage)msg;
+                        if (msg instanceof TcpDiscoveryJoinRequestMessage) {
+                            TcpDiscoveryJoinRequestMessage req = (TcpDiscoveryJoinRequestMessage)msg;
 
                             if (!req.responded()) {
                                 boolean ok = processJoinRequestMessage(req);
@@ -4727,7 +4727,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                     break;
                             }
                         }
-                        else if (msg instanceof GridTcpDiscoveryClientReconnectMessage) {
+                        else if (msg instanceof TcpDiscoveryClientReconnectMessage) {
                             if (client) {
                                 TcpDiscoverySpiState state = spiStateCopy();
 
@@ -4745,7 +4745,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
                                 }
                             }
                         }
-                        else if (msg instanceof GridTcpDiscoveryDuplicateIdMessage) {
+                        else if (msg instanceof TcpDiscoveryDuplicateIdMessage) {
                             // Send receipt back.
                             writeToSocket(sock, RES_OK);
 
@@ -4774,7 +4774,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
                             continue;
                         }
-                        else if (msg instanceof GridTcpDiscoveryAuthFailedMessage) {
+                        else if (msg instanceof TcpDiscoveryAuthFailedMessage) {
                             // Send receipt back.
                             writeToSocket(sock, RES_OK);
 
@@ -4803,7 +4803,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
                             continue;
                         }
-                        else if (msg instanceof GridTcpDiscoveryCheckFailedMessage) {
+                        else if (msg instanceof TcpDiscoveryCheckFailedMessage) {
                             // Send receipt back.
                             writeToSocket(sock, RES_OK);
 
@@ -4832,7 +4832,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
                             continue;
                         }
-                        else if (msg instanceof GridTcpDiscoveryLoopbackProblemMessage) {
+                        else if (msg instanceof TcpDiscoveryLoopbackProblemMessage) {
                             // Send receipt back.
                             writeToSocket(sock, RES_OK);
 
@@ -4951,7 +4951,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
          * @throws IOException If IO failed.
          */
         @SuppressWarnings({"IfMayBeConditional"})
-        private boolean processJoinRequestMessage(GridTcpDiscoveryJoinRequestMessage msg) throws IOException {
+        private boolean processJoinRequestMessage(TcpDiscoveryJoinRequestMessage msg) throws IOException {
             assert msg != null;
             assert !msg.responded();
 
@@ -5089,9 +5089,9 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
         }
 
         /** {@inheritDoc} */
-        @Override void addMessage(GridTcpDiscoveryAbstractMessage msg) {
-            if (msg instanceof GridTcpDiscoveryHeartbeatMessage) {
-                GridTcpDiscoveryHeartbeatMessage hbMsg = (GridTcpDiscoveryHeartbeatMessage)msg;
+        @Override void addMessage(TcpDiscoveryAbstractMessage msg) {
+            if (msg instanceof TcpDiscoveryHeartbeatMessage) {
+                TcpDiscoveryHeartbeatMessage hbMsg = (TcpDiscoveryHeartbeatMessage)msg;
 
                 if (hbMsg.creatorNodeId().equals(nodeId)) {
                     metrics = hbMsg.metrics().get(nodeId).metrics();
@@ -5106,7 +5106,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
         }
 
         /** {@inheritDoc} */
-        @Override protected void processMessage(GridTcpDiscoveryAbstractMessage msg) {
+        @Override protected void processMessage(TcpDiscoveryAbstractMessage msg) {
             try {
                 assert msg.verified() : msg;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 47ee030..9e6bbf1 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -419,7 +419,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
      * @throws IOException If IO failed or write timed out.
      * @throws GridException If marshalling failed.
      */
-    protected void writeToSocket(Socket sock, GridTcpDiscoveryAbstractMessage msg) throws IOException, GridException {
+    protected void writeToSocket(Socket sock, TcpDiscoveryAbstractMessage msg) throws IOException, GridException {
         writeToSocket(sock, msg, new GridByteArrayOutputStream(8 * 1024)); // 8K.
     }
 
@@ -433,7 +433,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
      * @throws GridException If marshalling failed.
      */
     @SuppressWarnings("ThrowFromFinallyBlock")
-    protected void writeToSocket(Socket sock, GridTcpDiscoveryAbstractMessage msg, GridByteArrayOutputStream bout)
+    protected void writeToSocket(Socket sock, TcpDiscoveryAbstractMessage msg, GridByteArrayOutputStream bout)
         throws IOException, GridException {
         assert sock != null;
         assert msg != null;
@@ -679,7 +679,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
      * @param msg Message.
      * @return Error.
      */
-    protected IgniteSpiException duplicateIdError(GridTcpDiscoveryDuplicateIdMessage msg) {
+    protected IgniteSpiException duplicateIdError(TcpDiscoveryDuplicateIdMessage msg) {
         assert msg != null;
 
         return new IgniteSpiException("Local node has the same ID as existing node in topology " +
@@ -691,7 +691,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
      * @param msg Message.
      * @return Error.
      */
-    protected IgniteSpiException authenticationFailedError(GridTcpDiscoveryAuthFailedMessage msg) {
+    protected IgniteSpiException authenticationFailedError(TcpDiscoveryAuthFailedMessage msg) {
         assert msg != null;
 
         return new IgniteSpiException(new GridAuthenticationException("Authentication failed [nodeId=" +
@@ -702,7 +702,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
      * @param msg Message.
      * @return Error.
      */
-    protected IgniteSpiException checkFailedError(GridTcpDiscoveryCheckFailedMessage msg) {
+    protected IgniteSpiException checkFailedError(TcpDiscoveryCheckFailedMessage msg) {
         assert msg != null;
 
         return versionCheckFailed(msg) ? new IgniteSpiVersionCheckException(msg.error()) :
@@ -713,8 +713,8 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
      * @param msg Message.
      * @return Whether delivery of the message is ensured.
      */
-    protected boolean ensured(GridTcpDiscoveryAbstractMessage msg) {
-        return U.getAnnotation(msg.getClass(), GridTcpDiscoveryEnsureDelivery.class) != null;
+    protected boolean ensured(TcpDiscoveryAbstractMessage msg) {
+        return U.getAnnotation(msg.getClass(), TcpDiscoveryEnsureDelivery.class) != null;
     }
 
     /**
@@ -724,7 +724,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
      *      and create separate message for failed version check with next major release.
      */
     @Deprecated
-    private static boolean versionCheckFailed(GridTcpDiscoveryCheckFailedMessage msg) {
+    private static boolean versionCheckFailed(TcpDiscoveryCheckFailedMessage msg) {
         return msg.error().contains("versions are not compatible");
     }
 
@@ -913,7 +913,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
         private final GridByteArrayOutputStream bout = new GridByteArrayOutputStream(100 * 1024);
 
         /** Message queue. */
-        private final BlockingDeque<GridTcpDiscoveryAbstractMessage> queue = new LinkedBlockingDeque<>();
+        private final BlockingDeque<TcpDiscoveryAbstractMessage> queue = new LinkedBlockingDeque<>();
 
         /** Backed interrupted flag. */
         private volatile boolean interrupted;
@@ -933,7 +933,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
                 log.debug("Message worker started [locNodeId=" + locNodeId + ']');
 
             while (!isInterrupted()) {
-                GridTcpDiscoveryAbstractMessage msg = queue.poll(2000, TimeUnit.MILLISECONDS);
+                TcpDiscoveryAbstractMessage msg = queue.poll(2000, TimeUnit.MILLISECONDS);
 
                 if (msg == null)
                     continue;
@@ -966,10 +966,10 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
          *
          * @param msg Message to add.
          */
-        void addMessage(GridTcpDiscoveryAbstractMessage msg) {
+        void addMessage(TcpDiscoveryAbstractMessage msg) {
             assert msg != null;
 
-            if (msg instanceof GridTcpDiscoveryHeartbeatMessage)
+            if (msg instanceof TcpDiscoveryHeartbeatMessage)
                 queue.addFirst(msg);
             else
                 queue.add(msg);
@@ -978,7 +978,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
                 log.debug("Message has been added to queue: " + msg);
         }
 
-        protected abstract void processMessage(GridTcpDiscoveryAbstractMessage msg);
+        protected abstract void processMessage(TcpDiscoveryAbstractMessage msg);
 
         /**
          * @param sock Socket.
@@ -986,7 +986,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
          * @throws IOException If IO failed.
          * @throws GridException If marshalling failed.
          */
-        protected final void writeToSocket(Socket sock, GridTcpDiscoveryAbstractMessage msg)
+        protected final void writeToSocket(Socket sock, TcpDiscoveryAbstractMessage msg)
             throws IOException, GridException {
             bout.reset();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
index 1155304..68dd179 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
@@ -206,7 +206,7 @@ public class TcpDiscoveryStatistics {
      *
      * @param msg Received message.
      */
-    public synchronized void onMessageReceived(GridTcpDiscoveryAbstractMessage msg) {
+    public synchronized void onMessageReceived(TcpDiscoveryAbstractMessage msg) {
         assert msg != null;
 
         Integer cnt = F.addIfAbsent(rcvdMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
@@ -227,7 +227,7 @@ public class TcpDiscoveryStatistics {
      *
      * @param msg Processed message.
      */
-    public synchronized void onMessageProcessingStarted(GridTcpDiscoveryAbstractMessage msg) {
+    public synchronized void onMessageProcessingStarted(TcpDiscoveryAbstractMessage msg) {
         assert msg != null;
 
         Integer cnt = F.addIfAbsent(procMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
@@ -259,7 +259,7 @@ public class TcpDiscoveryStatistics {
      *
      * @param msg Processed message.
      */
-    public synchronized void onMessageProcessingFinished(GridTcpDiscoveryAbstractMessage msg) {
+    public synchronized void onMessageProcessingFinished(TcpDiscoveryAbstractMessage msg) {
         assert msg != null;
 
         Long startTs = msgsProcStartTs.get(msg.id());
@@ -285,14 +285,14 @@ public class TcpDiscoveryStatistics {
      * @param msg Sent message.
      * @param time Time taken to serialize message.
      */
-    public synchronized void onMessageSent(GridTcpDiscoveryAbstractMessage msg, long time) {
+    public synchronized void onMessageSent(TcpDiscoveryAbstractMessage msg, long time) {
         assert msg != null;
         assert time >= 0;
 
         if (crdSinceTs.get() > 0 &&
-            (msg instanceof GridTcpDiscoveryNodeAddedMessage) ||
-            (msg instanceof GridTcpDiscoveryNodeLeftMessage) ||
-            (msg instanceof GridTcpDiscoveryNodeFailedMessage)) {
+            (msg instanceof TcpDiscoveryNodeAddedMessage) ||
+            (msg instanceof TcpDiscoveryNodeLeftMessage) ||
+            (msg instanceof TcpDiscoveryNodeFailedMessage)) {
             ringMsgsSndTs.put(msg.id(), U.currentTimeMillis());
 
             ringMsgsSent++;
@@ -337,7 +337,7 @@ public class TcpDiscoveryStatistics {
      *
      * @param msg Message.
      */
-    public synchronized void onRingMessageReceived(GridTcpDiscoveryAbstractMessage msg) {
+    public synchronized void onRingMessageReceived(TcpDiscoveryAbstractMessage msg) {
         assert msg != null;
 
         Long sentTs = ringMsgsSndTs.get(msg.id());

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryAbstractMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryAbstractMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryAbstractMessage.java
deleted file mode 100644
index 10765a7..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryAbstractMessage.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Base class to implement discovery messages.
- */
-public abstract class GridTcpDiscoveryAbstractMessage implements Externalizable {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** */
-    protected static final int CLIENT_FLAG_POS = 0;
-
-    /** */
-    protected static final int RESPONDED_FLAG_POS = 1;
-
-    /** */
-    protected static final int CLIENT_RECON_SUCCESS_FLAG_POS = 2;
-
-    /** Sender of the message (transient). */
-    private UUID senderNodeId;
-
-    /** Message ID. */
-    private IgniteUuid id;
-
-    /** Verifier node ID. */
-    private UUID verifierNodeId;
-
-    /** Topology version. */
-    private long topVer;
-
-    /** Destination client node ID. */
-    private UUID destClientNodeId;
-
-    /** Flags. */
-    @GridToStringExclude
-    private int flags;
-
-    /** Pending message index. */
-    private short pendingIdx;
-
-    /**
-     * Default no-arg constructor for {@link Externalizable} interface.
-     */
-    protected GridTcpDiscoveryAbstractMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     */
-    protected GridTcpDiscoveryAbstractMessage(UUID creatorNodeId) {
-        id = IgniteUuid.fromUuid(creatorNodeId);
-    }
-
-    /**
-     * Gets creator node.
-     *
-     * @return Creator node ID.
-     */
-    public UUID creatorNodeId() {
-        return id.globalId();
-    }
-
-    /**
-     * Gets message ID.
-     *
-     * @return Message ID.
-     */
-    public IgniteUuid id() {
-        return id;
-    }
-
-    /**
-     * Gets sender node ID.
-     *
-     * @return Sender node ID.
-     */
-    public UUID senderNodeId() {
-        return senderNodeId;
-    }
-
-    /**
-     * Sets sender node ID.
-     *
-     * @param senderNodeId Sender node ID.
-     */
-    public void senderNodeId(UUID senderNodeId) {
-        this.senderNodeId = senderNodeId;
-    }
-
-    /**
-     * Checks whether message is verified.
-     *
-     * @return {@code true} if message was verified.
-     */
-    public boolean verified() {
-        return verifierNodeId != null;
-    }
-
-    /**
-     * Gets verifier node ID.
-     *
-     * @return verifier node ID.
-     */
-    public UUID verifierNodeId() {
-        return verifierNodeId;
-    }
-
-    /**
-     * Verifies the message and stores verifier ID.
-     *
-     * @param verifierNodeId Verifier node ID.
-     */
-    public void verify(UUID verifierNodeId) {
-        this.verifierNodeId = verifierNodeId;
-    }
-
-    /**
-     * Gets topology version.
-     *
-     * @return Topology version.
-     */
-    public long topologyVersion() {
-        return topVer;
-    }
-
-    /**
-     * Sets topology version.
-     *
-     * @param topVer Topology version.
-     */
-    public void topologyVersion(long topVer) {
-        this.topVer = topVer;
-    }
-
-    /**
-     * Get client node flag.
-     *
-     * @return Client node flag.
-     */
-    public boolean client() {
-        return getFlag(CLIENT_FLAG_POS);
-    }
-
-    /**
-     * Sets client node flag.
-     *
-     * @param client Client node flag.
-     */
-    public void client(boolean client) {
-        setFlag(CLIENT_FLAG_POS, client);
-    }
-
-    /**
-     * @return Destination client node ID.
-     */
-    public UUID destinationClientNodeId() {
-        return destClientNodeId;
-    }
-
-    /**
-     * @param destClientNodeId Destination client node ID.
-     */
-    public void destinationClientNodeId(UUID destClientNodeId) {
-        this.destClientNodeId = destClientNodeId;
-    }
-
-    /**
-     * @return Pending message index.
-     */
-    public short pendingIndex() {
-        return pendingIdx;
-    }
-
-    /**
-     * @param pendingIdx Pending message index.
-     */
-    public void pendingIndex(short pendingIdx) {
-        this.pendingIdx = pendingIdx;
-    }
-
-    /**
-     * @param pos Flag position.
-     * @return Flag value.
-     */
-    protected boolean getFlag(int pos) {
-        assert pos >= 0 && pos < 32;
-
-        int mask = 1 << pos;
-
-        return (flags & mask) == mask;
-    }
-
-    /**
-     * @param pos Flag position.
-     * @param val Flag value.
-     */
-    protected void setFlag(int pos, boolean val) {
-        assert pos >= 0 && pos < 32;
-
-        int mask = 1 << pos;
-
-        if (val)
-            flags |= mask;
-        else
-            flags &= ~mask;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        U.writeGridUuid(out, id);
-        U.writeUuid(out, verifierNodeId);
-        out.writeLong(topVer);
-        U.writeUuid(out, destClientNodeId);
-        out.writeInt(flags);
-        out.writeShort(pendingIdx);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        id = U.readGridUuid(in);
-        verifierNodeId = U.readUuid(in);
-        topVer = in.readLong();
-        destClientNodeId = U.readUuid(in);
-        flags = in.readInt();
-        pendingIdx = in.readShort();
-    }
-
-    /** {@inheritDoc} */
-    @Override public final boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-        else if (obj instanceof GridTcpDiscoveryAbstractMessage)
-            return id.equals(((GridTcpDiscoveryAbstractMessage)obj).id);
-
-        return false;
-    }
-
-    /** {@inheritDoc} */
-    @Override public final int hashCode() {
-        return id.hashCode();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryAbstractMessage.class, this, "isClient", getFlag(CLIENT_FLAG_POS));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryAuthFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryAuthFailedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryAuthFailedMessage.java
deleted file mode 100644
index 1c9a89e..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryAuthFailedMessage.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-/**
- * Message telling joining node that its authentication failed on coordinator.
- */
-public class GridTcpDiscoveryAuthFailedMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Coordinator address. */
-    private InetAddress addr;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryAuthFailedMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param addr Coordinator address.
-     */
-    public GridTcpDiscoveryAuthFailedMessage(UUID creatorNodeId, InetAddress addr) {
-        super(creatorNodeId);
-
-        this.addr = addr;
-    }
-
-    /**
-     * @return Coordinator address.
-     */
-    public InetAddress address() {
-        return addr;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeByteArray(out, addr.getAddress());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        addr = InetAddress.getByAddress(U.readByteArray(in));
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryAuthFailedMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryCheckFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryCheckFailedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryCheckFailedMessage.java
deleted file mode 100644
index 26b4136..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryCheckFailedMessage.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message telling joining node that it failed coordinator's validation check.
- */
-public class GridTcpDiscoveryCheckFailedMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Coordinator version. */
-    private String err;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryCheckFailedMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param err Error message from coordinator.
-     */
-    public GridTcpDiscoveryCheckFailedMessage(UUID creatorNodeId, String err) {
-        super(creatorNodeId);
-
-        this.err = err;
-    }
-
-    /**
-     * @return Error message from coordinator.
-     */
-    public String error() {
-        return err;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeString(out, err);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        err = U.readString(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryCheckFailedMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryClientReconnectMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryClientReconnectMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryClientReconnectMessage.java
deleted file mode 100644
index 2452a2c..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryClientReconnectMessage.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message telling that client node is reconnecting to topology.
- */
-public class GridTcpDiscoveryClientReconnectMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** New router nodeID. */
-    private UUID routerNodeId;
-
-    /** Last message ID. */
-    private IgniteUuid lastMsgId;
-
-    /** Pending messages. */
-    @GridToStringExclude
-    private Collection<GridTcpDiscoveryAbstractMessage> msgs;
-
-    /**
-     * For {@link Externalizable}.
-     */
-    public GridTcpDiscoveryClientReconnectMessage() {
-        // No-op.
-    }
-
-    /**
-     * @param creatorNodeId Creator node ID.
-     * @param routerNodeId New router node ID.
-     * @param lastMsgId Last message ID.
-     */
-    public GridTcpDiscoveryClientReconnectMessage(UUID creatorNodeId, UUID routerNodeId, IgniteUuid lastMsgId) {
-        super(creatorNodeId);
-
-        this.routerNodeId = routerNodeId;
-        this.lastMsgId = lastMsgId;
-    }
-
-    /**
-     * @return New router node ID.
-     */
-    public UUID routerNodeId() {
-        return routerNodeId;
-    }
-
-    /**
-     * @return Last message ID.
-     */
-    public IgniteUuid lastMessageId() {
-        return lastMsgId;
-    }
-
-    /**
-     * @param msgs Pending messages.
-     */
-    public void pendingMessages(Collection<GridTcpDiscoveryAbstractMessage> msgs) {
-        this.msgs = msgs;
-    }
-
-    /**
-     * @return Pending messages.
-     */
-    public Collection<GridTcpDiscoveryAbstractMessage> pendingMessages() {
-        return msgs;
-    }
-
-    /**
-     * @param success Success flag.
-     */
-    public void success(boolean success) {
-        setFlag(CLIENT_RECON_SUCCESS_FLAG_POS, success);
-    }
-
-    /**
-     * @return Success flag.
-     */
-    public boolean success() {
-        return getFlag(CLIENT_RECON_SUCCESS_FLAG_POS);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeUuid(out, routerNodeId);
-        U.writeGridUuid(out, lastMsgId);
-        U.writeCollection(out, msgs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        routerNodeId = U.readUuid(in);
-        lastMsgId = U.readGridUuid(in);
-        msgs = U.readCollection(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryClientReconnectMessage.class, this, "super", super.toString());
-    }
-}


[42/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpi.java
deleted file mode 100644
index 98c378f..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpi.java
+++ /dev/null
@@ -1,344 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.jobstealing;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.spi.failover.always.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.util.*;
-
-import static org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi.*;
-
-/**
- * Job stealing failover SPI needs to always be used in conjunction with
- * {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi} SPI. When {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi}
- * receives a <b>steal</b> request and rejects jobs so they can be routed to the
- * appropriate node, it is the responsibility of this {@code GridJobStealingFailoverSpi}
- * SPI to make sure that the job is indeed re-routed to the node that has sent the initial
- * request to <b>steal</b> it.
- * <p>
- * {@code GridJobStealingFailoverSpi} knows where to route a job based on the
- * {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi#THIEF_NODE_ATTR} job context attribute (see {@link org.apache.ignite.compute.ComputeJobContext}).
- * Prior to rejecting a job,  {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi} will populate this
- * attribute with the ID of the node that wants to <b>steal</b> this job.
- * Then {@code GridJobStealingFailoverSpi} will read the value of this attribute and
- * route the job to the node specified.
- * <p>
- * If failure is caused by a node crash, and not by <b>steal</b> request, then this
- * SPI behaves identically to {@link GridAlwaysFailoverSpi}, and tries to find the
- * next balanced node to fail-over a job to.
- * <p>
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * This SPI has no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * This SPI has following optional configuration parameters:
- * <ul>
- * <li>Maximum failover attempts for a single job (see {@link #setMaximumFailoverAttempts(int)}).</li>
- * </ul>
- * Here is a Java example on how to configure grid with {@code GridJobStealingFailoverSpi}.
- * <pre name="code" class="java">
- * GridJobStealingFailoverSpi spi = new GridJobStealingFailoverSpi();
- *
- * // Override maximum failover attempts.
- * spi.setMaximumFailoverAttempts(5);
- *
- * GridConfiguration cfg = new GridConfiguration();
- *
- * // Override default failover SPI.
- * cfg.setFailoverSpiSpi(spi);
- *
- * // Starts grid.
- * G.start(cfg);
- </pre>
- * Here is an example of how to configure {@code GridJobStealingFailoverSpi} from Spring XML configuration file.
- * <pre name="code" class="xml">
- * &lt;property name="failoverSpi"&gt;
- *     &lt;bean class="org.gridgain.grid.spi.failover.jobstealing.GridJobStealingFailoverSpi"&gt;
- *         &lt;property name="maximumFailoverAttempts" value="5"/&gt;
- *     &lt;/bean&gt;
- * &lt;/property&gt;
- * </pre>
- * <p>
- * <img src="http://www.gridgain.com/images/spring-small.png">
- * <br>
- * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
- * @see GridFailoverSpi
- */
-@IgniteSpiMultipleInstancesSupport(true)
-@IgniteSpiConsistencyChecked(optional = true)
-public class GridJobStealingFailoverSpi extends IgniteSpiAdapter implements GridFailoverSpi,
-    GridJobStealingFailoverSpiMBean {
-    /** Maximum number of attempts to execute a failed job on another node (default is {@code 5}). */
-    public static final int DFLT_MAX_FAILOVER_ATTEMPTS = 5;
-
-    /**
-     * Name of job context attribute containing all nodes a job failed on. Note
-     * that this list does not include nodes that a job was stolen from.
-     *
-     * @see org.apache.ignite.compute.ComputeJobContext
-     */
-    static final String FAILED_NODE_LIST_ATTR = "gg:failover:failednodelist";
-
-    /**
-     * Name of job context attribute containing current failover attempt count.
-     * This count is incremented every time the same job gets failed over to
-     * another node for execution if it was not successfully stolen.
-     *
-     * @see org.apache.ignite.compute.ComputeJobContext
-     */
-    static final String FAILOVER_ATTEMPT_COUNT_ATTR = "gg:failover:attemptcount";
-
-    /** Maximum failover attempts job context attribute name. */
-    private static final String MAX_FAILOVER_ATTEMPT_ATTR = "gg:failover:maxattempts";
-
-    /** Injected grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Maximum number of attempts to execute a failed job on another node. */
-    private int maxFailoverAttempts = DFLT_MAX_FAILOVER_ATTEMPTS;
-
-    /** Number of jobs that were failed over. */
-    private int totalFailedOverJobs;
-
-    /** Number of jobs that were stolen. */
-    private int totalStolenJobs;
-
-    /** {@inheritDoc} */
-    @Override public int getMaximumFailoverAttempts() {
-        return maxFailoverAttempts;
-    }
-
-    /**
-     * Sets maximum number of attempts to execute a failed job on another node.
-     * If job gets stolen and thief node exists then it is not considered as
-     * failed job.
-     * If not specified, {@link #DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
-     * <p>
-     * Note this value must be identical for all grid nodes in the grid.
-     *
-     * @param maxFailoverAttempts Maximum number of attempts to execute a failed
-     *      job on another node.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setMaximumFailoverAttempts(int maxFailoverAttempts) {
-        this.maxFailoverAttempts = maxFailoverAttempts;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalFailedOverJobsCount() {
-        return totalFailedOverJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalStolenJobsCount() {
-        return totalStolenJobs;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Map<String, Object> getNodeAttributes() throws IgniteSpiException {
-        return F.<String, Object>asMap(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR), maxFailoverAttempts);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(String gridName) throws IgniteSpiException {
-        // Start SPI start stopwatch.
-        startStopwatch();
-
-        assertParameter(maxFailoverAttempts >= 0, "maximumFailoverAttempts >= 0");
-
-        if (log.isDebugEnabled())
-            log.debug(configInfo("maxFailoverAttempts", maxFailoverAttempts));
-
-        registerMBean(gridName, this, GridJobStealingFailoverSpiMBean.class);
-
-        // Ack ok start.
-        if (log.isDebugEnabled())
-            log.debug(startInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        unregisterMBean();
-
-        // Ack ok stop.
-        if (log.isDebugEnabled())
-            log.debug(stopInfo());
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override public ClusterNode failover(GridFailoverContext ctx, List<ClusterNode> top) {
-        assert ctx != null;
-        assert top != null;
-
-        if (top.isEmpty()) {
-            U.warn(log, "Received empty subgrid and is forced to fail.");
-
-            // Nowhere to failover to.
-            return null;
-        }
-
-        Integer failoverCnt = ctx.getJobResult().getJobContext().getAttribute(FAILOVER_ATTEMPT_COUNT_ATTR);
-
-        if (failoverCnt == null)
-            failoverCnt = 0;
-
-        if (failoverCnt > maxFailoverAttempts) {
-            U.error(log, "Failover count exceeded maximum failover attempts parameter [failedJob=" +
-                ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']');
-
-            return null;
-        }
-
-        if (failoverCnt == maxFailoverAttempts) {
-            U.warn(log, "Job failover failed because number of maximum failover attempts is exceeded [failedJob=" +
-                ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']');
-
-            return null;
-        }
-
-        try {
-            ClusterNode thief = null;
-            boolean isNodeFailed = false;
-
-            UUID thiefId = ctx.getJobResult().getJobContext().getAttribute(THIEF_NODE_ATTR);
-
-            if (thiefId != null) {
-                // Clear attribute.
-                ctx.getJobResult().getJobContext().setAttribute(THIEF_NODE_ATTR, null);
-
-                thief = getSpiContext().node(thiefId);
-
-                if (thief != null) {
-                    // If sender != receiver.
-                    if (thief.equals(ctx.getJobResult().getNode())) {
-                        U.error(log, "Job stealer node is equal to job node (will fail-over using " +
-                            "load-balancing): " + thief.id());
-
-                        isNodeFailed = true;
-
-                        thief = null;
-                    }
-                    else if (!top.contains(thief)) {
-                        U.warn(log, "Thief node is not part of task topology  (will fail-over using load-balancing) " +
-                            "[thief=" + thiefId + ", topSize=" + top.size() + ']');
-
-                        thief = null;
-                    }
-
-                    if (log.isDebugEnabled())
-                        log.debug("Failing-over stolen job [from=" + ctx.getJobResult().getNode() + ", to=" +
-                            thief + ']');
-                }
-                else {
-                    isNodeFailed = true;
-
-                    U.warn(log, "Thief node left grid (will fail-over using load balancing): " + thiefId);
-                }
-            }
-            else
-                isNodeFailed = true;
-
-            // If job was not stolen or stolen node is not part of topology,
-            // then failover the regular way.
-            if (thief == null) {
-                Collection<UUID> failedNodes = ctx.getJobResult().getJobContext().getAttribute(FAILED_NODE_LIST_ATTR);
-
-                if (failedNodes == null)
-                    failedNodes = U.newHashSet(1);
-
-                if (isNodeFailed)
-                    failedNodes.add(ctx.getJobResult().getNode().id());
-
-                // Set updated failed node set into job context.
-                ctx.getJobResult().getJobContext().setAttribute(FAILED_NODE_LIST_ATTR, failedNodes);
-
-                // Copy.
-                List<ClusterNode> newTop = new ArrayList<>(top.size());
-
-                for (ClusterNode n : top) {
-                    // Add non-failed nodes to topology.
-                    if (!failedNodes.contains(n.id()))
-                        newTop.add(n);
-                }
-
-                if (newTop.isEmpty()) {
-                    U.warn(log, "Received topology with only nodes that job had failed on (forced to fail) " +
-                        "[failedNodes=" + failedNodes + ']');
-
-                    // Nowhere to failover to.
-                    return null;
-                }
-
-                thief = ctx.getBalancedNode(newTop);
-
-                if (thief == null)
-                    U.warn(log, "Load balancer returned null node for topology: " + newTop);
-            }
-
-            if (isNodeFailed)
-                // This is a failover, not stealing.
-                failoverCnt++;
-
-            // Even if it was stealing and thief node left grid we assume
-            // that it is failover because of the fail.
-            ctx.getJobResult().getJobContext().setAttribute(FAILOVER_ATTEMPT_COUNT_ATTR, failoverCnt);
-
-            if (thief != null) {
-                totalFailedOverJobs++;
-
-                if (isNodeFailed) {
-                    U.warn(log, "Failed over job to a new node [newNode=" + thief.id() +
-                        ", oldNode=" + ctx.getJobResult().getNode().id() +
-                        ", sesId=" + ctx.getTaskSession().getId() +
-                        ", job=" + ctx.getJobResult().getJob() +
-                        ", jobCtx=" + ctx.getJobResult().getJobContext() +
-                        ", task=" + ctx.getTaskSession().getTaskName() + ']');
-                }
-                else {
-                    totalStolenJobs++;
-                    if (log.isInfoEnabled())
-                        log.info("Stealing job to a new node [newNode=" + thief.id() +
-                            ", oldNode=" + ctx.getJobResult().getNode().id() +
-                            ", sesId=" + ctx.getTaskSession().getId() +
-                            ", job=" + ctx.getJobResult().getJob() +
-                            ", jobCtx=" + ctx.getJobResult().getJobContext() +
-                            ", task=" + ctx.getTaskSession().getTaskName() + ']');
-                }
-            }
-
-            return thief;
-        }
-        catch (GridException e) {
-            U.error(log, "Failed to get next balanced node for failover: " + ctx, e);
-
-            return null;
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override protected List<String> getConsistentAttributeNames() {
-        return Collections.singletonList(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR));
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridJobStealingFailoverSpi.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiMBean.java
deleted file mode 100644
index 3163d30..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiMBean.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.jobstealing;
-
-import org.apache.ignite.mbean.*;
-import org.apache.ignite.spi.*;
-
-/**
- * Management bean for {@link GridJobStealingFailoverSpi}.
- */
-@IgniteMBeanDescription("MBean that provides access to job stealing failover SPI configuration.")
-public interface GridJobStealingFailoverSpiMBean extends IgniteSpiManagementMBean {
-    /**
-     * Gets maximum number of attempts to execute a failed job on another node.
-     * If job gets stolen and thief node exists then it is not considered as
-     * failed job.
-     * If not specified, {@link GridJobStealingFailoverSpi#DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
-     *
-     * @return Maximum number of attempts to execute a failed job on another node.
-     */
-    @IgniteMBeanDescription("Maximum number of attempts to execute a failed job on another node.")
-    public int getMaximumFailoverAttempts();
-
-    /**
-     * Get total number of jobs that were failed over including stolen ones.
-     *
-     * @return Total number of failed over jobs.
-     */
-    @IgniteMBeanDescription("Total number of jobs that were failed over including stolen ones.")
-    public int getTotalFailedOverJobsCount();
-
-    /**
-     * Get total number of jobs that were stolen.
-     *
-     * @return Total number of stolen jobs.
-     */
-    @IgniteMBeanDescription("Total number of jobs that were stolen.")
-    public int getTotalStolenJobsCount();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpi.java
new file mode 100644
index 0000000..e7e7445
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpi.java
@@ -0,0 +1,343 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.failover.jobstealing;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.spi.failover.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.util.*;
+
+import static org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi.*;
+
+/**
+ * Job stealing failover SPI needs to always be used in conjunction with
+ * {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi} SPI. When {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi}
+ * receives a <b>steal</b> request and rejects jobs so they can be routed to the
+ * appropriate node, it is the responsibility of this {@code GridJobStealingFailoverSpi}
+ * SPI to make sure that the job is indeed re-routed to the node that has sent the initial
+ * request to <b>steal</b> it.
+ * <p>
+ * {@code GridJobStealingFailoverSpi} knows where to route a job based on the
+ * {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi#THIEF_NODE_ATTR} job context attribute (see {@link org.apache.ignite.compute.ComputeJobContext}).
+ * Prior to rejecting a job,  {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi} will populate this
+ * attribute with the ID of the node that wants to <b>steal</b> this job.
+ * Then {@code GridJobStealingFailoverSpi} will read the value of this attribute and
+ * route the job to the node specified.
+ * <p>
+ * If failure is caused by a node crash, and not by <b>steal</b> request, then this
+ * SPI behaves identically to {@link org.gridgain.grid.spi.failover.always.AlwaysFailoverSpi}, and tries to find the
+ * next balanced node to fail-over a job to.
+ * <p>
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * This SPI has no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * This SPI has following optional configuration parameters:
+ * <ul>
+ * <li>Maximum failover attempts for a single job (see {@link #setMaximumFailoverAttempts(int)}).</li>
+ * </ul>
+ * Here is a Java example on how to configure grid with {@code GridJobStealingFailoverSpi}.
+ * <pre name="code" class="java">
+ * GridJobStealingFailoverSpi spi = new GridJobStealingFailoverSpi();
+ *
+ * // Override maximum failover attempts.
+ * spi.setMaximumFailoverAttempts(5);
+ *
+ * GridConfiguration cfg = new GridConfiguration();
+ *
+ * // Override default failover SPI.
+ * cfg.setFailoverSpiSpi(spi);
+ *
+ * // Starts grid.
+ * G.start(cfg);
+ </pre>
+ * Here is an example of how to configure {@code GridJobStealingFailoverSpi} from Spring XML configuration file.
+ * <pre name="code" class="xml">
+ * &lt;property name="failoverSpi"&gt;
+ *     &lt;bean class="org.gridgain.grid.spi.failover.jobstealing.GridJobStealingFailoverSpi"&gt;
+ *         &lt;property name="maximumFailoverAttempts" value="5"/&gt;
+ *     &lt;/bean&gt;
+ * &lt;/property&gt;
+ * </pre>
+ * <p>
+ * <img src="http://www.gridgain.com/images/spring-small.png">
+ * <br>
+ * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
+ * @see org.gridgain.grid.spi.failover.FailoverSpi
+ */
+@IgniteSpiMultipleInstancesSupport(true)
+@IgniteSpiConsistencyChecked(optional = true)
+public class JobStealingFailoverSpi extends IgniteSpiAdapter implements FailoverSpi,
+    JobStealingFailoverSpiMBean {
+    /** Maximum number of attempts to execute a failed job on another node (default is {@code 5}). */
+    public static final int DFLT_MAX_FAILOVER_ATTEMPTS = 5;
+
+    /**
+     * Name of job context attribute containing all nodes a job failed on. Note
+     * that this list does not include nodes that a job was stolen from.
+     *
+     * @see org.apache.ignite.compute.ComputeJobContext
+     */
+    static final String FAILED_NODE_LIST_ATTR = "gg:failover:failednodelist";
+
+    /**
+     * Name of job context attribute containing current failover attempt count.
+     * This count is incremented every time the same job gets failed over to
+     * another node for execution if it was not successfully stolen.
+     *
+     * @see org.apache.ignite.compute.ComputeJobContext
+     */
+    static final String FAILOVER_ATTEMPT_COUNT_ATTR = "gg:failover:attemptcount";
+
+    /** Maximum failover attempts job context attribute name. */
+    private static final String MAX_FAILOVER_ATTEMPT_ATTR = "gg:failover:maxattempts";
+
+    /** Injected grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Maximum number of attempts to execute a failed job on another node. */
+    private int maxFailoverAttempts = DFLT_MAX_FAILOVER_ATTEMPTS;
+
+    /** Number of jobs that were failed over. */
+    private int totalFailedOverJobs;
+
+    /** Number of jobs that were stolen. */
+    private int totalStolenJobs;
+
+    /** {@inheritDoc} */
+    @Override public int getMaximumFailoverAttempts() {
+        return maxFailoverAttempts;
+    }
+
+    /**
+     * Sets maximum number of attempts to execute a failed job on another node.
+     * If job gets stolen and thief node exists then it is not considered as
+     * failed job.
+     * If not specified, {@link #DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
+     * <p>
+     * Note this value must be identical for all grid nodes in the grid.
+     *
+     * @param maxFailoverAttempts Maximum number of attempts to execute a failed
+     *      job on another node.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setMaximumFailoverAttempts(int maxFailoverAttempts) {
+        this.maxFailoverAttempts = maxFailoverAttempts;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalFailedOverJobsCount() {
+        return totalFailedOverJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalStolenJobsCount() {
+        return totalStolenJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Map<String, Object> getNodeAttributes() throws IgniteSpiException {
+        return F.<String, Object>asMap(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR), maxFailoverAttempts);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(String gridName) throws IgniteSpiException {
+        // Start SPI start stopwatch.
+        startStopwatch();
+
+        assertParameter(maxFailoverAttempts >= 0, "maximumFailoverAttempts >= 0");
+
+        if (log.isDebugEnabled())
+            log.debug(configInfo("maxFailoverAttempts", maxFailoverAttempts));
+
+        registerMBean(gridName, this, JobStealingFailoverSpiMBean.class);
+
+        // Ack ok start.
+        if (log.isDebugEnabled())
+            log.debug(startInfo());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        unregisterMBean();
+
+        // Ack ok stop.
+        if (log.isDebugEnabled())
+            log.debug(stopInfo());
+    }
+
+    /** {@inheritDoc} */
+    @SuppressWarnings("unchecked")
+    @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top) {
+        assert ctx != null;
+        assert top != null;
+
+        if (top.isEmpty()) {
+            U.warn(log, "Received empty subgrid and is forced to fail.");
+
+            // Nowhere to failover to.
+            return null;
+        }
+
+        Integer failoverCnt = ctx.getJobResult().getJobContext().getAttribute(FAILOVER_ATTEMPT_COUNT_ATTR);
+
+        if (failoverCnt == null)
+            failoverCnt = 0;
+
+        if (failoverCnt > maxFailoverAttempts) {
+            U.error(log, "Failover count exceeded maximum failover attempts parameter [failedJob=" +
+                ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']');
+
+            return null;
+        }
+
+        if (failoverCnt == maxFailoverAttempts) {
+            U.warn(log, "Job failover failed because number of maximum failover attempts is exceeded [failedJob=" +
+                ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']');
+
+            return null;
+        }
+
+        try {
+            ClusterNode thief = null;
+            boolean isNodeFailed = false;
+
+            UUID thiefId = ctx.getJobResult().getJobContext().getAttribute(THIEF_NODE_ATTR);
+
+            if (thiefId != null) {
+                // Clear attribute.
+                ctx.getJobResult().getJobContext().setAttribute(THIEF_NODE_ATTR, null);
+
+                thief = getSpiContext().node(thiefId);
+
+                if (thief != null) {
+                    // If sender != receiver.
+                    if (thief.equals(ctx.getJobResult().getNode())) {
+                        U.error(log, "Job stealer node is equal to job node (will fail-over using " +
+                            "load-balancing): " + thief.id());
+
+                        isNodeFailed = true;
+
+                        thief = null;
+                    }
+                    else if (!top.contains(thief)) {
+                        U.warn(log, "Thief node is not part of task topology  (will fail-over using load-balancing) " +
+                            "[thief=" + thiefId + ", topSize=" + top.size() + ']');
+
+                        thief = null;
+                    }
+
+                    if (log.isDebugEnabled())
+                        log.debug("Failing-over stolen job [from=" + ctx.getJobResult().getNode() + ", to=" +
+                            thief + ']');
+                }
+                else {
+                    isNodeFailed = true;
+
+                    U.warn(log, "Thief node left grid (will fail-over using load balancing): " + thiefId);
+                }
+            }
+            else
+                isNodeFailed = true;
+
+            // If job was not stolen or stolen node is not part of topology,
+            // then failover the regular way.
+            if (thief == null) {
+                Collection<UUID> failedNodes = ctx.getJobResult().getJobContext().getAttribute(FAILED_NODE_LIST_ATTR);
+
+                if (failedNodes == null)
+                    failedNodes = U.newHashSet(1);
+
+                if (isNodeFailed)
+                    failedNodes.add(ctx.getJobResult().getNode().id());
+
+                // Set updated failed node set into job context.
+                ctx.getJobResult().getJobContext().setAttribute(FAILED_NODE_LIST_ATTR, failedNodes);
+
+                // Copy.
+                List<ClusterNode> newTop = new ArrayList<>(top.size());
+
+                for (ClusterNode n : top) {
+                    // Add non-failed nodes to topology.
+                    if (!failedNodes.contains(n.id()))
+                        newTop.add(n);
+                }
+
+                if (newTop.isEmpty()) {
+                    U.warn(log, "Received topology with only nodes that job had failed on (forced to fail) " +
+                        "[failedNodes=" + failedNodes + ']');
+
+                    // Nowhere to failover to.
+                    return null;
+                }
+
+                thief = ctx.getBalancedNode(newTop);
+
+                if (thief == null)
+                    U.warn(log, "Load balancer returned null node for topology: " + newTop);
+            }
+
+            if (isNodeFailed)
+                // This is a failover, not stealing.
+                failoverCnt++;
+
+            // Even if it was stealing and thief node left grid we assume
+            // that it is failover because of the fail.
+            ctx.getJobResult().getJobContext().setAttribute(FAILOVER_ATTEMPT_COUNT_ATTR, failoverCnt);
+
+            if (thief != null) {
+                totalFailedOverJobs++;
+
+                if (isNodeFailed) {
+                    U.warn(log, "Failed over job to a new node [newNode=" + thief.id() +
+                        ", oldNode=" + ctx.getJobResult().getNode().id() +
+                        ", sesId=" + ctx.getTaskSession().getId() +
+                        ", job=" + ctx.getJobResult().getJob() +
+                        ", jobCtx=" + ctx.getJobResult().getJobContext() +
+                        ", task=" + ctx.getTaskSession().getTaskName() + ']');
+                }
+                else {
+                    totalStolenJobs++;
+                    if (log.isInfoEnabled())
+                        log.info("Stealing job to a new node [newNode=" + thief.id() +
+                            ", oldNode=" + ctx.getJobResult().getNode().id() +
+                            ", sesId=" + ctx.getTaskSession().getId() +
+                            ", job=" + ctx.getJobResult().getJob() +
+                            ", jobCtx=" + ctx.getJobResult().getJobContext() +
+                            ", task=" + ctx.getTaskSession().getTaskName() + ']');
+                }
+            }
+
+            return thief;
+        }
+        catch (GridException e) {
+            U.error(log, "Failed to get next balanced node for failover: " + ctx, e);
+
+            return null;
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override protected List<String> getConsistentAttributeNames() {
+        return Collections.singletonList(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR));
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(JobStealingFailoverSpi.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpiMBean.java
new file mode 100644
index 0000000..38d9534
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/failover/jobstealing/JobStealingFailoverSpiMBean.java
@@ -0,0 +1,46 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.failover.jobstealing;
+
+import org.apache.ignite.mbean.*;
+import org.apache.ignite.spi.*;
+
+/**
+ * Management bean for {@link JobStealingFailoverSpi}.
+ */
+@IgniteMBeanDescription("MBean that provides access to job stealing failover SPI configuration.")
+public interface JobStealingFailoverSpiMBean extends IgniteSpiManagementMBean {
+    /**
+     * Gets maximum number of attempts to execute a failed job on another node.
+     * If job gets stolen and thief node exists then it is not considered as
+     * failed job.
+     * If not specified, {@link JobStealingFailoverSpi#DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
+     *
+     * @return Maximum number of attempts to execute a failed job on another node.
+     */
+    @IgniteMBeanDescription("Maximum number of attempts to execute a failed job on another node.")
+    public int getMaximumFailoverAttempts();
+
+    /**
+     * Get total number of jobs that were failed over including stolen ones.
+     *
+     * @return Total number of failed over jobs.
+     */
+    @IgniteMBeanDescription("Total number of jobs that were failed over including stolen ones.")
+    public int getTotalFailedOverJobsCount();
+
+    /**
+     * Get total number of jobs that were stolen.
+     *
+     * @return Total number of stolen jobs.
+     */
+    @IgniteMBeanDescription("Total number of jobs that were stolen.")
+    public int getTotalStolenJobsCount();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpi.java
deleted file mode 100644
index f596bf3..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpi.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.never;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import java.util.*;
-
-/**
- * This class provides failover SPI implementation that never fails over. This implementation
- * never fails over a failed job by always returning {@code null} out of
- * {@link GridFailoverSpi#failover(GridFailoverContext, List)} method.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * This SPI has no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * This SPI has no optional configuration parameters.
- * <p>
- * Here is a Java example on how to configure grid with {@code GridNeverFailoverSpi}:
- * <pre name="code" class="java">
- * GridNeverFailoverSpi spi = new GridNeverFailoverSpi();
- *
- * GridConfiguration cfg = new GridConfiguration();
- *
- * // Override default failover SPI.
- * cfg.setFailoverSpiSpi(spi);
- *
- * // Starts grid.
- * G.start(cfg);
- * </pre>
- * Here is an example on how to configure grid with {@code GridNeverFailoverSpi} from Spring XML configuration file:
- * <pre name="code" class="xml">
- * &lt;property name="failoverSpi"&gt;
- *     &lt;bean class="org.gridgain.grid.spi.failover.never.GridNeverFailoverSpi"/&gt;
- * &lt;/property&gt;
- * </pre>
- * <p>
- * <img src="http://www.gridgain.com/images/spring-small.png">
- * <br>
- * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
- * @see GridFailoverSpi
- */
-@IgniteSpiMultipleInstancesSupport(true)
-public class GridNeverFailoverSpi extends IgniteSpiAdapter implements GridFailoverSpi, GridNeverFailoverSpiMBean {
-    /** Injected grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(String gridName) throws IgniteSpiException {
-        // Start SPI start stopwatch.
-        startStopwatch();
-
-        registerMBean(gridName, this, GridNeverFailoverSpiMBean.class);
-
-        // Ack ok start.
-        if (log.isDebugEnabled())
-            log.debug(startInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        unregisterMBean();
-
-        // Ack ok stop.
-        if (log.isDebugEnabled())
-            log.debug(stopInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public ClusterNode failover(GridFailoverContext ctx, List<ClusterNode> top) {
-        U.warn(log, "Returning 'null' node for failed job (failover will not happen) [job=" +
-            ctx.getJobResult().getJob() + ", task=" +  ctx.getTaskSession().getTaskName() +
-            ", sessionId=" + ctx.getTaskSession().getId() + ']');
-
-        return null;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridNeverFailoverSpi.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiMBean.java
deleted file mode 100644
index 5b89564..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/GridNeverFailoverSpiMBean.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.failover.never;
-
-import org.apache.ignite.mbean.*;
-import org.apache.ignite.spi.*;
-
-/**
- * Management bean for {@link GridNeverFailoverSpi}.
- */
-@IgniteMBeanDescription("MBean that provides access to never failover SPI configuration.")
-public interface GridNeverFailoverSpiMBean extends IgniteSpiManagementMBean {
-    // No-op.
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpi.java
new file mode 100644
index 0000000..945b2a5
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpi.java
@@ -0,0 +1,94 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.failover.never;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.spi.failover.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import java.util.*;
+
+/**
+ * This class provides failover SPI implementation that never fails over. This implementation
+ * never fails over a failed job by always returning {@code null} out of
+ * {@link org.gridgain.grid.spi.failover.FailoverSpi#failover(org.gridgain.grid.spi.failover.FailoverContext, List)} method.
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * This SPI has no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * This SPI has no optional configuration parameters.
+ * <p>
+ * Here is a Java example on how to configure grid with {@code GridNeverFailoverSpi}:
+ * <pre name="code" class="java">
+ * GridNeverFailoverSpi spi = new GridNeverFailoverSpi();
+ *
+ * GridConfiguration cfg = new GridConfiguration();
+ *
+ * // Override default failover SPI.
+ * cfg.setFailoverSpiSpi(spi);
+ *
+ * // Starts grid.
+ * G.start(cfg);
+ * </pre>
+ * Here is an example on how to configure grid with {@code GridNeverFailoverSpi} from Spring XML configuration file:
+ * <pre name="code" class="xml">
+ * &lt;property name="failoverSpi"&gt;
+ *     &lt;bean class="org.gridgain.grid.spi.failover.never.GridNeverFailoverSpi"/&gt;
+ * &lt;/property&gt;
+ * </pre>
+ * <p>
+ * <img src="http://www.gridgain.com/images/spring-small.png">
+ * <br>
+ * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
+ * @see org.gridgain.grid.spi.failover.FailoverSpi
+ */
+@IgniteSpiMultipleInstancesSupport(true)
+public class NeverFailoverSpi extends IgniteSpiAdapter implements FailoverSpi, NeverFailoverSpiMBean {
+    /** Injected grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(String gridName) throws IgniteSpiException {
+        // Start SPI start stopwatch.
+        startStopwatch();
+
+        registerMBean(gridName, this, NeverFailoverSpiMBean.class);
+
+        // Ack ok start.
+        if (log.isDebugEnabled())
+            log.debug(startInfo());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        unregisterMBean();
+
+        // Ack ok stop.
+        if (log.isDebugEnabled())
+            log.debug(stopInfo());
+    }
+
+    /** {@inheritDoc} */
+    @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top) {
+        U.warn(log, "Returning 'null' node for failed job (failover will not happen) [job=" +
+            ctx.getJobResult().getJob() + ", task=" +  ctx.getTaskSession().getTaskName() +
+            ", sessionId=" + ctx.getTaskSession().getId() + ']');
+
+        return null;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(NeverFailoverSpi.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpiMBean.java
new file mode 100644
index 0000000..30651c4
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/failover/never/NeverFailoverSpiMBean.java
@@ -0,0 +1,21 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.failover.never;
+
+import org.apache.ignite.mbean.*;
+import org.apache.ignite.spi.*;
+
+/**
+ * Management bean for {@link NeverFailoverSpi}.
+ */
+@IgniteMBeanDescription("MBean that provides access to never failover SPI configuration.")
+public interface NeverFailoverSpiMBean extends IgniteSpiManagementMBean {
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/config/job-loadtest/client.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/job-loadtest/client.xml b/modules/core/src/test/config/job-loadtest/client.xml
index 8f74a41..ce6b718 100644
--- a/modules/core/src/test/config/job-loadtest/client.xml
+++ b/modules/core/src/test/config/job-loadtest/client.xml
@@ -23,7 +23,7 @@
         <property name="deploymentMode" value="CONTINUOUS"/>
 
         <property name="failoverSpi">
-            <bean class="org.gridgain.grid.spi.failover.jobstealing.GridJobStealingFailoverSpi">
+            <bean class="org.gridgain.grid.spi.failover.jobstealing.JobStealingFailoverSpi">
                 <property name="maximumFailoverAttempts" value="10"/>
             </bean>
         </property>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/config/job-loadtest/server.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/job-loadtest/server.xml b/modules/core/src/test/config/job-loadtest/server.xml
index 74841e9..5546e20 100644
--- a/modules/core/src/test/config/job-loadtest/server.xml
+++ b/modules/core/src/test/config/job-loadtest/server.xml
@@ -36,7 +36,7 @@
         </property>
 
         <property name="failoverSpi">
-            <bean class="org.gridgain.grid.spi.failover.jobstealing.GridJobStealingFailoverSpi">
+            <bean class="org.gridgain.grid.spi.failover.jobstealing.JobStealingFailoverSpi">
                 <property name="maximumFailoverAttempts" value="10"/>
             </bean>
         </property>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/config/load/dsi-load-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/dsi-load-base.xml b/modules/core/src/test/config/load/dsi-load-base.xml
index 20548b2..8b49076 100644
--- a/modules/core/src/test/config/load/dsi-load-base.xml
+++ b/modules/core/src/test/config/load/dsi-load-base.xml
@@ -97,7 +97,7 @@
         </property>
 
         <property name="failoverSpi">
-            <bean class="org.gridgain.grid.spi.failover.always.GridAlwaysFailoverSpi">
+            <bean class="org.gridgain.grid.spi.failover.always.AlwaysFailoverSpi">
                 <property name="maximumFailoverAttempts" value="1"/>
             </bean>
         </property>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java
index fa73c02..73567e2 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java
@@ -81,7 +81,7 @@ public class GridJobStealingCollisionSpiAttributesSelfTest extends GridSpiAbstra
      * @throws Exception If failed.
      */
     private void addSpiDependency(GridTestNode node) throws Exception {
-        node.addAttribute(U.spiAttribute(getSpi(), ATTR_SPI_CLASS), GridJobStealingFailoverSpi.class.getName());
+        node.addAttribute(U.spiAttribute(getSpi(), ATTR_SPI_CLASS), JobStealingFailoverSpi.class.getName());
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java
index ff49b08..e94a937 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java
@@ -94,7 +94,7 @@ public class GridJobStealingCollisionSpiCustomTopologySelfTest extends
      * @throws Exception If failed.
      */
     private void addSpiDependency(GridTestNode node) throws Exception {
-        node.addAttribute(U.spiAttribute(getSpi(), ATTR_SPI_CLASS), GridJobStealingFailoverSpi.class.getName());
+        node.addAttribute(U.spiAttribute(getSpi(), ATTR_SPI_CLASS), JobStealingFailoverSpi.class.getName());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java
index 5d7c0f1..3040afb 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java
@@ -95,7 +95,7 @@ public class GridJobStealingCollisionSpiSelfTest extends GridSpiAbstractTest<Job
      * @throws Exception If failed.
      */
     private void addSpiDependency(GridTestNode node) throws Exception {
-        node.addAttribute(U.spiAttribute(getSpi(), ATTR_SPI_CLASS), GridJobStealingFailoverSpi.class.getName());
+        node.addAttribute(U.spiAttribute(getSpi(), ATTR_SPI_CLASS), JobStealingFailoverSpi.class.getName());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiStartStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiStartStopSelfTest.java
index 48837c7..b00f760 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiStartStopSelfTest.java
@@ -44,6 +44,6 @@ public class GridJobStealingCollisionSpiStartStopSelfTest
      * @throws Exception If failed.
      */
     private void addSpiDependency(GridTestNode node) throws Exception {
-        node.addAttribute(U.spiAttribute(getSpi(), ATTR_SPI_CLASS), GridJobStealingFailoverSpi.class.getName());
+        node.addAttribute(U.spiAttribute(getSpi(), ATTR_SPI_CLASS), JobStealingFailoverSpi.class.getName());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/GridAlwaysFailoverSpiFailSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAlwaysFailoverSpiFailSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAlwaysFailoverSpiFailSelfTest.java
index 03a586a..9167dac 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAlwaysFailoverSpiFailSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAlwaysFailoverSpiFailSelfTest.java
@@ -93,9 +93,9 @@ public class GridAlwaysFailoverSpiFailSelfTest extends GridCommonAbstractTest {
     }
 
     /** */
-    private class GridTestFailoverSpi extends GridAlwaysFailoverSpi {
+    private class GridTestFailoverSpi extends AlwaysFailoverSpi {
         /** {@inheritDoc} */
-        @Override public ClusterNode failover(GridFailoverContext ctx, List<ClusterNode> grid) {
+        @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> grid) {
             isFailoverCalled = true;
 
             return super.failover(ctx, grid);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverCustomTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverCustomTopologySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverCustomTopologySelfTest.java
index ddc2741..1535a8c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverCustomTopologySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverCustomTopologySelfTest.java
@@ -46,9 +46,9 @@ public class GridFailoverCustomTopologySelfTest extends GridCommonAbstractTest {
 
         cfg.setNodeId(null);
 
-        cfg.setFailoverSpi(new GridAlwaysFailoverSpi() {
+        cfg.setFailoverSpi(new AlwaysFailoverSpi() {
             /** {@inheritDoc} */
-            @Override public ClusterNode failover(GridFailoverContext ctx, List<ClusterNode> top) {
+            @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top) {
                 failCnt.incrementAndGet();
 
                 return super.failover(ctx, top);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverSelfTest.java
index 2face88..e800413 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverSelfTest.java
@@ -39,7 +39,7 @@ public class GridFailoverSelfTest extends GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setFailoverSpi(new GridAlwaysFailoverSpi());
+        cfg.setFailoverSpi(new AlwaysFailoverSpi());
 
         return cfg;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTaskWithPredicateSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTaskWithPredicateSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTaskWithPredicateSelfTest.java
index 9b6b79b..284d38b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTaskWithPredicateSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTaskWithPredicateSelfTest.java
@@ -48,9 +48,9 @@ public class GridFailoverTaskWithPredicateSelfTest extends GridCommonAbstractTes
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setFailoverSpi(new GridAlwaysFailoverSpi() {
+        cfg.setFailoverSpi(new AlwaysFailoverSpi() {
             /** {@inheritDoc} */
-            @Override public ClusterNode failover(GridFailoverContext ctx, List<ClusterNode> grid) {
+            @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> grid) {
                 ClusterNode failoverNode = super.failover(ctx, grid);
 
                 if (failoverNode != null)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTopologySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTopologySelfTest.java
index 567407c..b92bc2f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTopologySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridFailoverTopologySelfTest.java
@@ -42,13 +42,13 @@ public class GridFailoverTopologySelfTest extends GridCommonAbstractTest {
 
         cfg.setNodeId(null);
 
-        cfg.setFailoverSpi(new GridAlwaysFailoverSpi() {
+        cfg.setFailoverSpi(new AlwaysFailoverSpi() {
             /** */
             @IgniteLocalNodeIdResource
             private UUID locNodeId;
 
             /** {@inheritDoc} */
-            @Override public ClusterNode failover(GridFailoverContext ctx, List<ClusterNode> grid) {
+            @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> grid) {
                 if (grid.size() != 1) {
                     failed.set(true);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingSelfTest.java
index a71e071..463e14a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingSelfTest.java
@@ -275,10 +275,10 @@ public class GridJobStealingSelfTest extends GridCommonAbstractTest {
         colSpi.setActiveJobsThreshold(1);
         colSpi.setWaitJobsThreshold(0);
 
-        GridJobStealingFailoverSpi failSpi = new GridJobStealingFailoverSpi();
+        JobStealingFailoverSpi failSpi = new JobStealingFailoverSpi();
 
         // Verify defaults.
-        assert failSpi.getMaximumFailoverAttempts() == GridJobStealingFailoverSpi.DFLT_MAX_FAILOVER_ATTEMPTS;
+        assert failSpi.getMaximumFailoverAttempts() == JobStealingFailoverSpi.DFLT_MAX_FAILOVER_ATTEMPTS;
 
         cfg.setCollisionSpi(colSpi);
         cfg.setFailoverSpi(failSpi);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingZeroActiveJobsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingZeroActiveJobsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingZeroActiveJobsSelfTest.java
index 0eb56c7..4855ae4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingZeroActiveJobsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobStealingZeroActiveJobsSelfTest.java
@@ -72,10 +72,10 @@ public class GridJobStealingZeroActiveJobsSelfTest extends GridCommonAbstractTes
         colSpi.setActiveJobsThreshold(gridName.endsWith("1") ? 0 : 2);
         colSpi.setWaitJobsThreshold(0);
 
-        GridJobStealingFailoverSpi failSpi = new GridJobStealingFailoverSpi();
+        JobStealingFailoverSpi failSpi = new JobStealingFailoverSpi();
 
         // Verify defaults.
-        assert failSpi.getMaximumFailoverAttempts() == GridJobStealingFailoverSpi.DFLT_MAX_FAILOVER_ATTEMPTS;
+        assert failSpi.getMaximumFailoverAttempts() == JobStealingFailoverSpi.DFLT_MAX_FAILOVER_ATTEMPTS;
 
         cfg.setCollisionSpi(colSpi);
         cfg.setFailoverSpi(failSpi);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleSpisSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleSpisSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleSpisSelfTest.java
index 37abc5b..6a999ec 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleSpisSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleSpisSelfTest.java
@@ -128,7 +128,7 @@ public class GridMultipleSpisSelfTest extends GridCommonAbstractTest {
     }
 
     /** */
-    private class GridTestFailoverSpi extends GridAlwaysFailoverSpi {
+    private class GridTestFailoverSpi extends AlwaysFailoverSpi {
         /** */
         private String expName;
 
@@ -142,7 +142,7 @@ public class GridMultipleSpisSelfTest extends GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public ClusterNode failover(GridFailoverContext ctx, List<ClusterNode> grid) {
+        @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> grid) {
             if (getName().equals(expName))
                 isTaskFailoverCalled = true;
             else

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultithreadedJobStealingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultithreadedJobStealingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultithreadedJobStealingSelfTest.java
index f1ba482..a5da434 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultithreadedJobStealingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultithreadedJobStealingSelfTest.java
@@ -126,10 +126,10 @@ public class GridMultithreadedJobStealingSelfTest extends GridCommonAbstractTest
         colSpi.setActiveJobsThreshold(1);
         colSpi.setWaitJobsThreshold(0);
 
-        GridJobStealingFailoverSpi failSpi = new GridJobStealingFailoverSpi();
+        JobStealingFailoverSpi failSpi = new JobStealingFailoverSpi();
 
         // Verify defaults.
-        assert failSpi.getMaximumFailoverAttempts() == GridJobStealingFailoverSpi.DFLT_MAX_FAILOVER_ATTEMPTS;
+        assert failSpi.getMaximumFailoverAttempts() == JobStealingFailoverSpi.DFLT_MAX_FAILOVER_ATTEMPTS;
 
         cfg.setCollisionSpi(colSpi);
         cfg.setFailoverSpi(failSpi);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/GridSpiExceptionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridSpiExceptionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridSpiExceptionSelfTest.java
index 920052f..de78b44 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridSpiExceptionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridSpiExceptionSelfTest.java
@@ -85,7 +85,7 @@ public class GridSpiExceptionSelfTest extends GridCommonAbstractTest {
      * Test event storage spi that throws an exception on try to query local events.
      */
     @IgniteSpiMultipleInstancesSupport(true)
-    private static class GridTestRuntimeExceptionSpi extends IgniteSpiAdapter implements GridEventStorageSpi {
+    private static class GridTestRuntimeExceptionSpi extends IgniteSpiAdapter implements EventStorageSpi {
         /** {@inheritDoc} */
         @Override public void spiStart(String gridName) throws IgniteSpiException {
             startStopwatch();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/GridStopWithWaitSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridStopWithWaitSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridStopWithWaitSelfTest.java
index 44722d2..5ca4f9d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridStopWithWaitSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridStopWithWaitSelfTest.java
@@ -46,7 +46,7 @@ public class GridStopWithWaitSelfTest extends GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setFailoverSpi(new GridAlwaysFailoverSpi());
+        cfg.setFailoverSpi(new AlwaysFailoverSpi());
 
         return cfg;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java
index a832496..053056b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java
@@ -157,7 +157,7 @@ public class GridManagerStopSelfTest extends GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     public void testStopEventStorageManager() throws Exception {
-        GridEventStorageSpi spi = new GridMemoryEventStorageSpi();
+        EventStorageSpi spi = new MemoryEventStorageSpi();
 
         injectLogger(spi);
 
@@ -172,7 +172,7 @@ public class GridManagerStopSelfTest extends GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     public void testStopFailoverManager() throws Exception {
-        GridAlwaysFailoverSpi spi = new GridAlwaysFailoverSpi();
+        AlwaysFailoverSpi spi = new AlwaysFailoverSpi();
 
         injectLogger(spi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
index d2039cb..52465fd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
@@ -455,7 +455,7 @@ public class GridCacheGroupLockFailoverSelfTest extends GridCommonAbstractTest {
     /**
      * Test failover SPI that remembers the job contexts of failed jobs.
      */
-    private class GridTestFailoverSpi extends GridAlwaysFailoverSpi {
+    private class GridTestFailoverSpi extends AlwaysFailoverSpi {
         /** */
         private static final String FAILOVER_NUMBER_ATTR = "failover:number:attr";
 
@@ -479,7 +479,7 @@ public class GridCacheGroupLockFailoverSelfTest extends GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public ClusterNode failover(GridFailoverContext ctx, List<ClusterNode> top) {
+        @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top) {
             List<ClusterNode> cp = null;
             if (master) {
                 failedOverJobs.add(ctx.getJobResult().getJobContext());

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
index 7b8fda6..14e38cf 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
@@ -626,7 +626,7 @@ public class GridCachePutAllFailoverSelfTest extends GridCommonAbstractTest {
      * Test failover SPI for master node.
      */
     @IgniteSpiConsistencyChecked(optional = true)
-    private static class MasterFailoverSpi extends GridAlwaysFailoverSpi {
+    private static class MasterFailoverSpi extends AlwaysFailoverSpi {
         /** */
         private static final String FAILOVER_NUMBER_ATTR = "failover:number:attr";
 
@@ -648,7 +648,7 @@ public class GridCachePutAllFailoverSelfTest extends GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public ClusterNode failover(GridFailoverContext ctx, List<ClusterNode> top) {
+        @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top) {
             failedOverJobs.add(ctx.getJobResult().getJobContext());
 
             // Clear failed nodes list - allow to failover on the same node.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
index 9e51616..f03aa0c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
@@ -46,7 +46,7 @@ public abstract class GridCachePreloadEventsAbstractSelfTest extends GridCommonA
 
         cfg.setCacheConfiguration(cacheConfiguration());
 
-        GridMemoryEventStorageSpi evtStorageSpi = new GridMemoryEventStorageSpi();
+        MemoryEventStorageSpi evtStorageSpi = new MemoryEventStorageSpi();
 
         evtStorageSpi.setExpireCount(50_000);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
index a065a67..bd32dd4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
@@ -75,7 +75,7 @@ public class GridCacheReplicatedPreloadSelfTest extends GridCommonAbstractTest {
 
         cfg.setUserAttributes(F.asMap("EVEN", !gridName.endsWith("0") && !gridName.endsWith("2")));
 
-        GridMemoryEventStorageSpi spi = new GridMemoryEventStorageSpi();
+        MemoryEventStorageSpi spi = new MemoryEventStorageSpi();
 
         spi.setExpireCount(50_000);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/p2p/GridAbstractMultinodeRedeployTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridAbstractMultinodeRedeployTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridAbstractMultinodeRedeployTest.java
index dd0638b..0eb7b79 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridAbstractMultinodeRedeployTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridAbstractMultinodeRedeployTest.java
@@ -40,7 +40,7 @@ abstract class GridAbstractMultinodeRedeployTest extends GridCommonAbstractTest
 
         cfg.setDeploymentMode(depMode);
 
-        cfg.setFailoverSpi(new GridNeverFailoverSpi());
+        cfg.setFailoverSpi(new NeverFailoverSpi());
 
         cfg.setNetworkTimeout(10000);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobFailoverSelfTest.java
index 5eee826..f61b906 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobFailoverSelfTest.java
@@ -37,7 +37,7 @@ public class GridSessionJobFailoverSelfTest extends GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setFailoverSpi(new GridAlwaysFailoverSpi());
+        cfg.setFailoverSpi(new AlwaysFailoverSpi());
 
         return cfg;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java
index 9550fb4..5ab8dfd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageMultiThreadedSelfTest.java
@@ -19,8 +19,8 @@ import java.util.concurrent.*;
 /**
  * Memory event storage load test.
  */
-@GridSpiTest(spi = GridMemoryEventStorageSpi.class, group = "EventStorage SPI")
-public class GridMemoryEventStorageMultiThreadedSelfTest extends GridSpiAbstractTest<GridMemoryEventStorageSpi> {
+@GridSpiTest(spi = MemoryEventStorageSpi.class, group = "EventStorage SPI")
+public class GridMemoryEventStorageMultiThreadedSelfTest extends GridSpiAbstractTest<MemoryEventStorageSpi> {
     /**
      * @throws Exception If test failed
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java
index ab14791..dd4ffb2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiConfigSelfTest.java
@@ -14,13 +14,13 @@ import org.gridgain.testframework.junits.spi.*;
 /**
  * Memory event storage SPI config test.
  */
-@GridSpiTest(spi = GridMemoryEventStorageSpi.class, group = "Event Storage SPI")
-public class GridMemoryEventStorageSpiConfigSelfTest extends GridSpiAbstractConfigTest<GridMemoryEventStorageSpi> {
+@GridSpiTest(spi = MemoryEventStorageSpi.class, group = "Event Storage SPI")
+public class GridMemoryEventStorageSpiConfigSelfTest extends GridSpiAbstractConfigTest<MemoryEventStorageSpi> {
     /**
      * @throws Exception If failed.
      */
     public void testNegativeConfig() throws Exception {
-        checkNegativeSpiProperty(new GridMemoryEventStorageSpi(), "expireCount", 0);
-        checkNegativeSpiProperty(new GridMemoryEventStorageSpi(), "expireAgeMs", 0);
+        checkNegativeSpiProperty(new MemoryEventStorageSpi(), "expireCount", 0);
+        checkNegativeSpiProperty(new MemoryEventStorageSpi(), "expireAgeMs", 0);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java
index 4228170..97b5833 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiSelfTest.java
@@ -19,10 +19,10 @@ import java.util.*;
 import static org.apache.ignite.events.IgniteEventType.*;
 
 /**
- * Tests for {@link GridMemoryEventStorageSpi}.
+ * Tests for {@link MemoryEventStorageSpi}.
  */
-@GridSpiTest(spi = GridMemoryEventStorageSpi.class, group = "Event Storage SPI")
-public class GridMemoryEventStorageSpiSelfTest extends GridSpiAbstractTest<GridMemoryEventStorageSpi> {
+@GridSpiTest(spi = MemoryEventStorageSpi.class, group = "Event Storage SPI")
+public class GridMemoryEventStorageSpiSelfTest extends GridSpiAbstractTest<MemoryEventStorageSpi> {
     /** */
     private static final int EXPIRE_CNT = 100;
 
@@ -46,7 +46,7 @@ public class GridMemoryEventStorageSpiSelfTest extends GridSpiAbstractTest<GridM
      * @throws Exception If failed.
      */
     public void testMemoryEventStorage() throws Exception {
-        GridMemoryEventStorageSpi spi = getSpi();
+        MemoryEventStorageSpi spi = getSpi();
 
         IgnitePredicate<IgniteEvent> filter = F.alwaysTrue();
 
@@ -93,7 +93,7 @@ public class GridMemoryEventStorageSpiSelfTest extends GridSpiAbstractTest<GridM
      */
     @SuppressWarnings({"NullableProblems"})
     public void testFilter() throws Exception {
-        GridMemoryEventStorageSpi spi = getSpi();
+        MemoryEventStorageSpi spi = getSpi();
 
         try {
             spi.clearAll();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java
index 50826eb..5f5d05d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/eventstorage/memory/GridMemoryEventStorageSpiStartStopSelfTest.java
@@ -15,7 +15,7 @@ import org.gridgain.testframework.junits.spi.*;
 /**
  * Memory event storage SPI start-stop test.
  */
-@GridSpiTest(spi = GridMemoryEventStorageSpi.class, group = "Event Storage SPI")
-public class GridMemoryEventStorageSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<GridMemoryEventStorageSpi> {
+@GridSpiTest(spi = MemoryEventStorageSpi.class, group = "Event Storage SPI")
+public class GridMemoryEventStorageSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<MemoryEventStorageSpi> {
     // No-op.
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/failover/GridFailoverTestContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/GridFailoverTestContext.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/GridFailoverTestContext.java
index dc8ae30..d89a7e8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/GridFailoverTestContext.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/failover/GridFailoverTestContext.java
@@ -18,7 +18,7 @@ import java.util.*;
 /**
  * Failover test context.
  */
-public class GridFailoverTestContext implements GridFailoverContext {
+public class GridFailoverTestContext implements FailoverContext {
     /** */
     private static final Random RAND = new Random();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java
index 720e22a..79d5946 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiConfigSelfTest.java
@@ -14,12 +14,12 @@ import org.gridgain.testframework.junits.spi.*;
 /**
  * Always-failover SPI config test.
  */
-@GridSpiTest(spi = GridAlwaysFailoverSpi.class, group = "Collision SPI")
-public class GridAlwaysFailoverSpiConfigSelfTest extends GridSpiAbstractConfigTest<GridAlwaysFailoverSpi> {
+@GridSpiTest(spi = AlwaysFailoverSpi.class, group = "Collision SPI")
+public class GridAlwaysFailoverSpiConfigSelfTest extends GridSpiAbstractConfigTest<AlwaysFailoverSpi> {
     /**
      * @throws Exception If failed.
      */
     public void testNegativeConfig() throws Exception {
-        checkNegativeSpiProperty(new GridAlwaysFailoverSpi(), "maximumFailoverAttempts", -1);
+        checkNegativeSpiProperty(new AlwaysFailoverSpi(), "maximumFailoverAttempts", -1);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java
index 31e4a73..f8df7b2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiSelfTest.java
@@ -18,18 +18,18 @@ import org.gridgain.testframework.junits.spi.*;
 
 import java.util.*;
 
-import static org.gridgain.grid.spi.failover.always.GridAlwaysFailoverSpi.*;
+import static org.gridgain.grid.spi.failover.always.AlwaysFailoverSpi.*;
 
 /**
  * Always-failover SPI test.
  */
-@GridSpiTest(spi = GridAlwaysFailoverSpi.class, group = "Failover SPI")
-public class GridAlwaysFailoverSpiSelfTest extends GridSpiAbstractTest<GridAlwaysFailoverSpi> {
+@GridSpiTest(spi = AlwaysFailoverSpi.class, group = "Failover SPI")
+public class GridAlwaysFailoverSpiSelfTest extends GridSpiAbstractTest<AlwaysFailoverSpi> {
     /**
      * @throws Exception If failed.
      */
     public void testSingleNode() throws Exception {
-        GridAlwaysFailoverSpi spi = getSpi();
+        AlwaysFailoverSpi spi = getSpi();
 
         List<ClusterNode> nodes = new ArrayList<>();
 
@@ -47,7 +47,7 @@ public class GridAlwaysFailoverSpiSelfTest extends GridSpiAbstractTest<GridAlway
      */
     @SuppressWarnings("unchecked")
     public void testTwoNodes() throws Exception {
-        GridAlwaysFailoverSpi spi = getSpi();
+        AlwaysFailoverSpi spi = getSpi();
 
         List<ClusterNode> nodes = new ArrayList<>();
 
@@ -68,7 +68,7 @@ public class GridAlwaysFailoverSpiSelfTest extends GridSpiAbstractTest<GridAlway
      * @throws Exception If failed.
      */
     public void testMaxAttempts() throws Exception {
-        GridAlwaysFailoverSpi spi = getSpi();
+        AlwaysFailoverSpi spi = getSpi();
 
         spi.setMaximumFailoverAttempts(1);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java
index 7be414b..b675067 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/failover/always/GridAlwaysFailoverSpiStartStopSelfTest.java
@@ -16,7 +16,7 @@ import org.gridgain.testframework.junits.spi.*;
 /**
  * Always-failover SPI start-stop test.
  */
-@GridSpiTest(spi = GridAlwaysFailoverSpi.class, group = "Failover SPI")
-public class GridAlwaysFailoverSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<GridFailoverSpi> {
+@GridSpiTest(spi = AlwaysFailoverSpi.class, group = "Failover SPI")
+public class GridAlwaysFailoverSpiStartStopSelfTest extends GridSpiStartStopAbstractTest<FailoverSpi> {
     // No-op.
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/50d1554c/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java
index 02bd287..9935dde 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/failover/jobstealing/GridJobStealingFailoverSpiConfigSelfTest.java
@@ -14,12 +14,12 @@ import org.gridgain.testframework.junits.spi.*;
 /**
  * Job stealing failover SPI config test.
  */
-@GridSpiTest(spi = GridJobStealingFailoverSpi.class, group = "Collision SPI")
-public class GridJobStealingFailoverSpiConfigSelfTest extends GridSpiAbstractConfigTest<GridJobStealingFailoverSpi> {
+@GridSpiTest(spi = JobStealingFailoverSpi.class, group = "Collision SPI")
+public class GridJobStealingFailoverSpiConfigSelfTest extends GridSpiAbstractConfigTest<JobStealingFailoverSpi> {
     /**
      * @throws Exception If failed.
      */
     public void testNegativeConfig() throws Exception {
-        checkNegativeSpiProperty(new GridJobStealingFailoverSpi(), "maximumFailoverAttempts", -1);
+        checkNegativeSpiProperty(new JobStealingFailoverSpi(), "maximumFailoverAttempts", -1);
     }
 }


[50/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
# Renaming


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

Branch: refs/heads/master
Commit: dec83ed4e0750094af72fb93e6f9b1abdd23a9b1
Parents: 725526f
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 5 17:05:06 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 5 17:05:06 2014 +0300

----------------------------------------------------------------------
 .../configuration/IgniteConfiguration.java      |  10 +-
 .../grid/cache/GridCacheConfiguration.java      |   5 +-
 .../org/gridgain/grid/kernal/GridGainEx.java    |   4 +-
 .../managers/indexing/GridIndexingManager.java  |  82 ++++----
 .../GridCacheDistributedFieldsQueryFuture.java  |   6 +-
 .../query/GridCacheDistributedQueryManager.java |   4 +-
 .../query/GridCacheFieldsQueryErrorFuture.java  |   4 +-
 .../query/GridCacheLocalFieldsQueryFuture.java  |   6 +-
 .../cache/query/GridCacheLocalQueryManager.java |   4 +-
 .../cache/query/GridCacheQueryManager.java      | 112 +++++------
 .../query/GridCacheQueryMetadataAware.java      |   2 +-
 .../cache/query/GridCacheQueryResponse.java     |  14 +-
 .../cache/query/GridCacheSqlMetadata.java       |   3 +-
 .../query/jdbc/GridCacheQueryJdbcTask.java      |   4 +-
 .../grid/kernal/visor/query/VisorQueryTask.java |   6 +-
 .../grid/spi/indexing/GridIndexDescriptor.java  |  42 -----
 .../grid/spi/indexing/GridIndexType.java        |  24 ---
 .../grid/spi/indexing/GridIndexingEntity.java   |  50 -----
 .../spi/indexing/GridIndexingEntityAdapter.java |  57 ------
 .../spi/indexing/GridIndexingFieldMetadata.java |  46 -----
 .../spi/indexing/GridIndexingFieldsResult.java  |  35 ----
 .../GridIndexingFieldsResultAdapter.java        |  49 -----
 .../spi/indexing/GridIndexingKeyValueRow.java   |  42 -----
 .../GridIndexingKeyValueRowAdapter.java         |  82 --------
 .../spi/indexing/GridIndexingMarshaller.java    |  38 ----
 .../spi/indexing/GridIndexingQueryFilter.java   |  27 ---
 .../grid/spi/indexing/GridIndexingSpi.java      | 188 -------------------
 .../indexing/GridIndexingTypeDescriptor.java    |  84 ---------
 .../grid/spi/indexing/GridNoopIndexingSpi.java  | 119 ------------
 .../grid/spi/indexing/IndexDescriptor.java      |  42 +++++
 .../gridgain/grid/spi/indexing/IndexType.java   |  24 +++
 .../grid/spi/indexing/IndexingEntity.java       |  50 +++++
 .../spi/indexing/IndexingEntityAdapter.java     |  57 ++++++
 .../spi/indexing/IndexingFieldMetadata.java     |  46 +++++
 .../grid/spi/indexing/IndexingFieldsResult.java |  35 ++++
 .../indexing/IndexingFieldsResultAdapter.java   |  49 +++++
 .../grid/spi/indexing/IndexingKeyValueRow.java  |  42 +++++
 .../indexing/IndexingKeyValueRowAdapter.java    |  82 ++++++++
 .../grid/spi/indexing/IndexingMarshaller.java   |  38 ++++
 .../grid/spi/indexing/IndexingQueryFilter.java  |  27 +++
 .../gridgain/grid/spi/indexing/IndexingSpi.java | 188 +++++++++++++++++++
 .../spi/indexing/IndexingTypeDescriptor.java    |  84 +++++++++
 .../grid/spi/indexing/NoopIndexingSpi.java      | 119 ++++++++++++
 .../GridCacheTxExceptionAbstractSelfTest.java   |  34 ++--
 .../grid/spi/indexing/h2/GridH2IndexingSpi.java |  98 +++++-----
 .../h2/opt/GridH2AbstractKeyValueRow.java       |   3 +-
 .../spi/indexing/h2/opt/GridH2IndexBase.java    |   6 +-
 .../spi/indexing/h2/opt/GridH2TreeIndex.java    |   2 +-
 .../spi/indexing/h2/opt/GridLuceneIndex.java    |  38 ++--
 .../GridCacheAbstractFieldsQuerySelfTest.java   |  26 +--
 .../GridCacheReplicatedFieldsQuerySelfTest.java |   4 +-
 .../GridCacheReplicatedQuerySelfTest.java       |  10 +-
 .../GridIndexingSpiAbstractSelfTest.java        |  50 ++---
 .../spi/indexing/h2/GridH2IndexRebuildTest.java |   2 +-
 .../h2/opt/GridLuceneIndexLoadTest.java         |  22 +--
 55 files changed, 1162 insertions(+), 1165 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 98f85a1..59a4fea 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@ -373,7 +373,7 @@ public class IgniteConfiguration {
     private GridSwapSpaceSpi swapSpaceSpi;
 
     /** Indexing SPI. */
-    private GridIndexingSpi[] indexingSpi;
+    private IndexingSpi[] indexingSpi;
 
     /** Address resolver. */
     private IgniteAddressResolver addrRslvr;
@@ -2150,12 +2150,12 @@ public class IgniteConfiguration {
     }
 
     /**
-     * Sets fully configured instances of {@link GridIndexingSpi}.
+     * Sets fully configured instances of {@link org.gridgain.grid.spi.indexing.IndexingSpi}.
      *
-     * @param indexingSpi Fully configured instances of {@link GridIndexingSpi}.
+     * @param indexingSpi Fully configured instances of {@link org.gridgain.grid.spi.indexing.IndexingSpi}.
      * @see IgniteConfiguration#getIndexingSpi()
      */
-    public void setIndexingSpi(GridIndexingSpi... indexingSpi) {
+    public void setIndexingSpi(IndexingSpi... indexingSpi) {
         this.indexingSpi = indexingSpi;
     }
 
@@ -2168,7 +2168,7 @@ public class IgniteConfiguration {
      *
      * @return Indexing SPI implementation or <tt>null</tt> to use default implementation.
      */
-    public GridIndexingSpi[] getIndexingSpi() {
+    public IndexingSpi[] getIndexingSpi() {
         return indexingSpi;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java
index 054a234..3e0b225 100644
--- a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java
+++ b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java
@@ -16,7 +16,6 @@ import org.gridgain.grid.cache.datastructures.*;
 import org.gridgain.grid.cache.eviction.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.jetbrains.annotations.*;
 
@@ -1558,7 +1557,7 @@ public class GridCacheConfiguration {
      * SPI is configured. In majority of the cases default value should be used.
      *
      * @return Name of SPI to use for indexing.
-     * @see GridIndexingSpi
+     * @see org.gridgain.grid.spi.indexing.IndexingSpi
      */
     public String getIndexingSpiName() {
         return indexingSpiName;
@@ -1572,7 +1571,7 @@ public class GridCacheConfiguration {
      * SPI is configured. In majority of the cases default value should be used.
      *
      * @param indexingSpiName Name.
-     * @see GridIndexingSpi
+     * @see org.gridgain.grid.spi.indexing.IndexingSpi
      */
     public void setIndexingSpiName(String indexingSpiName) {
         this.indexingSpiName = indexingSpiName;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
index 4a0774d..999a66f 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
@@ -1474,7 +1474,7 @@ public class GridGainEx {
             FailoverSpi[] failSpi = cfg.getFailoverSpi();
             GridLoadBalancingSpi[] loadBalancingSpi = cfg.getLoadBalancingSpi();
             GridSwapSpaceSpi swapspaceSpi = cfg.getSwapSpaceSpi();
-            GridIndexingSpi[] indexingSpi = cfg.getIndexingSpi();
+            IndexingSpi[] indexingSpi = cfg.getIndexingSpi();
 
             execSvc = cfg.getExecutorService();
             sysExecSvc = cfg.getSystemExecutorService();
@@ -1722,7 +1722,7 @@ public class GridGainEx {
             }
 
             if (indexingSpi == null)
-                indexingSpi = new GridIndexingSpi[] {(GridIndexingSpi)H2_INDEXING.createOptional()};
+                indexingSpi = new IndexingSpi[] {(IndexingSpi)H2_INDEXING.createOptional()};
 
             myCfg.setCommunicationSpi(commSpi);
             myCfg.setDiscoverySpi(discoSpi);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java
index b5bd092..8599c68 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java
@@ -36,12 +36,12 @@ import java.util.*;
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
-import static org.gridgain.grid.spi.indexing.GridIndexType.*;
+import static org.gridgain.grid.spi.indexing.IndexType.*;
 
 /**
  * Manages cache indexing.
  */
-public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
+public class GridIndexingManager extends GridManagerAdapter<IndexingSpi> {
     /** */
     private IgniteMarshaller marsh;
 
@@ -97,9 +97,9 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
         if (!enabled())
             U.warn(log, "Indexing is disabled (to enable please configure GridH2IndexingSpi).");
 
-        GridIndexingMarshaller m = new IdxMarshaller();
+        IndexingMarshaller m = new IdxMarshaller();
 
-        for (GridIndexingSpi spi : getSpis()) {
+        for (IndexingSpi spi : getSpis()) {
             spi.registerMarshaller(m);
 
             for (GridCacheConfiguration cacheCfg : ctx.config().getCacheConfiguration())
@@ -263,11 +263,11 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
      * @param name SPI Name.
      * @return SPI.
      */
-    public GridIndexingSpi spi(@Nullable String name) {
+    public IndexingSpi spi(@Nullable String name) {
         if (F.isEmpty(name))
             return getSpis()[0];
 
-        for (GridIndexingSpi s : getSpis()) {
+        for (IndexingSpi s : getSpis()) {
             if (name.equals(s.getName()))
                 return s;
         }
@@ -281,8 +281,8 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
      * @param <T> Value type.
      * @return Index entry.
      */
-    private <T> GridIndexingEntity<T> entry(T x, @Nullable byte[] bytes) {
-        return new GridIndexingEntityAdapter<>(x, bytes);
+    private <T> IndexingEntity<T> entry(T x, @Nullable byte[] bytes) {
+        return new IndexingEntityAdapter<>(x, bytes);
     }
 
     /**
@@ -426,8 +426,8 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
                     "(multiple classes with same simple name are stored in the same cache) " +
                     "[expCls=" + desc.valueClass().getName() + ", actualCls=" + valCls.getName() + ']');
 
-            GridIndexingEntity<K> k = entry(key, keyBytes);
-            GridIndexingEntity<V> v = entry(val, valBytes);
+            IndexingEntity<K> k = entry(key, keyBytes);
+            IndexingEntity<V> v = entry(val, valBytes);
 
             getSpi(spi).store(space, desc, k, v, ver, expirationTime);
         }
@@ -539,7 +539,7 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
             throw new IllegalStateException("Failed to remove from index (grid is stopping).");
 
         try {
-            GridIndexingEntity<K> k = entry(key, keyBytes);
+            IndexingEntity<K> k = entry(key, keyBytes);
 
             return getSpi(spi).remove(space, k);
         }
@@ -558,14 +558,14 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
      * @return Field rows.
      * @throws GridException If failed.
      */
-    public <K, V> GridIndexingFieldsResult queryFields(@Nullable String spi, @Nullable String space,
+    public <K, V> IndexingFieldsResult queryFields(@Nullable String spi, @Nullable String space,
         String clause, Collection<Object> params, boolean includeBackups,
-        GridIndexingQueryFilter filters) throws GridException {
+        IndexingQueryFilter filters) throws GridException {
         if (!busyLock.enterBusy())
             throw new IllegalStateException("Failed to execute query (grid is stopping).");
 
         try {
-            GridIndexingQueryFilter backupFilter = backupsFilter(includeBackups);
+            IndexingQueryFilter backupFilter = backupsFilter(includeBackups);
 
             return getSpi(spi).queryFields(space, clause, params,
                 and(filters, backupFilter));
@@ -580,15 +580,15 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
      * @param f2 Second filter.
      * @return And filter of the given two.
      */
-    @Nullable private static GridIndexingQueryFilter and(@Nullable final GridIndexingQueryFilter f1,
-        @Nullable final GridIndexingQueryFilter f2) {
+    @Nullable private static IndexingQueryFilter and(@Nullable final IndexingQueryFilter f1,
+        @Nullable final IndexingQueryFilter f2) {
         if (f1 == null)
             return f2;
 
         if (f2 == null)
             return f1;
 
-        return new GridIndexingQueryFilter() {
+        return new IndexingQueryFilter() {
             @Nullable @Override public <K, V> IgniteBiPredicate<K, V> forSpace(String spaceName) throws GridException {
                 final IgniteBiPredicate<K, V> fltr1 = f1.forSpace(spaceName);
                 final IgniteBiPredicate<K, V> fltr2 = f2.forSpace(spaceName);
@@ -622,9 +622,9 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
      * @throws GridException If failed.
      */
     @SuppressWarnings("unchecked")
-    public <K, V> GridCloseableIterator<GridIndexingKeyValueRow<K, V>> query(String spi, String space, String clause,
+    public <K, V> GridCloseableIterator<IndexingKeyValueRow<K, V>> query(String spi, String space, String clause,
         Collection<Object> params, String resType, boolean includeBackups,
-        GridIndexingQueryFilter filters) throws GridException {
+        IndexingQueryFilter filters) throws GridException {
         if (!busyLock.enterBusy())
             throw new IllegalStateException("Failed to execute query (grid is stopping).");
 
@@ -634,7 +634,7 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
             if (type == null || !type.registered())
                 return new GridEmptyCloseableIterator<>();
 
-            GridIndexingQueryFilter backupFilter = backupsFilter(includeBackups);
+            IndexingQueryFilter backupFilter = backupsFilter(includeBackups);
 
             return new GridSpiCloseableIteratorWrapper<>(getSpi(spi).<K,V>query(space, clause, params, type,
                 and(filters, backupFilter)));
@@ -657,9 +657,9 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
      * @throws GridException If failed.
      */
     @SuppressWarnings("unchecked")
-    public <K, V> GridCloseableIterator<GridIndexingKeyValueRow<K, V>> queryText(String spi, String space,
+    public <K, V> GridCloseableIterator<IndexingKeyValueRow<K, V>> queryText(String spi, String space,
         String clause, String resType, boolean includeBackups,
-        GridIndexingQueryFilter filters) throws GridException {
+        IndexingQueryFilter filters) throws GridException {
         if (!busyLock.enterBusy())
             throw new IllegalStateException("Failed to execute query (grid is stopping).");
 
@@ -669,7 +669,7 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
             if (type == null || !type.registered())
                 return new GridEmptyCloseableIterator<>();
 
-            GridIndexingQueryFilter backupFilter = backupsFilter(includeBackups);
+            IndexingQueryFilter backupFilter = backupsFilter(includeBackups);
 
             return new GridSpiCloseableIteratorWrapper<>(getSpi(spi).<K,V>queryText(space, clause, type,
                 and(filters, backupFilter)));
@@ -686,11 +686,11 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
      * @param includeBackups Include backups.
      */
     @SuppressWarnings("unchecked")
-    @Nullable private <K, V> GridIndexingQueryFilter backupsFilter(boolean includeBackups) {
+    @Nullable private <K, V> IndexingQueryFilter backupsFilter(boolean includeBackups) {
         if (includeBackups)
             return null;
 
-        return new GridIndexingQueryFilter() {
+        return new IndexingQueryFilter() {
             @Nullable @Override public IgniteBiPredicate<K, V> forSpace(final String spaceName) {
                 final GridCacheAdapter<Object, Object> cache = ctx.cache().internalCache(spaceName);
 
@@ -774,7 +774,7 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
                     TypeDescriptor desc = e.getValue();
 
                     if (ldr.equals(U.detectClassLoader(desc.valCls)) || ldr.equals(U.detectClassLoader(desc.keyCls))) {
-                        for (GridIndexingSpi spi : getSpis()) {
+                        for (IndexingSpi spi : getSpis()) {
                             if (desc.await() && desc.registered())
                                 spi.unregisterType(e.getKey().space, desc);
                         }
@@ -1132,8 +1132,8 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
      * @param space Space name.
      * @return Descriptors.
      */
-    public Collection<GridIndexingTypeDescriptor> types(@Nullable String space) {
-        Collection<GridIndexingTypeDescriptor> spaceTypes = new ArrayList<>(
+    public Collection<IndexingTypeDescriptor> types(@Nullable String space) {
+        Collection<IndexingTypeDescriptor> spaceTypes = new ArrayList<>(
             Math.min(10, types.size()));
 
         for (Map.Entry<TypeId, TypeDescriptor> e : types.entrySet()) {
@@ -1154,7 +1154,7 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
      * @return Type.
      * @throws GridException If failed.
      */
-    public GridIndexingTypeDescriptor type(@Nullable String space, String typeName) throws GridException {
+    public IndexingTypeDescriptor type(@Nullable String space, String typeName) throws GridException {
         TypeDescriptor type = typesByName.get(new TypeName(space, typeName));
 
         if (type == null || !type.registered())
@@ -1367,7 +1367,7 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
     /**
      * Descriptor of type.
      */
-    private static class TypeDescriptor implements GridIndexingTypeDescriptor {
+    private static class TypeDescriptor implements IndexingTypeDescriptor {
         /** */
         private String name;
 
@@ -1480,8 +1480,8 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
         }
 
         /** {@inheritDoc} */
-        @Override public Map<String, GridIndexDescriptor> indexes() {
-            return Collections.<String, GridIndexDescriptor>unmodifiableMap(indexes);
+        @Override public Map<String, org.gridgain.grid.spi.indexing.IndexDescriptor> indexes() {
+            return Collections.<String, org.gridgain.grid.spi.indexing.IndexDescriptor>unmodifiableMap(indexes);
         }
 
         /**
@@ -1492,7 +1492,7 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
          * @return Index descriptor.
          * @throws GridException In case of error.
          */
-        public IndexDescriptor addIndex(String idxName, GridIndexType type) throws GridException {
+        public IndexDescriptor addIndex(String idxName, IndexType type) throws GridException {
             IndexDescriptor idx = new IndexDescriptor(type);
 
             if (indexes.put(idxName, idx) != null)
@@ -1606,7 +1606,7 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
     /**
      * Index descriptor.
      */
-    private static class IndexDescriptor implements GridIndexDescriptor {
+    private static class IndexDescriptor implements org.gridgain.grid.spi.indexing.IndexDescriptor {
         /** Fields sorted by order number. */
         private final Collection<T2<String, Integer>> fields = new TreeSet<>(
             new Comparator<T2<String, Integer>>() {
@@ -1622,12 +1622,12 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
         private Collection<String> descendings;
 
         /** */
-        private final GridIndexType type;
+        private final IndexType type;
 
         /**
          * @param type Type.
          */
-        private IndexDescriptor(GridIndexType type) {
+        private IndexDescriptor(IndexType type) {
             assert type != null;
 
             this.type = type;
@@ -1667,7 +1667,7 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
         }
 
         /** {@inheritDoc} */
-        @Override public GridIndexType type() {
+        @Override public IndexType type() {
             return type;
         }
 
@@ -1793,9 +1793,9 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
     /**
      * Indexing marshaller which also stores information about class loader and allows lazy unmarshalling.
      */
-    private class IdxMarshaller implements GridIndexingMarshaller {
+    private class IdxMarshaller implements IndexingMarshaller {
         /** {@inheritDoc} */
-        @Override public <T> GridIndexingEntity<T> unmarshal(final byte[] bytes) {
+        @Override public <T> IndexingEntity<T> unmarshal(final byte[] bytes) {
             long ldrId = bytes[0] == -1 ? 0 : U.bytesToLong(bytes, 0);
 
             final ClassLoader ldr = ldrId == 0 ? null : ldrById.get(ldrId);
@@ -1804,7 +1804,7 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
 
             final int len = bytes.length - off;
 
-            return new GridIndexingEntity<T>() {
+            return new IndexingEntity<T>() {
                 /** */
                 private T val;
 
@@ -1843,7 +1843,7 @@ public class GridIndexingManager extends GridManagerAdapter<GridIndexingSpi> {
         }
 
         /** {@inheritDoc} */
-        @Override public byte[] marshal(GridIndexingEntity<?> entity) throws IgniteSpiException {
+        @Override public byte[] marshal(IndexingEntity<?> entity) throws IgniteSpiException {
             Object val = entity.value();
 
             ClassLoader ldr = val.getClass().getClassLoader();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java
index c10ff3c..4472798 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java
@@ -29,7 +29,7 @@ public class GridCacheDistributedFieldsQueryFuture
     private static final long serialVersionUID = 0L;
 
     /** Meta data future. */
-    private final GridFutureAdapter<List<GridIndexingFieldMetadata>> metaFut;
+    private final GridFutureAdapter<List<IndexingFieldMetadata>> metaFut;
 
     /**
      * Required by {@link Externalizable}.
@@ -61,7 +61,7 @@ public class GridCacheDistributedFieldsQueryFuture
      * @param err Error.
      * @param finished Finished or not.
      */
-    public void onPage(@Nullable UUID nodeId, @Nullable List<GridIndexingFieldMetadata> metaData,
+    public void onPage(@Nullable UUID nodeId, @Nullable List<IndexingFieldMetadata> metaData,
         @Nullable Collection<Map<String, Object>> data, @Nullable Throwable err, boolean finished) {
         if (!metaFut.isDone() && metaData != null)
             metaFut.onDone(metaData);
@@ -86,7 +86,7 @@ public class GridCacheDistributedFieldsQueryFuture
     }
 
     /** {@inheritDoc} */
-    @Override public IgniteFuture<List<GridIndexingFieldMetadata>> metadata() {
+    @Override public IgniteFuture<List<IndexingFieldMetadata>> metadata() {
         return metaFut;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java
index 8dcd202..45f9efe 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java
@@ -432,8 +432,8 @@ public class GridCacheDistributedQueryManager<K, V> extends GridCacheQueryManage
 
     /** {@inheritDoc} */
     @Override protected boolean onFieldsPageReady(boolean loc, GridCacheQueryInfo qryInfo,
-        @Nullable List<GridIndexingFieldMetadata> metadata,
-        @Nullable Collection<List<GridIndexingEntity<?>>> entities,
+        @Nullable List<IndexingFieldMetadata> metadata,
+        @Nullable Collection<List<IndexingEntity<?>>> entities,
         @Nullable Collection<?> data,
         boolean finished, @Nullable Throwable e) {
         assert qryInfo != null;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java
index c8a93a5..e1cc799 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java
@@ -40,7 +40,7 @@ public class GridCacheFieldsQueryErrorFuture extends GridCacheQueryErrorFuture<L
     /**
      * @return Metadata.
      */
-    public IgniteFuture<List<GridIndexingFieldMetadata>> metadata() {
-        return new GridFinishedFuture<>(ctx, incMeta ? Collections.<GridIndexingFieldMetadata>emptyList() : null);
+    public IgniteFuture<List<IndexingFieldMetadata>> metadata() {
+        return new GridFinishedFuture<>(ctx, incMeta ? Collections.<IndexingFieldMetadata>emptyList() : null);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java
index 6a6eec7..475305f 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java
@@ -28,7 +28,7 @@ public class GridCacheLocalFieldsQueryFuture
     private static final long serialVersionUID = 0L;
 
     /** Meta data future. */
-    private final GridFutureAdapter<List<GridIndexingFieldMetadata>> metaFut;
+    private final GridFutureAdapter<List<IndexingFieldMetadata>> metaFut;
 
     /**
      * Required by {@link Externalizable}.
@@ -57,7 +57,7 @@ public class GridCacheLocalFieldsQueryFuture
      * @param err Error.
      * @param finished Finished or not.
      */
-    public void onPage(@Nullable UUID nodeId, @Nullable List<GridIndexingFieldMetadata> metaData,
+    public void onPage(@Nullable UUID nodeId, @Nullable List<IndexingFieldMetadata> metaData,
         @Nullable Collection<?> data, @Nullable Throwable err, boolean finished) {
         onPage(nodeId, data, err, finished);
 
@@ -66,7 +66,7 @@ public class GridCacheLocalFieldsQueryFuture
     }
 
     /** {@inheritDoc} */
-    @Override public IgniteFuture<List<GridIndexingFieldMetadata>> metadata() {
+    @Override public IgniteFuture<List<IndexingFieldMetadata>> metadata() {
         return metaFut;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java
index fb62d9a..ec3abac 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java
@@ -45,8 +45,8 @@ public class GridCacheLocalQueryManager<K, V> extends GridCacheQueryManager<K, V
     /** {@inheritDoc} */
     @Override protected boolean onFieldsPageReady(boolean loc,
         GridCacheQueryInfo qryInfo,
-        @Nullable List<GridIndexingFieldMetadata> metaData,
-        @Nullable Collection<List<GridIndexingEntity<?>>> entities,
+        @Nullable List<IndexingFieldMetadata> metaData,
+        @Nullable Collection<List<IndexingEntity<?>>> entities,
         @Nullable Collection<?> data,
         boolean finished,
         @Nullable Throwable e) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
index 541ef55..08e9556 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
@@ -473,7 +473,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
         else
             res = new QueryResult<>(qry.type(), recipient);
 
-        GridCloseableIterator<GridIndexingKeyValueRow<K, V>> iter;
+        GridCloseableIterator<IndexingKeyValueRow<K, V>> iter;
 
         try {
             switch (qry.type()) {
@@ -621,7 +621,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
         boolean cached = qryResCache.putIfAbsent(resKey, res) == null;
 
         try {
-            GridIndexingFieldsResult qryRes = idxMgr.queryFields(spi, space, qry.clause(), F.asList(args),
+            IndexingFieldsResult qryRes = idxMgr.queryFields(spi, space, qry.clause(), F.asList(args),
                 qry.includeBackups(), projectionFilter(qry));
 
             res.metaData(qryRes.metaData());
@@ -643,7 +643,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
      * @param qry Query.
      * @return Cache set items iterator.
      */
-    private GridCloseableIterator<GridIndexingKeyValueRow<K, V>> setIterator(GridCacheQueryAdapter<?> qry) {
+    private GridCloseableIterator<IndexingKeyValueRow<K, V>> setIterator(GridCacheQueryAdapter<?> qry) {
         final GridSetQueryPredicate filter = (GridSetQueryPredicate)qry.scanFilter();
 
         filter.init(cctx);
@@ -655,11 +655,11 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
         if (data == null)
             data = Collections.emptyList();
 
-        final GridIterator<GridIndexingKeyValueRow<K, V>> it = F.iterator(
+        final GridIterator<IndexingKeyValueRow<K, V>> it = F.iterator(
             data,
-            new C1<GridCacheSetItemKey, GridIndexingKeyValueRow<K, V>>() {
-                @Override public GridIndexingKeyValueRow<K, V> apply(GridCacheSetItemKey e) {
-                    return new GridIndexingKeyValueRowAdapter<>((K)e.item(), (V)Boolean.TRUE);
+            new C1<GridCacheSetItemKey, IndexingKeyValueRow<K, V>>() {
+                @Override public IndexingKeyValueRow<K, V> apply(GridCacheSetItemKey e) {
+                    return new IndexingKeyValueRowAdapter<>((K)e.item(), (V)Boolean.TRUE);
                 }
             },
             true,
@@ -669,12 +669,12 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                 }
             });
 
-        return new GridCloseableIteratorAdapter<GridIndexingKeyValueRow<K, V>>() {
+        return new GridCloseableIteratorAdapter<IndexingKeyValueRow<K, V>>() {
             @Override protected boolean onHasNext() {
                 return it.hasNext();
             }
 
-            @Override protected GridIndexingKeyValueRow<K, V> onNext() {
+            @Override protected IndexingKeyValueRow<K, V> onNext() {
                 return it.next();
             }
 
@@ -694,7 +694,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
      * @throws GridException If failed to get iterator.
      */
     @SuppressWarnings({"unchecked"})
-    private GridCloseableIterator<GridIndexingKeyValueRow<K, V>> scanIterator(final GridCacheQueryAdapter<?> qry)
+    private GridCloseableIterator<IndexingKeyValueRow<K, V>> scanIterator(final GridCacheQueryAdapter<?> qry)
         throws GridException {
         IgnitePredicate<GridCacheEntry<K, V>> filter = null;
 
@@ -717,8 +717,8 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
 
         injectResources(keyValFilter);
 
-        GridIterator<GridIndexingKeyValueRow<K, V>> heapIt = new GridIteratorAdapter<GridIndexingKeyValueRow<K, V>>() {
-            private GridIndexingKeyValueRow<K, V> next;
+        GridIterator<IndexingKeyValueRow<K, V>> heapIt = new GridIteratorAdapter<IndexingKeyValueRow<K, V>>() {
+            private IndexingKeyValueRow<K, V> next;
 
             private Iterator<K> iter = prj.keySet().iterator();
 
@@ -730,11 +730,11 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                 return next != null;
             }
 
-            @Override public GridIndexingKeyValueRow<K, V> nextX() {
+            @Override public IndexingKeyValueRow<K, V> nextX() {
                 if (next == null)
                     throw new NoSuchElementException();
 
-                GridIndexingKeyValueRow<K, V> next0 = next;
+                IndexingKeyValueRow<K, V> next0 = next;
 
                 advance();
 
@@ -766,7 +766,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                 }
 
                 next = next0 != null ?
-                    new GridIndexingKeyValueRowAdapter<>(next0.getKey(), next0.getValue()) :
+                    new IndexingKeyValueRowAdapter<>(next0.getKey(), next0.getValue()) :
                     null;
             }
 
@@ -781,10 +781,10 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
             }
         };
 
-        final GridIterator<GridIndexingKeyValueRow<K, V>> it;
+        final GridIterator<IndexingKeyValueRow<K, V>> it;
 
         if (cctx.isSwapOrOffheapEnabled()) {
-            List<GridIterator<GridIndexingKeyValueRow<K, V>>> iters = new ArrayList<>(3);
+            List<GridIterator<IndexingKeyValueRow<K, V>>> iters = new ArrayList<>(3);
 
             iters.add(heapIt);
 
@@ -799,12 +799,12 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
         else
             it = heapIt;
 
-        return new GridCloseableIteratorAdapter<GridIndexingKeyValueRow<K, V>>() {
+        return new GridCloseableIteratorAdapter<IndexingKeyValueRow<K, V>>() {
             @Override protected boolean onHasNext() {
                 return it.hasNext();
             }
 
-            @Override protected GridIndexingKeyValueRow<K, V> onNext() {
+            @Override protected IndexingKeyValueRow<K, V> onNext() {
                 return it.next();
             }
 
@@ -819,7 +819,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
      * @return Swap iterator.
      * @throws GridException If failed.
      */
-    private GridIterator<GridIndexingKeyValueRow<K, V>> swapIterator(GridCacheQueryAdapter<?> qry)
+    private GridIterator<IndexingKeyValueRow<K, V>> swapIterator(GridCacheQueryAdapter<?> qry)
         throws GridException {
         IgnitePredicate<GridCacheEntry<Object, Object>> prjPred = qry.projectionFilter();
 
@@ -834,7 +834,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
      * @param qry Query.
      * @return Offheap iterator.
      */
-    private GridIterator<GridIndexingKeyValueRow<K, V>> offheapIterator(GridCacheQueryAdapter<?> qry) {
+    private GridIterator<IndexingKeyValueRow<K, V>> offheapIterator(GridCacheQueryAdapter<?> qry) {
         IgnitePredicate<GridCacheEntry<Object, Object>> prjPred = qry.projectionFilter();
 
         IgniteBiPredicate<K, V> filter = qry.scanFilter();
@@ -858,7 +858,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
      * @param keepPortable Keep portable flag.
      * @return Iterator.
      */
-    private GridIteratorAdapter<GridIndexingKeyValueRow<K, V>> scanIterator(
+    private GridIteratorAdapter<IndexingKeyValueRow<K, V>> scanIterator(
         @Nullable final Iterator<Map.Entry<byte[], byte[]>> it,
         @Nullable final IgnitePredicate<GridCacheEntry<Object, Object>> prjPred,
         @Nullable final IgniteBiPredicate<K, V> filter,
@@ -866,8 +866,8 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
         if (it == null)
             return new GridEmptyCloseableIterator<>();
 
-        return new GridIteratorAdapter<GridIndexingKeyValueRow<K, V>>() {
-            private GridIndexingKeyValueRow<K, V> next;
+        return new GridIteratorAdapter<IndexingKeyValueRow<K, V>>() {
+            private IndexingKeyValueRow<K, V> next;
 
             {
                 advance();
@@ -877,11 +877,11 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                 return next != null;
             }
 
-            @Override public GridIndexingKeyValueRow<K, V> nextX() {
+            @Override public IndexingKeyValueRow<K, V> nextX() {
                 if (next == null)
                     throw new NoSuchElementException();
 
-                GridIndexingKeyValueRow<K, V> next0 = next;
+                IndexingKeyValueRow<K, V> next0 = next;
 
                 advance();
 
@@ -913,7 +913,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                             continue;
                     }
 
-                    next = new GridIndexingKeyValueRowAdapter<>(e.key(), e.value());
+                    next = new IndexingKeyValueRowAdapter<>(e.key(), e.value());
 
                     break;
                 }
@@ -974,7 +974,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                 int pageSize = qry.pageSize();
 
                 Collection<Object> data = null;
-                Collection<List<GridIndexingEntity<?>>> entities = null;
+                Collection<List<IndexingEntity<?>>> entities = null;
 
                 if (qryInfo.local() || rdc != null || cctx.isLocalNode(qryInfo.senderId()))
                     data = new ArrayList<>(pageSize);
@@ -989,14 +989,14 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                     fieldsQueryResult(qryInfo, taskName);
 
                 // If metadata needs to be returned to user and cleaned from internal fields - copy it.
-                List<GridIndexingFieldMetadata> meta = qryInfo.includeMetaData() ?
+                List<IndexingFieldMetadata> meta = qryInfo.includeMetaData() ?
                     (res.metaData() != null ? new ArrayList<>(res.metaData()) : null) :
                     res.metaData();
 
                 if (!qryInfo.includeMetaData())
                     meta = null;
 
-                GridCloseableIterator<List<GridIndexingEntity<?>>> it = new GridSpiCloseableIteratorWrapper<>(
+                GridCloseableIterator<List<IndexingEntity<?>>> it = new GridSpiCloseableIteratorWrapper<>(
                     res.iterator(recipient(qryInfo.senderId(), qryInfo.requestId())));
 
                 if (log.isDebugEnabled())
@@ -1015,7 +1015,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                 boolean metaSent = false;
 
                 while (!Thread.currentThread().isInterrupted() && it.hasNext()) {
-                    List<GridIndexingEntity<?>> row = it.next();
+                    List<IndexingEntity<?>> row = it.next();
 
                     // Query is cancelled.
                     if (row == null) {
@@ -1041,8 +1041,8 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                             null,
                             null,
                             null,
-                            F.viewListReadOnly(row, new CX1<GridIndexingEntity<?>, Object>() {
-                                @Override public Object applyx(GridIndexingEntity<?> ent) throws GridException {
+                            F.viewListReadOnly(row, new CX1<IndexingEntity<?>, Object>() {
+                                @Override public Object applyx(IndexingEntity<?> ent) throws GridException {
                                     return ent.value();
                                 }
                             })));
@@ -1051,7 +1051,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                     if ((qryInfo.local() || rdc != null || cctx.isLocalNode(qryInfo.senderId()))) {
                         List<Object> fields = new ArrayList<>(row.size());
 
-                        for (GridIndexingEntity<?> ent : row)
+                        for (IndexingEntity<?> ent : row)
                             fields.add(ent.value());
 
                         // Reduce.
@@ -1153,7 +1153,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
 
                 String taskName = cctx.kernalContext().task().resolveTaskName(qry.taskHash());
 
-                IgniteSpiCloseableIterator<GridIndexingKeyValueRow<K, V>> iter;
+                IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> iter;
                 GridCacheQueryType type;
 
                 QueryResult<K, V> res;
@@ -1182,7 +1182,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                 long topVer = cctx.affinity().affinityTopologyVersion();
 
                 while (!Thread.currentThread().isInterrupted() && iter.hasNext()) {
-                    GridIndexingKeyValueRow<K, V> row = iter.next();
+                    IndexingKeyValueRow<K, V> row = iter.next();
 
                     // Query is cancelled.
                     if (row == null) {
@@ -1204,7 +1204,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                         continue;
                     }
 
-                    GridIndexingEntity<V> v = row.value();
+                    IndexingEntity<V> v = row.value();
 
                     assert v != null && v.hasValue();
 
@@ -1623,8 +1623,8 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
      * @return {@code true} if page was processed right.
      */
     protected abstract boolean onFieldsPageReady(boolean loc, GridCacheQueryInfo qryInfo,
-        @Nullable List<GridIndexingFieldMetadata> metaData,
-        @Nullable Collection<List<GridIndexingEntity<?>>> entities,
+        @Nullable List<IndexingFieldMetadata> metaData,
+        @Nullable Collection<List<IndexingEntity<?>>> entities,
         @Nullable Collection<?> data,
         boolean finished, @Nullable Throwable e);
 
@@ -1641,7 +1641,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
             return;
 
         if (GridUtils.isPrimitiveOrWrapper(cls)) {
-            for (GridIndexingSpi indexingSpi : cctx.gridConfig().getIndexingSpi()) {
+            for (IndexingSpi indexingSpi : cctx.gridConfig().getIndexingSpi()) {
                 if (!isDefaultIndexPrimitiveKey(indexingSpi))
                     throw new IllegalStateException("Invalid use of primitive class type in queries when " +
                         "GridH2IndexingSpi.isDefaultIndexPrimitiveKey() is disabled " +
@@ -1747,7 +1747,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
      * @return Filter.
      */
     @SuppressWarnings("unchecked")
-    @Nullable private GridIndexingQueryFilter projectionFilter(GridCacheQueryAdapter<?> qry) {
+    @Nullable private IndexingQueryFilter projectionFilter(GridCacheQueryAdapter<?> qry) {
         assert qry != null;
 
         final IgnitePredicate<GridCacheEntry<Object, Object>> prjFilter = qry.projectionFilter();
@@ -1755,7 +1755,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
         if (prjFilter == null || F.isAlwaysTrue(prjFilter))
             return null;
 
-        return new GridIndexingQueryFilter() {
+        return new IndexingQueryFilter() {
             @Nullable @Override public IgniteBiPredicate<K, V> forSpace(String spaceName) throws GridException {
                 if (!F.eq(space, spaceName))
                     return null;
@@ -1780,7 +1780,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
      * @param indexingSpi Indexing SPI.
      * @return {@code True} if given SPI is GridH2IndexingSpi with enabled property {@code isDefaultIndexPrimitiveKey}.
      */
-    private static boolean isDefaultIndexPrimitiveKey(GridIndexingSpi indexingSpi) {
+    private static boolean isDefaultIndexPrimitiveKey(IndexingSpi indexingSpi) {
         if (indexingSpi.getClass().getName().equals(GridComponentType.H2_INDEXING.className())) {
             try {
                 Method method = indexingSpi.getClass().getMethod("isDefaultIndexPrimitiveKey");
@@ -1855,7 +1855,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
 
             return F.transform(cacheNames, new C1<String, CacheSqlMetadata>() {
                 @Override public CacheSqlMetadata apply(String cacheName) {
-                    Collection<GridIndexingTypeDescriptor> types = ctx.indexing().types(cacheName);
+                    Collection<IndexingTypeDescriptor> types = ctx.indexing().types(cacheName);
 
                     Collection<String> names = U.newHashSet(types.size());
                     Map<String, String> keyClasses = U.newHashMap(types.size());
@@ -1863,7 +1863,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                     Map<String, Map<String, String>> fields = U.newHashMap(types.size());
                     Map<String, Collection<GridCacheSqlIndexMetadata>> indexes = U.newHashMap(types.size());
 
-                    for (GridIndexingTypeDescriptor type : types) {
+                    for (IndexingTypeDescriptor type : types) {
                         // Filter internal types (e.g., data structures).
                         if (type.name().startsWith("GridCache"))
                             continue;
@@ -1892,11 +1892,11 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                         Collection<GridCacheSqlIndexMetadata> indexesCol =
                             new ArrayList<>(type.indexes().size());
 
-                        for (Map.Entry<String, GridIndexDescriptor> e : type.indexes().entrySet()) {
-                            GridIndexDescriptor desc = e.getValue();
+                        for (Map.Entry<String, IndexDescriptor> e : type.indexes().entrySet()) {
+                            IndexDescriptor desc = e.getValue();
 
                             // Add only SQL indexes.
-                            if (desc.type() == GridIndexType.SORTED) {
+                            if (desc.type() == IndexType.SORTED) {
                                 Collection<String> idxFields = e.getValue().fields();
                                 Collection<String> descendings = new LinkedList<>();
 
@@ -2143,7 +2143,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
 
     /**
      */
-    private static class QueryResult<K, V> extends CachedResult<GridIndexingKeyValueRow<K, V>> {
+    private static class QueryResult<K, V> extends CachedResult<IndexingKeyValueRow<K, V>> {
         /** */
         private static final long serialVersionUID = 0L;
 
@@ -2171,12 +2171,12 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
     /**
      *
      */
-    private static class FieldsResult extends CachedResult<List<GridIndexingEntity<?>>> {
+    private static class FieldsResult extends CachedResult<List<IndexingEntity<?>>> {
         /** */
         private static final long serialVersionUID = 0L;
 
         /** */
-        private List<GridIndexingFieldMetadata> meta;
+        private List<IndexingFieldMetadata> meta;
 
         /**
          * @param recipient ID of the recipient.
@@ -2188,7 +2188,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
         /**
          * @return Metadata.
          */
-        public List<GridIndexingFieldMetadata> metaData() throws GridException {
+        public List<IndexingFieldMetadata> metaData() throws GridException {
             get(); // Ensure that result is ready.
 
             return meta;
@@ -2197,7 +2197,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
         /**
          * @param meta Metadata.
          */
-        public void metaData(List<GridIndexingFieldMetadata> meta) {
+        public void metaData(List<IndexingFieldMetadata> meta) {
             this.meta = meta;
         }
     }
@@ -2387,7 +2387,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
      *
      */
     private class OffheapIteratorClosure
-        extends CX2<T2<Long, Integer>, T2<Long, Integer>, GridIndexingKeyValueRow<K, V>> {
+        extends CX2<T2<Long, Integer>, T2<Long, Integer>, IndexingKeyValueRow<K, V>> {
         /** */
         private static final long serialVersionUID = 7410163202728985912L;
 
@@ -2417,7 +2417,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
         }
 
         /** {@inheritDoc} */
-        @Nullable @Override public GridIndexingKeyValueRow<K, V> applyx(T2<Long, Integer> keyPtr,
+        @Nullable @Override public IndexingKeyValueRow<K, V> applyx(T2<Long, Integer> keyPtr,
             T2<Long, Integer> valPtr)
             throws GridException {
             LazyOffheapEntry e = new LazyOffheapEntry(keyPtr, valPtr);
@@ -2437,7 +2437,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
                     return null;
             }
 
-            return new GridIndexingKeyValueRowAdapter<>(e.key(), (V)cctx.unwrapTemporary(e.value())) ;
+            return new IndexingKeyValueRowAdapter<>(e.key(), (V)cctx.unwrapTemporary(e.value())) ;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java
index a3d89ae..030aee0 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java
@@ -21,5 +21,5 @@ public interface GridCacheQueryMetadataAware {
     /**
      * @return Future to retrieve metadata.
      */
-    public IgniteFuture<List<GridIndexingFieldMetadata>> metadata();
+    public IgniteFuture<List<IndexingFieldMetadata>> metadata();
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java
index 06c4a6b..377af43 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java
@@ -54,7 +54,7 @@ public class GridCacheQueryResponse<K, V> extends GridCacheMessage<K, V> impleme
     /** */
     @GridToStringInclude
     @GridDirectTransient
-    private List<GridIndexingFieldMetadata> metadata;
+    private List<IndexingFieldMetadata> metadata;
 
     /** */
     @GridDirectCollection(byte[].class)
@@ -133,14 +133,14 @@ public class GridCacheQueryResponse<K, V> extends GridCacheMessage<K, V> impleme
     /**
      * @return Metadata.
      */
-    public List<GridIndexingFieldMetadata> metadata() {
+    public List<IndexingFieldMetadata> metadata() {
         return metadata;
     }
 
     /**
      * @param metadata Metadata.
      */
-    public void metadata(@Nullable List<GridIndexingFieldMetadata> metadata) {
+    public void metadata(@Nullable List<IndexingFieldMetadata> metadata) {
         this.metadata = metadata;
     }
 
@@ -206,10 +206,10 @@ public class GridCacheQueryResponse<K, V> extends GridCacheMessage<K, V> impleme
         Collection<List<Object>> col0 = new ArrayList<>(col.size());
 
         for (Object o : col) {
-            List<GridIndexingEntity<?>> list = (List<GridIndexingEntity<?>>)o;
+            List<IndexingEntity<?>> list = (List<IndexingEntity<?>>)o;
             List<Object> list0 = new ArrayList<>(list.size());
 
-            for (GridIndexingEntity<?> ent : list) {
+            for (IndexingEntity<?> ent : list) {
                 if (ent.bytes() != null)
                     list0.add(ent.bytes());
                 else {
@@ -267,11 +267,11 @@ public class GridCacheQueryResponse<K, V> extends GridCacheMessage<K, V> impleme
             return;
 
         for (Object o : data) {
-            List<GridIndexingEntity<?>> list = (List<GridIndexingEntity<?>>)o;
+            List<IndexingEntity<?>> list = (List<IndexingEntity<?>>)o;
 
             out.writeInt(list.size());
 
-            for (GridIndexingEntity<?> idxEnt : list) {
+            for (IndexingEntity<?> idxEnt : list) {
                 try {
                     out.writeObject(idxEnt.value());
                 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java
index 9412c9d..4797878 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java
@@ -9,7 +9,6 @@
 
 package org.gridgain.grid.kernal.processors.cache.query;
 
-import org.gridgain.grid.spi.indexing.*;
 import org.jetbrains.annotations.*;
 
 import java.io.*;
@@ -35,7 +34,7 @@ public interface GridCacheSqlMetadata extends Externalizable {
      * <p>
      * By default, type name is equal to simple class name
      * of stored object, but it can depend on implementation
-     * of {@link GridIndexingSpi}.
+     * of {@link org.gridgain.grid.spi.indexing.IndexingSpi}.
      *
      * @return Collection of available types.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java
index 499ac6a..7ce674d 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java
@@ -199,7 +199,7 @@ public class GridCacheQueryJdbcTask extends ComputeTaskAdapter<byte[], byte[]> {
 
                 GridCacheQueryFuture<List<?>> fut = qry.execute(args.toArray());
 
-                Collection<GridIndexingFieldMetadata> meta = ((GridCacheQueryMetadataAware)fut).metadata().get();
+                Collection<IndexingFieldMetadata> meta = ((GridCacheQueryMetadataAware)fut).metadata().get();
 
                 if (meta == null) {
                     // Try to extract initial SQL exception.
@@ -220,7 +220,7 @@ public class GridCacheQueryJdbcTask extends ComputeTaskAdapter<byte[], byte[]> {
                 cols = new ArrayList<>(meta.size());
                 types = new ArrayList<>(meta.size());
 
-                for (GridIndexingFieldMetadata desc : meta) {
+                for (IndexingFieldMetadata desc : meta) {
                     tbls.add(desc.typeName());
                     cols.add(desc.fieldName().toUpperCase());
                     types.add(desc.fieldTypeName());

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java
index 3b3d24c..6b9d546 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java
@@ -19,7 +19,7 @@ import org.gridgain.grid.kernal.processors.task.GridInternal;
 import org.gridgain.grid.kernal.processors.timeout.GridTimeoutObjectAdapter;
 import org.gridgain.grid.kernal.visor.*;
 import org.apache.ignite.lang.IgniteBiTuple;
-import org.gridgain.grid.spi.indexing.GridIndexingFieldMetadata;
+import org.gridgain.grid.spi.indexing.IndexingFieldMetadata;
 import org.gridgain.grid.util.typedef.internal.*;
 
 import java.io.*;
@@ -220,7 +220,7 @@ public class VisorQueryTask extends VisorOneNodeTask<VisorQueryTask.VisorQueryAr
 
                     List<Object> firstRow = (List<Object>)fut.next();
 
-                    List<GridIndexingFieldMetadata> meta = ((GridCacheQueryMetadataAware)fut).metadata().get();
+                    List<IndexingFieldMetadata> meta = ((GridCacheQueryMetadataAware)fut).metadata().get();
 
                     if (meta == null)
                         return new IgniteBiTuple<Exception, VisorQueryResultEx>(
@@ -229,7 +229,7 @@ public class VisorQueryTask extends VisorOneNodeTask<VisorQueryTask.VisorQueryAr
                         VisorQueryField[] names = new VisorQueryField[meta.size()];
 
                         for (int i = 0; i < meta.size(); i++) {
-                            GridIndexingFieldMetadata col = meta.get(i);
+                            IndexingFieldMetadata col = meta.get(i);
 
                             names[i] = new VisorQueryField(col.typeName(), col.fieldName());
                         }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexDescriptor.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexDescriptor.java
deleted file mode 100644
index 2979dcc..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexDescriptor.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import java.util.*;
-
-/**
- * Describes an index to be created for a certain type. It contains all necessary
- * information about fields, order, uniqueness, and specified
- * whether this is SQL or Text index.
- * See also {@link GridIndexingTypeDescriptor#indexes()}.
- */
-public interface GridIndexDescriptor {
-    /**
-     * Gets all fields to be indexed.
-     *
-     * @return Fields to be indexed.
-     */
-    public Collection<String> fields();
-
-    /**
-     * Specifies order of the index for each indexed field.
-     *
-     * @param field Field name.
-     * @return {@code True} if given field should be indexed in descending order.
-     */
-    public boolean descending(String field);
-
-    /**
-     * Gets index type.
-     *
-     * @return Type.
-     */
-    public GridIndexType type();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexType.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexType.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexType.java
deleted file mode 100644
index c1575ba..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexType.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-/**
- * Index types.
- */
-public enum GridIndexType {
-    /** Sorted SQL index. */
-    SORTED,
-
-    /** Spatial SQL index. */
-    GEO_SPATIAL,
-
-    /** Fulltext index. */
-    FULLTEXT
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingEntity.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingEntity.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingEntity.java
deleted file mode 100644
index e3e74d1..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingEntity.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Wrapper around indexed key or value which also may contain the value in
- * unmarshalled form. It exists to avoid unnecessary unmarshalling whenever
- * it is not needed.
- * See also {@link GridIndexingSpi#queryFields(String, String, Collection, GridIndexingQueryFilter[])}.
- */
-public interface GridIndexingEntity<T> {
-    /**
-     * Gets indexed value. This method may return {@code null} only
-     * if actual value is {@code null}. Otherwise, it will unmarshal
-     * the {@link #bytes()} and return the actual value.
-     *
-     * @return Indexed value.
-     * @throws org.apache.ignite.spi.IgniteSpiException If value de-serialization failed.
-     */
-    @Nullable public T value() throws IgniteSpiException;
-
-    /**
-     * Optional bytes for marshaled indexed value. Certain SPI implementations
-     * may keep objects in unmarshalled form and therefore will not provide
-     * marshaled bytes for them.
-     *
-     * @return Optional marshaled value.
-     */
-    @Nullable public byte[] bytes();
-
-    /**
-     * Flag indicating whether this entity contains unmarshalled value.
-     *
-     * @return {@code True} if entity contains unmarshalled value, {@code false}
-     *      otherwise.
-     */
-    public boolean hasValue();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingEntityAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingEntityAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingEntityAdapter.java
deleted file mode 100644
index ce64c20..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingEntityAdapter.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-import org.jetbrains.annotations.*;
-
-/**
- * Convenience adapter for {@link GridIndexingEntity}.
- */
-public class GridIndexingEntityAdapter<T> implements GridIndexingEntity<T> {
-    /** */
-    @GridToStringInclude
-    private final T val;
-
-    /** */
-    @GridToStringExclude
-    private final byte[] bytes;
-
-    /**
-     * @param val Value.
-     * @param bytes Value marshalled by {@link org.apache.ignite.marshaller.IgniteMarshaller}.
-     */
-    public GridIndexingEntityAdapter(T val, @Nullable byte[] bytes) {
-        this.val = val;
-        this.bytes = bytes;
-    }
-
-    /** {@inheritDoc} */
-    @Override public T value() {
-        return val;
-    }
-
-    /** {@inheritDoc} */
-    @Override public byte[] bytes() {
-        return bytes;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasValue() {
-        return val != null || (val == null && bytes == null);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridIndexingEntityAdapter.class, this,
-            "bytesLength", (bytes == null ? 0 : bytes.length));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingFieldMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingFieldMetadata.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingFieldMetadata.java
deleted file mode 100644
index 2754a78..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingFieldMetadata.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import java.io.*;
-
-/**
- * Query field descriptor. This descriptor is used to provide metadata
- * about fields returned in query result.
- */
-public interface GridIndexingFieldMetadata extends Externalizable {
-    /**
-     * Gets schema name.
-     *
-     * @return Schema name.
-     */
-    public String schemaName();
-
-    /**
-     * Gets name of type to which this field belongs.
-     *
-     * @return Gets type name.
-     */
-    public String typeName();
-
-    /**
-     * Gets field name.
-     *
-     * @return Field name.
-     */
-    public String fieldName();
-
-    /**
-     * Gets field type name.
-     *
-     * @return Field type name.
-     */
-    public String fieldTypeName();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingFieldsResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingFieldsResult.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingFieldsResult.java
deleted file mode 100644
index 9af3acb..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingFieldsResult.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-
-import java.util.*;
-
-/**
- * Field query result. It is composed of
- * fields metadata and iterator over queried fields.
- * See also {@link GridIndexingSpi#queryFields(String, String, Collection, GridIndexingQueryFilter)}.
- */
-public interface GridIndexingFieldsResult {
-    /**
-     * Gets metadata for queried fields.
-     *
-     * @return Meta data for queried fields.
-     */
-    List<GridIndexingFieldMetadata> metaData();
-
-    /**
-     * Gets iterator over queried fields.
-     *
-     * @return Iterator over queried fields.
-     */
-    IgniteSpiCloseableIterator<List<GridIndexingEntity<?>>> iterator();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingFieldsResultAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingFieldsResultAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingFieldsResultAdapter.java
deleted file mode 100644
index 22c5a51..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingFieldsResultAdapter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Convenience adapter for {@link GridIndexingFieldsResult}.
- */
-public class GridIndexingFieldsResultAdapter implements GridIndexingFieldsResult {
-    /** Meta data. */
-    private final List<GridIndexingFieldMetadata> metaData;
-
-    /** Result iterator. */
-    private final IgniteSpiCloseableIterator<List<GridIndexingEntity<?>>> it;
-
-    /**
-     * Creates query field result composed of field metadata and iterator
-     * over queried fields.
-     *
-     * @param metaData Meta data.
-     * @param it Result iterator.
-     */
-    public GridIndexingFieldsResultAdapter(@Nullable List<GridIndexingFieldMetadata> metaData,
-        IgniteSpiCloseableIterator<List<GridIndexingEntity<?>>> it) {
-        this.metaData = metaData != null ? Collections.unmodifiableList(metaData) : null;
-        this.it = it;
-    }
-
-    /** {@inheritDoc} */
-    @Override public List<GridIndexingFieldMetadata> metaData() {
-        return metaData;
-    }
-
-    /** {@inheritDoc} */
-    @Override public IgniteSpiCloseableIterator<List<GridIndexingEntity<?>>> iterator() {
-        return it;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingKeyValueRow.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingKeyValueRow.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingKeyValueRow.java
deleted file mode 100644
index 93f8087..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingKeyValueRow.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import java.util.*;
-
-/**
- * This class represents a single row returned by key-value query. For example, it is returned
- * by query such as {@link GridIndexingSpi#query(String, String, Collection, GridIndexingTypeDescriptor, GridIndexingQueryFilter[])}
- * method. Key-value queries are different from fields query in a way that they
- * return the whole cached value, not its individual fields.
- * See also {@link GridIndexingSpi#query(String, String, Collection, GridIndexingTypeDescriptor, GridIndexingQueryFilter[])}.
- */
-public interface GridIndexingKeyValueRow<K, V> {
-    /**
-     * Gets cache key.
-     *
-     * @return Cache key.
-     */
-    public GridIndexingEntity<K> key();
-
-    /**
-     * Gets cache value.
-     *
-     * @return Cache value.
-     */
-    public GridIndexingEntity<V> value();
-
-    /**
-     * Gets version of cache value.
-     *
-     * @return Version of cache value.
-     */
-    public byte[] version();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingKeyValueRowAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingKeyValueRowAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingKeyValueRowAdapter.java
deleted file mode 100644
index d7859ad..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingKeyValueRowAdapter.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
-*  __  ____/___________(_)______  /__  ____/______ ____(_)_______
-*  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-*  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-*  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
-*/
-
-package org.gridgain.grid.spi.indexing;
-
-import org.gridgain.grid.kernal.processors.cache.query.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-import org.jetbrains.annotations.*;
-
-/**
- * Convenience adapter for {@link GridIndexingKeyValueRow}.
- */
-public class GridIndexingKeyValueRowAdapter<K, V> implements GridIndexingKeyValueRow<K, V> {
-    /** Key. */
-    @GridToStringInclude
-    private GridIndexingEntity<K> key;
-
-    /** Value. */
-    @GridToStringInclude
-    private GridIndexingEntity<V> val;
-
-    /** Version. */
-    @GridToStringInclude
-    private byte[] ver;
-
-    /**
-     * Constructor.
-     *
-     * @param key Key.
-     * @param val Value.
-     */
-    public GridIndexingKeyValueRowAdapter(K key, V val) {
-        assert key != null;
-        assert val != null;
-
-        this.key = new GridIndexingEntityAdapter<>(key, null);
-        this.val = new GridIndexingEntityAdapter<>(val, null);
-    }
-
-    /**
-     * Constructs query index row.
-     *
-     * @param key Key.
-     * @param val Value.
-     * @param ver Version. It is {@code null} in case of {@link GridCacheQueryType#SCAN} query.
-     */
-    public GridIndexingKeyValueRowAdapter(GridIndexingEntity<K> key, @Nullable GridIndexingEntity<V> val,
-        @Nullable byte[] ver) {
-        assert key != null;
-
-        this.key = key;
-        this.val = val;
-        this.ver = ver;
-    }
-
-    /** {@inheritDoc} */
-    @Override public GridIndexingEntity<K> key() {
-        return key;
-    }
-
-    /** {@inheritDoc} */
-    @Override public GridIndexingEntity<V> value() {
-        return val;
-    }
-
-    /** {@inheritDoc} */
-    @Override public byte[] version() {
-        return ver;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridIndexingKeyValueRowAdapter.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingMarshaller.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingMarshaller.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingMarshaller.java
deleted file mode 100644
index 829173e..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingMarshaller.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-
-/**
- * Marshaller to be used in indexing SPI. This marshaller automatically
- * takes care of class loading of unmarshalled classes.
- * See also {@link GridIndexingSpi#registerMarshaller(GridIndexingMarshaller)}.
- */
-public interface GridIndexingMarshaller {
-    /**
-     * Unmarshalls bytes to object.
-     *
-     * @param bytes Bytes.
-     * @param <T> Value type.
-     * @return Value.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <T> GridIndexingEntity<T> unmarshal(byte[] bytes) throws IgniteSpiException;
-
-    /**
-     * Marshals object to bytes.
-     *
-     * @param entity Entity.
-     * @return Bytes.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public byte[] marshal(GridIndexingEntity<?> entity) throws IgniteSpiException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingQueryFilter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingQueryFilter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingQueryFilter.java
deleted file mode 100644
index b2e5cf4..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingQueryFilter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
-import org.jetbrains.annotations.*;
-
-/**
- * Space name and key filter.
- */
-public interface GridIndexingQueryFilter {
-    /**
-     * Creates optional predicate for space.
-     *
-     * @param spaceName Space name.
-     * @return Predicate or {@code null} if no filtering is needed.
-     */
-    @Nullable public <K, V> IgniteBiPredicate<K, V> forSpace(String spaceName) throws GridException;
-}


[35/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
new file mode 100644
index 0000000..874bd20
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
@@ -0,0 +1,639 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.internal;
+
+import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.discovery.tcp.messages.*;
+import org.gridgain.grid.util.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+/**
+ * Statistics for {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}.
+ */
+public class TcpDiscoveryStatistics {
+    /** Join started timestamp. */
+    private long joinStartedTs;
+
+    /** Join finished timestamp. */
+    private long joinFinishedTs;
+
+    /** Coordinator since timestamp. */
+    private final AtomicLong crdSinceTs = new AtomicLong();
+
+    /** Joined nodes count. */
+    private int joinedNodesCnt;
+
+    /** Failed nodes count. */
+    private int failedNodesCnt;
+
+    /** Left nodes count. */
+    private int leftNodesCnt;
+
+    /** Ack timeouts count. */
+    private int ackTimeoutsCnt;
+
+    /** Socket timeouts count. */
+    private int sockTimeoutsCnt;
+
+    /** Received messages. */
+    @GridToStringInclude
+    private final Map<String, Integer> rcvdMsgs = new HashMap<>();
+
+    /** Processed messages. */
+    @GridToStringInclude
+    private final Map<String, Integer> procMsgs = new HashMap<>();
+
+    /** Average time taken to serialize messages. */
+    @GridToStringInclude
+    private final Map<String, Long> avgMsgsSndTimes = new HashMap<>();
+
+    /** Average time taken to serialize messages. */
+    @GridToStringInclude
+    private final Map<String, Long> maxMsgsSndTimes = new HashMap<>();
+
+    /** Sent messages. */
+    @GridToStringInclude
+    private final Map<String, Integer> sentMsgs = new HashMap<>();
+
+    /** Messages receive timestamps. */
+    private final Map<IgniteUuid, Long> msgsRcvTs = new GridBoundedLinkedHashMap<>(1024);
+
+    /** Messages processing start timestamps. */
+    private final Map<IgniteUuid, Long> msgsProcStartTs = new GridBoundedLinkedHashMap<>(1024);
+
+    /** Ring messages sent timestamps. */
+    private final Map<IgniteUuid, Long> ringMsgsSndTs = new GridBoundedLinkedHashMap<>(1024);
+
+    /** Average time messages is in queue. */
+    private long avgMsgQueueTime;
+
+    /** Max time messages is in queue. */
+    private long maxMsgQueueTime;
+
+    /** Total number of ring messages sent. */
+    private int ringMsgsSent;
+
+    /** Average time it takes for messages to pass the full ring. */
+    private long avgRingMsgTime;
+
+    /** Max time it takes for messages to pass the full ring. */
+    private long maxRingMsgTime;
+
+    /** Class name of ring message that required the biggest time for full ring traverse. */
+    private String maxRingTimeMsgCls;
+
+    /** Average message processing time. */
+    private long avgMsgProcTime;
+
+    /** Max message processing time. */
+    private long maxMsgProcTime;
+
+    /** Class name of the message that required the biggest time to process. */
+    private String maxProcTimeMsgCls;
+
+    /** Socket readers created count. */
+    private int sockReadersCreated;
+
+    /** Socket readers removed count. */
+    private int sockReadersRmv;
+
+    /** Average time it takes to initialize connection from another node. */
+    private long avgSrvSockInitTime;
+
+    /** Max time it takes to initialize connection from another node. */
+    private long maxSrvSockInitTime;
+
+    /** Number of outgoing connections established. */
+    private int clientSockCreatedCnt;
+
+    /** Average time it takes to connect to another node. */
+    private long avgClientSockInitTime;
+
+    /** Max time it takes to connect to another node. */
+    private long maxClientSockInitTime;
+
+    /** Pending messages registered count. */
+    private int pendingMsgsRegistered;
+
+    /** Pending messages discarded count. */
+    private int pendingMsgsDiscarded;
+
+    /**
+     * Increments joined nodes count.
+     */
+    public synchronized void onNodeJoined() {
+        joinedNodesCnt++;
+    }
+
+    /**
+     * Increments left nodes count.
+     */
+    public synchronized void onNodeLeft() {
+        leftNodesCnt++;
+    }
+
+    /**
+     * Increments failed nodes count.
+     */
+    public synchronized void onNodeFailed() {
+        failedNodesCnt++;
+    }
+
+    /**
+     * Increments ack timeouts count.
+     */
+    public synchronized void onAckTimeout() {
+        ackTimeoutsCnt++;
+    }
+
+    /**
+     * Increments socket timeouts count.
+     */
+    public synchronized void onSocketTimeout() {
+        sockTimeoutsCnt++;
+    }
+
+    /**
+     * Initializes coordinator since date (if needed).
+     */
+    public void onBecomingCoordinator() {
+        crdSinceTs.compareAndSet(0, U.currentTimeMillis());
+    }
+
+    /**
+     * Initializes join started timestamp.
+     */
+    public synchronized void onJoinStarted() {
+        joinStartedTs = U.currentTimeMillis();
+    }
+
+    /**
+     * Initializes join finished timestamp.
+     */
+    public synchronized void onJoinFinished() {
+        joinFinishedTs = U.currentTimeMillis();
+    }
+
+    /**
+     * @return Join started timestamp.
+     */
+    public synchronized long joinStarted() {
+        return joinStartedTs;
+    }
+
+    /**
+     * @return Join finished timestamp.
+     */
+    public synchronized long joinFinished() {
+        return joinFinishedTs;
+    }
+
+    /**
+     * Collects necessary stats for message received by SPI.
+     *
+     * @param msg Received message.
+     */
+    public synchronized void onMessageReceived(TcpDiscoveryAbstractMessage msg) {
+        assert msg != null;
+
+        Integer cnt = F.addIfAbsent(rcvdMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
+            @Override public Integer call() {
+                return 0;
+            }
+        });
+
+        assert cnt != null;
+
+        rcvdMsgs.put(msg.getClass().getSimpleName(), ++cnt);
+
+        msgsRcvTs.put(msg.id(), U.currentTimeMillis());
+    }
+
+    /**
+     * Collects necessary stats for message processed by SPI.
+     *
+     * @param msg Processed message.
+     */
+    public synchronized void onMessageProcessingStarted(TcpDiscoveryAbstractMessage msg) {
+        assert msg != null;
+
+        Integer cnt = F.addIfAbsent(procMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
+            @Override public Integer call() {
+                return 0;
+            }
+        });
+
+        assert cnt != null;
+
+        procMsgs.put(msg.getClass().getSimpleName(), ++cnt);
+
+        Long rcvdTs = msgsRcvTs.remove(msg.id());
+
+        if (rcvdTs != null) {
+            long duration = U.currentTimeMillis() - rcvdTs;
+
+            if (maxMsgQueueTime < duration)
+                maxMsgQueueTime = duration;
+
+            avgMsgQueueTime = (avgMsgQueueTime * (totalReceivedMessages() -1)) / totalProcessedMessages();
+        }
+
+        msgsProcStartTs.put(msg.id(), U.currentTimeMillis());
+    }
+
+    /**
+     * Collects necessary stats for message processed by SPI.
+     *
+     * @param msg Processed message.
+     */
+    public synchronized void onMessageProcessingFinished(TcpDiscoveryAbstractMessage msg) {
+        assert msg != null;
+
+        Long startTs = msgsProcStartTs.get(msg.id());
+
+        if (startTs != null) {
+            long duration = U.currentTimeMillis() - startTs;
+
+            avgMsgProcTime = (avgMsgProcTime * (totalProcessedMessages() - 1) + duration) / totalProcessedMessages();
+
+            if (duration > maxMsgProcTime) {
+                maxMsgProcTime = duration;
+
+                maxProcTimeMsgCls = msg.getClass().getSimpleName();
+            }
+
+            msgsProcStartTs.remove(msg.id());
+        }
+    }
+
+    /**
+     * Called by coordinator when ring message is sent.
+     *
+     * @param msg Sent message.
+     * @param time Time taken to serialize message.
+     */
+    public synchronized void onMessageSent(TcpDiscoveryAbstractMessage msg, long time) {
+        assert msg != null;
+        assert time >= 0;
+
+        if (crdSinceTs.get() > 0 &&
+            (msg instanceof TcpDiscoveryNodeAddedMessage) ||
+            (msg instanceof TcpDiscoveryNodeLeftMessage) ||
+            (msg instanceof TcpDiscoveryNodeFailedMessage)) {
+            ringMsgsSndTs.put(msg.id(), U.currentTimeMillis());
+
+            ringMsgsSent++;
+        }
+
+        Integer cnt = F.addIfAbsent(sentMsgs, msg.getClass().getSimpleName(), new Callable<Integer>() {
+            @Override public Integer call() {
+                return 0;
+            }
+        });
+
+        assert cnt != null;
+
+        sentMsgs.put(msg.getClass().getSimpleName(), ++cnt);
+
+        Long avgTime = F.addIfAbsent(avgMsgsSndTimes, msg.getClass().getSimpleName(), new Callable<Long>() {
+            @Override public Long call() {
+                return 0L;
+            }
+        });
+
+        assert avgTime != null;
+
+        avgTime = (avgTime * (cnt - 1) + time) / cnt;
+
+        avgMsgsSndTimes.put(msg.getClass().getSimpleName(), avgTime);
+
+        Long maxTime = F.addIfAbsent(maxMsgsSndTimes, msg.getClass().getSimpleName(), new Callable<Long>() {
+            @Override public Long call() {
+                return 0L;
+            }
+        });
+
+        assert maxTime != null;
+
+        if (time > maxTime)
+            maxMsgsSndTimes.put(msg.getClass().getSimpleName(), time);
+    }
+
+    /**
+     * Called by coordinator when ring message makes full pass.
+     *
+     * @param msg Message.
+     */
+    public synchronized void onRingMessageReceived(TcpDiscoveryAbstractMessage msg) {
+        assert msg != null;
+
+        Long sentTs = ringMsgsSndTs.get(msg.id());
+
+        if (sentTs != null) {
+            long duration  = U.currentTimeMillis() - sentTs;
+
+            if (maxRingMsgTime < duration) {
+                maxRingMsgTime = duration;
+
+                maxRingTimeMsgCls = msg.getClass().getSimpleName();
+            }
+
+            if (ringMsgsSent != 0)
+                avgRingMsgTime = (avgRingMsgTime * (ringMsgsSent - 1) + duration) / ringMsgsSent;
+        }
+    }
+
+    /**
+     * Gets max time for ring message to make full pass.
+     *
+     * @return Max full pass time.
+     */
+    public synchronized long maxRingMessageTime() {
+        return maxRingMsgTime;
+    }
+
+    /**
+     * Gets class name of the message that took max time to make full pass.
+     *
+     * @return Message class name.
+     */
+    public synchronized String maxRingDurationMessageClass() {
+        return maxRingTimeMsgCls;
+    }
+
+    /**
+     * Gets class name of the message took max time to process.
+     *
+     * @return Message class name.
+     */
+    public synchronized String maxProcessingTimeMessageClass() {
+        return maxProcTimeMsgCls;
+    }
+
+    /**
+     * @param initTime Time socket was initialized in.
+     */
+    public synchronized void onServerSocketInitialized(long initTime) {
+        assert initTime >= 0;
+
+        if (maxSrvSockInitTime < initTime)
+            maxSrvSockInitTime = initTime;
+
+        avgSrvSockInitTime = (avgSrvSockInitTime * (sockReadersCreated - 1) + initTime) / sockReadersCreated;
+    }
+
+    /**
+     * @param initTime Time socket was initialized in.
+     */
+    public synchronized void onClientSocketInitialized(long initTime) {
+        assert initTime >= 0;
+
+        clientSockCreatedCnt++;
+
+        if (maxClientSockInitTime < initTime)
+            maxClientSockInitTime = initTime;
+
+        avgClientSockInitTime = (avgClientSockInitTime * (clientSockCreatedCnt - 1) + initTime) / clientSockCreatedCnt;
+    }
+
+    /**
+     * Increments pending messages registered count.
+     */
+    public synchronized void onPendingMessageRegistered() {
+        pendingMsgsRegistered++;
+    }
+
+    /**
+     * Increments pending messages discarded count.
+     */
+    public synchronized void onPendingMessageDiscarded() {
+        pendingMsgsDiscarded++;
+    }
+
+    /**
+     * Increments socket readers created count.
+     */
+    public synchronized void onSocketReaderCreated() {
+        sockReadersCreated++;
+    }
+
+    /**
+     * Increments socket readers removed count.
+     */
+    public synchronized void onSocketReaderRemoved() {
+        sockReadersRmv++;
+    }
+
+    /**
+     * Gets processed messages counts (grouped by type).
+     *
+     * @return Map containing message types and respective counts.
+     */
+    public synchronized Map<String, Integer> processedMessages() {
+        return new HashMap<>(procMsgs);
+    }
+
+    /**
+     * Gets received messages counts (grouped by type).
+     *
+     * @return Map containing message types and respective counts.
+     */
+    public synchronized Map<String, Integer> receivedMessages() {
+        return new HashMap<>(rcvdMsgs);
+    }
+
+    /**
+     * Gets max messages send time (grouped by type).
+     *
+     * @return Map containing messages types and max send times.
+     */
+    public synchronized Map<String, Long> maxMessagesSendTimes() {
+        return new HashMap<>(maxMsgsSndTimes);
+    }
+
+    /**
+     * Gets average messages send time (grouped by type).
+     *
+     * @return Map containing messages types and average send times.
+     */
+    public synchronized Map<String, Long> avgMessagesSendTimes() {
+        return new HashMap<>(avgMsgsSndTimes);
+    }
+
+    /**
+     * Gets total received messages count.
+     *
+     * @return Total received messages count.
+     */
+    public synchronized int totalReceivedMessages() {
+        return F.sumInt(receivedMessages().values());
+    }
+
+    /**
+     * Gets total processed messages count.
+     *
+     * @return Total processed messages count.
+     */
+    public synchronized int totalProcessedMessages() {
+        return F.sumInt(processedMessages().values());
+    }
+
+    /**
+     * Gets max message processing time.
+     *
+     * @return Max message processing time.
+     */
+    public synchronized long maxMessageProcessingTime(){
+        return maxMsgProcTime;
+    }
+
+    /**
+     * Gets average message processing time.
+     *
+     * @return Average message processing time.
+     */
+    public synchronized long avgMessageProcessingTime() {
+        return avgMsgProcTime;
+    }
+
+    /**
+     * Gets pending messages registered count.
+     *
+     * @return Pending messages registered count.
+     */
+    public synchronized long pendingMessagesRegistered() {
+        return pendingMsgsRegistered;
+    }
+
+    /**
+     * Gets pending messages discarded count.
+     *
+     * @return Pending messages registered count.
+     */
+    public synchronized long pendingMessagesDiscarded() {
+        return pendingMsgsDiscarded;
+    }
+
+    /**
+     * Gets nodes joined count.
+     *
+     * @return Nodes joined count.
+     */
+    public synchronized int joinedNodesCount() {
+        return joinedNodesCnt;
+    }
+
+    /**
+     * Gets nodes left count.
+     *
+     * @return Nodes left count.
+     */
+    public synchronized int leftNodesCount() {
+        return leftNodesCnt;
+    }
+
+    /**
+     * Gets failed nodes count.
+     *
+     * @return Failed nodes count.
+     */
+    public synchronized int failedNodesCount() {
+        return failedNodesCnt;
+    }
+
+    /**
+     * @return Ack timeouts count.
+     */
+    public synchronized int ackTimeoutsCount() {
+        return ackTimeoutsCnt;
+    }
+
+    /**
+     * @return Socket timeouts count.
+     */
+    public synchronized int socketTimeoutsCount() {
+        return sockTimeoutsCnt;
+    }
+
+    /**
+     * Gets socket readers created count.
+     *
+     * @return Socket readers created count.
+     */
+    public synchronized int socketReadersCreated() {
+        return sockReadersCreated;
+    }
+
+    /**
+     * Gets socket readers removed count.
+     *
+     * @return Socket readers removed count.
+     */
+    public synchronized int socketReadersRemoved() {
+        return sockReadersRmv;
+    }
+
+    /**
+     * Gets time local node has been coordinator since.
+     *
+     * @return Coordinator since timestamp.
+     */
+    public long coordinatorSinceTimestamp() {
+        return crdSinceTs.get();
+    }
+
+    /**
+     * Clears statistics.
+     */
+    public synchronized void clear() {
+        ackTimeoutsCnt = 0;
+        avgClientSockInitTime = 0;
+        avgMsgProcTime = 0;
+        avgMsgQueueTime = 0;
+        avgMsgsSndTimes.clear();
+        avgRingMsgTime = 0;
+        avgSrvSockInitTime = 0;
+        clientSockCreatedCnt = 0;
+        crdSinceTs.set(0);
+        failedNodesCnt = 0;
+        joinedNodesCnt = 0;
+        joinFinishedTs = 0;
+        joinStartedTs = 0;
+        leftNodesCnt = 0;
+        maxClientSockInitTime = 0;
+        maxMsgProcTime = 0;
+        maxMsgQueueTime = 0;
+        maxMsgsSndTimes.clear();
+        maxProcTimeMsgCls = null;
+        maxRingMsgTime = 0;
+        maxRingTimeMsgCls = null;
+        maxSrvSockInitTime = 0;
+        pendingMsgsDiscarded = 0;
+        pendingMsgsRegistered = 0;
+        procMsgs.clear();
+        rcvdMsgs.clear();
+        ringMsgsSent = 0;
+        sentMsgs.clear();
+        sockReadersCreated = 0;
+        sockReadersRmv = 0;
+        sockTimeoutsCnt = 0;
+    }
+
+    /** {@inheritDoc} */
+    @Override public synchronized String toString() {
+        return S.toString(TcpDiscoveryStatistics.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/package.html b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/package.html
new file mode 100644
index 0000000..b44e05c
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal implementation.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java
new file mode 100644
index 0000000..27417f8
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder.java
@@ -0,0 +1,90 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder;
+
+import org.apache.ignite.spi.*;
+
+import java.net.*;
+import java.util.*;
+
+/**
+ * IP finder interface for {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}.
+ */
+public interface TcpDiscoveryIpFinder {
+    /**
+     * Callback invoked when SPI context is initialized after {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi#spiStart(String)}
+     * method is completed, SPI context can be stored for future access.
+     *
+     * @param spiCtx Spi context.
+     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+     */
+    public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException;
+
+    /**
+     * Callback invoked prior to stopping grid before SPI context is destroyed.
+     * Note that invoking SPI context after this callback is complete is considered
+     * illegal and may produce unknown results.
+     */
+    public void onSpiContextDestroyed();
+
+    /**
+     * Initializes addresses discovery SPI binds to.
+     *
+     * @param addrs Addresses discovery SPI binds to.
+     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+     */
+    public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
+
+    /**
+     * Gets all addresses registered in this finder.
+     *
+     * @return All known addresses, potentially empty, but never {@code null}.
+     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+     */
+    public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException;
+
+    /**
+     * Checks whether IP finder is shared or not.
+     * <p>
+     * If it is shared then only coordinator can unregister addresses.
+     * <p>
+     * All nodes should register their address themselves, as early as possible on node start.
+     *
+     * @return {@code true} if IP finder is shared.
+     */
+    public boolean isShared();
+
+    /**
+     * Registers new addresses.
+     * <p>
+     * Implementation should accept duplicates quietly, but should not register address if it
+     * is already registered.
+     *
+     * @param addrs Addresses to register. Not {@code null} and not empty.
+     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+     */
+    public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
+
+    /**
+     * Unregisters provided addresses.
+     * <p>
+     * Implementation should accept addresses that are currently not
+     * registered quietly (just no-op).
+     *
+     * @param addrs Addresses to unregister. Not {@code null} and not empty.
+     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+     */
+    public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException;
+
+    /**
+     * Closes this IP finder and releases any system resources associated with it.
+     */
+    public void close();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
new file mode 100644
index 0000000..502c1b6
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
@@ -0,0 +1,77 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder;
+
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.net.*;
+import java.util.*;
+
+/**
+ * IP finder interface implementation adapter.
+ */
+public abstract class TcpDiscoveryIpFinderAdapter implements TcpDiscoveryIpFinder {
+    /** Shared flag. */
+    private boolean shared;
+
+    /** SPI context. */
+    @GridToStringExclude
+    private volatile IgniteSpiContext spiCtx;
+
+    /** {@inheritDoc} */
+    @Override public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException {
+        this.spiCtx = spiCtx;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void onSpiContextDestroyed() {
+        spiCtx = null;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        registerAddresses(addrs);
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isShared() {
+        return shared;
+    }
+
+    /**
+     * Sets shared flag. If {@code true} then it is expected that IP addresses registered
+     * with IP finder will be seen by IP finders on all other nodes.
+     *
+     * @param shared {@code true} if this IP finder is shared.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setShared(boolean shared) {
+        this.shared = shared;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryIpFinderAdapter.class, this);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void close() {
+        // No-op.
+    }
+
+    /**
+     * @return SPI context.
+     */
+    protected IgniteSpiContext spiContext() {
+        return spiCtx;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java
new file mode 100644
index 0000000..7514d2a
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java
@@ -0,0 +1,361 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder.jdbc;
+
+import org.apache.ignite.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+
+import javax.sql.*;
+import java.net.*;
+import java.sql.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+import static java.sql.Connection.*;
+
+/**
+ * JDBC-based IP finder.
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * <ul>
+ *     <li>Data source (see {@link #setDataSource(DataSource)}).</li>
+ * </ul>
+ * <h2 class="header">Optional</h2>
+ * The following configuration parameters are optional:
+ * <ul>
+ *     <li>Flag indicating whether DB schema should be initialized by GridGain (default behaviour) or
+ *         was explicitly created by user (see {@link #setInitSchema(boolean)})</li>
+ * </ul>
+ * <p>
+ * The database will contain 1 table which will hold IP addresses.
+ */
+public class TcpDiscoveryJdbcIpFinder extends TcpDiscoveryIpFinderAdapter {
+    /** Query to get addresses. */
+    public static final String GET_ADDRS_QRY = "select hostname, port from tbl_addrs";
+
+    /** Query to register address. */
+    public static final String REG_ADDR_QRY = "insert into tbl_addrs values (?, ?)";
+
+    /** Query to unregister address. */
+    public static final String UNREG_ADDR_QRY = "delete from tbl_addrs where hostname = ? and port = ?";
+
+    /** Query to create addresses table. */
+    public static final String CREATE_ADDRS_TABLE_QRY =
+        "create table if not exists tbl_addrs (" +
+        "hostname VARCHAR(1024), " +
+        "port INT)";
+
+    /** Query to check database validity. */
+    public static final String CHK_QRY = "select count(*) from tbl_addrs";
+
+    /** Grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Data source. */
+    private DataSource dataSrc;
+
+    /** Flag for schema initialization. */
+    private boolean initSchema = true;
+
+    /** Init guard. */
+    @GridToStringExclude
+    private final AtomicBoolean initGuard = new AtomicBoolean();
+
+    /** Init latch. */
+    @GridToStringExclude
+    private final CountDownLatch initLatch = new CountDownLatch(1);
+
+    /**
+     * Constructor.
+     */
+    public TcpDiscoveryJdbcIpFinder() {
+        setShared(true);
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
+        init();
+
+        Connection conn = null;
+
+        PreparedStatement stmt = null;
+
+        ResultSet rs = null;
+
+        try {
+            conn = dataSrc.getConnection();
+
+            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
+
+            stmt = conn.prepareStatement(GET_ADDRS_QRY);
+
+            rs = stmt.executeQuery();
+
+            Collection<InetSocketAddress> addrs = new LinkedList<>();
+
+            while (rs.next())
+                addrs.add(new InetSocketAddress(rs.getString(1), rs.getInt(2)));
+
+            return addrs;
+        }
+        catch (SQLException e) {
+            throw new IgniteSpiException("Failed to get registered addresses version.", e);
+        }
+        finally {
+            U.closeQuiet(rs);
+            U.closeQuiet(stmt);
+            U.closeQuiet(conn);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        assert !F.isEmpty(addrs);
+
+        init();
+
+        Connection conn = null;
+
+        PreparedStatement stmtUnreg = null;
+
+        PreparedStatement stmtReg = null;
+
+        boolean committed = false;
+
+        try {
+            conn = dataSrc.getConnection();
+
+            conn.setAutoCommit(false);
+
+            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
+
+            stmtUnreg = conn.prepareStatement(UNREG_ADDR_QRY);
+            stmtReg = conn.prepareStatement(REG_ADDR_QRY);
+
+            for (InetSocketAddress addr : addrs) {
+                stmtUnreg.setString(1, addr.getAddress().getHostAddress());
+                stmtUnreg.setInt(2, addr.getPort());
+
+                stmtUnreg.addBatch();
+
+                stmtReg.setString(1, addr.getAddress().getHostAddress());
+                stmtReg.setInt(2, addr.getPort());
+
+                stmtReg.addBatch();
+            }
+
+            stmtUnreg.executeBatch();
+            stmtUnreg.close();
+
+            stmtReg.executeBatch();
+            stmtReg.close();
+
+            conn.commit();
+
+            committed = true;
+        }
+        catch (SQLException e) {
+            U.rollbackConnectionQuiet(conn);
+
+            throw new IgniteSpiException("Failed to register addresses: " + addrs, e);
+        }
+        finally {
+            if (!committed)
+                U.rollbackConnectionQuiet(conn);
+
+            U.closeQuiet(stmtUnreg);
+            U.closeQuiet(stmtReg);
+            U.closeQuiet(conn);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        assert !F.isEmpty(addrs);
+
+        init();
+
+        Connection conn = null;
+
+        PreparedStatement stmt = null;
+
+        boolean committed = false;
+
+        try {
+            conn = dataSrc.getConnection();
+
+            conn.setAutoCommit(false);
+
+            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
+
+            stmt = conn.prepareStatement(UNREG_ADDR_QRY);
+
+            for (InetSocketAddress addr : addrs) {
+                stmt.setString(1, addr.getAddress().getHostAddress());
+                stmt.setInt(2, addr.getPort());
+
+                stmt.addBatch();
+            }
+
+            stmt.executeBatch();
+            conn.commit();
+
+            committed = true;
+        }
+        catch (SQLException e) {
+            U.rollbackConnectionQuiet(conn);
+
+            throw new IgniteSpiException("Failed to unregister addresses: " + addrs, e);
+        }
+        finally {
+            if (!committed)
+                U.rollbackConnectionQuiet(conn);
+
+            U.closeQuiet(stmt);
+            U.closeQuiet(conn);
+        }
+    }
+
+    /**
+     * Sets data source.
+     * <p>
+     * Data source should be fully configured and ready-to-use.
+     *
+     * @param dataSrc Data source.
+     */
+    @IgniteSpiConfiguration(optional = false)
+    public void setDataSource(DataSource dataSrc) {
+        this.dataSrc = dataSrc;
+    }
+
+    /**
+     * Flag indicating whether DB schema should be initialized by GridGain (default behaviour) or
+     * was explicitly created by user.
+     *
+     * @param initSchema {@code True} if DB schema should be initialized by GridGain (default behaviour),
+     *      {code @false} if schema was explicitly created by user.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setInitSchema(boolean initSchema) {
+        this.initSchema = initSchema;
+    }
+
+    /**
+     * Checks configuration validity.
+     *
+     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
+     */
+    private void init() throws IgniteSpiException {
+        if (initGuard.compareAndSet(false, true)) {
+            if (dataSrc == null)
+                throw new IgniteSpiException("Data source is null (you must configure it via setDataSource(..)" +
+                    " configuration property)");
+
+            if (!initSchema) {
+                initLatch.countDown();
+
+                checkSchema();
+
+                return;
+            }
+
+            Connection conn = null;
+
+            Statement stmt = null;
+
+            boolean committed = false;
+
+            try {
+                conn = dataSrc.getConnection();
+
+                conn.setAutoCommit(false);
+
+                conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
+
+                // Create tbl_addrs.
+                stmt = conn.createStatement();
+
+                stmt.executeUpdate(CREATE_ADDRS_TABLE_QRY);
+
+                conn.commit();
+
+                committed = true;
+
+                if (log.isDebugEnabled())
+                    log.debug("DB schema has been initialized.");
+            }
+            catch (SQLException e) {
+                U.rollbackConnectionQuiet(conn);
+
+                throw new IgniteSpiException("Failed to initialize DB schema.", e);
+            }
+            finally {
+                if (!committed)
+                    U.rollbackConnectionQuiet(conn);
+
+                U.closeQuiet(stmt);
+                U.closeQuiet(conn);
+
+                initLatch.countDown();
+            }
+        }
+        else
+            checkSchema();
+    }
+
+    /**
+     * Checks correctness of existing DB schema.
+     *
+     * @throws org.apache.ignite.spi.IgniteSpiException If schema wasn't properly initialized.
+     */
+    private void checkSchema() throws IgniteSpiException {
+        try {
+            U.await(initLatch);
+        }
+        catch (GridInterruptedException e) {
+            throw new IgniteSpiException("Thread has been interrupted.", e);
+        }
+
+        Connection conn = null;
+
+        Statement stmt = null;
+
+        try {
+            conn = dataSrc.getConnection();
+
+            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
+
+            // Check if tbl_addrs exists and database initialized properly.
+            stmt = conn.createStatement();
+
+            stmt.execute(CHK_QRY);
+        }
+        catch (SQLException e) {
+            throw new IgniteSpiException("IP finder has not been properly initialized.", e);
+        }
+        finally {
+            U.closeQuiet(stmt);
+            U.closeQuiet(conn);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryJdbcIpFinder.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/package.html b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/package.html
new file mode 100644
index 0000000..dfe23f6
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/jdbc/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains JDBC IP finder implementation.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
new file mode 100644
index 0000000..2e181b5
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
@@ -0,0 +1,752 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder.multicast;
+
+import org.apache.ignite.*;
+import org.apache.ignite.marshaller.*;
+import org.apache.ignite.marshaller.jdk.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import static org.apache.ignite.IgniteSystemProperties.*;
+import static org.apache.ignite.spi.IgnitePortProtocol.*;
+
+/**
+ * Multicast-based IP finder.
+ * <p>
+ * When TCP discovery starts this finder sends multicast request and waits
+ * for some time when others nodes reply to this request with messages containing
+ * their addresses (time IP finder waits for response and number of attempts to
+ * re-send multicast request in case if no replies are received can be configured,
+ * see {@link #setResponseWaitTime(int)} and {@link #setAddressRequestAttempts(int)}).
+ * <p>
+ * In addition to address received via multicast this finder can work with pre-configured
+ * list of addresses specified via {@link #setAddresses(Collection)} method.
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * There are no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * <ul>
+ *      <li>Multicast IP address (see {@link #setMulticastGroup(String)}).</li>
+ *      <li>Multicast port number (see {@link #setMulticastPort(int)}).</li>
+ *      <li>Address response wait time (see {@link #setResponseWaitTime(int)}).</li>
+ *      <li>Address request attempts (see {@link #setAddressRequestAttempts(int)}).</li>
+ *      <li>Pre-configured addresses (see {@link #setAddresses(Collection)})</li>
+ *      <li>Local address (see {@link #setLocalAddress(String)})</li>
+ * </ul>
+ */
+public class TcpDiscoveryMulticastIpFinder extends TcpDiscoveryVmIpFinder {
+    /** Default multicast IP address (value is {@code 228.1.2.4}). */
+    public static final String DFLT_MCAST_GROUP = "228.1.2.4";
+
+    /** Default multicast port number (value is {@code 47400}). */
+    public static final int DFLT_MCAST_PORT = 47400;
+
+    /** Default time IP finder waits for reply to multicast address request (value is {@code 500}). */
+    public static final int DFLT_RES_WAIT_TIME = 500;
+
+    /** Default number of attempts to send multicast address request (value is {@code 2}). */
+    public static final int DFLT_ADDR_REQ_ATTEMPTS = 2;
+
+    /** Address request message data. */
+    private static final byte[] MSG_ADDR_REQ_DATA = U.GG_HEADER;
+
+    /** */
+    private static final IgniteMarshaller marsh = new IgniteJdkMarshaller();
+
+    /** Grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Grid name. */
+    @IgniteNameResource
+    @GridToStringExclude
+    private String gridName;
+
+    /** Multicast IP address as string. */
+    private String mcastGrp = DFLT_MCAST_GROUP;
+
+    /** Multicast port number. */
+    private int mcastPort = DFLT_MCAST_PORT;
+
+    /** Time IP finder waits for reply to multicast address request. */
+    private int resWaitTime = DFLT_RES_WAIT_TIME;
+
+    /** Number of attempts to send multicast address request. */
+    private int addrReqAttempts = DFLT_ADDR_REQ_ATTEMPTS;
+
+    /** Local address */
+    private String locAddr;
+
+    /** */
+    @GridToStringExclude
+    private Collection<AddressSender> addrSnds;
+
+    /**
+     * Constructs new IP finder.
+     */
+    public TcpDiscoveryMulticastIpFinder() {
+        setShared(true);
+    }
+
+    /**
+     * Sets IP address of multicast group.
+     * <p>
+     * If not provided, default value is {@link #DFLT_MCAST_GROUP}.
+     *
+     * @param mcastGrp Multicast IP address.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setMulticastGroup(String mcastGrp) {
+        this.mcastGrp = mcastGrp;
+    }
+
+    /**
+     * Gets IP address of multicast group.
+     *
+     * @return Multicast IP address.
+     */
+    public String getMulticastGroup() {
+        return mcastGrp;
+    }
+
+    /**
+     * Sets port number which multicast messages are sent to.
+     * <p>
+     * If not provided, default value is {@link #DFLT_MCAST_PORT}.
+     *
+     * @param mcastPort Multicast port number.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setMulticastPort(int mcastPort) {
+        this.mcastPort = mcastPort;
+    }
+
+    /**
+     * Gets port number which multicast messages are sent to.
+     *
+     * @return Port number.
+     */
+    public int getMulticastPort() {
+        return mcastPort;
+    }
+
+    /**
+     * Sets time in milliseconds IP finder waits for reply to
+     * multicast address request.
+     * <p>
+     * If not provided, default value is {@link #DFLT_RES_WAIT_TIME}.
+     *
+     * @param resWaitTime Time IP finder waits for reply to multicast address request.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setResponseWaitTime(int resWaitTime) {
+        this.resWaitTime = resWaitTime;
+    }
+
+    /**
+     * Gets time in milliseconds IP finder waits for reply to
+     * multicast address request.
+     *
+     * @return Time IP finder waits for reply to multicast address request.
+     */
+    public int getResponseWaitTime() {
+        return resWaitTime;
+    }
+
+    /**
+     * Sets number of attempts to send multicast address request. IP finder re-sends
+     * request only in case if no reply for previous request is received.
+     * <p>
+     * If not provided, default value is {@link #DFLT_ADDR_REQ_ATTEMPTS}.
+     *
+     * @param addrReqAttempts Number of attempts to send multicast address request.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setAddressRequestAttempts(int addrReqAttempts) {
+        this.addrReqAttempts = addrReqAttempts;
+    }
+
+    /**
+     * Gets number of attempts to send multicast address request. IP finder re-sends
+     * request only in case if no reply for previous request is received.
+     *
+     * @return Number of attempts to send multicast address request.
+     */
+    public int getAddressRequestAttempts() {
+        return addrReqAttempts;
+    }
+
+    /**
+     * Sets local host address used by this IP finder. If provided address is non-loopback then multicast
+     * socket is bound to this interface. If local address is not set or is any local address then IP finder
+     * creates multicast sockets for all found non-loopback addresses.
+     * <p>
+     * If not provided then this property is initialized by the local address set in {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}
+     * configuration.
+     *
+     * @param locAddr Local host address.
+     * @see org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi#setLocalAddress(String)
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setLocalAddress(String locAddr) {
+        this.locAddr = locAddr;
+    }
+
+    /**
+     * Gets local address that multicast IP finder uses.
+     *
+     * @return Local address.
+     */
+    public String getLocalAddress() {
+        return locAddr;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        // If GRIDGAIN_OVERRIDE_MCAST_GRP system property is set, use its value to override multicast group from
+        // configuration. Used for testing purposes.
+        String overrideMcastGrp = System.getProperty(GG_OVERRIDE_MCAST_GRP);
+
+        if (overrideMcastGrp != null)
+            mcastGrp = overrideMcastGrp;
+
+        if (F.isEmpty(mcastGrp))
+            throw new IgniteSpiException("Multicast IP address is not specified.");
+
+        if (mcastPort < 0 || mcastPort > 65535)
+            throw new IgniteSpiException("Invalid multicast port: " + mcastPort);
+
+        if (resWaitTime <= 0)
+            throw new IgniteSpiException("Invalid wait time, value greater than zero is expected: " + resWaitTime);
+
+        if (addrReqAttempts <= 0)
+            throw new IgniteSpiException("Invalid number of address request attempts, " +
+                "value greater than zero is expected: " + addrReqAttempts);
+
+        if (F.isEmpty(getRegisteredAddresses()))
+            U.warn(log, "GridTcpDiscoveryMulticastIpFinder has no pre-configured addresses " +
+                "(it is recommended in production to specify at least one address in " +
+                "GridTcpDiscoveryMulticastIpFinder.getAddresses() configuration property)");
+
+        InetAddress mcastAddr;
+
+        try {
+            mcastAddr = InetAddress.getByName(mcastGrp);
+        }
+        catch (UnknownHostException e) {
+            throw new IgniteSpiException("Unknown multicast group: " + mcastGrp, e);
+        }
+
+        if (!mcastAddr.isMulticastAddress())
+            throw new IgniteSpiException("Invalid multicast group address: " + mcastAddr);
+
+        Collection<String> locAddrs;
+
+        try {
+            locAddrs = U.resolveLocalAddresses(U.resolveLocalHost(locAddr)).get1();
+        }
+        catch (IOException | GridException e) {
+            throw new IgniteSpiException("Failed to resolve local addresses [locAddr=" + locAddr + ']', e);
+        }
+
+        assert locAddrs != null;
+
+        addrSnds = new ArrayList<>(locAddrs.size());
+
+        Collection<InetAddress> reqItfs = new ArrayList<>(locAddrs.size()); // Interfaces used to send requests.
+
+        for (String locAddr : locAddrs) {
+            InetAddress addr;
+
+            try {
+                addr = InetAddress.getByName(locAddr);
+            }
+            catch (UnknownHostException e) {
+                if (log.isDebugEnabled())
+                    log.debug("Failed to resolve local address [locAddr=" + locAddr + ", err=" + e + ']');
+
+                continue;
+            }
+
+            if (!addr.isLoopbackAddress()) {
+                try {
+                    addrSnds.add(new AddressSender(mcastAddr, addr, addrs));
+
+                    reqItfs.add(addr);
+                }
+                catch (IOException e) {
+                    if (log.isDebugEnabled())
+                        log.debug("Failed to create multicast socket [mcastAddr=" + mcastAddr +
+                            ", mcastGrp=" + mcastGrp + ", mcastPort=" + mcastPort + ", locAddr=" + addr +
+                            ", err=" + e + ']');
+                }
+            }
+        }
+
+        if (addrSnds.isEmpty()) {
+            try {
+                // Create non-bound socket if local host is loopback or failed to create sockets explicitly
+                // bound to interfaces.
+                addrSnds.add(new AddressSender(mcastAddr, null, addrs));
+            }
+            catch (IOException e) {
+                throw new IgniteSpiException("Failed to create multicast socket [mcastAddr=" + mcastAddr +
+                    ", mcastGrp=" + mcastGrp + ", mcastPort=" + mcastPort + ']', e);
+            }
+        }
+
+        for (AddressSender addrSnd :addrSnds)
+            addrSnd.start();
+
+        Collection<InetSocketAddress> ret;
+
+        if (reqItfs.size() > 1) {
+            ret = new HashSet<>();
+
+            Collection<AddressReceiver> rcvrs = new ArrayList<>();
+
+            for (InetAddress itf : reqItfs) {
+                AddressReceiver rcvr = new AddressReceiver(mcastAddr, itf);
+
+                rcvr.start();
+
+                rcvrs.add(rcvr);
+            }
+
+            for (AddressReceiver rcvr : rcvrs) {
+                try {
+                    rcvr.join();
+
+                    ret.addAll(rcvr.addresses());
+                }
+                catch (InterruptedException ignore) {
+                    U.warn(log, "Got interrupted while receiving address request.");
+
+                    Thread.currentThread().interrupt();
+
+                    break;
+                }
+            }
+        }
+        else
+            ret = requestAddresses(mcastAddr, F.first(reqItfs));
+
+        if (!ret.isEmpty())
+            registerAddresses(ret);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException {
+        super.onSpiContextInitialized(spiCtx);
+
+        spiCtx.registerPort(mcastPort, UDP);
+    }
+
+    /**
+     * Sends multicast address request message and waits for reply. Response wait time and number
+     * of request attempts are configured as properties {@link #setResponseWaitTime} and
+     * {@link #setAddressRequestAttempts}.
+     *
+     * @param mcastAddr Multicast address where to send request.
+     * @param sockItf Optional interface multicast socket should be bound to.
+     * @return Collection of received addresses.
+     */
+    private Collection<InetSocketAddress> requestAddresses(InetAddress mcastAddr, @Nullable InetAddress sockItf) {
+        Collection<InetSocketAddress> rmtAddrs = new HashSet<>();
+
+        try {
+            DatagramPacket reqPckt = new DatagramPacket(MSG_ADDR_REQ_DATA, MSG_ADDR_REQ_DATA.length,
+                mcastAddr, mcastPort);
+
+            byte[] resData = new byte[AddressResponse.MAX_DATA_LENGTH];
+
+            DatagramPacket resPckt = new DatagramPacket(resData, resData.length);
+
+            boolean sndError = false;
+
+            for (int i = 0; i < addrReqAttempts; i++) {
+                MulticastSocket sock = null;
+
+                try {
+                    sock = new MulticastSocket(0);
+
+                    // Use 'false' to enable support for more than one node on the same machine.
+                    sock.setLoopbackMode(false);
+
+                    if (sockItf != null)
+                        sock.setInterface(sockItf);
+
+                    sock.setSoTimeout(resWaitTime);
+
+                    reqPckt.setData(MSG_ADDR_REQ_DATA);
+
+                    try {
+                        sock.send(reqPckt);
+                    }
+                    catch (IOException e) {
+                        if (!handleNetworkError(e))
+                            break;
+
+                        if (i < addrReqAttempts - 1) {
+                            if (log.isDebugEnabled())
+                                log.debug("Failed to send multicast address request (will retry in 500 ms): " + e);
+
+                            U.sleep(500);
+                        }
+                        else {
+                            if (log.isDebugEnabled())
+                                log.debug("Failed to send multicast address request: " + e);
+                        }
+
+                        sndError = true;
+
+                        continue;
+                    }
+
+                    long rcvEnd = U.currentTimeMillis() + resWaitTime;
+
+                    try {
+                        while (U.currentTimeMillis() < rcvEnd) { // Try to receive multiple responses.
+                            sock.receive(resPckt);
+
+                            byte[] data = resPckt.getData();
+
+                            if (!U.bytesEqual(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length)) {
+                                U.error(log, "Failed to verify message header.");
+
+                                continue;
+                            }
+
+                            AddressResponse addrRes;
+
+                            try {
+                                addrRes = new AddressResponse(data);
+                            }
+                            catch (GridException e) {
+                                LT.warn(log, e, "Failed to deserialize multicast response.");
+
+                                continue;
+                            }
+
+                            rmtAddrs.addAll(addrRes.addresses());
+                        }
+                    }
+                    catch (SocketTimeoutException ignored) {
+                        if (log.isDebugEnabled()) // DatagramSocket.receive timeout has expired.
+                            log.debug("Address receive timeout.");
+                    }
+                }
+                catch (IOException e) {
+                    U.error(log, "Failed to request nodes addresses.", e);
+                }
+                finally {
+                    U.close(sock);
+                }
+
+                if (!rmtAddrs.isEmpty())
+                    break;
+
+                if (i < addrReqAttempts - 1) // Wait some time before re-sending address request.
+                    U.sleep(200);
+            }
+
+            if (log.isDebugEnabled())
+                log.debug("Received nodes addresses: " + rmtAddrs);
+
+            if (rmtAddrs.isEmpty() && sndError)
+                U.quietAndWarn(log, "Failed to send multicast message (is multicast enabled on this node?).");
+
+            return rmtAddrs;
+        }
+        catch (GridInterruptedException ignored) {
+            U.warn(log, "Got interrupted while sending address request.");
+
+            Thread.currentThread().interrupt();
+
+            return rmtAddrs;
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void close() {
+        for (AddressSender addrSnd : addrSnds)
+            U.interrupt(addrSnd);
+
+        for (AddressSender addrSnd : addrSnds)
+            U.join(addrSnd, log);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryMulticastIpFinder.class, this, "super", super.toString());
+    }
+
+    /**
+     * @param e Network error to handle.
+     * @return {@code True} if this error is recoverable and the operation can be retried.
+     */
+    private boolean handleNetworkError(IOException e) {
+        if ("Network is unreachable".equals(e.getMessage()) && U.isMacOs()) {
+            U.warn(log, "Multicast does not work on Mac OS JVM loopback address (configure external IP address " +
+                "for 'localHost' configuration property)");
+
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Response to multicast address request.
+     */
+    private static class AddressResponse {
+        /** Maximum supported multicast message. */
+        public static final int MAX_DATA_LENGTH = 64 * 1024;
+
+        /** */
+        private byte[] data;
+
+        /** */
+        private Collection<InetSocketAddress> addrs;
+
+        /**
+         * @param addrs Addresses discovery SPI binds to.
+         * @throws GridException If marshalling failed.
+         */
+        private AddressResponse(Collection<InetSocketAddress> addrs) throws GridException {
+            this.addrs = addrs;
+
+            byte[] addrsData = marsh.marshal(addrs);
+            data = new byte[U.GG_HEADER.length + addrsData.length];
+
+            if (data.length > MAX_DATA_LENGTH)
+                throw new GridException("Too long data packet [size=" + data.length + ", max=" + MAX_DATA_LENGTH + "]");
+
+            System.arraycopy(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length);
+            System.arraycopy(addrsData, 0, data, 4, addrsData.length);
+        }
+
+        /**
+         * @param data Message data.
+         * @throws GridException If unmarshalling failed.
+         */
+        private AddressResponse(byte[] data) throws GridException {
+            assert U.bytesEqual(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length);
+
+            this.data = data;
+
+            addrs = marsh.unmarshal(Arrays.copyOfRange(data, U.GG_HEADER.length, data.length), null);
+        }
+
+        /**
+         * @return Message data.
+         */
+        byte[] data() {
+            return data;
+        }
+
+        /**
+         * @return IP address discovery SPI binds to.
+         */
+        public Collection<InetSocketAddress> addresses() {
+            return addrs;
+        }
+    }
+
+    /**
+     * Thread sends multicast address request message and waits for reply.
+     */
+    private class AddressReceiver extends IgniteSpiThread {
+        /** */
+        private final InetAddress mcastAddr;
+
+        /** */
+        private final InetAddress sockAddr;
+
+        /** */
+        private Collection<InetSocketAddress> addrs;
+
+        /**
+         * @param mcastAddr Multicast address where to send request.
+         * @param sockAddr Optional address multicast socket should be bound to.
+         */
+        private AddressReceiver(InetAddress mcastAddr, InetAddress sockAddr) {
+            super(gridName, "tcp-disco-multicast-addr-rcvr", log);
+            this.mcastAddr = mcastAddr;
+            this.sockAddr = sockAddr;
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void body() throws InterruptedException {
+            addrs = requestAddresses(mcastAddr, sockAddr);
+        }
+
+        /**
+         * @return Received addresses.
+         */
+        Collection<InetSocketAddress> addresses() {
+            return addrs;
+        }
+    }
+
+    /**
+     * Thread listening for multicast address requests and sending response
+     * containing socket address this node's discovery SPI listens to.
+     */
+    private class AddressSender extends IgniteSpiThread {
+        /** */
+        @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
+        private MulticastSocket sock;
+
+        /** */
+        private final InetAddress mcastGrp;
+
+        /** */
+        private final Collection<InetSocketAddress> addrs;
+
+        /** */
+        private final InetAddress sockItf;
+
+        /**
+         * @param mcastGrp Multicast address.
+         * @param sockItf Optional interface multicast socket should be bound to.
+         * @param addrs Local node addresses.
+         * @throws IOException If fails to create multicast socket.
+         */
+        private AddressSender(InetAddress mcastGrp, @Nullable InetAddress sockItf, Collection<InetSocketAddress> addrs)
+            throws IOException {
+            super(gridName, "tcp-disco-multicast-addr-sender", log);
+            this.mcastGrp = mcastGrp;
+            this.addrs = addrs;
+            this.sockItf = sockItf;
+
+            sock = createSocket();
+        }
+
+        /**
+         * Creates multicast socket and joins multicast group.
+         *
+         * @throws IOException If fails to create socket or join multicast group.
+         * @return Multicast socket.
+         */
+        private MulticastSocket createSocket() throws IOException {
+            MulticastSocket sock = new MulticastSocket(mcastPort);
+
+            sock.setLoopbackMode(false); // Use 'false' to enable support for more than one node on the same machine.
+
+            if (sockItf != null)
+                sock.setInterface(sockItf);
+
+            if (sock.getLoopbackMode())
+                U.warn(log, "Loopback mode is disabled which prevents nodes on the same machine from discovering " +
+                    "each other.");
+
+            sock.joinGroup(mcastGrp);
+
+            return sock;
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void body() throws InterruptedException {
+            AddressResponse res;
+
+            try {
+                res = new AddressResponse(addrs);
+            }
+            catch (GridException e) {
+                U.error(log, "Failed to prepare multicast message.", e);
+
+                return;
+            }
+
+            byte[] reqData = new byte[MSG_ADDR_REQ_DATA.length];
+
+            DatagramPacket pckt = new DatagramPacket(reqData, reqData.length);
+
+            while (!isInterrupted()) {
+                try {
+                    MulticastSocket sock;
+
+                    synchronized (this) {
+                        if (isInterrupted())
+                            return;
+
+                        sock = this.sock;
+
+                        if (sock == null)
+                            sock = createSocket();
+                    }
+
+                    sock.receive(pckt);
+
+                    if (!U.bytesEqual(U.GG_HEADER, 0, reqData, 0, U.GG_HEADER.length)) {
+                        U.error(log, "Failed to verify message header.");
+
+                        continue;
+                    }
+
+                    try {
+                        sock.send(new DatagramPacket(res.data(), res.data().length, pckt.getAddress(), pckt.getPort()));
+                    }
+                    catch (IOException e) {
+                        if (e.getMessage().contains("Operation not permitted")) {
+                            if (log.isDebugEnabled())
+                                log.debug("Got 'operation not permitted' error, ignoring: " + e);
+                        }
+                        else
+                            throw e;
+                    }
+                }
+                catch (IOException e) {
+                    if (!isInterrupted()) {
+                        U.error(log, "Failed to send/receive address message (will try to reconnect).", e);
+
+                        synchronized (this) {
+                            U.close(sock);
+
+                            sock = null;
+                        }
+                    }
+                }
+            }
+        }
+
+        /** {@inheritDoc} */
+        @Override public void interrupt() {
+            super.interrupt();
+
+            synchronized (this) {
+                U.close(sock);
+
+                sock = null;
+            }
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void cleanup() {
+            synchronized (this) {
+                U.close(sock);
+
+                sock = null;
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/package.html b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/package.html
new file mode 100644
index 0000000..c3ced9e
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains multicast-based IP finder.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/package.html b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/package.html
new file mode 100644
index 0000000..0a05db1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains IP finder interface and adapter.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java
new file mode 100644
index 0000000..d47f9ac
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java
@@ -0,0 +1,258 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder.sharedfs;
+
+import org.apache.ignite.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+/**
+ * Shared filesystem-based IP finder.
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * There are no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * <ul>
+ *      <li>Path (see {@link #setPath(String)})</li>
+ *      <li>Shared flag (see {@link #setShared(boolean)})</li>
+ * </ul>
+ * <p>
+ * If {@link #getPath()} is not provided, then {@link #DFLT_PATH} will be used and
+ * only local nodes will discover each other. To enable discovery over network
+ * you must provide a path to a shared directory explicitly.
+ * <p>
+ * The directory will contain empty files named like the following 192.168.1.136#1001.
+ * <p>
+ * Note that this finder is shared by default (see {@link org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()}.
+ */
+public class TcpDiscoverySharedFsIpFinder extends TcpDiscoveryIpFinderAdapter {
+    /**
+     * Default path for discovering of local nodes (testing only). Note that this path is relative to
+     * {@code GRIDGAIN_HOME/work} folder if {@code GRIDGAIN_HOME} system or environment variable specified,
+     * otherwise it is relative to {@code work} folder under system {@code java.io.tmpdir} folder.
+     *
+     * @see org.apache.ignite.configuration.IgniteConfiguration#getWorkDirectory()
+     */
+    public static final String DFLT_PATH = "disco/tcp";
+
+    /** Delimiter to use between address and port tokens in file names. */
+    public static final String DELIM = "#";
+
+    /** Grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** File-system path. */
+    private String path = DFLT_PATH;
+
+    /** Folder to keep items in. */
+    @GridToStringExclude
+    private File folder;
+
+    /** Warning guard. */
+    @GridToStringExclude
+    private final AtomicBoolean warnGuard = new AtomicBoolean();
+
+    /** Init guard. */
+    @GridToStringExclude
+    private final AtomicBoolean initGuard = new AtomicBoolean();
+
+    /** Init latch. */
+    @GridToStringExclude
+    private final CountDownLatch initLatch = new CountDownLatch(1);
+
+    /**
+     * Constructor.
+     */
+    public TcpDiscoverySharedFsIpFinder() {
+        setShared(true);
+    }
+
+    /**
+     * Gets path.
+     *
+     * @return Shared path.
+     */
+    public String getPath() {
+        return path;
+    }
+
+    /**
+     * Sets path.
+     *
+     * @param path Shared path.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    /**
+     * Initializes folder to work with.
+     *
+     * @return Folder.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    private File initFolder() throws IgniteSpiException {
+        if (initGuard.compareAndSet(false, true)) {
+            if (path == null)
+                throw new IgniteSpiException("Shared file system path is null " +
+                    "(it should be configured via setPath(..) configuration property).");
+
+            if (path.equals(DFLT_PATH) && warnGuard.compareAndSet(false, true))
+                U.warn(log, "Default local computer-only share is used by IP finder.");
+
+            try {
+                File tmp;
+
+                if (new File(path).exists())
+                    tmp = new File(path);
+                else {
+                    try {
+                        tmp = U.resolveWorkDirectory(path, false);
+                    }
+                    catch (GridException e) {
+                        throw new IgniteSpiException("Failed to resolve directory [path=" + path +
+                            ", exception=" + e.getMessage() + ']');
+                    }
+                }
+
+                if (!tmp.isDirectory())
+                    throw new IgniteSpiException("Failed to initialize shared file system path " +
+                        "(path must point to folder): " + path);
+
+                if (!tmp.canRead() || !tmp.canWrite())
+                    throw new IgniteSpiException("Failed to initialize shared file system path " +
+                        "(path must be readable and writable): " + path);
+
+                folder = tmp;
+            }
+            finally {
+                initLatch.countDown();
+            }
+        }
+        else {
+            try {
+                U.await(initLatch);
+            }
+            catch (GridInterruptedException e) {
+                throw new IgniteSpiException("Thread has been interrupted.", e);
+            }
+
+            if (folder == null)
+                throw new IgniteSpiException("Failed to initialize shared file system folder (check logs for errors).");
+        }
+
+        return folder;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
+        initFolder();
+
+        Collection<InetSocketAddress> addrs = new LinkedList<>();
+
+        for (String fileName : folder.list())
+            if (!".svn".equals(fileName)) {
+                InetSocketAddress addr = null;
+
+                StringTokenizer st = new StringTokenizer(fileName, DELIM);
+
+                if (st.countTokens() == 2) {
+                    String addrStr = st.nextToken();
+                    String portStr = st.nextToken();
+
+                    try {
+                        int port = Integer.parseInt(portStr);
+
+                        addr = new InetSocketAddress(addrStr, port);
+                    }
+                    catch (IllegalArgumentException e) {
+                        U.error(log, "Failed to parse file entry: " + fileName, e);
+                    }
+                }
+
+                if (addr != null)
+                    addrs.add(addr);
+            }
+
+        return Collections.unmodifiableCollection(addrs);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        assert !F.isEmpty(addrs);
+
+        initFolder();
+
+        try {
+            for (InetSocketAddress addr : addrs) {
+                File file = new File(folder, name(addr));
+
+                file.createNewFile();
+            }
+        }
+        catch (IOException e) {
+            throw new IgniteSpiException("Failed to create file.", e);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        assert !F.isEmpty(addrs);
+
+        initFolder();
+
+        try {
+            for (InetSocketAddress addr : addrs) {
+                File file = new File(folder, name(addr));
+
+                file.delete();
+            }
+        }
+        catch (SecurityException e) {
+            throw new IgniteSpiException("Failed to delete file.", e);
+        }
+    }
+
+    /**
+     * Creates file name for address.
+     *
+     * @param addr Node address.
+     * @return Name.
+     */
+    private String name(InetSocketAddress addr) {
+        assert addr != null;
+
+        SB sb = new SB();
+
+        sb.a(addr.getAddress().getHostAddress())
+            .a(DELIM)
+            .a(addr.getPort());
+
+        return sb.toString();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoverySharedFsIpFinder.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/package.html b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/package.html
new file mode 100644
index 0000000..e1305a3
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/sharedfs/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains shared filesystem-based IP finder.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
new file mode 100644
index 0000000..a6e9c0a
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
@@ -0,0 +1,255 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp.ipfinder.vm;
+
+import org.apache.ignite.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.net.*;
+import java.util.*;
+
+import static org.apache.ignite.IgniteSystemProperties.*;
+
+/**
+ * IP Finder which works only with pre-configured list of IP addresses specified
+ * via {@link #setAddresses(Collection)} method. By default, this IP finder is
+ * not {@code shared}, which means that all grid nodes have to be configured with the
+ * same list of IP addresses when this IP finder is used.
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * There are no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * <ul>
+ *      <li>Addresses for initialization (see {@link #setAddresses(Collection)})</li>
+ *      <li>Shared flag (see {@link #setShared(boolean)})</li>
+ * </ul>
+ */
+public class TcpDiscoveryVmIpFinder extends TcpDiscoveryIpFinderAdapter {
+    /** Grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Addresses. */
+    @GridToStringInclude
+    private Collection<InetSocketAddress> addrs;
+
+    /**
+     * Initialize from system property.
+     */
+    {
+        String ips = IgniteSystemProperties.getString(GG_TCP_DISCOVERY_ADDRESSES);
+
+        if (!F.isEmpty(ips)) {
+            Collection<InetSocketAddress> addrsList = new LinkedHashSet<>();
+
+            for (String s : ips.split(",")) {
+                if (!F.isEmpty(s)) {
+                    s = s.trim();
+
+                    if (!F.isEmpty(s)) {
+                        try {
+                            addrsList.addAll(address(s));
+                        }
+                        catch (IgniteSpiException e) {
+                            throw new GridRuntimeException(e);
+                        }
+                    }
+                }
+            }
+
+            addrs = addrsList;
+        }
+        else
+            addrs = new LinkedHashSet<>();
+    }
+
+    /**
+     * Constructs new IP finder.
+     */
+    public TcpDiscoveryVmIpFinder() {
+        // No-op.
+    }
+
+    /**
+     * Constructs new IP finder.
+     *
+     * @param shared {@code true} if IP finder is shared.
+     * @see #setShared(boolean)
+     */
+    public TcpDiscoveryVmIpFinder(boolean shared) {
+        setShared(shared);
+    }
+
+    /**
+     * Parses provided values and initializes the internal collection of addresses.
+     * <p>
+     * Addresses may be represented as follows:
+     * <ul>
+     *     <li>IP address (e.g. 127.0.0.1, 9.9.9.9, etc);</li>
+     *     <li>IP address and port (e.g. 127.0.0.1:47500, 9.9.9.9:47501, etc);</li>
+     *     <li>IP address and port range (e.g. 127.0.0.1:47500..47510, 9.9.9.9:47501..47504, etc);</li>
+     *     <li>Hostname (e.g. host1.com, host2, etc);</li>
+     *     <li>Hostname and port (e.g. host1.com:47500, host2:47502, etc).</li>
+     *     <li>Hostname and port range (e.g. host1.com:47500..47510, host2:47502..47508, etc).</li>
+     * </ul>
+     * <p>
+     * If port is 0 or not provided then default port will be used (depends on
+     * discovery SPI configuration).
+     * <p>
+     * If port range is provided (e.g. host:port1..port2) the following should be considered:
+     * <ul>
+     *     <li>{@code port1 < port2} should be {@code true};</li>
+     *     <li>Both {@code port1} and {@code port2} should be greater than {@code 0}.</li>
+     * </ul>
+     *
+     * @param addrs Known nodes addresses.
+     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public synchronized void setAddresses(Collection<String> addrs) throws IgniteSpiException {
+        if (F.isEmpty(addrs))
+            return;
+
+        Collection<InetSocketAddress> newAddrs = new LinkedHashSet<>();
+
+        for (String ipStr : addrs)
+            newAddrs.addAll(address(ipStr));
+
+        this.addrs = newAddrs;
+    }
+
+    /**
+     * Creates address from string.
+     *
+     * @param ipStr Address string.
+     * @return Socket addresses (may contain 1 or more addresses if provided string
+     *      includes port range).
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    private static Collection<InetSocketAddress> address(String ipStr) throws IgniteSpiException {
+        ipStr = ipStr.trim();
+
+        String errMsg = "Failed to parse provided address: " + ipStr;
+
+        int colonCnt = ipStr.length() - ipStr.replace(":", "").length();
+
+        if (colonCnt > 1) {
+            // IPv6 address (literal IPv6 addresses are enclosed in square brackets, for example
+            // https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443).
+            if (ipStr.startsWith("[")) {
+                ipStr = ipStr.substring(1);
+
+                if (ipStr.contains("]:"))
+                    return addresses(ipStr, "\\]\\:", errMsg);
+                else if (ipStr.endsWith("]"))
+                    ipStr = ipStr.substring(0, ipStr.length() - 1);
+                else
+                    throw new IgniteSpiException(errMsg);
+            }
+        }
+        else {
+            // IPv4 address.
+            if (ipStr.endsWith(":"))
+                ipStr = ipStr.substring(0, ipStr.length() - 1);
+            else if (ipStr.indexOf(':') >= 0)
+                return addresses(ipStr, "\\:", errMsg);
+        }
+
+        // Provided address does not contain port (will use default one).
+        return Collections.singleton(new InetSocketAddress(ipStr, 0));
+    }
+
+    /**
+     * Creates address from string with port information.
+     *
+     * @param ipStr Address string
+     * @param regexDelim Port regex delimiter.
+     * @param errMsg Error message.
+     * @return Socket addresses (may contain 1 or more addresses if provided string
+     *      includes port range).
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    private static Collection<InetSocketAddress> addresses(String ipStr, String regexDelim, String errMsg)
+        throws IgniteSpiException {
+        String[] tokens = ipStr.split(regexDelim);
+
+        if (tokens.length == 2) {
+            String addrStr = tokens[0];
+            String portStr = tokens[1];
+
+            if (portStr.contains("..")) {
+                try {
+                    int port1 = Integer.parseInt(portStr.substring(0, portStr.indexOf("..")));
+                    int port2 = Integer.parseInt(portStr.substring(portStr.indexOf("..") + 2, portStr.length()));
+
+                    if (port2 < port1 || port1 == port2 || port1 <= 0 || port2 <= 0)
+                        throw new IgniteSpiException(errMsg);
+
+                    Collection<InetSocketAddress> res = new ArrayList<>(port2 - port1);
+
+                    // Upper bound included.
+                    for (int i = port1; i <= port2; i++)
+                        res.add(new InetSocketAddress(addrStr, i));
+
+                    return res;
+                }
+                catch (IllegalArgumentException e) {
+                    throw new IgniteSpiException(errMsg, e);
+                }
+            }
+            else {
+                try {
+                    int port = Integer.parseInt(portStr);
+
+                    return Collections.singleton(new InetSocketAddress(addrStr, port));
+                }
+                catch (IllegalArgumentException e) {
+                    throw new IgniteSpiException(errMsg, e);
+                }
+            }
+        }
+        else
+            throw new IgniteSpiException(errMsg);
+    }
+
+    /** {@inheritDoc} */
+    @Override public synchronized Collection<InetSocketAddress> getRegisteredAddresses() {
+        return Collections.unmodifiableCollection(addrs);
+    }
+
+    /** {@inheritDoc} */
+    @Override public synchronized void registerAddresses(Collection<InetSocketAddress> addrs) {
+        assert !F.isEmpty(addrs);
+
+        this.addrs = new LinkedHashSet<>(this.addrs);
+
+        this.addrs.addAll(addrs);
+    }
+
+    /** {@inheritDoc} */
+    @Override public synchronized void unregisterAddresses(Collection<InetSocketAddress> addrs) {
+        assert !F.isEmpty(addrs);
+
+        this.addrs = new LinkedHashSet<>(this.addrs);
+
+        this.addrs.removeAll(addrs);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryVmIpFinder.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/package.html b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/package.html
new file mode 100644
index 0000000..7016083
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains local JVM-based IP finder.
+</body>
+</html>


[27/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/load/cache-benchmark.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/cache-benchmark.xml b/modules/core/src/test/config/load/cache-benchmark.xml
index c6608c5..01e0637 100644
--- a/modules/core/src/test/config/load/cache-benchmark.xml
+++ b/modules/core/src/test/config/load/cache-benchmark.xml
@@ -66,9 +66,9 @@
         <property name="includeProperties"><list/></property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/load/cache-client-benchmark.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/cache-client-benchmark.xml b/modules/core/src/test/config/load/cache-client-benchmark.xml
index 668c315..749b065 100644
--- a/modules/core/src/test/config/load/cache-client-benchmark.xml
+++ b/modules/core/src/test/config/load/cache-client-benchmark.xml
@@ -66,9 +66,9 @@
         <property name="includeProperties"><list/></property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/load/dsi-load-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/dsi-load-base.xml b/modules/core/src/test/config/load/dsi-load-base.xml
index 8476ba8..20548b2 100644
--- a/modules/core/src/test/config/load/dsi-load-base.xml
+++ b/modules/core/src/test/config/load/dsi-load-base.xml
@@ -43,10 +43,10 @@
         </property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
                     <bean
-                            class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                            class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/load/merge-sort-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/merge-sort-base.xml b/modules/core/src/test/config/load/merge-sort-base.xml
index 3bb3645..11a3166 100644
--- a/modules/core/src/test/config/load/merge-sort-base.xml
+++ b/modules/core/src/test/config/load/merge-sort-base.xml
@@ -97,7 +97,7 @@
 
         <!-- Discovery SPI configuration. -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="networkTimeout" value="20000"/>
                 <property name="socketTimeout" value="5000"/>
                 <property name="ackTimeout" value="5000"/>
@@ -108,7 +108,7 @@
                 <property name="statisticsPrintFrequency" value="60000"/>
 
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/load/mongo-multinode-foster.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/load/mongo-multinode-foster.xml b/modules/core/src/test/config/load/mongo-multinode-foster.xml
index d8a6587..87f1b29 100644
--- a/modules/core/src/test/config/load/mongo-multinode-foster.xml
+++ b/modules/core/src/test/config/load/mongo-multinode-foster.xml
@@ -131,10 +131,10 @@
             TCP discovery SPI (uses VM-shared IP-finder).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <!-- Override default IP-finder.-->
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>10.1.10.212:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/loaders/grid-cfg-2-grids.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/loaders/grid-cfg-2-grids.xml b/modules/core/src/test/config/loaders/grid-cfg-2-grids.xml
index 7e1f68b..4361ac5 100644
--- a/modules/core/src/test/config/loaders/grid-cfg-2-grids.xml
+++ b/modules/core/src/test/config/loaders/grid-cfg-2-grids.xml
@@ -24,9 +24,9 @@
         <property name="restEnabled" value="false" />
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                         <property name="multicastGroup" value="228.111.111.111"/>
                         <property name="multicastPort" value="54535"/>
                     </bean>
@@ -41,9 +41,9 @@
         <property name="restEnabled" value="false" />
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                         <property name="multicastGroup" value="228.111.111.111"/>
                         <property name="multicastPort" value="54535"/>
                     </bean>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/loaders/grid-cfg.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/loaders/grid-cfg.xml b/modules/core/src/test/config/loaders/grid-cfg.xml
index c414c48..86b5009 100644
--- a/modules/core/src/test/config/loaders/grid-cfg.xml
+++ b/modules/core/src/test/config/loaders/grid-cfg.xml
@@ -24,9 +24,9 @@
         <property name="restEnabled" value="false" />
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                         <property name="multicastGroup" value="228.111.111.222"/>
                         <property name="multicastPort" value="54522"/>
                     </bean>
@@ -41,9 +41,9 @@
         <property name="restEnabled" value="false" />
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                         <property name="multicastGroup" value="228.111.111.222"/>
                         <property name="multicastPort" value="54522"/>
                     </bean>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/spring-cache-load.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-cache-load.xml b/modules/core/src/test/config/spring-cache-load.xml
index 550ef79..78ff871 100644
--- a/modules/core/src/test/config/spring-cache-load.xml
+++ b/modules/core/src/test/config/spring-cache-load.xml
@@ -57,9 +57,9 @@
             (at least one address must be provided).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/spring-cache-put-remove-load.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-cache-put-remove-load.xml b/modules/core/src/test/config/spring-cache-put-remove-load.xml
index 513e300..103f519 100644
--- a/modules/core/src/test/config/spring-cache-put-remove-load.xml
+++ b/modules/core/src/test/config/spring-cache-put-remove-load.xml
@@ -54,9 +54,9 @@
         </property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/spring-cache-swap.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-cache-swap.xml b/modules/core/src/test/config/spring-cache-swap.xml
index 5873e95..3b2bf6f 100644
--- a/modules/core/src/test/config/spring-cache-swap.xml
+++ b/modules/core/src/test/config/spring-cache-swap.xml
@@ -47,9 +47,9 @@
         </property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/spring-cache-teststore.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-cache-teststore.xml b/modules/core/src/test/config/spring-cache-teststore.xml
index bd139e6..a8127b7 100644
--- a/modules/core/src/test/config/spring-cache-teststore.xml
+++ b/modules/core/src/test/config/spring-cache-teststore.xml
@@ -43,9 +43,9 @@
         <property name="networkTimeout" value="10000"/>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/spring-multicache.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-multicache.xml b/modules/core/src/test/config/spring-multicache.xml
index fc3e030..af55077 100644
--- a/modules/core/src/test/config/spring-multicache.xml
+++ b/modules/core/src/test/config/spring-multicache.xml
@@ -255,9 +255,9 @@
             (at least one address must be provided).
         -->
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <!--

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/spring-start-nodes-attr.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-start-nodes-attr.xml b/modules/core/src/test/config/spring-start-nodes-attr.xml
index b7aa38e..e72665c 100644
--- a/modules/core/src/test/config/spring-start-nodes-attr.xml
+++ b/modules/core/src/test/config/spring-start-nodes-attr.xml
@@ -37,9 +37,9 @@
         </property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/spring-start-nodes.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-start-nodes.xml b/modules/core/src/test/config/spring-start-nodes.xml
index e4246cb..d5e31e4 100644
--- a/modules/core/src/test/config/spring-start-nodes.xml
+++ b/modules/core/src/test/config/spring-start-nodes.xml
@@ -31,9 +31,9 @@
         </property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/streamer/spring-streamer-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/streamer/spring-streamer-base.xml b/modules/core/src/test/config/streamer/spring-streamer-base.xml
index b241f8e..ba404e3 100644
--- a/modules/core/src/test/config/streamer/spring-streamer-base.xml
+++ b/modules/core/src/test/config/streamer/spring-streamer-base.xml
@@ -60,7 +60,7 @@
             <constructor-arg value="127.0.0.1"/>
         </bean>
 
-        <bean id="discoSpi" class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+        <bean id="discoSpi" class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="ackTimeout" value="5000"/>
             <property name="socketTimeout" value="5000"/>
             <property name="reconnectCount" value="5"/>
@@ -68,7 +68,7 @@
             <property name="maxMissedHeartbeats" value="3"/>
 
             <property name="ipFinder">
-                <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                     <property name="addresses">
                         <list>
                             <value>127.0.0.1:47500</value>
@@ -82,9 +82,9 @@
         <!-- Empty local host value. -->
         <bean id="localHost" class="java.lang.String"/>
 
-        <bean id="discoSpi" class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+        <bean id="discoSpi" class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
             <property name="ipFinder">
-                <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                     <property name="addresses">
                         <list>
                             <value>10.1.10.210</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/websession/spring-cache-1.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/websession/spring-cache-1.xml b/modules/core/src/test/config/websession/spring-cache-1.xml
index 31b75da..9a3c89b 100644
--- a/modules/core/src/test/config/websession/spring-cache-1.xml
+++ b/modules/core/src/test/config/websession/spring-cache-1.xml
@@ -78,9 +78,9 @@
         </property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/websession/spring-cache-2.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/websession/spring-cache-2.xml b/modules/core/src/test/config/websession/spring-cache-2.xml
index 35f8f41..ff09e40 100644
--- a/modules/core/src/test/config/websession/spring-cache-2.xml
+++ b/modules/core/src/test/config/websession/spring-cache-2.xml
@@ -78,9 +78,9 @@
         </property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/config/websession/spring-cache-3.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/websession/spring-cache-3.xml b/modules/core/src/test/config/websession/spring-cache-3.xml
index bc24f47..3d7fb88 100644
--- a/modules/core/src/test/config/websession/spring-cache-3.xml
+++ b/modules/core/src/test/config/websession/spring-cache-3.xml
@@ -78,9 +78,9 @@
         </property>
 
         <property name="discoverySpi">
-            <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                         <property name="addresses">
                             <list>
                                 <value>127.0.0.1:47500</value>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java
index 0a1797a..dce41dd 100644
--- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridOptimizedMarshallerTest.java
@@ -5,8 +5,8 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.marshaller.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.marshaller.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridTestTcpDiscoveryIpFinderAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridTestTcpDiscoveryIpFinderAdapter.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridTestTcpDiscoveryIpFinderAdapter.java
index 26f0fc7..38fbac7 100644
--- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridTestTcpDiscoveryIpFinderAdapter.java
+++ b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/GridTestTcpDiscoveryIpFinderAdapter.java
@@ -10,7 +10,7 @@
 package org.apache.ignite.marshaller.optimized;
 
 import org.apache.ignite.spi.IgniteSpiException;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAdapter;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAdapter;
 
 import java.net.InetSocketAddress;
 import java.util.Collection;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java
index 4dcdd7e..04ae6c8 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/checkpoint/cache/GridCacheCheckpointSpiSecondCacheSelfTest.java
@@ -11,9 +11,9 @@ package org.apache.ignite.spi.checkpoint.cache;
 
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java
index 1246b40..fa73c02 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiAttributesSelfTest.java
@@ -11,7 +11,7 @@ package org.apache.ignite.spi.collision.jobstealing;
 
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.spi.collision.*;
-import org.gridgain.grid.spi.discovery.*;
+import org.apache.ignite.spi.discovery.*;
 import org.gridgain.grid.spi.failover.jobstealing.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java
index 9d56adc..ff49b08 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiCustomTopologySelfTest.java
@@ -13,7 +13,7 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.collision.*;
-import org.gridgain.grid.spi.discovery.*;
+import org.apache.ignite.spi.discovery.*;
 import org.gridgain.grid.spi.failover.jobstealing.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java
index 443a620..5d7c0f1 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/collision/jobstealing/GridJobStealingCollisionSpiSelfTest.java
@@ -13,7 +13,7 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.collision.*;
-import org.gridgain.grid.spi.discovery.*;
+import org.apache.ignite.spi.discovery.*;
 import org.gridgain.grid.spi.failover.jobstealing.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java
index 936f71b..703c5d8 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java
@@ -20,9 +20,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
 import org.apache.ignite.spi.communication.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java
index 6d753c1..ca76a8a 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java
@@ -20,9 +20,9 @@ import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.processors.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridAbstractDiscoveryRandomStartStopTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridAbstractDiscoveryRandomStartStopTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridAbstractDiscoveryRandomStartStopTest.java
new file mode 100644
index 0000000..47496a5
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridAbstractDiscoveryRandomStartStopTest.java
@@ -0,0 +1,205 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.events.*;
+import org.gridgain.grid.kernal.managers.eventstorage.*;
+import org.gridgain.testframework.junits.spi.*;
+
+import javax.swing.*;
+import java.io.*;
+import java.util.*;
+
+/**
+ * Base discovery random start-stop test class.
+ * @param <T> Discovery spi type.
+ */
+public abstract class GridAbstractDiscoveryRandomStartStopTest<T extends DiscoverySpi> extends GridSpiAbstractTest<T> {
+    /** */
+    private static final int DFLT_MAX_INTERVAL = 10;
+
+    /** */
+    private volatile boolean semaphore = true;
+
+    /** */
+    private boolean isRunning;
+
+    /** */
+    private Pinger pinger;
+
+    /** */
+    private class Pinger extends Thread {
+        /** */
+        private final Object mux = new Object();
+
+        /** */
+        private volatile boolean canceled;
+
+        /** {@inheritDoc} */
+        @SuppressWarnings({"UnusedCatchParameter"})
+        @Override public void run() {
+            while (!canceled) {
+                try {
+                    if (getSpi() != null) {
+                        Collection<ClusterNode> nodes = getSpi().getRemoteNodes();
+
+                        for (ClusterNode item : nodes) {
+                            boolean flag = getSpi().pingNode(item.id());
+
+                            if (flag) {
+                                info("Ping node [nodeId=" + item.id().toString().toUpperCase() +
+                                    ", pingResult=" + flag + ']');
+                            }
+                            else {
+                                info("***Error*** Ping node fail [nodeId=" + item.id().toString().toUpperCase() +
+                                    ", pingResult=" + flag + ']');
+                            }
+                        }
+                    }
+                }
+                catch (Exception e) {
+                    error("Can't get remote nodes list.", e);
+                }
+
+                synchronized (mux) {
+                    if (!canceled) {
+                        try {
+                            mux.wait(2000);
+                        }
+                        catch (InterruptedException e) {
+                            //No-op.
+                        }
+                    }
+                }
+            }
+        }
+
+        /** {@inheritDoc} */
+        @Override public void interrupt() {
+            synchronized (mux) {
+                canceled = true;
+
+                mux.notifyAll();
+            }
+
+            super.interrupt();
+        }
+    }
+
+    /** */
+    private class DiscoveryListener implements GridLocalEventListener {
+        /** {@inheritDoc} */
+        @Override public void onEvent(IgniteEvent evt) {
+            info("Discovery event [event=" + evt + ']');
+        }
+    }
+
+    /** */
+    protected GridAbstractDiscoveryRandomStartStopTest() {
+        super(false);
+    }
+
+    /**
+     * @return Max interval.
+     */
+    protected int getMaxInterval() {
+        return DFLT_MAX_INTERVAL;
+    }
+
+    /**
+     *
+     */
+    private class Waiter extends Thread {
+        /** {@inheritDoc} */
+        @Override public void run() {
+            // Wait until Ok is pressed.
+            JOptionPane.showMessageDialog(
+                null,
+                new JComponent[] {
+                    new JLabel("Test started."),
+                    new JLabel("Press OK to stop test.")
+                },
+                "GridGain",
+                JOptionPane.INFORMATION_MESSAGE
+            );
+
+            semaphore = false;
+        }
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @SuppressWarnings({"BusyWait"})
+    public void testDiscovery() throws Exception {
+        Random rand = new Random();
+
+        new Waiter().start();
+
+        while (semaphore) {
+            int interval = rand.nextInt(getMaxInterval() - 1) + 1;
+
+            toggleState();
+
+            if (isRunning)
+                info("Spi stopped for the interval of " + interval + " seconds...");
+            else
+                info("Spi started for the interval of " + interval + " seconds...");
+
+            try {
+                Thread.sleep(interval * 1000);
+            }
+            catch (InterruptedException e) {
+                error("Got interrupted", e);
+
+                break;
+            }
+        }
+
+        info("Spi stopped...");
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    private void toggleState() throws Exception {
+        if (isRunning)
+            spiStop();
+        else
+            spiStart();
+
+        isRunning = !isRunning;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void beforeTestsStarted() throws Exception {
+        if (getSpiContext() != null)
+            getSpiContext().addLocalEventListener(new DiscoveryListener());
+
+        pinger = new Pinger();
+
+        pinger.start();
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTestsStopped() throws Exception {
+        pinger.interrupt();
+    }
+
+    /** {@inheritDoc} */
+    @Override protected Map<String, Serializable> getNodeAttributes() {
+        Map<String, Serializable> attrs = new HashMap<>(1);
+
+        attrs.put("testDiscoveryAttribute", new Date());
+
+        return attrs;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridAbstractDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridAbstractDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridAbstractDiscoverySelfTest.java
new file mode 100644
index 0000000..338ce9e
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridAbstractDiscoverySelfTest.java
@@ -0,0 +1,488 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import mx4j.tools.adaptor.http.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.marshaller.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.kernal.managers.security.*;
+import org.gridgain.grid.security.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.testframework.config.*;
+import org.gridgain.testframework.junits.*;
+import org.gridgain.testframework.junits.spi.*;
+
+import javax.management.*;
+import java.io.*;
+import java.util.*;
+import java.util.concurrent.atomic.*;
+
+import static org.apache.ignite.events.IgniteEventType.*;
+import static org.apache.ignite.product.IgniteProductVersion.*;
+
+/**
+ * Base discovery self-test class.
+ * @param <T> SPI implementation class.
+ */
+@SuppressWarnings({"JUnitAbstractTestClassNamingConvention"})
+public abstract class GridAbstractDiscoverySelfTest<T extends IgniteSpi> extends GridSpiAbstractTest<T> {
+    /** */
+    private static final List<DiscoverySpi> spis = new ArrayList<>();
+
+    /** */
+    private static final Collection<GridTestResources> spiRsrcs = new ArrayList<>();
+
+    /** */
+    private static long spiStartTime;
+
+    /** */
+    private static final Object mux = new Object();
+
+    /** */
+    private static final String TEST_ATTRIBUTE_NAME = "test.node.prop";
+
+    /** */
+    protected GridAbstractDiscoverySelfTest() {
+        super(false);
+    }
+
+    /**
+     * Checks that each started discovery spi found all other SPI's.
+     * @throws Exception If failed.
+     */
+    @SuppressWarnings({"UnconditionalWait"})
+    public void testDiscovery() throws Exception {
+        assert spis.size() > 1;
+        assert spiStartTime > 0;
+        assert spiRsrcs.size() == getSpiCount();
+
+        boolean isAllDiscovered = false;
+
+        while (!isAllDiscovered) {
+            for (DiscoverySpi spi : spis) {
+                if (spi.getRemoteNodes().size() < (getSpiCount() - 1)) {
+                    isAllDiscovered = false;
+
+                    break;
+                }
+
+                isAllDiscovered = true;
+
+                for (GridTestResources rscrs : spiRsrcs) {
+                    UUID nodeId = rscrs.getNodeId();
+
+                    if (!nodeId.equals(spi.getLocalNode().id())) {
+                        if (!isContainsNodeId(spi.getRemoteNodes(), nodeId)) {
+                            isAllDiscovered = false;
+
+                            break;
+                        }
+                    }
+                }
+            }
+
+            if (isAllDiscovered)
+                info("All nodes discovered.");
+            else {
+                if (System.currentTimeMillis() > spiStartTime + getMaxDiscoveryTime()) {
+                    for (int i = 0; i < getSpiCount(); i++) {
+                        DiscoverySpi spi = spis.get(i);
+
+                        info("Remote nodes [spiIdx=" + i + ", nodes=" + spi.getRemoteNodes() + ']');
+                    }
+
+                    fail("Nodes were not discovered.");
+                }
+                else {
+                    synchronized (mux) {
+                        mux.wait(getMaxDiscoveryTime());
+                    }
+                }
+            }
+        }
+    }
+
+    /** */
+    private static class DiscoveryListener implements DiscoverySpiListener {
+        /** * */
+        private boolean isMetricsUpdate;
+
+        /**
+         *
+         *
+         * @return Metrics updates.
+         */
+        public boolean isMetricsUpdated() {
+            return isMetricsUpdate;
+        }
+
+        /** {@inheritDoc} */
+        @Override public void onDiscovery(int type, long topVer, ClusterNode node, Collection<ClusterNode> topSnapshot,
+            Map<Long, Collection<ClusterNode>> topHist) {
+            if (type == EVT_NODE_METRICS_UPDATED)
+                isMetricsUpdate = true;
+        }
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @SuppressWarnings({"UnconditionalWait"})
+    public void testMetrics() throws Exception {
+        Collection<DiscoveryListener> listeners = new ArrayList<>();
+
+        long metricsStartTime = System.currentTimeMillis();
+
+        for (DiscoverySpi spi : spis) {
+            DiscoveryListener metricsUpdateLsnr = new DiscoveryListener();
+
+            spi.setListener(metricsUpdateLsnr);
+
+            listeners.add(metricsUpdateLsnr);
+        }
+
+        boolean isAllSpiMetricUpdated = false;
+
+        while (!isAllSpiMetricUpdated) {
+            isAllSpiMetricUpdated = true;
+
+            for (DiscoveryListener lsnr : listeners) {
+                if (!lsnr.isMetricsUpdated()) {
+                    isAllSpiMetricUpdated = false;
+
+                    break;
+                }
+            }
+
+            if (isAllSpiMetricUpdated)
+                info("All SPI metrics updated.");
+            else {
+                if (System.currentTimeMillis() > metricsStartTime + getMaxMetricsWaitTime()) {
+                    for (int i = 0; i < getSpiCount(); i++) {
+                        DiscoverySpi spi = spis.get(i);
+
+                        info("Remote nodes [spiIdx=" + i + ", nodes=" + spi.getRemoteNodes() + ']');
+                    }
+
+                    fail("SPI Metrics not updated.");
+                }
+                else {
+                    synchronized (mux) {
+                        mux.wait(getMaxMetricsWaitTime());
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Tests whether local node heartbeats cause METRICS_UPDATE event.
+     *
+     * @throws Exception If test failed.
+     */
+    public void testLocalHeartbeat() throws Exception {
+        AtomicInteger[] locUpdCnts = new AtomicInteger[getSpiCount()];
+
+        int i = 0;
+
+        for (final DiscoverySpi spi : spis) {
+            final AtomicInteger spiCnt = new AtomicInteger(0);
+
+            DiscoverySpiListener locHeartbeatLsnr = new DiscoverySpiListener() {
+                @Override public void onDiscovery(int type, long topVer, ClusterNode node,
+                    Collection<ClusterNode> topSnapshot, Map<Long, Collection<ClusterNode>> topHist) {
+                    // If METRICS_UPDATED came from local node
+                    if (type == EVT_NODE_METRICS_UPDATED
+                        && node.id().equals(spi.getLocalNode().id()))
+                        spiCnt.addAndGet(1);
+                }
+            };
+
+            locUpdCnts[i] = spiCnt;
+
+            spi.setListener(locHeartbeatLsnr);
+
+            i++;
+        }
+
+        // Sleep fro 3 Heartbeats.
+        Thread.sleep(getMaxDiscoveryTime() * 3);
+
+        for (AtomicInteger cnt : locUpdCnts) {
+            assert cnt.get() > 1 : "One of the SPIs did not get at least 2 METRICS_UPDATE events from local node";
+        }
+    }
+
+    /**
+     * @param nodes Nodes iterator.
+     * @param nodeId Node UUID.
+     * @return {@code true} if provided iterator contains node with provided UUID.
+     */
+    private boolean isContainsNodeId(Iterable<ClusterNode> nodes, UUID nodeId) {
+        for (ClusterNode node : nodes) {
+            assert node.id() != null;
+
+            if (node.id().equals(nodeId))
+                return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Checks that physical address of local node is equal to local.ip property.
+     */
+    public void testLocalNode() {
+        for (DiscoverySpi spi : spis) {
+            ClusterNode loc = spi.getLocalNode();
+
+            Collection<ClusterNode> rmt = spi.getRemoteNodes();
+
+            assert !rmt.contains(loc);
+        }
+    }
+
+    /**
+     * Check that "test.node.prop" is present on all nodes.
+     */
+    public void testNodeAttributes() {
+        for (DiscoverySpi spi : spis) {
+            assert !spi.getRemoteNodes().isEmpty() : "No remote nodes found in Spi.";
+
+            Collection<UUID> nodeIds = new HashSet<>();
+
+            for (GridTestResources rsrc : spiRsrcs) {
+                nodeIds.add(rsrc.getNodeId());
+            }
+
+            for (ClusterNode node : spi.getRemoteNodes()) {
+                if (nodeIds.contains(node.id())) {
+                    Serializable attr = node.attribute(TEST_ATTRIBUTE_NAME);
+
+                    if (attr == null || !(attr instanceof String)) {
+                        fail("Node does not contains attribute [attr=" + TEST_ATTRIBUTE_NAME + ", nodeId=" +
+                            node.id() + ", spiIdx=" + spis.indexOf(spi) + ']');
+                    }
+                    else if (!"true".equals(attr)) {
+                        fail("Attribute value is wrong [attr=" + TEST_ATTRIBUTE_NAME + ", value=" + attr + ", nodeId=" +
+                            node.id() + ", spiIdx=" + spis.indexOf(spi) + ']');
+                    }
+                    else {
+                        info("Node contains attribute [attr=" + TEST_ATTRIBUTE_NAME + ", value=" + attr + ", nodeId=" +
+                            node.id() + ", spiIdx=" + spis.indexOf(spi) + ']');
+                    }
+                }
+                else
+                    error("Discovered unknown node [node=" + node + ", spiIdx=" + spis.indexOf(spi) + ']');
+            }
+        }
+    }
+
+    /**
+     * Checks that each spi can pings all other.
+     */
+    public void testPing() {
+        for (DiscoverySpi spi : spis) {
+            for (GridTestResources rscrs : spiRsrcs) {
+                UUID nodeId = rscrs.getNodeId();
+
+                if (spi.pingNode(nodeId))
+                    info("Ping node success [nodeId=" + nodeId + ", spiIdx=" + spis.indexOf(spi) + ']');
+                else
+                    fail("Ping node error [nodeId=" + nodeId + ", spiIdx=" + spis.indexOf(spi) + ']');
+            }
+        }
+    }
+
+    /**
+     * Checks that node serializable.
+     *
+     * @throws Exception If failed.
+     */
+    public void testNodeSerialize() throws Exception {
+        for (DiscoverySpi spi : spis) {
+            ClusterNode node = spi.getLocalNode();
+
+            assert node != null;
+
+            writeObject(node);
+
+            info("Serialize node success [nodeId=" + node.id() + ", spiIdx=" + spis.indexOf(spi) + ']');
+        }
+    }
+
+    /**
+     * @param idx Index.
+     * @return Discovery SPI.
+     */
+    protected abstract DiscoverySpi getSpi(int idx);
+
+    /**
+     * @return SPI count.
+     */
+    protected int getSpiCount() {
+        return 2;
+    }
+
+    /**
+     * @return Maximum discovery time.
+     */
+    protected long getMaxDiscoveryTime() {
+        return 10000;
+    }
+
+    /**
+     * @return Maximum metrics wait time.
+     */
+    protected long getMaxMetricsWaitTime() {
+        return getMaxDiscoveryTime();
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void beforeTestsStarted() throws Exception {
+        try {
+            for (int i = 0; i < getSpiCount(); i++) {
+                DiscoverySpi spi = getSpi(i);
+
+                GridTestResources rsrcMgr = new GridTestResources(getMBeanServer(i));
+
+                rsrcMgr.inject(spi);
+
+                spi.setNodeAttributes(Collections.<String, Object>singletonMap(TEST_ATTRIBUTE_NAME, "true"),
+                    fromString("99.99.99"));
+
+                spi.setListener(new DiscoverySpiListener() {
+                    @SuppressWarnings({"NakedNotify"})
+                    @Override public void onDiscovery(int type, long topVer, ClusterNode node,
+                        Collection<ClusterNode> topSnapshot, Map<Long, Collection<ClusterNode>> topHist) {
+                        info("Discovery event [type=" + type + ", node=" + node + ']');
+
+                        synchronized (mux) {
+                            mux.notifyAll();
+                        }
+                    }
+                });
+
+                spi.setDataExchange(new DiscoverySpiDataExchange() {
+                    @Override public List<Object> collect(UUID nodeId) {
+                        return new LinkedList<>();
+                    }
+
+                    @Override public void onExchange(List<Object> data) {
+                        // No-op.
+                    }
+                });
+
+                spi.setAuthenticator(new DiscoverySpiNodeAuthenticator() {
+                    @Override public GridSecurityContext authenticateNode(ClusterNode n, GridSecurityCredentials cred) {
+                        GridSecuritySubjectAdapter subj = new GridSecuritySubjectAdapter(
+                            GridSecuritySubjectType.REMOTE_NODE, n.id());
+
+                        subj.permissions(new GridAllowAllPermissionSet());
+
+                        return new GridSecurityContext(subj);
+                    }
+
+                    @Override public boolean isGlobalNodeAuthentication() {
+                        return false;
+                    }
+                });
+
+
+                spi.spiStart(getTestGridName() + i);
+
+                spis.add(spi);
+
+                spiRsrcs.add(rsrcMgr);
+
+                // Force to use test context instead of default dummy context.
+                spi.onContextInitialized(initSpiContext());
+            }
+        }
+        catch (Throwable e) {
+            e.printStackTrace();
+        }
+
+        spiStartTime = System.currentTimeMillis();
+    }
+
+    /**
+     * @param idx Index.
+     * @return MBean server.
+     * @throws Exception If failed.
+     */
+    private MBeanServer getMBeanServer(int idx) throws Exception {
+        HttpAdaptor adaptor = new HttpAdaptor();
+
+        MBeanServer srv = MBeanServerFactory.createMBeanServer();
+
+        adaptor.setPort(Integer.valueOf(GridTestProperties.getProperty("discovery.mbeanserver.selftest.baseport")) +
+            idx);
+
+        srv.registerMBean(adaptor, new ObjectName("mbeanAdaptor:protocol=HTTP"));
+
+        adaptor.start();
+
+        return srv;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTestsStopped() throws Exception {
+        assert spis.size() > 1;
+        assert spis.size() == spiRsrcs.size();
+
+        for (DiscoverySpi spi : spis) {
+            spi.setListener(null);
+
+            spi.spiStop();
+        }
+
+        for (GridTestResources rscrs : spiRsrcs) {
+            rscrs.stopThreads();
+        }
+
+        // Clear.
+        spis.clear();
+        spiRsrcs.clear();
+
+        spiStartTime = 0;
+
+        tearDown();
+    }
+
+    /**
+     * @param node Grid node.
+     * @throws IOException If write failed.
+     */
+    private void writeObject(ClusterNode node) throws Exception {
+
+        IgniteMarshaller marshaller = getTestResources().getMarshaller();
+
+        OutputStream out = new NullOutputStream();
+
+        try {
+            marshaller.marshal(node, out);
+        }
+        finally {
+            U.close(out, null);
+        }
+    }
+
+    /**
+     *
+     */
+    private static class NullOutputStream extends OutputStream {
+        /** {@inheritDoc} */
+        @Override public void write(int b) throws IOException {
+            // No-op
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridAbstractDiscoveryTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridAbstractDiscoveryTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridAbstractDiscoveryTest.java
new file mode 100644
index 0000000..a6ee6e5
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridAbstractDiscoveryTest.java
@@ -0,0 +1,145 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.events.*;
+import org.gridgain.grid.kernal.managers.eventstorage.*;
+import org.gridgain.testframework.junits.spi.*;
+
+import javax.swing.*;
+import java.io.*;
+import java.util.*;
+
+/**
+ * Base discovery test class.
+ * @param <T> SPI implementation class.
+ */
+@SuppressWarnings({"JUnitAbstractTestClassNamingConvention"})
+public abstract class GridAbstractDiscoveryTest<T extends DiscoverySpi> extends GridSpiAbstractTest<T> {
+    /** */
+    @SuppressWarnings({"ClassExplicitlyExtendsThread"})
+    private class Pinger extends Thread {
+        /** */
+        private final Object mux = new Object();
+
+        /** */
+        @SuppressWarnings({"FieldAccessedSynchronizedAndUnsynchronized"})
+        private boolean isCanceled;
+
+        /** {@inheritDoc} */
+        @SuppressWarnings({"UnusedCatchParameter"})
+        @Override public void run() {
+            Random rnd = new Random();
+
+            while (isCanceled) {
+                try {
+                    Collection<ClusterNode> nodes = getSpi().getRemoteNodes();
+
+                    pingNode(UUID.randomUUID(), false);
+
+                    for (ClusterNode item : nodes) {
+                        pingNode(item.id(), true);
+                    }
+
+                    pingNode(UUID.randomUUID(), false);
+                }
+                catch (Exception e) {
+                    error("Can't get SPI.", e);
+                }
+
+                synchronized (mux) {
+                    if (isCanceled) {
+                        try {
+                            mux.wait(getPingFrequency() * (1 + rnd.nextInt(10)));
+                        }
+                        catch (InterruptedException e) {
+                            //No-op.
+                        }
+                    }
+                }
+            }
+        }
+
+        /**
+         * @param nodeId Node UUID.
+         * @param exists Exists flag.
+         * @throws Exception If failed.
+         */
+        private void pingNode(UUID nodeId, boolean exists) throws Exception {
+            boolean flag = getSpi().pingNode(nodeId);
+
+            info((flag != exists ? "***Error*** " : "") + "Ping " + (exists ? "exist" : "random") +
+                " node [nodeId=" + nodeId + ", pingResult=" + flag + ']');
+        }
+
+        /** {@inheritDoc} */
+        @Override public void interrupt() {
+            synchronized (mux) {
+                isCanceled = true;
+
+                mux.notifyAll();
+            }
+
+            super.interrupt();
+        }
+    }
+
+    /**
+     * @return Ping frequency.
+     */
+    public abstract long getPingFrequency();
+
+    /**
+     * @return Pinger start flag.
+     */
+    public boolean isPingerStart() {
+        return true;
+    }
+
+    /** */
+    private class DiscoveryListener implements GridLocalEventListener {
+        /** {@inheritDoc} */
+        @Override public void onEvent(IgniteEvent evt) {
+            info("Discovery event [event=" + evt + ']');
+        }
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testDiscovery() throws Exception {
+        GridLocalEventListener discoLsnr = new DiscoveryListener();
+
+        getSpiContext().addLocalEventListener(discoLsnr);
+
+        Pinger pinger = null;
+
+        if (isPingerStart()) {
+            pinger = new Pinger();
+
+            pinger.start();
+        }
+
+        JOptionPane.showMessageDialog(null, "Press OK to end test.");
+
+        if (pinger != null)
+            pinger.interrupt();
+    }
+
+    /** {@inheritDoc} */
+    @Override protected Map<String, Serializable> getNodeAttributes() {
+        Map<String, Serializable> attrs = new HashMap<>(1);
+
+        attrs.put("testDiscoveryAttribute", new Date());
+
+        return attrs;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridDiscoveryMetricsHelperSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridDiscoveryMetricsHelperSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridDiscoveryMetricsHelperSelfTest.java
new file mode 100644
index 0000000..fffd5aa
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/GridDiscoveryMetricsHelperSelfTest.java
@@ -0,0 +1,141 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery;
+
+import org.apache.ignite.cluster.*;
+import org.gridgain.testframework.junits.common.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Grid discovery metrics test.
+ */
+@GridCommonTest(group = "Utils")
+public class GridDiscoveryMetricsHelperSelfTest extends GridCommonAbstractTest {
+    /** */
+    private static final int METRICS_COUNT = 500;
+
+    /** */
+    public GridDiscoveryMetricsHelperSelfTest() {
+        super(false /*don't start grid*/);
+    }
+
+    /** */
+    public void testMetricsSize() {
+        byte[] data = new byte[DiscoveryMetricsHelper.METRICS_SIZE];
+
+        // Test serialization.
+        int off = DiscoveryMetricsHelper.serialize(data, 0, createMetrics());
+
+        assert off == DiscoveryMetricsHelper.METRICS_SIZE;
+
+        // Test deserialization.
+        ClusterNodeMetrics res = DiscoveryMetricsHelper.deserialize(data, 0);
+
+        assert res != null;
+    }
+
+    /** */
+    public void testSerialization() {
+        byte[] data = new byte[DiscoveryMetricsHelper.METRICS_SIZE];
+
+        ClusterNodeMetrics metrics1 = createMetrics();
+
+        // Test serialization.
+        int off = DiscoveryMetricsHelper.serialize(data, 0, metrics1);
+
+        assert off == DiscoveryMetricsHelper.METRICS_SIZE;
+
+        // Test deserialization.
+        ClusterNodeMetrics metrics2 = DiscoveryMetricsHelper.deserialize(data, 0);
+
+        assert metrics2 != null;
+
+        assert metrics1.equals(metrics2);
+    }
+
+    /**
+     * @throws IOException If I/O error occurs.
+     */
+    public void testMultipleMetricsSerialization() throws IOException {
+        Map<UUID, ClusterNodeMetrics> metrics = new HashMap<>(METRICS_COUNT);
+
+        for (int i = 0; i < METRICS_COUNT; i++)
+            metrics.put(UUID.randomUUID(), createMetrics());
+
+        ByteArrayOutputStream bos = new ByteArrayOutputStream(1024 * 1024);
+
+        ObjectOutputStream oos = new ObjectOutputStream(bos);
+
+        oos.writeObject(metrics);
+
+        oos.close();
+
+        info(">>> Size of metrics map <UUID, GridNodeMetrics> in KB [metricsCount=" + METRICS_COUNT +
+            ", size=" + bos.size() / 1024.0 + ']');
+    }
+
+    /**
+     * @return Test metrics.
+     */
+    private ClusterNodeMetrics createMetrics() {
+        DiscoveryNodeMetricsAdapter metrics = new DiscoveryNodeMetricsAdapter();
+
+        metrics.setAvailableProcessors(1);
+        metrics.setAverageActiveJobs(2);
+        metrics.setAverageCancelledJobs(3);
+        metrics.setAverageJobExecuteTime(4);
+        metrics.setAverageJobWaitTime(5);
+        metrics.setAverageRejectedJobs(6);
+        metrics.setAverageWaitingJobs(7);
+        metrics.setCurrentActiveJobs(8);
+        metrics.setCurrentCancelledJobs(9);
+        metrics.setCurrentIdleTime(10);
+        metrics.setCurrentIdleTime(11);
+        metrics.setCurrentJobExecuteTime(12);
+        metrics.setCurrentJobWaitTime(13);
+        metrics.setCurrentRejectedJobs(14);
+        metrics.setCurrentWaitingJobs(15);
+        metrics.setCurrentDaemonThreadCount(16);
+        metrics.setHeapMemoryCommitted(17);
+        metrics.setHeapMemoryInitialized(18);
+        metrics.setHeapMemoryMaximum(19);
+        metrics.setHeapMemoryUsed(20);
+        metrics.setLastUpdateTime(21);
+        metrics.setMaximumActiveJobs(22);
+        metrics.setMaximumCancelledJobs(23);
+        metrics.setMaximumJobExecuteTime(24);
+        metrics.setMaximumJobWaitTime(25);
+        metrics.setMaximumRejectedJobs(26);
+        metrics.setMaximumWaitingJobs(27);
+        metrics.setNonHeapMemoryCommitted(28);
+        metrics.setNonHeapMemoryInitialized(29);
+        metrics.setNonHeapMemoryMaximum(30);
+        metrics.setNonHeapMemoryUsed(31);
+        metrics.setMaximumThreadCount(32);
+        metrics.setStartTime(33);
+        metrics.setCurrentCpuLoad(34);
+        metrics.setCurrentThreadCount(35);
+        metrics.setTotalCancelledJobs(36);
+        metrics.setTotalExecutedJobs(37);
+        metrics.setTotalIdleTime(38);
+        metrics.setTotalRejectedJobs(39);
+        metrics.setTotalStartedThreadCount(40);
+        metrics.setUpTime(41);
+        metrics.setSentMessagesCount(42);
+        metrics.setSentBytesCount(43);
+        metrics.setReceivedMessagesCount(44);
+        metrics.setReceivedBytesCount(45);
+        metrics.setOutboundMessagesQueueSize(46);
+
+        return metrics;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/package.html b/modules/core/src/test/java/org/apache/ignite/spi/discovery/package.html
new file mode 100644
index 0000000..5cad80a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains internal tests or test related classes and interfaces.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
new file mode 100644
index 0000000..25299cb
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/GridTcpClientDiscoverySelfTest.java
@@ -0,0 +1,683 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.events.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.gridgain.grid.util.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.testframework.*;
+import org.gridgain.testframework.junits.common.*;
+
+import java.net.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+import static java.util.concurrent.TimeUnit.*;
+import static org.apache.ignite.events.IgniteEventType.*;
+
+/**
+ * Client-based discovery tests.
+ */
+public class GridTcpClientDiscoverySelfTest extends GridCommonAbstractTest {
+    /** */
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+
+    /** */
+    private static final AtomicInteger srvIdx = new AtomicInteger();
+
+    /** */
+    private static final AtomicInteger clientIdx = new AtomicInteger();
+
+    /** */
+    private static Collection<UUID> srvNodeIds;
+
+    /** */
+    private static Collection<UUID> clientNodeIds;
+
+    /** */
+    private static int clientsPerSrv;
+
+    /** */
+    private static CountDownLatch srvJoinedLatch;
+
+    /** */
+    private static CountDownLatch srvLeftLatch;
+
+    /** */
+    private static CountDownLatch srvFailedLatch;
+
+    /** */
+    private static CountDownLatch clientJoinedLatch;
+
+    /** */
+    private static CountDownLatch clientLeftLatch;
+
+    /** */
+    private static CountDownLatch clientFailedLatch;
+
+    /** */
+    private static CountDownLatch msgLatch;
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        cfg.setLocalHost("127.0.0.1");
+
+        if (gridName.startsWith("server")) {
+            TcpDiscoverySpi disco = new TcpDiscoverySpi();
+
+            disco.setIpFinder(IP_FINDER);
+
+            cfg.setDiscoverySpi(disco);
+        }
+        else if (gridName.startsWith("client")) {
+            TcpClientDiscoverySpi disco = new TcpClientDiscoverySpi();
+
+            TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
+
+            String addr = new ArrayList<>(IP_FINDER.getRegisteredAddresses()).
+                get((clientIdx.get() - 1) / clientsPerSrv).toString();
+
+            if (addr.startsWith("/"))
+                addr = addr.substring(1);
+
+            ipFinder.setAddresses(Arrays.asList(addr));
+
+            disco.setIpFinder(ipFinder);
+
+            cfg.setDiscoverySpi(disco);
+        }
+
+        return cfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void beforeTest() throws Exception {
+        Collection<InetSocketAddress> addrs = IP_FINDER.getRegisteredAddresses();
+
+        if (!F.isEmpty(addrs))
+            IP_FINDER.unregisterAddresses(addrs);
+
+        srvIdx.set(0);
+        clientIdx.set(0);
+
+        srvNodeIds = new GridConcurrentHashSet<>();
+        clientNodeIds = new GridConcurrentHashSet<>();
+
+        clientsPerSrv = 2;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        stopAllClients(true);
+        stopAllServers(true);
+
+        assert G.allGrids().isEmpty();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testClientNodeJoin() throws Exception {
+        startServerNodes(3);
+        startClientNodes(3);
+
+        checkNodes(3, 3);
+
+        srvJoinedLatch = new CountDownLatch(3);
+        clientJoinedLatch = new CountDownLatch(3);
+
+        attachListeners(3, 3);
+
+        startClientNodes(1);
+
+        await(srvJoinedLatch);
+        await(clientJoinedLatch);
+
+        checkNodes(3, 4);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testClientNodeLeave() throws Exception {
+        startServerNodes(3);
+        startClientNodes(3);
+
+        checkNodes(3, 3);
+
+        srvLeftLatch = new CountDownLatch(3);
+        clientLeftLatch = new CountDownLatch(2);
+
+        attachListeners(3, 3);
+
+        stopGrid("client-2");
+
+        await(srvLeftLatch);
+        await(clientLeftLatch);
+
+        checkNodes(3, 2);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testClientNodeFail() throws Exception {
+        startServerNodes(3);
+        startClientNodes(3);
+
+        checkNodes(3, 3);
+
+        srvFailedLatch = new CountDownLatch(3);
+        clientFailedLatch = new CountDownLatch(2);
+
+        attachListeners(3, 3);
+
+        failClient(2);
+
+        await(srvFailedLatch);
+        await(clientFailedLatch);
+
+        checkNodes(3, 2);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testServerNodeJoin() throws Exception {
+        startServerNodes(3);
+        startClientNodes(3);
+
+        checkNodes(3, 3);
+
+        srvJoinedLatch = new CountDownLatch(3);
+        clientJoinedLatch = new CountDownLatch(3);
+
+        attachListeners(3, 3);
+
+        startServerNodes(1);
+
+        await(srvJoinedLatch);
+        await(clientJoinedLatch);
+
+        checkNodes(4, 3);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testServerNodeLeave() throws Exception {
+        startServerNodes(3);
+        startClientNodes(3);
+
+        checkNodes(3, 3);
+
+        srvLeftLatch = new CountDownLatch(2);
+        clientLeftLatch = new CountDownLatch(3);
+
+        attachListeners(3, 3);
+
+        stopGrid("server-2");
+
+        await(srvLeftLatch);
+        await(clientLeftLatch);
+
+        checkNodes(2, 3);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testServerNodeFail() throws Exception {
+        startServerNodes(3);
+        startClientNodes(3);
+
+        checkNodes(3, 3);
+
+        srvFailedLatch = new CountDownLatch(2);
+        clientFailedLatch = new CountDownLatch(3);
+
+        attachListeners(3, 3);
+
+        assert U.<Map>field(G.grid("server-2").configuration().getDiscoverySpi(), "clientMsgWorkers").isEmpty();
+
+        failServer(2);
+
+        await(srvFailedLatch);
+        await(clientFailedLatch);
+
+        checkNodes(2, 3);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testClientReconnect() throws Exception {
+        clientsPerSrv = 1;
+
+        startServerNodes(3);
+        startClientNodes(3);
+
+        checkNodes(3, 3);
+
+        resetClientIpFinder(2);
+
+        srvFailedLatch = new CountDownLatch(2);
+        clientFailedLatch = new CountDownLatch(3);
+
+        attachListeners(2, 3);
+
+        failServer(2);
+
+        await(srvFailedLatch);
+        await(clientFailedLatch);
+
+        checkNodes(2, 3);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testClientNodeJoinOneServer() throws Exception {
+        startServerNodes(1);
+
+        srvJoinedLatch = new CountDownLatch(1);
+
+        attachListeners(1, 0);
+
+        startClientNodes(1);
+
+        await(srvJoinedLatch);
+
+        checkNodes(1, 1);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testClientNodeLeaveOneServer() throws Exception {
+        startServerNodes(1);
+        startClientNodes(1);
+
+        checkNodes(1, 1);
+
+        srvLeftLatch = new CountDownLatch(1);
+
+        attachListeners(1, 0);
+
+        stopGrid("client-0");
+
+        await(srvLeftLatch);
+
+        checkNodes(1, 0);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testClientNodeFailOneServer() throws Exception {
+        startServerNodes(1);
+        startClientNodes(1);
+
+        checkNodes(1, 1);
+
+        srvFailedLatch = new CountDownLatch(1);
+
+        attachListeners(1, 0);
+
+        failClient(0);
+
+        await(srvFailedLatch);
+
+        checkNodes(1, 0);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testMetrics() throws Exception {
+        startServerNodes(3);
+        startClientNodes(3);
+
+        checkNodes(3, 3);
+
+        attachListeners(3, 3);
+
+        assertTrue(checkMetrics(3, 3, 0));
+
+        G.grid("client-0").compute().broadcast(F.noop());
+
+        assertTrue(GridTestUtils.waitForCondition(new PA() {
+            @Override public boolean apply() {
+                return checkMetrics(3, 3, 1);
+            }
+        }, 10000));
+
+        checkMetrics(3, 3, 1);
+
+        G.grid("server-0").compute().broadcast(F.noop());
+
+        assertTrue(GridTestUtils.waitForCondition(new PA() {
+            @Override public boolean apply() {
+                return checkMetrics(3, 3, 2);
+            }
+        }, 10000));
+    }
+
+    /**
+     * @param srvCnt Number of Number of server nodes.
+     * @param clientCnt Number of client nodes.
+     * @param execJobsCnt Expected number of executed jobs.
+     * @return Whether metrics are correct.
+     */
+    private boolean checkMetrics(int srvCnt, int clientCnt, int execJobsCnt) {
+        for (int i = 0; i < srvCnt; i++) {
+            Ignite g = G.grid("server-" + i);
+
+            for (ClusterNode n : g.cluster().nodes()) {
+                if (n.metrics().getTotalExecutedJobs() != execJobsCnt)
+                    return false;
+            }
+        }
+
+        for (int i = 0; i < clientCnt; i++) {
+            Ignite g = G.grid("client-" + i);
+
+            for (ClusterNode n : g.cluster().nodes()) {
+                if (n.metrics().getTotalExecutedJobs() != execJobsCnt)
+                    return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testDataExchangeFromServer() throws Exception {
+        testDataExchange("server-0");
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    // TODO: GG-9174
+    public void _testDataExchangeFromClient() throws Exception {
+        testDataExchange("client-0");
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    private void testDataExchange(String masterName) throws Exception {
+        startServerNodes(2);
+        startClientNodes(2);
+
+        checkNodes(2, 2);
+
+        IgniteMessaging msg = grid(masterName).message();
+
+        UUID id = null;
+
+        try {
+            id = msg.remoteListen(null, new MessageListener());
+
+            msgLatch = new CountDownLatch(4);
+
+            msg.send(null, "Message 1");
+
+            await(msgLatch);
+
+            startServerNodes(1);
+            startClientNodes(1);
+
+            checkNodes(3, 3);
+
+            msgLatch = new CountDownLatch(6);
+
+            msg.send(null, "Message 2");
+
+            await(msgLatch);
+        }
+        finally {
+            if (id != null)
+                msg.stopRemoteListen(id);
+        }
+    }
+
+    /**
+     * @param idx Index.
+     * @throws Exception In case of error.
+     */
+    private void resetClientIpFinder(int idx) throws Exception {
+        TcpClientDiscoverySpi disco =
+            (TcpClientDiscoverySpi)G.grid("client-" + idx).configuration().getDiscoverySpi();
+
+        TcpDiscoveryVmIpFinder ipFinder = (TcpDiscoveryVmIpFinder)disco.getIpFinder();
+
+        String addr = IP_FINDER.getRegisteredAddresses().iterator().next().toString();
+
+        if (addr.startsWith("/"))
+            addr = addr.substring(1);
+
+        ipFinder.setAddresses(Arrays.asList(addr));
+    }
+
+    /**
+     * @param cnt Number of nodes.
+     * @throws Exception In case of error.
+     */
+    private void startServerNodes(int cnt) throws Exception {
+        for (int i = 0; i < cnt; i++) {
+            Ignite g = startGrid("server-" + srvIdx.getAndIncrement());
+
+            srvNodeIds.add(g.cluster().localNode().id());
+        }
+    }
+
+    /**
+     * @param cnt Number of nodes.
+     * @throws Exception In case of error.
+     */
+    private void startClientNodes(int cnt) throws Exception {
+        for (int i = 0; i < cnt; i++) {
+            Ignite g = startGrid("client-" + clientIdx.getAndIncrement());
+
+            clientNodeIds.add(g.cluster().localNode().id());
+        }
+    }
+
+    /**
+     * @param idx Index.
+     */
+    private void failServer(int idx) {
+        ((TcpDiscoverySpi)G.grid("server-" + idx).configuration().getDiscoverySpi()).simulateNodeFailure();
+    }
+
+    /**
+     * @param idx Index.
+     */
+    private void failClient(int idx) {
+        ((TcpClientDiscoverySpi)G.grid("client-" + idx).configuration().getDiscoverySpi()).simulateNodeFailure();
+    }
+
+    /**
+     * @param srvCnt Number of server nodes.
+     * @param clientCnt Number of client nodes.
+     */
+    private void attachListeners(int srvCnt, int clientCnt) throws Exception {
+        if (srvJoinedLatch != null) {
+            for (int i = 0; i < srvCnt; i++) {
+                G.grid("server-" + i).events().localListen(new IgnitePredicate<IgniteEvent>() {
+                    @Override public boolean apply(IgniteEvent evt) {
+                        info("Joined event fired on server: " + evt);
+
+                        srvJoinedLatch.countDown();
+
+                        return true;
+                    }
+                }, EVT_NODE_JOINED);
+            }
+        }
+
+        if (srvLeftLatch != null) {
+            for (int i = 0; i < srvCnt; i++) {
+                G.grid("server-" + i).events().localListen(new IgnitePredicate<IgniteEvent>() {
+                    @Override public boolean apply(IgniteEvent evt) {
+                        info("Left event fired on server: " + evt);
+
+                        srvLeftLatch.countDown();
+
+                        return true;
+                    }
+                }, EVT_NODE_LEFT);
+            }
+        }
+
+        if (srvFailedLatch != null) {
+            for (int i = 0; i < srvCnt; i++) {
+                G.grid("server-" + i).events().localListen(new IgnitePredicate<IgniteEvent>() {
+                    @Override public boolean apply(IgniteEvent evt) {
+                        info("Failed event fired on server: " + evt);
+
+                        srvFailedLatch.countDown();
+
+                        return true;
+                    }
+                }, EVT_NODE_FAILED);
+            }
+        }
+
+        if (clientJoinedLatch != null) {
+            for (int i = 0; i < clientCnt; i++) {
+                G.grid("client-" + i).events().localListen(new IgnitePredicate<IgniteEvent>() {
+                    @Override public boolean apply(IgniteEvent evt) {
+                        info("Joined event fired on client: " + evt);
+
+                        clientJoinedLatch.countDown();
+
+                        return true;
+                    }
+                }, EVT_NODE_JOINED);
+            }
+        }
+
+        if (clientLeftLatch != null) {
+            for (int i = 0; i < clientCnt; i++) {
+                G.grid("client-" + i).events().localListen(new IgnitePredicate<IgniteEvent>() {
+                    @Override public boolean apply(IgniteEvent evt) {
+                        info("Left event fired on client: " + evt);
+
+                        clientLeftLatch.countDown();
+
+                        return true;
+                    }
+                }, EVT_NODE_LEFT);
+            }
+        }
+
+        if (clientFailedLatch != null) {
+            for (int i = 0; i < clientCnt; i++) {
+                G.grid("client-" + i).events().localListen(new IgnitePredicate<IgniteEvent>() {
+                    @Override public boolean apply(IgniteEvent evt) {
+                        info("Failed event fired on client: " + evt);
+
+                        clientFailedLatch.countDown();
+
+                        return true;
+                    }
+                }, EVT_NODE_FAILED);
+            }
+        }
+    }
+
+    /**
+     * @param srvCnt Number of server nodes.
+     * @param clientCnt Number of client nodes.
+     */
+    private void checkNodes(int srvCnt, int clientCnt) {
+        for (int i = 0; i < srvCnt; i++) {
+            Ignite g = G.grid("server-" + i);
+
+            assertTrue(srvNodeIds.contains(g.cluster().localNode().id()));
+
+            assertFalse(g.cluster().localNode().isClient());
+
+            checkRemoteNodes(g, srvCnt + clientCnt - 1);
+        }
+
+        for (int i = 0; i < clientCnt; i++) {
+            Ignite g = G.grid("client-" + i);
+
+            assertTrue(clientNodeIds.contains(g.cluster().localNode().id()));
+
+            assertTrue(g.cluster().localNode().isClient());
+
+            checkRemoteNodes(g, srvCnt + clientCnt - 1);
+        }
+    }
+
+    /**
+     * @param ignite Grid.
+     * @param expCnt Expected nodes count.
+     */
+    @SuppressWarnings("TypeMayBeWeakened")
+    private void checkRemoteNodes(Ignite ignite, int expCnt) {
+        Collection<ClusterNode> nodes = ignite.cluster().forRemotes().nodes();
+
+        assertEquals(expCnt, nodes.size());
+
+        for (ClusterNode node : nodes) {
+            UUID id = node.id();
+
+            if (clientNodeIds.contains(id))
+                assertTrue(node.isClient());
+            else if (srvNodeIds.contains(id))
+                assertFalse(node.isClient());
+            else
+                assert false : "Unexpected node ID: " + id;
+        }
+    }
+
+    /**
+     * @param latch Latch.
+     * @throws InterruptedException If interrupted.
+     */
+    private void await(CountDownLatch latch) throws InterruptedException {
+        assertTrue("Latch count: " + latch.getCount(), latch.await(10000, MILLISECONDS));
+    }
+
+    /**
+     */
+    private static class MessageListener implements IgniteBiPredicate<UUID, Object> {
+        @IgniteLocalNodeIdResource
+        private UUID nodeId;
+
+        /** {@inheritDoc} */
+        @Override public boolean apply(UUID uuid, Object msg) {
+            X.println(">>> Received [locNodeId=" + nodeId + ", msg=" + msg + ']');
+
+            msgLatch.countDown();
+
+            return true;
+        }
+    }
+}


[47/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
# Renaming


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

Branch: refs/heads/master
Commit: 725526fa165fa3137a6e72cdcae6b96ce0e79a2f
Parents: 50d1554
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 5 17:00:01 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 5 17:00:04 2014 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/IgniteCompute.java   |   2 +-
 .../compute/ComputeJobBeforeFailover.java       |   2 +-
 .../ignite/compute/ComputeJobContext.java       |   2 +-
 .../org/apache/ignite/compute/ComputeTask.java  |   2 +-
 .../apache/ignite/compute/ComputeTaskSpis.java  |   2 +-
 .../configuration/IgniteConfiguration.java      |  16 +-
 .../jobstealing/JobStealingCollisionSpi.java    |   2 +-
 .../spi/eventstorage/EventStorageSpi.java       |  57 +++
 .../memory/MemoryEventStorageSpi.java           | 272 +++++++++++++++
 .../memory/MemoryEventStorageSpiMBean.java      |  57 +++
 .../ignite/spi/eventstorage/memory/package.html |  15 +
 .../apache/ignite/spi/eventstorage/package.html |  15 +
 .../ignite/spi/failover/FailoverContext.java    |  47 +++
 .../apache/ignite/spi/failover/FailoverSpi.java |  60 ++++
 .../spi/failover/always/AlwaysFailoverSpi.java  | 238 +++++++++++++
 .../failover/always/AlwaysFailoverSpiMBean.java |  36 ++
 .../ignite/spi/failover/always/package.html     |  15 +
 .../jobstealing/JobStealingFailoverSpi.java     | 343 +++++++++++++++++++
 .../JobStealingFailoverSpiMBean.java            |  46 +++
 .../spi/failover/jobstealing/package.html       |  15 +
 .../spi/failover/never/NeverFailoverSpi.java    |  94 +++++
 .../failover/never/NeverFailoverSpiMBean.java   |  21 ++
 .../ignite/spi/failover/never/package.html      |  15 +
 .../org/apache/ignite/spi/failover/package.html |  15 +
 .../org/gridgain/grid/kernal/GridGainEx.java    |   8 +-
 .../eventstorage/GridEventStorageManager.java   |   2 +-
 .../failover/GridFailoverContextImpl.java       |   2 +-
 .../managers/failover/GridFailoverManager.java  |   2 +-
 .../grid/spi/eventstorage/EventStorageSpi.java  |  57 ---
 .../memory/MemoryEventStorageSpi.java           | 272 ---------------
 .../memory/MemoryEventStorageSpiMBean.java      |  57 ---
 .../grid/spi/eventstorage/memory/package.html   |  15 -
 .../gridgain/grid/spi/eventstorage/package.html |  15 -
 .../grid/spi/failover/FailoverContext.java      |  47 ---
 .../gridgain/grid/spi/failover/FailoverSpi.java |  60 ----
 .../spi/failover/always/AlwaysFailoverSpi.java  | 238 -------------
 .../failover/always/AlwaysFailoverSpiMBean.java |  36 --
 .../grid/spi/failover/always/package.html       |  15 -
 .../jobstealing/JobStealingFailoverSpi.java     | 343 -------------------
 .../JobStealingFailoverSpiMBean.java            |  46 ---
 .../grid/spi/failover/jobstealing/package.html  |  15 -
 .../spi/failover/never/NeverFailoverSpi.java    |  94 -----
 .../failover/never/NeverFailoverSpiMBean.java   |  21 --
 .../grid/spi/failover/never/package.html        |  15 -
 .../org/gridgain/grid/spi/failover/package.html |  15 -
 .../src/test/config/job-loadtest/client.xml     |   2 +-
 .../src/test/config/job-loadtest/server.xml     |   2 +-
 .../core/src/test/config/load/dsi-load-base.xml |   2 +-
 ...bStealingCollisionSpiAttributesSelfTest.java |   2 +-
 ...alingCollisionSpiCustomTopologySelfTest.java |   2 +-
 .../GridJobStealingCollisionSpiSelfTest.java    |   2 +-
 ...obStealingCollisionSpiStartStopSelfTest.java |   2 +-
 ...MemoryEventStorageMultiThreadedSelfTest.java |  43 +++
 ...GridMemoryEventStorageSpiConfigSelfTest.java |  26 ++
 .../GridMemoryEventStorageSpiSelfTest.java      | 130 +++++++
 ...dMemoryEventStorageSpiStartStopSelfTest.java |  21 ++
 .../ignite/spi/eventstorage/memory/package.html |  15 +
 .../spi/failover/GridFailoverTestContext.java   |  62 ++++
 .../GridAlwaysFailoverSpiConfigSelfTest.java    |  25 ++
 .../always/GridAlwaysFailoverSpiSelfTest.java   | 110 ++++++
 .../GridAlwaysFailoverSpiStartStopSelfTest.java |  22 ++
 .../ignite/spi/failover/always/package.html     |  15 +
 ...ridJobStealingFailoverSpiConfigSelfTest.java |  25 ++
 ...idJobStealingFailoverSpiOneNodeSelfTest.java |  88 +++++
 .../GridJobStealingFailoverSpiSelfTest.java     | 217 ++++++++++++
 ...JobStealingFailoverSpiStartStopSelfTest.java |  46 +++
 .../spi/failover/jobstealing/package.html       |  15 +
 .../never/GridNeverFailoverSpiSelfTest.java     |  37 ++
 .../GridNeverFailoverSpiStartStopSelfTest.java  |  22 ++
 .../ignite/spi/failover/never/package.html      |  15 +
 .../org/apache/ignite/spi/failover/package.html |  15 +
 .../GridAlwaysFailoverSpiFailSelfTest.java      |   4 +-
 .../GridFailoverCustomTopologySelfTest.java     |   4 +-
 .../grid/kernal/GridFailoverSelfTest.java       |   2 +-
 .../GridFailoverTaskWithPredicateSelfTest.java  |   4 +-
 .../kernal/GridFailoverTopologySelfTest.java    |   4 +-
 .../grid/kernal/GridJobStealingSelfTest.java    |   2 +-
 .../GridJobStealingZeroActiveJobsSelfTest.java  |   2 +-
 .../grid/kernal/GridMultipleSpisSelfTest.java   |   4 +-
 .../GridMultithreadedJobStealingSelfTest.java   |   2 +-
 .../grid/kernal/GridSpiExceptionSelfTest.java   |   2 +-
 .../grid/kernal/GridStopWithWaitSelfTest.java   |   2 +-
 .../managers/GridManagerStopSelfTest.java       |   6 +-
 .../GridCacheGroupLockFailoverSelfTest.java     |   4 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |   4 +-
 .../GridCachePreloadEventsAbstractSelfTest.java |   2 +-
 .../GridCacheReplicatedPreloadSelfTest.java     |   2 +-
 .../p2p/GridAbstractMultinodeRedeployTest.java  |   2 +-
 .../session/GridSessionJobFailoverSelfTest.java |   2 +-
 ...MemoryEventStorageMultiThreadedSelfTest.java |  43 ---
 ...GridMemoryEventStorageSpiConfigSelfTest.java |  26 --
 .../GridMemoryEventStorageSpiSelfTest.java      | 130 -------
 ...dMemoryEventStorageSpiStartStopSelfTest.java |  21 --
 .../grid/spi/eventstorage/memory/package.html   |  15 -
 .../spi/failover/GridFailoverTestContext.java   |  62 ----
 .../GridAlwaysFailoverSpiConfigSelfTest.java    |  25 --
 .../always/GridAlwaysFailoverSpiSelfTest.java   | 110 ------
 .../GridAlwaysFailoverSpiStartStopSelfTest.java |  22 --
 .../grid/spi/failover/always/package.html       |  15 -
 ...ridJobStealingFailoverSpiConfigSelfTest.java |  25 --
 ...idJobStealingFailoverSpiOneNodeSelfTest.java |  88 -----
 .../GridJobStealingFailoverSpiSelfTest.java     | 217 ------------
 ...JobStealingFailoverSpiStartStopSelfTest.java |  46 ---
 .../grid/spi/failover/jobstealing/package.html  |  15 -
 .../never/GridNeverFailoverSpiSelfTest.java     |  37 --
 .../GridNeverFailoverSpiStartStopSelfTest.java  |  22 --
 .../grid/spi/failover/never/package.html        |  15 -
 .../org/gridgain/grid/spi/failover/package.html |  15 -
 .../direct/stealing/GridStealingLoadTest.java   |   2 +-
 .../GridSpiEventStorageSelfTestSuite.java       |   2 +-
 .../GridSpiFailoverSelfTestSuite.java           |   6 +-
 pom.xml                                         |   8 +-
 112 files changed, 2374 insertions(+), 2374 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java b/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java
index 309a547..4a8cd49 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteCompute.java
@@ -63,7 +63,7 @@ import java.util.concurrent.*;
  * or has rejected execution due to lack of resources. By default, in case of failover, next
  * load balanced node will be picked for job execution. Also jobs will never be re-routed to the
  * nodes they have failed on. This behavior can be changed by configuring any of the existing or a custom
- * {@link org.gridgain.grid.spi.failover.FailoverSpi} in grid configuration.
+ * {@link org.apache.ignite.spi.failover.FailoverSpi} in grid configuration.
  * <h1 class="header">Resource Injection</h1>
  * All compute jobs, including closures, runnables, callables, and tasks can be injected with
  * grid resources. Both, field and method based injections are supported. The following grid

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobBeforeFailover.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobBeforeFailover.java b/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobBeforeFailover.java
index 48067c6..82002eb 100644
--- a/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobBeforeFailover.java
+++ b/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobBeforeFailover.java
@@ -13,7 +13,7 @@ import java.lang.annotation.*;
 
 /**
  * This annotation allows to call a method right before job is submitted to
- * {@link org.gridgain.grid.spi.failover.FailoverSpi}. In this method job can re-create necessary state that was
+ * {@link org.apache.ignite.spi.failover.FailoverSpi}. In this method job can re-create necessary state that was
  * cleared, for example, in method with {@link ComputeJobAfterSend} annotation.
  * <p>
  * This annotation can be applied to methods of {@link ComputeJob} instances only. It is

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobContext.java b/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobContext.java
index a03641d..47174ad 100644
--- a/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobContext.java
@@ -35,7 +35,7 @@ import java.util.concurrent.*;
  * For example, if you need to cancel an actively running job from {@link org.apache.ignite.spi.collision.CollisionSpi}
  * you may choose to set some context attribute on the job to mark the fact
  * that a job was cancelled by grid and not by a user. Context attributes can
- * also be assigned in {@link org.gridgain.grid.spi.failover.FailoverSpi} prior to failing over a job.
+ * also be assigned in {@link org.apache.ignite.spi.failover.FailoverSpi} prior to failing over a job.
  * <p>
  * From within {@link ComputeTask#result(ComputeJobResult, List)} or {@link ComputeTask#reduce(List)} methods,
  * job context is available via {@link ComputeJobResult#getJobContext()} method which gives user the

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/compute/ComputeTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/compute/ComputeTask.java b/modules/core/src/main/java/org/apache/ignite/compute/ComputeTask.java
index cb81e8c..2340def 100644
--- a/modules/core/src/main/java/org/apache/ignite/compute/ComputeTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/compute/ComputeTask.java
@@ -72,7 +72,7 @@ import java.util.*;
  *      <li>
  *          If {@link ComputeJobResultPolicy#FAILOVER} policy is returned, then job will
  *          be failed over to another node for execution. The node to which job will get
- *          failed over is decided by {@link org.gridgain.grid.spi.failover.FailoverSpi} SPI implementation.
+ *          failed over is decided by {@link org.apache.ignite.spi.failover.FailoverSpi} SPI implementation.
  *          Note that if you use {@link ComputeTaskAdapter} adapter for {@code GridComputeTask}
  *          implementation, then it will automatically fail jobs to another node for 2
  *          known failure cases:

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/compute/ComputeTaskSpis.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/compute/ComputeTaskSpis.java b/modules/core/src/main/java/org/apache/ignite/compute/ComputeTaskSpis.java
index 1598d47..53941f0 100644
--- a/modules/core/src/main/java/org/apache/ignite/compute/ComputeTaskSpis.java
+++ b/modules/core/src/main/java/org/apache/ignite/compute/ComputeTaskSpis.java
@@ -17,7 +17,7 @@ import java.lang.annotation.*;
  * This annotation allows task to specify what SPIs it wants to use.
  * Starting with {@code GridGain 2.1} you can start multiple instances
  * of {@link GridLoadBalancingSpi},
- * {@link org.gridgain.grid.spi.failover.FailoverSpi}, and {@link org.apache.ignite.spi.checkpoint.CheckpointSpi}. If you do that,
+ * {@link org.apache.ignite.spi.failover.FailoverSpi}, and {@link org.apache.ignite.spi.checkpoint.CheckpointSpi}. If you do that,
  * you need to tell a task which SPI to use (by default it will use the fist
  * SPI in the list).
  */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index fc5349d..98f85a1 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@ -32,8 +32,8 @@ import org.apache.ignite.spi.collision.*;
 import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.deployment.*;
 import org.apache.ignite.spi.discovery.*;
-import org.gridgain.grid.spi.eventstorage.*;
-import org.gridgain.grid.spi.failover.*;
+import org.apache.ignite.spi.eventstorage.*;
+import org.apache.ignite.spi.failover.*;
 import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.spi.loadbalancing.*;
 import org.gridgain.grid.spi.loadbalancing.roundrobin.*;
@@ -1752,7 +1752,7 @@ public class IgniteConfiguration {
 
     /**
      * Should return fully configured event SPI implementation. If not provided,
-     * {@link org.gridgain.grid.spi.eventstorage.memory.MemoryEventStorageSpi} will be used.
+     * {@link org.apache.ignite.spi.eventstorage.memory.MemoryEventStorageSpi} will be used.
      *
      * @return Grid event SPI implementation or {@code null} to use default implementation.
      */
@@ -1761,9 +1761,9 @@ public class IgniteConfiguration {
     }
 
     /**
-     * Sets fully configured instance of {@link org.gridgain.grid.spi.eventstorage.EventStorageSpi}.
+     * Sets fully configured instance of {@link org.apache.ignite.spi.eventstorage.EventStorageSpi}.
      *
-     * @param evtSpi Fully configured instance of {@link org.gridgain.grid.spi.eventstorage.EventStorageSpi}.
+     * @param evtSpi Fully configured instance of {@link org.apache.ignite.spi.eventstorage.EventStorageSpi}.
      * @see IgniteConfiguration#getEventStorageSpi()
      */
     public void setEventStorageSpi(EventStorageSpi evtSpi) {
@@ -2053,7 +2053,7 @@ public class IgniteConfiguration {
 
     /**
      * Should return fully configured failover SPI implementation. If not provided,
-     * {@link org.gridgain.grid.spi.failover.always.AlwaysFailoverSpi} will be used.
+     * {@link org.apache.ignite.spi.failover.always.AlwaysFailoverSpi} will be used.
      *
      * @return Grid failover SPI implementation or {@code null} to use default implementation.
      */
@@ -2062,9 +2062,9 @@ public class IgniteConfiguration {
     }
 
     /**
-     * Sets fully configured instance of {@link org.gridgain.grid.spi.failover.FailoverSpi}.
+     * Sets fully configured instance of {@link org.apache.ignite.spi.failover.FailoverSpi}.
      *
-     * @param failSpi Fully configured instance of {@link org.gridgain.grid.spi.failover.FailoverSpi} or
+     * @param failSpi Fully configured instance of {@link org.apache.ignite.spi.failover.FailoverSpi} or
      *      {@code null} if no SPI provided.
      * @see IgniteConfiguration#getFailoverSpi()
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingCollisionSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingCollisionSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingCollisionSpi.java
index 0e356af..dd3c145 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingCollisionSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingCollisionSpi.java
@@ -54,7 +54,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  * <p>
  * <i>
  * Note that this SPI must always be used in conjunction with
- * {@link org.gridgain.grid.spi.failover.jobstealing.JobStealingFailoverSpi}.
+ * {@link org.apache.ignite.spi.failover.jobstealing.JobStealingFailoverSpi}.
  * Also note that job metrics update should be enabled in order for this SPI
  * to work properly (i.e. {@link org.apache.ignite.configuration.IgniteConfiguration#getMetricsUpdateFrequency()}
  * should be set to {@code 0} or greater value).

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/EventStorageSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/EventStorageSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/EventStorageSpi.java
new file mode 100644
index 0000000..4f57ba3
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/EventStorageSpi.java
@@ -0,0 +1,57 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.eventstorage;
+
+import org.apache.ignite.events.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.*;
+
+import java.util.*;
+
+/**
+ * This SPI provides local node events storage. SPI allows for recording local
+ * node events and querying recorded local events. Every node during its life-cycle
+ * goes through a serious of events such as task deployment, task execution, job
+ * execution, etc. For
+ * performance reasons GridGain is designed to store all locally produced events
+ * locally. These events can be later retrieved using either distributed query:
+ * <ul>
+ *      <li>{@link org.apache.ignite.IgniteEvents#remoteQuery(org.apache.ignite.lang.IgnitePredicate, long, int...)}</li>
+ * </ul>
+ * or local only query:
+ * <ul>
+ *      <li>{@link org.apache.ignite.IgniteEvents#localQuery(org.apache.ignite.lang.IgnitePredicate, int...)}</li>
+ * </ul>
+ * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
+ * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
+ * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
+ * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
+ * methods. Note again that calling methods from this interface on the obtained instance can lead
+ * to undefined behavior and explicitly not supported.
+ * @see org.apache.ignite.events.IgniteEvent
+ */
+public interface EventStorageSpi extends IgniteSpi {
+    /**
+     * Queries locally-stored events only. Events could be filtered out
+     * by given predicate filter.
+     *
+     * @param p Event predicate filter.
+     * @return Collection of events.
+     */
+    public <T extends IgniteEvent> Collection<T> localEvents(IgnitePredicate<T> p);
+
+    /**
+     * Records single event.
+     *
+     * @param evt Event that should be recorded.
+     * @throws org.apache.ignite.spi.IgniteSpiException If event recording failed for any reason.
+     */
+    public void record(IgniteEvent evt) throws IgniteSpiException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpi.java
new file mode 100644
index 0000000..7cf2790
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpi.java
@@ -0,0 +1,272 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.eventstorage.memory;
+
+import org.apache.ignite.*;
+import org.apache.ignite.events.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.eventstorage.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jdk8.backport.*;
+
+import java.util.*;
+
+import static org.apache.ignite.events.IgniteEventType.*;
+
+/**
+ * In-memory {@link org.apache.ignite.spi.eventstorage.EventStorageSpi} implementation. All events are
+ * kept in the FIFO queue. If no configuration is provided a default expiration
+ * {@link #DFLT_EXPIRE_AGE_MS} and default count {@link #DFLT_EXPIRE_COUNT} will
+ * be used.
+ * <p>
+ * It's recommended not to set huge size and unlimited TTL because this might
+ * lead to consuming a lot of memory and result in {@link OutOfMemoryError}.
+ * Both event expiration time and maximum queue size could be changed at
+ * runtime.
+ * <p>
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * This SPI has no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * The following configuration parameters are optional:
+ * <ul>
+ * <li>Event queue size (see {@link #setExpireCount(long)})</li>
+ * <li>Event time-to-live value (see {@link #setExpireAgeMs(long)})</li>
+ * <li>{@link #setFilter(org.apache.ignite.lang.IgnitePredicate)} - Event filter that should be used for decision to accept event.</li>
+ * </ul>
+ * <h2 class="header">Java Example</h2>
+ * GridMemoryEventStorageSpi is used by default and should be explicitly configured only
+ * if some SPI configuration parameters need to be overridden. Examples below insert own
+ * events queue size value that differs from default 10000.
+ * <pre name="code" class="java">
+ * GridMemoryEventStorageSpi = new GridMemoryEventStorageSpi();
+ *
+ * // Init own events size.
+ * spi.setExpireCount(2000);
+ *
+ * GridConfiguration cfg = new GridConfiguration();
+ *
+ * // Override default event storage SPI.
+ * cfg.setEventStorageSpi(spi);
+ *
+ * // Starts grid.
+ * G.start(cfg);
+ * </pre>
+ * <h2 class="header">Spring Example</h2>
+ * GridMemoryEventStorageSpi can be configured from Spring XML configuration file:
+ * <pre name="code" class="xml">
+ * &lt;bean id="grid.custom.cfg" class="org.gridgain.grid.GridConfiguration" singleton="true"&gt;
+ *         ...
+ *         &lt;property name="discoverySpi"&gt;
+ *             &lt;bean class="org.gridgain.grid.spi.eventStorage.memory.GridMemoryEventStorageSpi"&gt;
+ *                 &lt;property name="expireCount" value="2000"/&gt;
+ *             &lt;/bean&gt;
+ *         &lt;/property&gt;
+ *         ...
+ * &lt;/bean&gt;
+ * </pre>
+ * <p>
+ * <img src="http://www.gridgain.com/images/spring-small.png">
+ * <br>
+ * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
+ * @see org.apache.ignite.spi.eventstorage.EventStorageSpi
+ */
+@IgniteSpiMultipleInstancesSupport(true)
+public class MemoryEventStorageSpi extends IgniteSpiAdapter implements EventStorageSpi,
+    MemoryEventStorageSpiMBean {
+    /** Default event time to live value in milliseconds (value is {@link Long#MAX_VALUE}). */
+    public static final long DFLT_EXPIRE_AGE_MS = Long.MAX_VALUE;
+
+    /** Default expire count (value is {@code 10000}). */
+    public static final int DFLT_EXPIRE_COUNT = 10000;
+
+    /** */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Event time-to-live value in milliseconds. */
+    private long expireAgeMs = DFLT_EXPIRE_AGE_MS;
+
+    /** Maximum queue size. */
+    private long expireCnt = DFLT_EXPIRE_COUNT;
+
+    /** Events queue. */
+    private ConcurrentLinkedDeque8<IgniteEvent> evts = new ConcurrentLinkedDeque8<>();
+
+    /** Configured event predicate filter. */
+    private IgnitePredicate<IgniteEvent> filter;
+
+    /**
+     * Gets filter for events to be recorded.
+     *
+     * @return Filter to use.
+     */
+    public IgnitePredicate<IgniteEvent> getFilter() {
+        return filter;
+    }
+
+    /**
+     * Sets filter for events to be recorded.
+     *
+     * @param filter Filter to use.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setFilter(IgnitePredicate<IgniteEvent> filter) {
+        this.filter = filter;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(String gridName) throws IgniteSpiException {
+        // Start SPI start stopwatch.
+        startStopwatch();
+
+        assertParameter(expireCnt > 0, "expireCnt > 0");
+        assertParameter(expireAgeMs > 0, "expireAgeMs > 0");
+
+        // Ack parameters.
+        if (log.isDebugEnabled()) {
+            log.debug(configInfo("expireAgeMs", expireAgeMs));
+            log.debug(configInfo("expireCnt", expireCnt));
+        }
+
+        registerMBean(gridName, this, MemoryEventStorageSpiMBean.class);
+
+        // Ack ok start.
+        if (log.isDebugEnabled())
+            log.debug(startInfo());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        unregisterMBean();
+
+        // Reset events.
+        evts.clear();
+
+        // Ack ok stop.
+        if (log.isDebugEnabled())
+            log.debug(stopInfo());
+    }
+
+    /**
+     * Sets events expiration time. All events that exceed this value
+     * will be removed from the queue when next event comes.
+     * <p>
+     * If not provided, default value is {@link #DFLT_EXPIRE_AGE_MS}.
+     *
+     * @param expireAgeMs Expiration time in milliseconds.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setExpireAgeMs(long expireAgeMs) {
+        this.expireAgeMs = expireAgeMs;
+    }
+
+    /**
+     * Sets events queue size. Events will be filtered out when new request comes.
+     * <p>
+     * If not provided, default value {@link #DFLT_EXPIRE_COUNT} will be used.
+     *
+     * @param expireCnt Maximum queue size.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setExpireCount(long expireCnt) {
+        this.expireCnt = expireCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getExpireAgeMs() {
+        return expireAgeMs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getExpireCount() {
+        return expireCnt;
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getQueueSize() {
+        return evts.sizex();
+    }
+
+    /** {@inheritDoc} */
+    @Override public void clearAll() {
+        evts.clear();
+    }
+
+    /** {@inheritDoc} */
+    @Override public <T extends IgniteEvent> Collection<T> localEvents(IgnitePredicate<T> p) {
+        A.notNull(p, "p");
+
+        cleanupQueue();
+
+        return F.retain((Collection<T>)evts, true, p);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void record(IgniteEvent evt) throws IgniteSpiException {
+        assert evt != null;
+
+        // Filter out events.
+        if (filter == null || filter.apply(evt)) {
+            cleanupQueue();
+
+            evts.add(evt);
+
+            // Make sure to filter out metrics updates to prevent log from flooding.
+            if (evt.type() != EVT_NODE_METRICS_UPDATED && log.isDebugEnabled())
+                log.debug("Event recorded: " + evt);
+        }
+    }
+
+    /**
+     * Method cleans up all events that either outnumber queue size
+     * or exceeds time-to-live value. It does none if someone else
+     * cleans up queue (lock is locked) or if there are queue readers
+     * (readersNum > 0).
+     */
+    private void cleanupQueue() {
+        long now = U.currentTimeMillis();
+
+        long queueOversize = evts.sizex() - expireCnt;
+
+        for (int i = 0; i < queueOversize && evts.sizex() > expireCnt; i++) {
+            IgniteEvent expired = evts.poll();
+
+            if (log.isDebugEnabled())
+                log.debug("Event expired by count: " + expired);
+        }
+
+        while (true) {
+            ConcurrentLinkedDeque8.Node<IgniteEvent> node = evts.peekx();
+
+            if (node == null) // Queue is empty.
+                break;
+
+            IgniteEvent evt = node.item();
+
+            if (evt == null) // Competing with another thread.
+                continue;
+
+            if (now - evt.timestamp() < expireAgeMs)
+                break;
+
+            if (evts.unlinkx(node) && log.isDebugEnabled())
+                log.debug("Event expired by age: " + node.item());
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(MemoryEventStorageSpi.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpiMBean.java b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpiMBean.java
new file mode 100644
index 0000000..e3d249f
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/MemoryEventStorageSpiMBean.java
@@ -0,0 +1,57 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.eventstorage.memory;
+
+import org.apache.ignite.mbean.*;
+import org.apache.ignite.spi.*;
+
+/**
+ * Management bean for {@link MemoryEventStorageSpi}.
+ * Beside properties defined for every SPI bean this one gives access to:
+ * <ul>
+ * <li>Event expiration time (see {@link #getExpireAgeMs()})</li>
+ * <li>Maximum queue size (see {@link #getExpireCount()})</li>
+ * <li>Method that removes all items from queue (see {@link #clearAll()})</li>
+ * </ul>
+ */
+@IgniteMBeanDescription("MBean that provides access to memory event storage SPI configuration.")
+public interface MemoryEventStorageSpiMBean extends IgniteSpiManagementMBean {
+    /**
+     * Gets event time-to-live value. Implementation must guarantee
+     * that event would not be accessible if its lifetime exceeds this value.
+     *
+     * @return Event time-to-live.
+     */
+    @IgniteMBeanDescription("Event time-to-live value.")
+    public long getExpireAgeMs();
+
+    /**
+     * Gets maximum event queue size. New incoming events will oust
+     * oldest ones if queue size exceeds this limit.
+     *
+     * @return Maximum event queue size.
+     */
+    @IgniteMBeanDescription("Maximum event queue size.")
+    public long getExpireCount();
+
+    /**
+     * Gets current queue size of the event queue.
+     *
+     * @return Current queue size of the event queue.
+     */
+    @IgniteMBeanDescription("Current event queue size.")
+    public long getQueueSize();
+
+    /**
+     * Removes all events from the event queue.
+     */
+    @IgniteMBeanDescription("Removes all events from the event queue.")
+    public void clearAll();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/package.html b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/package.html
new file mode 100644
index 0000000..7b8a251
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/memory/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains <b>default</b> in-memory implementation for event storage SPI.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/package.html b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/package.html
new file mode 100644
index 0000000..83f8dd9
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/eventstorage/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains APIs for event storage SPI.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/failover/FailoverContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/failover/FailoverContext.java b/modules/core/src/main/java/org/apache/ignite/spi/failover/FailoverContext.java
new file mode 100644
index 0000000..d66ec56
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/failover/FailoverContext.java
@@ -0,0 +1,47 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.compute.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.spi.loadbalancing.*;
+import java.util.*;
+
+/**
+ * This interface defines a set of operations available to failover SPI
+ * one a given failed job.
+ */
+public interface FailoverContext {
+    /**
+     * Gets current task session.
+     *
+     * @return Grid task session.
+     */
+    public ComputeTaskSession getTaskSession();
+
+    /**
+     * Gets failed result of job execution.
+     *
+     * @return Result of a failed job.
+     */
+    public ComputeJobResult getJobResult();
+
+    /**
+     * Gets the next balanced node for failed job. Internally this method will
+     * delegate to load balancing SPI (see {@link GridLoadBalancingSpi} to
+     * determine the optimal node for execution.
+     *
+     * @param top Topology to pick balanced node from.
+     * @return The next balanced node.
+     * @throws GridException If anything failed.
+     */
+    public ClusterNode getBalancedNode(List<ClusterNode> top) throws GridException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/failover/FailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/failover/FailoverSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/failover/FailoverSpi.java
new file mode 100644
index 0000000..e593c87
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/failover/FailoverSpi.java
@@ -0,0 +1,60 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.spi.*;
+
+import java.util.*;
+
+/**
+ * Failover SPI provides developer with ability to supply custom logic for handling
+ * failed execution of a grid job. Job execution can fail for a number of reasons:
+ * <ul>
+ *      <li>Job execution threw an exception (runtime, assertion or error)</li>
+ *      <li>Node on which job was execution left topology (crashed or stopped)</li>
+ *      <li>Collision SPI on remote node cancelled a job before it got a chance to execute (job rejection).</li>
+ * </ul>
+ * In all cases failover SPI takes failed job (as failover context) and list of all
+ * grid nodes and provides another node on which the job execution will be retried.
+ * It is up to failover SPI to make sure that job is not mapped to the node it
+ * failed on. The failed node can be retrieved from
+ * {@link org.apache.ignite.compute.ComputeJobResult#getNode() GridFailoverContext.getJobResult().node()}
+ * method.
+ * <p>
+ * GridGain comes with the following built-in failover SPI implementations:
+ * <ul>
+ *      <li>{@link org.apache.ignite.spi.failover.never.NeverFailoverSpi}</li>
+ *      <li>{@link org.apache.ignite.spi.failover.always.AlwaysFailoverSpi}</li>
+ *      <li>{@link org.apache.ignite.spi.failover.jobstealing.JobStealingFailoverSpi}</li>
+ * </ul>
+ * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
+ * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
+ * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
+ * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
+ * methods. Note again that calling methods from this interface on the obtained instance can lead
+ * to undefined behavior and explicitly not supported.
+ */
+public interface FailoverSpi extends IgniteSpi {
+    /**
+     * This method is called when method {@link org.apache.ignite.compute.ComputeTask#result(org.apache.ignite.compute.ComputeJobResult, List)} returns
+     * value {@link org.apache.ignite.compute.ComputeJobResultPolicy#FAILOVER} policy indicating that the result of
+     * job execution must be failed over. Implementation of this method should examine failover
+     * context and choose one of the grid nodes from supplied {@code topology} to retry job execution
+     * on it. For best performance it is advised that {@link FailoverContext#getBalancedNode(List)}
+     * method is used to select node for execution of failed job.
+     *
+     * @param ctx Failover context.
+     * @param top Collection of all grid nodes within task topology (may include failed node).
+     * @return New node to route this job to or {@code null} if new node cannot be picked.
+     *      If job failover fails (returns {@code null}) the whole task will be failed.
+     */
+    public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top);
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpi.java
new file mode 100644
index 0000000..7a8e591
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpi.java
@@ -0,0 +1,238 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.always;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.failover.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.util.*;
+
+/**
+ * Failover SPI that always reroutes a failed job to another node.
+ * Note, that at first an attempt will be made to reroute the failed job
+ * to a node that was not part of initial split for a better chance of
+ * success. If no such nodes are available, then an attempt will be made to
+ * reroute the failed job to the nodes in the initial split minus the node
+ * the job is failed on. If none of the above attempts succeeded, then the
+ * job will not be failed over and {@code null} will be returned.
+ * <p>
+ * <h1 class="header">Configuration</h1>
+ * This SPI is default failover SPI and does not have to be explicitly
+ * configured unless configuration parameters need to be changed.
+ * <h2 class="header">Mandatory</h2>
+ * This SPI has no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * This SPI has following optional configuration parameters:
+ * <ul>
+ *      <li>
+ *          Maximum failover attempts for a single job (see {@link #setMaximumFailoverAttempts(int)}).
+ *          If maximum failover attempts is reached, then job will not be failed-over and,
+ *          hence, will fail.
+ *      </li>
+ * </ul>
+ * Here is a Java example how to configure grid with {@code GridAlwaysFailoverSpi} failover SPI.
+ * <pre name="code" class="java">
+ * GridAlwaysFailoverSpi spi = new GridAlwaysFailoverSpi();
+ *
+ * // Override maximum failover attempts.
+ * spi.setMaximumFailoverAttempts(5);
+ *
+ * GridConfiguration cfg = new GridConfiguration();
+ *
+ * // Override default failover SPI.
+ * cfg.setFailoverSpiSpi(spi);
+ *
+ * // Starts grid.
+ * G.start(cfg);
+ * </pre>
+ * Here is an example of how to configure {@code GridAlwaysFailoverSpi} from Spring XML configuration file.
+ * <pre name="code" class="xml">
+ * &lt;property name="failoverSpi"&gt;
+ *     &lt;bean class="org.gridgain.grid.spi.failover.always.GridAlwaysFailoverSpi"&gt;
+ *         &lt;property name="maximumFailoverAttempts" value="5"/&gt;
+ *     &lt;/bean&gt;
+ * &lt;/property&gt;
+ * </pre>
+ * <p>
+ * <img src="http://www.gridgain.com/images/spring-small.png">
+ * <br>
+ * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
+ * @see org.apache.ignite.spi.failover.FailoverSpi
+ */
+@IgniteSpiMultipleInstancesSupport(true)
+@IgniteSpiConsistencyChecked(optional = true)
+public class AlwaysFailoverSpi extends IgniteSpiAdapter implements FailoverSpi, AlwaysFailoverSpiMBean {
+    /** Maximum number of attempts to execute a failed job on another node (default is {@code 5}). */
+    public static final int DFLT_MAX_FAILOVER_ATTEMPTS = 5;
+
+    /**
+     * Name of job context attribute containing all nodes a job failed on.
+     *
+     * @see org.apache.ignite.compute.ComputeJobContext
+     */
+    public static final String FAILED_NODE_LIST_ATTR = "gg:failover:failednodelist";
+
+    /** Maximum attempts attribute key should be the same on all nodes. */
+    public static final String MAX_FAILOVER_ATTEMPT_ATTR = "gg:failover:maxattempts";
+
+    /** Injected grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Maximum number of attempts to execute a failed job on another node. */
+    private int maxFailoverAttempts = DFLT_MAX_FAILOVER_ATTEMPTS;
+
+    /** Number of jobs that were failed over. */
+    private int totalFailoverJobs;
+
+    /** {@inheritDoc} */
+    @Override public int getMaximumFailoverAttempts() {
+        return maxFailoverAttempts;
+    }
+
+    /**
+     * Sets maximum number of attempts to execute a failed job on another node.
+     * If not specified, {@link #DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
+     *
+     * @param maxFailoverAttempts Maximum number of attempts to execute a failed job on another node.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setMaximumFailoverAttempts(int maxFailoverAttempts) {
+        this.maxFailoverAttempts = maxFailoverAttempts;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalFailoverJobsCount() {
+        return totalFailoverJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Map<String, Object> getNodeAttributes() throws IgniteSpiException {
+        return F.<String, Object>asMap(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR), maxFailoverAttempts);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(String gridName) throws IgniteSpiException {
+        // Start SPI start stopwatch.
+        startStopwatch();
+
+        assertParameter(maxFailoverAttempts >= 0, "maxFailoverAttempts >= 0");
+
+        if (log.isDebugEnabled())
+            log.debug(configInfo("maximumFailoverAttempts", maxFailoverAttempts));
+
+        registerMBean(gridName, this, AlwaysFailoverSpiMBean.class);
+
+        // Ack ok start.
+        if (log.isDebugEnabled())
+            log.debug(startInfo());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        unregisterMBean();
+
+        // Ack ok stop.
+        if (log.isDebugEnabled())
+            log.debug(stopInfo());
+    }
+
+    /** {@inheritDoc} */
+    @SuppressWarnings("unchecked")
+    @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top) {
+        assert ctx != null;
+        assert top != null;
+
+        if (log.isDebugEnabled())
+            log.debug("Received failed job result: " + ctx.getJobResult());
+
+        if (top.isEmpty()) {
+            U.warn(log, "Received empty topology for failover and is forced to fail.");
+
+            // Nowhere to failover to.
+            return null;
+        }
+
+        Collection<UUID> failedNodes = ctx.getJobResult().getJobContext().getAttribute(FAILED_NODE_LIST_ATTR);
+
+        if (failedNodes == null)
+            failedNodes = U.newHashSet(1);
+
+        Integer failoverCnt = failedNodes.size();
+
+        if (failoverCnt >= maxFailoverAttempts) {
+            U.warn(log, "Job failover failed because number of maximum failover attempts is exceeded [failedJob=" +
+                ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']');
+
+            return null;
+        }
+
+        failedNodes.add(ctx.getJobResult().getNode().id());
+
+        // Copy.
+        List<ClusterNode> newTop = new ArrayList<>(top.size());
+
+        for (ClusterNode node : top)
+            if (!failedNodes.contains(node.id()))
+                newTop.add(node);
+
+        if (newTop.isEmpty()) {
+            U.warn(log, "Received topology with only nodes that job had failed on (forced to fail) [failedNodes=" +
+                failedNodes + ']');
+
+            // Nowhere to failover to.
+            return null;
+        }
+
+        try {
+            ClusterNode node = ctx.getBalancedNode(newTop);
+
+            if (node == null)
+                U.warn(log, "Load balancer returned null node for topology: " + newTop);
+            else {
+                // Increment failover count.
+                ctx.getJobResult().getJobContext().setAttribute(FAILED_NODE_LIST_ATTR, failedNodes);
+
+                totalFailoverJobs++;
+            }
+
+            if (node != null)
+                U.warn(log, "Failed over job to a new node [newNode=" + node.id() +
+                    ", oldNode=" + ctx.getJobResult().getNode().id() +
+                    ", sesId=" + ctx.getTaskSession().getId() +
+                    ", job=" + ctx.getJobResult().getJob() +
+                    ", jobCtx=" + ctx.getJobResult().getJobContext() +
+                    ", task=" + ctx.getTaskSession().getTaskName() + ']');
+
+            return node;
+        }
+        catch (GridException e) {
+            U.error(log, "Failed to get next balanced node for failover: " + ctx, e);
+
+            return null;
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override protected List<String> getConsistentAttributeNames() {
+        return Collections.singletonList(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR));
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(AlwaysFailoverSpi.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpiMBean.java b/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpiMBean.java
new file mode 100644
index 0000000..1fb4c59
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/failover/always/AlwaysFailoverSpiMBean.java
@@ -0,0 +1,36 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.always;
+
+import org.apache.ignite.mbean.*;
+import org.apache.ignite.spi.*;
+
+/**
+ * Management bean for {@link AlwaysFailoverSpi}.
+ */
+@IgniteMBeanDescription("MBean that provides access to always failover SPI configuration.")
+public interface AlwaysFailoverSpiMBean extends IgniteSpiManagementMBean {
+    /**
+     * Gets maximum number of attempts to execute a failed job on another node.
+     * If not specified, {@link AlwaysFailoverSpi#DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
+     *
+     * @return Maximum number of attempts to execute a failed job on another node.
+     */
+    @IgniteMBeanDescription("Maximum number of attempts to execute a failed job on another node.")
+    public int getMaximumFailoverAttempts();
+
+    /**
+     * Get total number of jobs that were failed over.
+     *
+     * @return Total number of failed over jobs.
+     */
+    @IgniteMBeanDescription("Total number of jobs that were failed over.")
+    public int getTotalFailoverJobsCount();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/failover/always/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/failover/always/package.html b/modules/core/src/main/java/org/apache/ignite/spi/failover/always/package.html
new file mode 100644
index 0000000..6299303
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/failover/always/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains <b>default</b> "always" failover SPI.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpi.java
new file mode 100644
index 0000000..45c5f3d
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpi.java
@@ -0,0 +1,343 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.jobstealing;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.apache.ignite.spi.failover.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.util.*;
+
+import static org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi.*;
+
+/**
+ * Job stealing failover SPI needs to always be used in conjunction with
+ * {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi} SPI. When {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi}
+ * receives a <b>steal</b> request and rejects jobs so they can be routed to the
+ * appropriate node, it is the responsibility of this {@code GridJobStealingFailoverSpi}
+ * SPI to make sure that the job is indeed re-routed to the node that has sent the initial
+ * request to <b>steal</b> it.
+ * <p>
+ * {@code GridJobStealingFailoverSpi} knows where to route a job based on the
+ * {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi#THIEF_NODE_ATTR} job context attribute (see {@link org.apache.ignite.compute.ComputeJobContext}).
+ * Prior to rejecting a job,  {@link org.apache.ignite.spi.collision.jobstealing.JobStealingCollisionSpi} will populate this
+ * attribute with the ID of the node that wants to <b>steal</b> this job.
+ * Then {@code GridJobStealingFailoverSpi} will read the value of this attribute and
+ * route the job to the node specified.
+ * <p>
+ * If failure is caused by a node crash, and not by <b>steal</b> request, then this
+ * SPI behaves identically to {@link org.apache.ignite.spi.failover.always.AlwaysFailoverSpi}, and tries to find the
+ * next balanced node to fail-over a job to.
+ * <p>
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * This SPI has no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * This SPI has following optional configuration parameters:
+ * <ul>
+ * <li>Maximum failover attempts for a single job (see {@link #setMaximumFailoverAttempts(int)}).</li>
+ * </ul>
+ * Here is a Java example on how to configure grid with {@code GridJobStealingFailoverSpi}.
+ * <pre name="code" class="java">
+ * GridJobStealingFailoverSpi spi = new GridJobStealingFailoverSpi();
+ *
+ * // Override maximum failover attempts.
+ * spi.setMaximumFailoverAttempts(5);
+ *
+ * GridConfiguration cfg = new GridConfiguration();
+ *
+ * // Override default failover SPI.
+ * cfg.setFailoverSpiSpi(spi);
+ *
+ * // Starts grid.
+ * G.start(cfg);
+ </pre>
+ * Here is an example of how to configure {@code GridJobStealingFailoverSpi} from Spring XML configuration file.
+ * <pre name="code" class="xml">
+ * &lt;property name="failoverSpi"&gt;
+ *     &lt;bean class="org.gridgain.grid.spi.failover.jobstealing.GridJobStealingFailoverSpi"&gt;
+ *         &lt;property name="maximumFailoverAttempts" value="5"/&gt;
+ *     &lt;/bean&gt;
+ * &lt;/property&gt;
+ * </pre>
+ * <p>
+ * <img src="http://www.gridgain.com/images/spring-small.png">
+ * <br>
+ * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
+ * @see org.apache.ignite.spi.failover.FailoverSpi
+ */
+@IgniteSpiMultipleInstancesSupport(true)
+@IgniteSpiConsistencyChecked(optional = true)
+public class JobStealingFailoverSpi extends IgniteSpiAdapter implements FailoverSpi,
+    JobStealingFailoverSpiMBean {
+    /** Maximum number of attempts to execute a failed job on another node (default is {@code 5}). */
+    public static final int DFLT_MAX_FAILOVER_ATTEMPTS = 5;
+
+    /**
+     * Name of job context attribute containing all nodes a job failed on. Note
+     * that this list does not include nodes that a job was stolen from.
+     *
+     * @see org.apache.ignite.compute.ComputeJobContext
+     */
+    static final String FAILED_NODE_LIST_ATTR = "gg:failover:failednodelist";
+
+    /**
+     * Name of job context attribute containing current failover attempt count.
+     * This count is incremented every time the same job gets failed over to
+     * another node for execution if it was not successfully stolen.
+     *
+     * @see org.apache.ignite.compute.ComputeJobContext
+     */
+    static final String FAILOVER_ATTEMPT_COUNT_ATTR = "gg:failover:attemptcount";
+
+    /** Maximum failover attempts job context attribute name. */
+    private static final String MAX_FAILOVER_ATTEMPT_ATTR = "gg:failover:maxattempts";
+
+    /** Injected grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Maximum number of attempts to execute a failed job on another node. */
+    private int maxFailoverAttempts = DFLT_MAX_FAILOVER_ATTEMPTS;
+
+    /** Number of jobs that were failed over. */
+    private int totalFailedOverJobs;
+
+    /** Number of jobs that were stolen. */
+    private int totalStolenJobs;
+
+    /** {@inheritDoc} */
+    @Override public int getMaximumFailoverAttempts() {
+        return maxFailoverAttempts;
+    }
+
+    /**
+     * Sets maximum number of attempts to execute a failed job on another node.
+     * If job gets stolen and thief node exists then it is not considered as
+     * failed job.
+     * If not specified, {@link #DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
+     * <p>
+     * Note this value must be identical for all grid nodes in the grid.
+     *
+     * @param maxFailoverAttempts Maximum number of attempts to execute a failed
+     *      job on another node.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setMaximumFailoverAttempts(int maxFailoverAttempts) {
+        this.maxFailoverAttempts = maxFailoverAttempts;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalFailedOverJobsCount() {
+        return totalFailedOverJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTotalStolenJobsCount() {
+        return totalStolenJobs;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Map<String, Object> getNodeAttributes() throws IgniteSpiException {
+        return F.<String, Object>asMap(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR), maxFailoverAttempts);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(String gridName) throws IgniteSpiException {
+        // Start SPI start stopwatch.
+        startStopwatch();
+
+        assertParameter(maxFailoverAttempts >= 0, "maximumFailoverAttempts >= 0");
+
+        if (log.isDebugEnabled())
+            log.debug(configInfo("maxFailoverAttempts", maxFailoverAttempts));
+
+        registerMBean(gridName, this, JobStealingFailoverSpiMBean.class);
+
+        // Ack ok start.
+        if (log.isDebugEnabled())
+            log.debug(startInfo());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        unregisterMBean();
+
+        // Ack ok stop.
+        if (log.isDebugEnabled())
+            log.debug(stopInfo());
+    }
+
+    /** {@inheritDoc} */
+    @SuppressWarnings("unchecked")
+    @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top) {
+        assert ctx != null;
+        assert top != null;
+
+        if (top.isEmpty()) {
+            U.warn(log, "Received empty subgrid and is forced to fail.");
+
+            // Nowhere to failover to.
+            return null;
+        }
+
+        Integer failoverCnt = ctx.getJobResult().getJobContext().getAttribute(FAILOVER_ATTEMPT_COUNT_ATTR);
+
+        if (failoverCnt == null)
+            failoverCnt = 0;
+
+        if (failoverCnt > maxFailoverAttempts) {
+            U.error(log, "Failover count exceeded maximum failover attempts parameter [failedJob=" +
+                ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']');
+
+            return null;
+        }
+
+        if (failoverCnt == maxFailoverAttempts) {
+            U.warn(log, "Job failover failed because number of maximum failover attempts is exceeded [failedJob=" +
+                ctx.getJobResult().getJob() + ", maxFailoverAttempts=" + maxFailoverAttempts + ']');
+
+            return null;
+        }
+
+        try {
+            ClusterNode thief = null;
+            boolean isNodeFailed = false;
+
+            UUID thiefId = ctx.getJobResult().getJobContext().getAttribute(THIEF_NODE_ATTR);
+
+            if (thiefId != null) {
+                // Clear attribute.
+                ctx.getJobResult().getJobContext().setAttribute(THIEF_NODE_ATTR, null);
+
+                thief = getSpiContext().node(thiefId);
+
+                if (thief != null) {
+                    // If sender != receiver.
+                    if (thief.equals(ctx.getJobResult().getNode())) {
+                        U.error(log, "Job stealer node is equal to job node (will fail-over using " +
+                            "load-balancing): " + thief.id());
+
+                        isNodeFailed = true;
+
+                        thief = null;
+                    }
+                    else if (!top.contains(thief)) {
+                        U.warn(log, "Thief node is not part of task topology  (will fail-over using load-balancing) " +
+                            "[thief=" + thiefId + ", topSize=" + top.size() + ']');
+
+                        thief = null;
+                    }
+
+                    if (log.isDebugEnabled())
+                        log.debug("Failing-over stolen job [from=" + ctx.getJobResult().getNode() + ", to=" +
+                            thief + ']');
+                }
+                else {
+                    isNodeFailed = true;
+
+                    U.warn(log, "Thief node left grid (will fail-over using load balancing): " + thiefId);
+                }
+            }
+            else
+                isNodeFailed = true;
+
+            // If job was not stolen or stolen node is not part of topology,
+            // then failover the regular way.
+            if (thief == null) {
+                Collection<UUID> failedNodes = ctx.getJobResult().getJobContext().getAttribute(FAILED_NODE_LIST_ATTR);
+
+                if (failedNodes == null)
+                    failedNodes = U.newHashSet(1);
+
+                if (isNodeFailed)
+                    failedNodes.add(ctx.getJobResult().getNode().id());
+
+                // Set updated failed node set into job context.
+                ctx.getJobResult().getJobContext().setAttribute(FAILED_NODE_LIST_ATTR, failedNodes);
+
+                // Copy.
+                List<ClusterNode> newTop = new ArrayList<>(top.size());
+
+                for (ClusterNode n : top) {
+                    // Add non-failed nodes to topology.
+                    if (!failedNodes.contains(n.id()))
+                        newTop.add(n);
+                }
+
+                if (newTop.isEmpty()) {
+                    U.warn(log, "Received topology with only nodes that job had failed on (forced to fail) " +
+                        "[failedNodes=" + failedNodes + ']');
+
+                    // Nowhere to failover to.
+                    return null;
+                }
+
+                thief = ctx.getBalancedNode(newTop);
+
+                if (thief == null)
+                    U.warn(log, "Load balancer returned null node for topology: " + newTop);
+            }
+
+            if (isNodeFailed)
+                // This is a failover, not stealing.
+                failoverCnt++;
+
+            // Even if it was stealing and thief node left grid we assume
+            // that it is failover because of the fail.
+            ctx.getJobResult().getJobContext().setAttribute(FAILOVER_ATTEMPT_COUNT_ATTR, failoverCnt);
+
+            if (thief != null) {
+                totalFailedOverJobs++;
+
+                if (isNodeFailed) {
+                    U.warn(log, "Failed over job to a new node [newNode=" + thief.id() +
+                        ", oldNode=" + ctx.getJobResult().getNode().id() +
+                        ", sesId=" + ctx.getTaskSession().getId() +
+                        ", job=" + ctx.getJobResult().getJob() +
+                        ", jobCtx=" + ctx.getJobResult().getJobContext() +
+                        ", task=" + ctx.getTaskSession().getTaskName() + ']');
+                }
+                else {
+                    totalStolenJobs++;
+                    if (log.isInfoEnabled())
+                        log.info("Stealing job to a new node [newNode=" + thief.id() +
+                            ", oldNode=" + ctx.getJobResult().getNode().id() +
+                            ", sesId=" + ctx.getTaskSession().getId() +
+                            ", job=" + ctx.getJobResult().getJob() +
+                            ", jobCtx=" + ctx.getJobResult().getJobContext() +
+                            ", task=" + ctx.getTaskSession().getTaskName() + ']');
+                }
+            }
+
+            return thief;
+        }
+        catch (GridException e) {
+            U.error(log, "Failed to get next balanced node for failover: " + ctx, e);
+
+            return null;
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override protected List<String> getConsistentAttributeNames() {
+        return Collections.singletonList(createSpiAttributeName(MAX_FAILOVER_ATTEMPT_ATTR));
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(JobStealingFailoverSpi.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpiMBean.java b/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpiMBean.java
new file mode 100644
index 0000000..39ddbb6
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/JobStealingFailoverSpiMBean.java
@@ -0,0 +1,46 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.jobstealing;
+
+import org.apache.ignite.mbean.*;
+import org.apache.ignite.spi.*;
+
+/**
+ * Management bean for {@link JobStealingFailoverSpi}.
+ */
+@IgniteMBeanDescription("MBean that provides access to job stealing failover SPI configuration.")
+public interface JobStealingFailoverSpiMBean extends IgniteSpiManagementMBean {
+    /**
+     * Gets maximum number of attempts to execute a failed job on another node.
+     * If job gets stolen and thief node exists then it is not considered as
+     * failed job.
+     * If not specified, {@link JobStealingFailoverSpi#DFLT_MAX_FAILOVER_ATTEMPTS} value will be used.
+     *
+     * @return Maximum number of attempts to execute a failed job on another node.
+     */
+    @IgniteMBeanDescription("Maximum number of attempts to execute a failed job on another node.")
+    public int getMaximumFailoverAttempts();
+
+    /**
+     * Get total number of jobs that were failed over including stolen ones.
+     *
+     * @return Total number of failed over jobs.
+     */
+    @IgniteMBeanDescription("Total number of jobs that were failed over including stolen ones.")
+    public int getTotalFailedOverJobsCount();
+
+    /**
+     * Get total number of jobs that were stolen.
+     *
+     * @return Total number of stolen jobs.
+     */
+    @IgniteMBeanDescription("Total number of jobs that were stolen.")
+    public int getTotalStolenJobsCount();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/package.html b/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/package.html
new file mode 100644
index 0000000..ebb77c2
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/failover/jobstealing/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains job stealing failover SPI.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpi.java
new file mode 100644
index 0000000..eb38726
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpi.java
@@ -0,0 +1,94 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.never;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.failover.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import java.util.*;
+
+/**
+ * This class provides failover SPI implementation that never fails over. This implementation
+ * never fails over a failed job by always returning {@code null} out of
+ * {@link org.apache.ignite.spi.failover.FailoverSpi#failover(org.apache.ignite.spi.failover.FailoverContext, List)} method.
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * This SPI has no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * This SPI has no optional configuration parameters.
+ * <p>
+ * Here is a Java example on how to configure grid with {@code GridNeverFailoverSpi}:
+ * <pre name="code" class="java">
+ * GridNeverFailoverSpi spi = new GridNeverFailoverSpi();
+ *
+ * GridConfiguration cfg = new GridConfiguration();
+ *
+ * // Override default failover SPI.
+ * cfg.setFailoverSpiSpi(spi);
+ *
+ * // Starts grid.
+ * G.start(cfg);
+ * </pre>
+ * Here is an example on how to configure grid with {@code GridNeverFailoverSpi} from Spring XML configuration file:
+ * <pre name="code" class="xml">
+ * &lt;property name="failoverSpi"&gt;
+ *     &lt;bean class="org.gridgain.grid.spi.failover.never.GridNeverFailoverSpi"/&gt;
+ * &lt;/property&gt;
+ * </pre>
+ * <p>
+ * <img src="http://www.gridgain.com/images/spring-small.png">
+ * <br>
+ * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
+ * @see org.apache.ignite.spi.failover.FailoverSpi
+ */
+@IgniteSpiMultipleInstancesSupport(true)
+public class NeverFailoverSpi extends IgniteSpiAdapter implements FailoverSpi, NeverFailoverSpiMBean {
+    /** Injected grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(String gridName) throws IgniteSpiException {
+        // Start SPI start stopwatch.
+        startStopwatch();
+
+        registerMBean(gridName, this, NeverFailoverSpiMBean.class);
+
+        // Ack ok start.
+        if (log.isDebugEnabled())
+            log.debug(startInfo());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        unregisterMBean();
+
+        // Ack ok stop.
+        if (log.isDebugEnabled())
+            log.debug(stopInfo());
+    }
+
+    /** {@inheritDoc} */
+    @Override public ClusterNode failover(FailoverContext ctx, List<ClusterNode> top) {
+        U.warn(log, "Returning 'null' node for failed job (failover will not happen) [job=" +
+            ctx.getJobResult().getJob() + ", task=" +  ctx.getTaskSession().getTaskName() +
+            ", sessionId=" + ctx.getTaskSession().getId() + ']');
+
+        return null;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(NeverFailoverSpi.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpiMBean.java b/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpiMBean.java
new file mode 100644
index 0000000..ceb5fe7
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/failover/never/NeverFailoverSpiMBean.java
@@ -0,0 +1,21 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.failover.never;
+
+import org.apache.ignite.mbean.*;
+import org.apache.ignite.spi.*;
+
+/**
+ * Management bean for {@link NeverFailoverSpi}.
+ */
+@IgniteMBeanDescription("MBean that provides access to never failover SPI configuration.")
+public interface NeverFailoverSpiMBean extends IgniteSpiManagementMBean {
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/failover/never/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/failover/never/package.html b/modules/core/src/main/java/org/apache/ignite/spi/failover/never/package.html
new file mode 100644
index 0000000..81e38aa
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/failover/never/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains "never" failover SPI.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/apache/ignite/spi/failover/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/failover/package.html b/modules/core/src/main/java/org/apache/ignite/spi/failover/package.html
new file mode 100644
index 0000000..3b28cd2
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/failover/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains APIs for failover SPI.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
index 716c435..4a0774d 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
@@ -43,10 +43,10 @@ import org.apache.ignite.spi.deployment.local.*;
 import org.apache.ignite.spi.discovery.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.*;
-import org.gridgain.grid.spi.eventstorage.*;
-import org.gridgain.grid.spi.eventstorage.memory.*;
-import org.gridgain.grid.spi.failover.*;
-import org.gridgain.grid.spi.failover.always.*;
+import org.apache.ignite.spi.eventstorage.*;
+import org.apache.ignite.spi.eventstorage.memory.*;
+import org.apache.ignite.spi.failover.*;
+import org.apache.ignite.spi.failover.always.*;
 import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.spi.loadbalancing.*;
 import org.gridgain.grid.spi.loadbalancing.roundrobin.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java
index b595b6c..db12d53 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java
@@ -20,7 +20,7 @@ import org.gridgain.grid.kernal.managers.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.managers.deployment.*;
 import org.gridgain.grid.security.*;
-import org.gridgain.grid.spi.eventstorage.*;
+import org.apache.ignite.spi.eventstorage.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverContextImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverContextImpl.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverContextImpl.java
index a63dad9..5e78803 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverContextImpl.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverContextImpl.java
@@ -14,7 +14,7 @@ import org.apache.ignite.compute.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.loadbalancer.*;
-import org.gridgain.grid.spi.failover.*;
+import org.apache.ignite.spi.failover.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.tostring.*;
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverManager.java
index b4fbde0..97e1679 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/failover/GridFailoverManager.java
@@ -14,7 +14,7 @@ import org.apache.ignite.compute.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.*;
-import org.gridgain.grid.spi.failover.*;
+import org.apache.ignite.spi.failover.*;
 import java.util.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/725526fa/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/EventStorageSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/EventStorageSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/EventStorageSpi.java
deleted file mode 100644
index da21ba9..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/eventstorage/EventStorageSpi.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.eventstorage;
-
-import org.apache.ignite.events.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.spi.*;
-
-import java.util.*;
-
-/**
- * This SPI provides local node events storage. SPI allows for recording local
- * node events and querying recorded local events. Every node during its life-cycle
- * goes through a serious of events such as task deployment, task execution, job
- * execution, etc. For
- * performance reasons GridGain is designed to store all locally produced events
- * locally. These events can be later retrieved using either distributed query:
- * <ul>
- *      <li>{@link org.apache.ignite.IgniteEvents#remoteQuery(org.apache.ignite.lang.IgnitePredicate, long, int...)}</li>
- * </ul>
- * or local only query:
- * <ul>
- *      <li>{@link org.apache.ignite.IgniteEvents#localQuery(org.apache.ignite.lang.IgnitePredicate, int...)}</li>
- * </ul>
- * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
- * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
- * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
- * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
- * methods. Note again that calling methods from this interface on the obtained instance can lead
- * to undefined behavior and explicitly not supported.
- * @see org.apache.ignite.events.IgniteEvent
- */
-public interface EventStorageSpi extends IgniteSpi {
-    /**
-     * Queries locally-stored events only. Events could be filtered out
-     * by given predicate filter.
-     *
-     * @param p Event predicate filter.
-     * @return Collection of events.
-     */
-    public <T extends IgniteEvent> Collection<T> localEvents(IgnitePredicate<T> p);
-
-    /**
-     * Records single event.
-     *
-     * @param evt Event that should be recorded.
-     * @throws org.apache.ignite.spi.IgniteSpiException If event recording failed for any reason.
-     */
-    public void record(IgniteEvent evt) throws IgniteSpiException;
-}


[16/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java
new file mode 100644
index 0000000..4632eaf
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHeartbeatMessage.java
@@ -0,0 +1,308 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.apache.ignite.cluster.*;
+import org.gridgain.grid.spi.discovery.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+import static org.gridgain.grid.spi.discovery.DiscoveryMetricsHelper.*;
+
+/**
+ * Heartbeat message.
+ * <p>
+ * It is sent by coordinator node across the ring once a configured period.
+ * Message makes two passes:
+ * <ol>
+ *      <li>During first pass, all nodes add their metrics to the message and
+ *          update local metrics with metrics currently present in the message.</li>
+ *      <li>During second pass, all nodes update all metrics present in the message
+ *          and remove their own metrics from the message.</li>
+ * </ol>
+ * When message reaches coordinator second time it is discarded (it finishes the
+ * second pass).
+ */
+@TcpDiscoveryRedirectToClient
+public class TcpDiscoveryHeartbeatMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Map to store nodes metrics. */
+    @GridToStringExclude
+    private Map<UUID, MetricsSet> metrics;
+
+    /** Client node IDs. */
+    private Collection<UUID> clientNodeIds;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryHeartbeatMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node.
+     */
+    public TcpDiscoveryHeartbeatMessage(UUID creatorNodeId) {
+        super(creatorNodeId);
+
+        metrics = U.newHashMap(1);
+        clientNodeIds = new HashSet<>();
+    }
+
+    /**
+     * Sets metrics for particular node.
+     *
+     * @param nodeId Node ID.
+     * @param metrics Node metrics.
+     */
+    public void setMetrics(UUID nodeId, ClusterNodeMetrics metrics) {
+        assert nodeId != null;
+        assert metrics != null;
+        assert !this.metrics.containsKey(nodeId);
+
+        this.metrics.put(nodeId, new MetricsSet(metrics));
+    }
+
+    /**
+     * Sets metrics for a client node.
+     *
+     * @param nodeId Server node ID.
+     * @param clientNodeId Client node ID.
+     * @param metrics Node metrics.
+     */
+    public void setClientMetrics(UUID nodeId, UUID clientNodeId, ClusterNodeMetrics metrics) {
+        assert nodeId != null;
+        assert clientNodeId != null;
+        assert metrics != null;
+        assert this.metrics.containsKey(nodeId);
+
+        this.metrics.get(nodeId).addClientMetrics(clientNodeId, metrics);
+    }
+
+    /**
+     * Removes metrics for particular node from the message.
+     *
+     * @param nodeId Node ID.
+     */
+    public void removeMetrics(UUID nodeId) {
+        assert nodeId != null;
+
+        metrics.remove(nodeId);
+    }
+
+    /**
+     * Gets metrics map.
+     *
+     * @return Metrics map.
+     */
+    public Map<UUID, MetricsSet> metrics() {
+        return metrics;
+    }
+
+    /**
+     * @return {@code True} if this message contains metrics.
+     */
+    public boolean hasMetrics() {
+        return !metrics.isEmpty();
+    }
+
+    /**
+     * @return {@code True} if this message contains metrics.
+     */
+    public boolean hasMetrics(UUID nodeId) {
+        assert nodeId != null;
+
+        return metrics.get(nodeId) != null;
+    }
+
+    /**
+     * Gets client node IDs for  particular node.
+     *
+     * @return Client node IDs.
+     */
+    public Collection<UUID> clientNodeIds() {
+        return clientNodeIds;
+    }
+
+    /**
+     * Adds client node ID.
+     *
+     * @param clientNodeId Client node ID.
+     */
+    public void addClientNodeId(UUID clientNodeId) {
+        clientNodeIds.add(clientNodeId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeInt(metrics.size());
+
+        if (!metrics.isEmpty()) {
+            for (Map.Entry<UUID, MetricsSet> e : metrics.entrySet()) {
+                U.writeUuid(out, e.getKey());
+                out.writeObject(e.getValue());
+            }
+        }
+
+        U.writeCollection(out, clientNodeIds);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        int metricsSize = in.readInt();
+
+        metrics = U.newHashMap(metricsSize);
+
+        for (int i = 0; i < metricsSize; i++)
+            metrics.put(U.readUuid(in), (MetricsSet)in.readObject());
+
+        clientNodeIds = U.readCollection(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryHeartbeatMessage.class, this, "super", super.toString());
+    }
+
+    /**
+     * @param metrics Metrics.
+     * @return Serialized metrics.
+     */
+    private static byte[] serializeMetrics(ClusterNodeMetrics metrics) {
+        assert metrics != null;
+
+        byte[] buf = new byte[DiscoveryMetricsHelper.METRICS_SIZE];
+
+        serialize(buf, 0, metrics);
+
+        return buf;
+    }
+
+    /**
+     * @param nodeId Node ID.
+     * @param metrics Metrics.
+     * @return Serialized metrics.
+     */
+    private static byte[] serializeMetrics(UUID nodeId, ClusterNodeMetrics metrics) {
+        assert nodeId != null;
+        assert metrics != null;
+
+        byte[] buf = new byte[16 + DiscoveryMetricsHelper.METRICS_SIZE];
+
+        U.longToBytes(nodeId.getMostSignificantBits(), buf, 0);
+        U.longToBytes(nodeId.getLeastSignificantBits(), buf, 8);
+
+        serialize(buf, 16, metrics);
+
+        return buf;
+    }
+
+    /**
+     */
+    @SuppressWarnings("PublicInnerClass")
+    public static class MetricsSet implements Externalizable {
+        /** */
+        private static final long serialVersionUID = 0L;
+
+        /** Metrics. */
+        private byte[] metrics;
+
+        /** Client metrics. */
+        private Collection<byte[]> clientMetrics;
+
+        /**
+         */
+        public MetricsSet() {
+            // No-op.
+        }
+
+        /**
+         * @param metrics Metrics.
+         */
+        public MetricsSet(ClusterNodeMetrics metrics) {
+            assert metrics != null;
+
+            this.metrics = serializeMetrics(metrics);
+        }
+
+        /**
+         * @return Deserialized metrics.
+         */
+        public ClusterNodeMetrics metrics() {
+            return deserialize(metrics, 0);
+        }
+
+        /**
+         * @return Client metrics.
+         */
+        public Collection<T2<UUID, ClusterNodeMetrics>> clientMetrics() {
+            return F.viewReadOnly(clientMetrics, new C1<byte[], T2<UUID, ClusterNodeMetrics>>() {
+                @Override public T2<UUID, ClusterNodeMetrics> apply(byte[] bytes) {
+                    UUID nodeId = new UUID(U.bytesToLong(bytes, 0), U.bytesToLong(bytes, 8));
+
+                    return new T2<>(nodeId, deserialize(bytes, 16));
+                }
+            });
+        }
+
+        /**
+         * @param nodeId Client node ID.
+         * @param metrics Client metrics.
+         */
+        private void addClientMetrics(UUID nodeId, ClusterNodeMetrics metrics) {
+            assert nodeId != null;
+            assert metrics != null;
+
+            if (clientMetrics == null)
+                clientMetrics = new ArrayList<>();
+
+            clientMetrics.add(serializeMetrics(nodeId, metrics));
+        }
+
+        /** {@inheritDoc} */
+        @Override public void writeExternal(ObjectOutput out) throws IOException {
+            U.writeByteArray(out, metrics);
+
+            out.writeInt(clientMetrics != null ? clientMetrics.size() : -1);
+
+            if (clientMetrics != null) {
+                for (byte[] arr : clientMetrics)
+                    U.writeByteArray(out, arr);
+            }
+        }
+
+        /** {@inheritDoc} */
+        @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+            metrics = U.readByteArray(in);
+
+            int clientMetricsSize = in.readInt();
+
+            if (clientMetricsSize >= 0) {
+                clientMetrics = new ArrayList<>(clientMetricsSize);
+
+                for (int i = 0; i < clientMetricsSize; i++)
+                    clientMetrics.add(U.readByteArray(in));
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
new file mode 100644
index 0000000..2546aeb
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryJoinRequestMessage.java
@@ -0,0 +1,102 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.spi.discovery.tcp.internal.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Initial message sent by a node that wants to enter topology.
+ * Sent to random node during SPI start. Then forwarded directly to coordinator.
+ */
+public class TcpDiscoveryJoinRequestMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** New node that wants to join the topology. */
+    private TcpDiscoveryNode node;
+
+    /** Discovery data. */
+    private List<Object> discoData;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryJoinRequestMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param node New node that wants to join.
+     * @param discoData Discovery data.
+     */
+    public TcpDiscoveryJoinRequestMessage(TcpDiscoveryNode node, List<Object> discoData) {
+        super(node.id());
+
+        this.node = node;
+        this.discoData = discoData;
+    }
+
+    /**
+     * Gets new node that wants to join the topology.
+     *
+     * @return Node that wants to join the topology.
+     */
+    public TcpDiscoveryNode node() {
+        return node;
+    }
+
+    /**
+     * @return Discovery data.
+     */
+    public List<Object> discoveryData() {
+        return discoData;
+    }
+
+    /**
+     * @return {@code true} flag.
+     */
+    public boolean responded() {
+        return getFlag(RESPONDED_FLAG_POS);
+    }
+
+    /**
+     * @param responded Responded flag.
+     */
+    public void responded(boolean responded) {
+        setFlag(RESPONDED_FLAG_POS, responded);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeObject(node);
+        U.writeCollection(out, discoData);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        node = (TcpDiscoveryNode)in.readObject();
+        discoData = U.readList(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryJoinRequestMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryLoopbackProblemMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryLoopbackProblemMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryLoopbackProblemMessage.java
new file mode 100644
index 0000000..fce327b
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryLoopbackProblemMessage.java
@@ -0,0 +1,87 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message telling joining node that it has loopback problem (misconfiguration).
+ * This means that remote node is configured to use loopback address, but joining node is not, or vise versa.
+ */
+public class TcpDiscoveryLoopbackProblemMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Remote node addresses. */
+    private Collection<String> addrs;
+
+    /** Remote node host names. */
+    private Collection<String> hostNames;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryLoopbackProblemMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param addrs Remote node addresses.
+     * @param hostNames Remote node host names.
+     */
+    public TcpDiscoveryLoopbackProblemMessage(UUID creatorNodeId, Collection<String> addrs,
+                                              Collection<String> hostNames) {
+        super(creatorNodeId);
+
+        this.addrs = addrs;
+        this.hostNames = hostNames;
+    }
+
+    /**
+     * @return Remote node addresses.
+     */
+    public Collection<String> addresses() {
+        return addrs;
+    }
+
+    /**
+     * @return Remote node host names.
+     */
+    public Collection<String> hostNames() {
+        return hostNames;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeCollection(out, addrs);
+        U.writeCollection(out, hostNames);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        addrs = U.readCollection(in);
+        hostNames = U.readCollection(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryLoopbackProblemMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddFinishedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddFinishedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddFinishedMessage.java
new file mode 100644
index 0000000..ddb4ae7
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddFinishedMessage.java
@@ -0,0 +1,75 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Sent by coordinator across the ring to finish node add process.
+ */
+@TcpDiscoveryEnsureDelivery
+@TcpDiscoveryRedirectToClient
+public class TcpDiscoveryNodeAddFinishedMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Added node ID. */
+    private UUID nodeId;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryNodeAddFinishedMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId ID of the creator node (coordinator).
+     * @param nodeId Added node ID.
+     */
+    public TcpDiscoveryNodeAddFinishedMessage(UUID creatorNodeId, UUID nodeId) {
+        super(creatorNodeId);
+
+        this.nodeId = nodeId;
+    }
+
+    /**
+     * Gets ID of the node added.
+     *
+     * @return ID of the node added.
+     */
+    public UUID nodeId() {
+        return nodeId;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeUuid(out, nodeId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        nodeId = U.readUuid(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryNodeAddFinishedMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
new file mode 100644
index 0000000..0e9317f
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeAddedMessage.java
@@ -0,0 +1,246 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.spi.discovery.tcp.internal.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message telling nodes that new node should be added to topology.
+ * When newly added node receives the message it connects to its next and finishes
+ * join process.
+ */
+@TcpDiscoveryEnsureDelivery
+@TcpDiscoveryRedirectToClient
+public class TcpDiscoveryNodeAddedMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Added node. */
+    private TcpDiscoveryNode node;
+
+    /** Pending messages from previous node. */
+    private Collection<TcpDiscoveryAbstractMessage> msgs;
+
+    /** Discarded message ID. */
+    private IgniteUuid discardMsgId;
+
+    /** Current topology. Initialized by coordinator. */
+    @GridToStringInclude
+    private Collection<TcpDiscoveryNode> top;
+
+    /** Topology snapshots history. */
+    private Map<Long, Collection<ClusterNode>> topHist;
+
+    /** Discovery data from new node. */
+    private List<Object> newNodeDiscoData;
+
+    /** Discovery data from old nodes. */
+    private Collection<List<Object>> oldNodesDiscoData;
+
+    /** Start time of the first grid node. */
+    private long gridStartTime;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryNodeAddedMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param node Node to add to topology.
+     * @param newNodeDiscoData New Node discovery data.
+     * @param gridStartTime Start time of the first grid node.
+     */
+    public TcpDiscoveryNodeAddedMessage(UUID creatorNodeId, TcpDiscoveryNode node,
+                                        List<Object> newNodeDiscoData, long gridStartTime) {
+        super(creatorNodeId);
+
+        assert node != null;
+        assert gridStartTime > 0;
+
+        this.node = node;
+        this.newNodeDiscoData = newNodeDiscoData;
+        this.gridStartTime = gridStartTime;
+
+        oldNodesDiscoData = new LinkedList<>();
+    }
+
+    /**
+     * Gets newly added node.
+     *
+     * @return New node.
+     */
+    public TcpDiscoveryNode node() {
+        return node;
+    }
+
+    /**
+     * Gets pending messages sent to new node by its previous.
+     *
+     * @return Pending messages from previous node.
+     */
+    @Nullable public Collection<TcpDiscoveryAbstractMessage> messages() {
+        return msgs;
+    }
+
+    /**
+     * Gets discarded message ID.
+     *
+     * @return Discarded message ID.
+     */
+    @Nullable public IgniteUuid discardedMessageId() {
+        return discardMsgId;
+    }
+
+    /**
+     * Sets pending messages to send to new node.
+     *
+     * @param msgs Pending messages to send to new node.
+     * @param discardMsgId Discarded message ID.
+     */
+    public void messages(@Nullable Collection<TcpDiscoveryAbstractMessage> msgs, @Nullable IgniteUuid discardMsgId) {
+        this.msgs = msgs;
+        this.discardMsgId = discardMsgId;
+    }
+
+    /**
+     * Gets topology.
+     *
+     * @return Current topology.
+     */
+    @Nullable public Collection<TcpDiscoveryNode> topology() {
+        return top;
+    }
+
+    /**
+     * Sets topology.
+     *
+     * @param top Current topology.
+     */
+    public void topology(@Nullable Collection<TcpDiscoveryNode> top) {
+        this.top = top;
+    }
+
+    /**
+     * Gets topology snapshots history.
+     *
+     * @return Map with topology snapshots history.
+     */
+    @Nullable public Map<Long, Collection<ClusterNode>> topologyHistory() {
+        return topHist;
+    }
+
+    /**
+     * Sets topology snapshots history.
+     *
+     * @param topHist Map with topology snapshots history.
+     */
+    public void topologyHistory(@Nullable Map<Long, Collection<ClusterNode>> topHist) {
+        this.topHist = topHist;
+    }
+
+    /**
+     * @return Discovery data from new node.
+     */
+    public List<Object> newNodeDiscoveryData() {
+        return newNodeDiscoData;
+    }
+
+    /**
+     * @return Discovery data from old nodes.
+     */
+    public Collection<List<Object>> oldNodesDiscoveryData() {
+        return oldNodesDiscoData;
+    }
+
+    /**
+     * @param discoData Discovery data to add.
+     */
+    public void addDiscoveryData(List<Object> discoData) {
+        // Old nodes disco data may be null if message
+        // makes more than 1 pass due to stopping of the nodes in topology.
+        if (oldNodesDiscoData != null)
+            oldNodesDiscoData.add(discoData);
+    }
+
+    /**
+     * Clears discovery data to minimize message size.
+     */
+    public void clearDiscoveryData() {
+        newNodeDiscoData = null;
+        oldNodesDiscoData = null;
+    }
+
+    /**
+     * @return First grid node start time.
+     */
+    public long gridStartTime() {
+        return gridStartTime;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeObject(node);
+        U.writeCollection(out, msgs);
+        U.writeGridUuid(out, discardMsgId);
+        U.writeCollection(out, top);
+        U.writeMap(out, topHist);
+        out.writeLong(gridStartTime);
+        U.writeCollection(out, newNodeDiscoData);
+
+        out.writeInt(oldNodesDiscoData != null ? oldNodesDiscoData.size() : -1);
+
+        if (oldNodesDiscoData != null) {
+            for (List<Object> list : oldNodesDiscoData)
+                U.writeCollection(out, list);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        node = (TcpDiscoveryNode)in.readObject();
+        msgs = U.readCollection(in);
+        discardMsgId = U.readGridUuid(in);
+        top = U.readCollection(in);
+        topHist = U.readTreeMap(in);
+        gridStartTime = in.readLong();
+        newNodeDiscoData = U.readList(in);
+
+        int oldNodesDiscoDataSize = in.readInt();
+
+        if (oldNodesDiscoDataSize >= 0) {
+            oldNodesDiscoData = new ArrayList<>(oldNodesDiscoDataSize);
+
+            for (int i = 0; i < oldNodesDiscoDataSize; i++)
+                oldNodesDiscoData.add(U.readList(in));
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryNodeAddedMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
new file mode 100644
index 0000000..8a40122
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
@@ -0,0 +1,93 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Sent by node that has detected node failure to coordinator across the ring,
+ * then sent by coordinator across the ring.
+ */
+@TcpDiscoveryEnsureDelivery
+@TcpDiscoveryRedirectToClient
+public class TcpDiscoveryNodeFailedMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** ID of the failed node. */
+    private UUID failedNodeId;
+
+    /** Internal order of the failed node. */
+    private long order;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryNodeFailedMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId ID of the node that detects nodes failure.
+     * @param failedNodeId ID of the failed nodes.
+     * @param order Order of the failed node.
+     */
+    public TcpDiscoveryNodeFailedMessage(UUID creatorNodeId, UUID failedNodeId, long order) {
+        super(creatorNodeId);
+
+        assert failedNodeId != null;
+        assert order > 0;
+
+        this.failedNodeId = failedNodeId;
+        this.order = order;
+    }
+
+    /**
+     * Gets ID of the failed node.
+     *
+     * @return ID of the failed node.
+     */
+    public UUID failedNodeId() {
+        return failedNodeId;
+    }
+
+    /**
+     * @return Internal order of the failed node.
+     */
+    public long order() {
+        return order;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeUuid(out, failedNodeId);
+        out.writeLong(order);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        failedNodeId = U.readUuid(in);
+        order = in.readLong();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryNodeFailedMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
new file mode 100644
index 0000000..2e49505
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryNodeLeftMessage.java
@@ -0,0 +1,47 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Sent by node that is stopping to coordinator across the ring,
+ * then sent by coordinator across the ring.
+ */
+@TcpDiscoveryEnsureDelivery
+@TcpDiscoveryRedirectToClient
+public class TcpDiscoveryNodeLeftMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryNodeLeftMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId ID of the node that is about to leave the topology.
+     */
+    public TcpDiscoveryNodeLeftMessage(UUID creatorNodeId) {
+        super(creatorNodeId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryNodeLeftMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingRequest.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingRequest.java
new file mode 100644
index 0000000..e2e5f51
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingRequest.java
@@ -0,0 +1,65 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Ping request.
+ */
+public class TcpDiscoveryPingRequest extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Pinged client node ID. */
+    private UUID clientNodeId;
+
+    /**
+     * For {@link Externalizable}.
+     */
+    public TcpDiscoveryPingRequest() {
+        // No-op.
+    }
+
+    /**
+     * @param creatorNodeId Creator node ID.
+     * @param clientNodeId Pinged client node ID.
+     */
+    public TcpDiscoveryPingRequest(UUID creatorNodeId, @Nullable UUID clientNodeId) {
+        super(creatorNodeId);
+
+        this.clientNodeId = clientNodeId;
+    }
+
+    /**
+     * @return Pinged client node ID.
+     */
+    @Nullable public UUID clientNodeId() {
+        return clientNodeId;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeUuid(out, clientNodeId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        clientNodeId = U.readUuid(in);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingResponse.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingResponse.java
new file mode 100644
index 0000000..18a5be1
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryPingResponse.java
@@ -0,0 +1,66 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Ping response.
+ */
+public class TcpDiscoveryPingResponse extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Whether pinged client exists. */
+    private boolean clientExists;
+
+    /**
+     * For {@link Externalizable}.
+     */
+    public TcpDiscoveryPingResponse() {
+        // No-op.
+    }
+
+    /**
+     * @param creatorNodeId Creator node ID.
+     */
+    public TcpDiscoveryPingResponse(UUID creatorNodeId) {
+        super(creatorNodeId);
+    }
+
+    /**
+     * @param clientExists Whether pinged client exists.
+     */
+    public void clientExists(boolean clientExists) {
+        this.clientExists = clientExists;
+    }
+
+    /**
+     * @return Whether pinged client exists.
+     */
+    public boolean clientExists() {
+        return clientExists;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeBoolean(clientExists);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        clientExists = in.readBoolean();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryRedirectToClient.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryRedirectToClient.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryRedirectToClient.java
new file mode 100644
index 0000000..972067b
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryRedirectToClient.java
@@ -0,0 +1,23 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import java.lang.annotation.*;
+
+/**
+ * Message classes with this annotation attached will be
+ * redirected to client nodes when going through ring.
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+public @interface TcpDiscoveryRedirectToClient {
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
new file mode 100644
index 0000000..3481488
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryStatusCheckMessage.java
@@ -0,0 +1,123 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.spi.discovery.tcp.internal.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message sent by node to its next to ensure that next node and
+ * connection to it are alive. Receiving node should send it across the ring,
+ * until message does not reach coordinator. Coordinator responds directly to node.
+ * <p>
+ * If a failed node id is specified then the message is sent across the ring up to the sender node
+ * to ensure that the failed node is actually failed.
+ */
+public class TcpDiscoveryStatusCheckMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Status OK. */
+    public static final int STATUS_OK = 1;
+
+    /** Status RECONNECT. */
+    public static final int STATUS_RECON = 2;
+
+    /** Creator node. */
+    private TcpDiscoveryNode creatorNode;
+
+    /** Failed node id. */
+    private UUID failedNodeId;
+
+    /** Creator node status (initialized by coordinator). */
+    private int status;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryStatusCheckMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNode Creator node.
+     * @param failedNodeId Failed node id.
+     */
+    public TcpDiscoveryStatusCheckMessage(TcpDiscoveryNode creatorNode, UUID failedNodeId) {
+        super(creatorNode.id());
+
+        this.creatorNode = creatorNode;
+        this.failedNodeId = failedNodeId;
+    }
+
+    /**
+     * Gets creator node.
+     *
+     * @return Creator node.
+     */
+    public TcpDiscoveryNode creatorNode() {
+        return creatorNode;
+    }
+
+    /**
+     * Gets failed node id.
+     *
+     * @return Failed node id.
+     */
+    public UUID failedNodeId() {
+        return failedNodeId;
+    }
+
+    /**
+     * Gets creator status.
+     *
+     * @return Creator node status.
+     */
+    public int status() {
+        return status;
+    }
+
+    /**
+     * Sets creator node status (should be set by coordinator).
+     *
+     * @param status Creator node status.
+     */
+    public void status(int status) {
+        this.status = status;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeObject(creatorNode);
+        U.writeUuid(out, failedNodeId);
+        out.writeInt(status);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        creatorNode = (TcpDiscoveryNode)in.readObject();
+        failedNodeId = U.readUuid(in);
+        status = in.readInt();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryStatusCheckMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
index bd51479..cfb7b92 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
@@ -958,7 +958,7 @@ public class GridTcpDiscoverySelfTest extends GridCommonAbstractTest {
 
         /** {@inheritDoc} */
         @Override void onBeforeMessageSentAcrossRing(Serializable msg) {
-            if (msg instanceof GridTcpDiscoveryNodeAddedMessage)
+            if (msg instanceof TcpDiscoveryNodeAddedMessage)
                 if (++i == 2) {
                     simulateNodeFailure();
 
@@ -973,7 +973,7 @@ public class GridTcpDiscoverySelfTest extends GridCommonAbstractTest {
     private static class FailBeforeNodeLeftSentSpi extends TcpDiscoverySpi {
         /** {@inheritDoc} */
         @Override void onBeforeMessageSentAcrossRing(Serializable msg) {
-            if (msg instanceof GridTcpDiscoveryNodeLeftMessage) {
+            if (msg instanceof TcpDiscoveryNodeLeftMessage) {
                 simulateNodeFailure();
 
                 throw new RuntimeException("Avoid message sending: " + msg.getClass());


[49/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingSpi.java
deleted file mode 100644
index 7c6d4c8..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingSpi.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.cache.*;
-import org.gridgain.grid.cache.query.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Indexing SPI allows user to index cache content. Using indexing SPI user can index data in cache and run SQL,
- * TEXT or individual field queries against these indexes. Usually indexing SPI is used by caches by name
- * (see {@link GridCacheConfiguration#getIndexingSpiName()}). Logically storage is organized into separate spaces.
- * Usually cache name will be used as space name, so multiple caches can write to single indexing SPI instance.
- * <p>
- * Functionality of this SPI is exposed to {@link GridCacheQueries} interface:
- * <ul>
- *      <li>{@link GridCacheQueries#createSqlQuery(Class, String)}</li>
- *      <li>{@link GridCacheQueries#createSqlFieldsQuery(String)}</li>
- *      <li>{@link GridCacheQueries#createFullTextQuery(Class, String)}</li>
- * </ul>
- * <p>
- * The default indexing SPI implementation is
- * {@gglink org.gridgain.grid.spi.indexing.h2.GridH2IndexingSpi} which uses H2 database engine
- * for data indexing and querying. User can implement his own indexing SPI and use his own data structures
- * and query language instead of SQL. SPI can be configured for grid using {@link org.apache.ignite.configuration.IgniteConfiguration#getIndexingSpi()}.
- * <p>
- * GridGain comes with following built-in indexing SPI implementations:
- * <ul>
- *      <li>{@gglink org.gridgain.grid.spi.indexing.h2.GridH2IndexingSpi}</li>
- * </ul>
- * <p>
- * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
- * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
- * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
- * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
- * methods. Note again that calling methods from this interface on the obtained instance can lead
- * to undefined behavior and explicitly not supported.
- */
-public interface GridIndexingSpi extends IgniteSpi {
-    /**
-     * Queries individual fields (generally used by JDBC drivers).
-     *
-     * @param spaceName Space name.
-     * @param qry Query.
-     * @param params Query parameters.
-     * @param filters Space name and key filters.
-     * @return Query result.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K, V> GridIndexingFieldsResult queryFields(@Nullable String spaceName, String qry,
-        Collection<Object> params, GridIndexingQueryFilter filters) throws IgniteSpiException;
-
-    /**
-     * Executes regular query.
-     *
-     * @param spaceName Space name.
-     * @param qry Query.
-     * @param params Query parameters.
-     * @param type Query return type.
-     * @param filters Space name and key filters.
-     * @return Queried rows.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K, V> IgniteSpiCloseableIterator<GridIndexingKeyValueRow<K, V>> query(@Nullable String spaceName, String qry,
-        Collection<Object> params, GridIndexingTypeDescriptor type, GridIndexingQueryFilter filters)
-        throws IgniteSpiException;
-
-    /**
-     * Executes text query.
-     *
-     * @param spaceName Space name.
-     * @param qry Text query.
-     * @param type Query return type.
-     * @param filters Space name and key filter.
-     * @return Queried rows.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K, V> IgniteSpiCloseableIterator<GridIndexingKeyValueRow<K, V>> queryText(@Nullable String spaceName, String qry,
-        GridIndexingTypeDescriptor type, GridIndexingQueryFilter filters) throws IgniteSpiException;
-
-    /**
-     * Gets size of index for given type or -1 if it is a unknown type.
-     *
-     * @param spaceName Space name.
-     * @param desc Type descriptor.
-     * @return Objects number.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public long size(@Nullable String spaceName, GridIndexingTypeDescriptor desc) throws IgniteSpiException;
-
-    /**
-     * Registers type if it was not known before or updates it otherwise.
-     *
-     * @param spaceName Space name.
-     * @param desc Type descriptor.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     * @return {@code True} if type was registered, {@code false} if for some reason it was rejected.
-     */
-    public boolean registerType(@Nullable String spaceName, GridIndexingTypeDescriptor desc) throws IgniteSpiException;
-
-    /**
-     * Unregisters type and removes all corresponding data.
-     *
-     * @param spaceName Space name.
-     * @param type Type descriptor.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public void unregisterType(@Nullable String spaceName, GridIndexingTypeDescriptor type) throws IgniteSpiException;
-
-    /**
-     * Updates index. Note that key is unique for space, so if space contains multiple indexes
-     * the key should be removed from indexes other than one being updated.
-     *
-     * @param spaceName Space name.
-     * @param type Value type.
-     * @param key Key.
-     * @param val Value.
-     * @param ver Version.
-     * @param expirationTime Expiration time or 0 if never expires.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K, V> void store(@Nullable String spaceName, GridIndexingTypeDescriptor type, GridIndexingEntity<K> key,
-        GridIndexingEntity<V> val, byte[] ver, long expirationTime) throws IgniteSpiException;
-
-    /**
-     * Removes index entry by key.
-     *
-     * @param spaceName Space name.
-     * @param key Key.
-     * @return {@code True} if removed by this operation, {@code false} otherwise.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K> boolean remove(@Nullable String spaceName, GridIndexingEntity<K> key) throws IgniteSpiException;
-
-    /**
-     * Will be called when entry with given key is swapped.
-     *
-     * @param spaceName Space name.
-     * @param swapSpaceName Swap space name.
-     * @param key Key.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K> void onSwap(@Nullable String spaceName, String swapSpaceName, K key) throws IgniteSpiException;
-
-    /**
-     * Will be called when entry with given key is unswapped.
-     *
-     * @param spaceName Space name.
-     * @param key Key.
-     * @param val Value.
-     * @param valBytes Value bytes.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <K, V> void onUnswap(@Nullable String spaceName, K key, V val, byte[] valBytes) throws IgniteSpiException;
-
-    /**
-     * Marshaller to be used by SPI.
-     *
-     * @param marshaller Marshaller.
-     */
-    public void registerMarshaller(GridIndexingMarshaller marshaller);
-
-    /**
-     * Registers space in this SPI.
-     *
-     * @param spaceName Space name.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public void registerSpace(String spaceName) throws IgniteSpiException;
-
-    /**
-     * Rebuilds all indexes of given type.
-     *
-     * @param spaceName Space name.
-     * @param type Type descriptor.
-     */
-    public void rebuildIndexes(@Nullable String spaceName, GridIndexingTypeDescriptor type);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingTypeDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingTypeDescriptor.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingTypeDescriptor.java
deleted file mode 100644
index ea39e90..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridIndexingTypeDescriptor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-
-import org.apache.ignite.spi.*;
-
-import java.util.*;
-
-/**
- * Value descriptor which allows to extract fields from value object of given type.
- * See also {@link GridIndexingSpi#registerType(String, GridIndexingTypeDescriptor)}.
- */
-public interface GridIndexingTypeDescriptor {
-    /**
-     * Gets type name which uniquely identifies this type.
-     *
-     * @return Type name which uniquely identifies this type.
-     */
-    public String name();
-
-    /**
-     * Gets mapping from values field name to its type.
-     *
-     * @return Fields that can be indexed, participate in queries and can be queried using
-     *      {@link GridIndexingSpi#queryFields(String, String, Collection, GridIndexingQueryFilter[])}
-     *      method.
-     */
-    public Map<String, Class<?>> valueFields();
-
-    /**
-     * Gets mapping from keys field name to its type.
-     *
-     * @return Fields that can be indexed, participate in queries and can be queried using
-     *      {@link GridIndexingSpi#queryFields(String, String, Collection, GridIndexingQueryFilter[])}
-     *      method.
-     */
-    public Map<String, Class<?>> keyFields();
-
-    /**
-     * Gets field value for given object.
-     *
-     * @param obj Object to get field value from.
-     * @param field Field name.
-     * @return Value for given field.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <T> T value(Object obj, String field) throws IgniteSpiException;
-
-    /**
-     * Gets indexes for this type.
-     *
-     * @return Indexes for this type.
-     */
-    public Map<String, GridIndexDescriptor> indexes();
-
-    /**
-     * Gets value class.
-     *
-     * @return Value class.
-     */
-    public Class<?> valueClass();
-
-    /**
-     * Gets key class.
-     *
-     * @return Key class.
-     */
-    public Class<?> keyClass();
-
-    /**
-     * Returns {@code true} if string representation of value should be indexed as text.
-     *
-     * @return If string representation of value should be full-text indexed.
-     */
-    public boolean valueTextIndex();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridNoopIndexingSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridNoopIndexingSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridNoopIndexingSpi.java
deleted file mode 100644
index 2cdd25d..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/GridNoopIndexingSpi.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * No-op implementation of {@link GridIndexingSpi}, throws exception on query attempt.
- */
-@IgniteSpiNoop
-public class GridNoopIndexingSpi extends IgniteSpiAdapter implements GridIndexingSpi {
-    /** */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** {@inheritDoc} */
-    @Override public <K, V> GridIndexingFieldsResult queryFields(@Nullable String spaceName, String qry,
-        Collection<Object> params, GridIndexingQueryFilter filters) throws IgniteSpiException {
-        throw spiException();
-    }
-
-    /** {@inheritDoc} */
-    @Override public <K, V> IgniteSpiCloseableIterator<GridIndexingKeyValueRow<K, V>> query(@Nullable String spaceName,
-        String qry, Collection<Object> params, GridIndexingTypeDescriptor type,
-        GridIndexingQueryFilter filters) throws IgniteSpiException {
-        throw spiException();
-    }
-
-    /** {@inheritDoc} */
-    @Override public <K, V> IgniteSpiCloseableIterator<GridIndexingKeyValueRow<K, V>> queryText(@Nullable
-        String spaceName, String qry, GridIndexingTypeDescriptor type, GridIndexingQueryFilter filters)
-        throws IgniteSpiException {
-        throw spiException();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long size(@Nullable String spaceName, GridIndexingTypeDescriptor desc) throws IgniteSpiException {
-        throw spiException();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean registerType(@Nullable String spaceName, GridIndexingTypeDescriptor desc)
-        throws IgniteSpiException {
-        return false;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void unregisterType(@Nullable String spaceName, GridIndexingTypeDescriptor type)
-        throws IgniteSpiException {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public <K, V> void store(@Nullable String spaceName, GridIndexingTypeDescriptor type,
-        GridIndexingEntity<K> key, GridIndexingEntity<V> val, byte[] ver, long expirationTime) throws IgniteSpiException {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public <K> boolean remove(@Nullable String spaceName, GridIndexingEntity<K> key) throws IgniteSpiException {
-        return false;
-    }
-
-    /** {@inheritDoc} */
-    @Override public <K> void onSwap(@Nullable String spaceName, String swapSpaceName, K key) throws IgniteSpiException {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public <K, V> void onUnswap(@Nullable String spaceName, K key, V val, byte[] valBytes)
-        throws IgniteSpiException {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public void registerMarshaller(GridIndexingMarshaller marshaller) {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public void registerSpace(String spaceName) throws IgniteSpiException {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public void rebuildIndexes(@Nullable String spaceName, GridIndexingTypeDescriptor type) {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(@Nullable String gridName) throws IgniteSpiException {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        // No-op.
-    }
-
-    /**
-     * @return No-op SPI usage exception.
-     */
-    private IgniteSpiException spiException() {
-        return new IgniteSpiException("Current grid configuration does not support queries " +
-            "(please configure GridH2IndexingSpi).");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexDescriptor.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexDescriptor.java
new file mode 100644
index 0000000..7fecd56
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexDescriptor.java
@@ -0,0 +1,42 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+import java.util.*;
+
+/**
+ * Describes an index to be created for a certain type. It contains all necessary
+ * information about fields, order, uniqueness, and specified
+ * whether this is SQL or Text index.
+ * See also {@link IndexingTypeDescriptor#indexes()}.
+ */
+public interface IndexDescriptor {
+    /**
+     * Gets all fields to be indexed.
+     *
+     * @return Fields to be indexed.
+     */
+    public Collection<String> fields();
+
+    /**
+     * Specifies order of the index for each indexed field.
+     *
+     * @param field Field name.
+     * @return {@code True} if given field should be indexed in descending order.
+     */
+    public boolean descending(String field);
+
+    /**
+     * Gets index type.
+     *
+     * @return Type.
+     */
+    public IndexType type();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexType.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexType.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexType.java
new file mode 100644
index 0000000..f7f0ea2
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexType.java
@@ -0,0 +1,24 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+/**
+ * Index types.
+ */
+public enum IndexType {
+    /** Sorted SQL index. */
+    SORTED,
+
+    /** Spatial SQL index. */
+    GEO_SPATIAL,
+
+    /** Fulltext index. */
+    FULLTEXT
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntity.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntity.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntity.java
new file mode 100644
index 0000000..556d4f0
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntity.java
@@ -0,0 +1,50 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+import org.apache.ignite.spi.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Wrapper around indexed key or value which also may contain the value in
+ * unmarshalled form. It exists to avoid unnecessary unmarshalling whenever
+ * it is not needed.
+ * See also {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}.
+ */
+public interface IndexingEntity<T> {
+    /**
+     * Gets indexed value. This method may return {@code null} only
+     * if actual value is {@code null}. Otherwise, it will unmarshal
+     * the {@link #bytes()} and return the actual value.
+     *
+     * @return Indexed value.
+     * @throws org.apache.ignite.spi.IgniteSpiException If value de-serialization failed.
+     */
+    @Nullable public T value() throws IgniteSpiException;
+
+    /**
+     * Optional bytes for marshaled indexed value. Certain SPI implementations
+     * may keep objects in unmarshalled form and therefore will not provide
+     * marshaled bytes for them.
+     *
+     * @return Optional marshaled value.
+     */
+    @Nullable public byte[] bytes();
+
+    /**
+     * Flag indicating whether this entity contains unmarshalled value.
+     *
+     * @return {@code True} if entity contains unmarshalled value, {@code false}
+     *      otherwise.
+     */
+    public boolean hasValue();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntityAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntityAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntityAdapter.java
new file mode 100644
index 0000000..1effa99
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntityAdapter.java
@@ -0,0 +1,57 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+import org.jetbrains.annotations.*;
+
+/**
+ * Convenience adapter for {@link IndexingEntity}.
+ */
+public class IndexingEntityAdapter<T> implements IndexingEntity<T> {
+    /** */
+    @GridToStringInclude
+    private final T val;
+
+    /** */
+    @GridToStringExclude
+    private final byte[] bytes;
+
+    /**
+     * @param val Value.
+     * @param bytes Value marshalled by {@link org.apache.ignite.marshaller.IgniteMarshaller}.
+     */
+    public IndexingEntityAdapter(T val, @Nullable byte[] bytes) {
+        this.val = val;
+        this.bytes = bytes;
+    }
+
+    /** {@inheritDoc} */
+    @Override public T value() {
+        return val;
+    }
+
+    /** {@inheritDoc} */
+    @Override public byte[] bytes() {
+        return bytes;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean hasValue() {
+        return val != null || (val == null && bytes == null);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(IndexingEntityAdapter.class, this,
+            "bytesLength", (bytes == null ? 0 : bytes.length));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldMetadata.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldMetadata.java
new file mode 100644
index 0000000..f530b20
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldMetadata.java
@@ -0,0 +1,46 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+import java.io.*;
+
+/**
+ * Query field descriptor. This descriptor is used to provide metadata
+ * about fields returned in query result.
+ */
+public interface IndexingFieldMetadata extends Externalizable {
+    /**
+     * Gets schema name.
+     *
+     * @return Schema name.
+     */
+    public String schemaName();
+
+    /**
+     * Gets name of type to which this field belongs.
+     *
+     * @return Gets type name.
+     */
+    public String typeName();
+
+    /**
+     * Gets field name.
+     *
+     * @return Field name.
+     */
+    public String fieldName();
+
+    /**
+     * Gets field type name.
+     *
+     * @return Field type name.
+     */
+    public String fieldTypeName();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResult.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResult.java
new file mode 100644
index 0000000..ede3278
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResult.java
@@ -0,0 +1,35 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+import org.apache.ignite.spi.*;
+
+import java.util.*;
+
+/**
+ * Field query result. It is composed of
+ * fields metadata and iterator over queried fields.
+ * See also {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter)}.
+ */
+public interface IndexingFieldsResult {
+    /**
+     * Gets metadata for queried fields.
+     *
+     * @return Meta data for queried fields.
+     */
+    List<IndexingFieldMetadata> metaData();
+
+    /**
+     * Gets iterator over queried fields.
+     *
+     * @return Iterator over queried fields.
+     */
+    IgniteSpiCloseableIterator<List<IndexingEntity<?>>> iterator();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResultAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResultAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResultAdapter.java
new file mode 100644
index 0000000..348f344
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResultAdapter.java
@@ -0,0 +1,49 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+import org.apache.ignite.spi.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Convenience adapter for {@link IndexingFieldsResult}.
+ */
+public class IndexingFieldsResultAdapter implements IndexingFieldsResult {
+    /** Meta data. */
+    private final List<IndexingFieldMetadata> metaData;
+
+    /** Result iterator. */
+    private final IgniteSpiCloseableIterator<List<IndexingEntity<?>>> it;
+
+    /**
+     * Creates query field result composed of field metadata and iterator
+     * over queried fields.
+     *
+     * @param metaData Meta data.
+     * @param it Result iterator.
+     */
+    public IndexingFieldsResultAdapter(@Nullable List<IndexingFieldMetadata> metaData,
+                                       IgniteSpiCloseableIterator<List<IndexingEntity<?>>> it) {
+        this.metaData = metaData != null ? Collections.unmodifiableList(metaData) : null;
+        this.it = it;
+    }
+
+    /** {@inheritDoc} */
+    @Override public List<IndexingFieldMetadata> metaData() {
+        return metaData;
+    }
+
+    /** {@inheritDoc} */
+    @Override public IgniteSpiCloseableIterator<List<IndexingEntity<?>>> iterator() {
+        return it;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRow.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRow.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRow.java
new file mode 100644
index 0000000..841130e
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRow.java
@@ -0,0 +1,42 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+import java.util.*;
+
+/**
+ * This class represents a single row returned by key-value query. For example, it is returned
+ * by query such as {@link IndexingSpi#query(String, String, Collection, IndexingTypeDescriptor, IndexingQueryFilter[])}
+ * method. Key-value queries are different from fields query in a way that they
+ * return the whole cached value, not its individual fields.
+ * See also {@link IndexingSpi#query(String, String, Collection, IndexingTypeDescriptor, IndexingQueryFilter[])}.
+ */
+public interface IndexingKeyValueRow<K, V> {
+    /**
+     * Gets cache key.
+     *
+     * @return Cache key.
+     */
+    public IndexingEntity<K> key();
+
+    /**
+     * Gets cache value.
+     *
+     * @return Cache value.
+     */
+    public IndexingEntity<V> value();
+
+    /**
+     * Gets version of cache value.
+     *
+     * @return Version of cache value.
+     */
+    public byte[] version();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRowAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRowAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRowAdapter.java
new file mode 100644
index 0000000..8b95aa3
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRowAdapter.java
@@ -0,0 +1,82 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+*  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+*  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+*  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+*  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+*/
+
+package org.gridgain.grid.spi.indexing;
+
+import org.gridgain.grid.kernal.processors.cache.query.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+import org.jetbrains.annotations.*;
+
+/**
+ * Convenience adapter for {@link IndexingKeyValueRow}.
+ */
+public class IndexingKeyValueRowAdapter<K, V> implements IndexingKeyValueRow<K, V> {
+    /** Key. */
+    @GridToStringInclude
+    private IndexingEntity<K> key;
+
+    /** Value. */
+    @GridToStringInclude
+    private IndexingEntity<V> val;
+
+    /** Version. */
+    @GridToStringInclude
+    private byte[] ver;
+
+    /**
+     * Constructor.
+     *
+     * @param key Key.
+     * @param val Value.
+     */
+    public IndexingKeyValueRowAdapter(K key, V val) {
+        assert key != null;
+        assert val != null;
+
+        this.key = new IndexingEntityAdapter<>(key, null);
+        this.val = new IndexingEntityAdapter<>(val, null);
+    }
+
+    /**
+     * Constructs query index row.
+     *
+     * @param key Key.
+     * @param val Value.
+     * @param ver Version. It is {@code null} in case of {@link GridCacheQueryType#SCAN} query.
+     */
+    public IndexingKeyValueRowAdapter(IndexingEntity<K> key, @Nullable IndexingEntity<V> val,
+                                      @Nullable byte[] ver) {
+        assert key != null;
+
+        this.key = key;
+        this.val = val;
+        this.ver = ver;
+    }
+
+    /** {@inheritDoc} */
+    @Override public IndexingEntity<K> key() {
+        return key;
+    }
+
+    /** {@inheritDoc} */
+    @Override public IndexingEntity<V> value() {
+        return val;
+    }
+
+    /** {@inheritDoc} */
+    @Override public byte[] version() {
+        return ver;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(IndexingKeyValueRowAdapter.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingMarshaller.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingMarshaller.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingMarshaller.java
new file mode 100644
index 0000000..403b871
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingMarshaller.java
@@ -0,0 +1,38 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+import org.apache.ignite.spi.*;
+
+/**
+ * Marshaller to be used in indexing SPI. This marshaller automatically
+ * takes care of class loading of unmarshalled classes.
+ * See also {@link IndexingSpi#registerMarshaller(IndexingMarshaller)}.
+ */
+public interface IndexingMarshaller {
+    /**
+     * Unmarshalls bytes to object.
+     *
+     * @param bytes Bytes.
+     * @param <T> Value type.
+     * @return Value.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <T> IndexingEntity<T> unmarshal(byte[] bytes) throws IgniteSpiException;
+
+    /**
+     * Marshals object to bytes.
+     *
+     * @param entity Entity.
+     * @return Bytes.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public byte[] marshal(IndexingEntity<?> entity) throws IgniteSpiException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingQueryFilter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingQueryFilter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingQueryFilter.java
new file mode 100644
index 0000000..4424734
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingQueryFilter.java
@@ -0,0 +1,27 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.*;
+import org.jetbrains.annotations.*;
+
+/**
+ * Space name and key filter.
+ */
+public interface IndexingQueryFilter {
+    /**
+     * Creates optional predicate for space.
+     *
+     * @param spaceName Space name.
+     * @return Predicate or {@code null} if no filtering is needed.
+     */
+    @Nullable public <K, V> IgniteBiPredicate<K, V> forSpace(String spaceName) throws GridException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingSpi.java
new file mode 100644
index 0000000..d95905a
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingSpi.java
@@ -0,0 +1,188 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.cache.*;
+import org.gridgain.grid.cache.query.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Indexing SPI allows user to index cache content. Using indexing SPI user can index data in cache and run SQL,
+ * TEXT or individual field queries against these indexes. Usually indexing SPI is used by caches by name
+ * (see {@link GridCacheConfiguration#getIndexingSpiName()}). Logically storage is organized into separate spaces.
+ * Usually cache name will be used as space name, so multiple caches can write to single indexing SPI instance.
+ * <p>
+ * Functionality of this SPI is exposed to {@link GridCacheQueries} interface:
+ * <ul>
+ *      <li>{@link GridCacheQueries#createSqlQuery(Class, String)}</li>
+ *      <li>{@link GridCacheQueries#createSqlFieldsQuery(String)}</li>
+ *      <li>{@link GridCacheQueries#createFullTextQuery(Class, String)}</li>
+ * </ul>
+ * <p>
+ * The default indexing SPI implementation is
+ * {@gglink org.gridgain.grid.spi.indexing.h2.GridH2IndexingSpi} which uses H2 database engine
+ * for data indexing and querying. User can implement his own indexing SPI and use his own data structures
+ * and query language instead of SQL. SPI can be configured for grid using {@link org.apache.ignite.configuration.IgniteConfiguration#getIndexingSpi()}.
+ * <p>
+ * GridGain comes with following built-in indexing SPI implementations:
+ * <ul>
+ *      <li>{@gglink org.gridgain.grid.spi.indexing.h2.GridH2IndexingSpi}</li>
+ * </ul>
+ * <p>
+ * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
+ * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
+ * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
+ * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
+ * methods. Note again that calling methods from this interface on the obtained instance can lead
+ * to undefined behavior and explicitly not supported.
+ */
+public interface IndexingSpi extends IgniteSpi {
+    /**
+     * Queries individual fields (generally used by JDBC drivers).
+     *
+     * @param spaceName Space name.
+     * @param qry Query.
+     * @param params Query parameters.
+     * @param filters Space name and key filters.
+     * @return Query result.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> IndexingFieldsResult queryFields(@Nullable String spaceName, String qry,
+        Collection<Object> params, IndexingQueryFilter filters) throws IgniteSpiException;
+
+    /**
+     * Executes regular query.
+     *
+     * @param spaceName Space name.
+     * @param qry Query.
+     * @param params Query parameters.
+     * @param type Query return type.
+     * @param filters Space name and key filters.
+     * @return Queried rows.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> query(@Nullable String spaceName, String qry,
+        Collection<Object> params, IndexingTypeDescriptor type, IndexingQueryFilter filters)
+        throws IgniteSpiException;
+
+    /**
+     * Executes text query.
+     *
+     * @param spaceName Space name.
+     * @param qry Text query.
+     * @param type Query return type.
+     * @param filters Space name and key filter.
+     * @return Queried rows.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> queryText(@Nullable String spaceName, String qry,
+        IndexingTypeDescriptor type, IndexingQueryFilter filters) throws IgniteSpiException;
+
+    /**
+     * Gets size of index for given type or -1 if it is a unknown type.
+     *
+     * @param spaceName Space name.
+     * @param desc Type descriptor.
+     * @return Objects number.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public long size(@Nullable String spaceName, IndexingTypeDescriptor desc) throws IgniteSpiException;
+
+    /**
+     * Registers type if it was not known before or updates it otherwise.
+     *
+     * @param spaceName Space name.
+     * @param desc Type descriptor.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     * @return {@code True} if type was registered, {@code false} if for some reason it was rejected.
+     */
+    public boolean registerType(@Nullable String spaceName, IndexingTypeDescriptor desc) throws IgniteSpiException;
+
+    /**
+     * Unregisters type and removes all corresponding data.
+     *
+     * @param spaceName Space name.
+     * @param type Type descriptor.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public void unregisterType(@Nullable String spaceName, IndexingTypeDescriptor type) throws IgniteSpiException;
+
+    /**
+     * Updates index. Note that key is unique for space, so if space contains multiple indexes
+     * the key should be removed from indexes other than one being updated.
+     *
+     * @param spaceName Space name.
+     * @param type Value type.
+     * @param key Key.
+     * @param val Value.
+     * @param ver Version.
+     * @param expirationTime Expiration time or 0 if never expires.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> void store(@Nullable String spaceName, IndexingTypeDescriptor type, IndexingEntity<K> key,
+        IndexingEntity<V> val, byte[] ver, long expirationTime) throws IgniteSpiException;
+
+    /**
+     * Removes index entry by key.
+     *
+     * @param spaceName Space name.
+     * @param key Key.
+     * @return {@code True} if removed by this operation, {@code false} otherwise.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K> boolean remove(@Nullable String spaceName, IndexingEntity<K> key) throws IgniteSpiException;
+
+    /**
+     * Will be called when entry with given key is swapped.
+     *
+     * @param spaceName Space name.
+     * @param swapSpaceName Swap space name.
+     * @param key Key.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K> void onSwap(@Nullable String spaceName, String swapSpaceName, K key) throws IgniteSpiException;
+
+    /**
+     * Will be called when entry with given key is unswapped.
+     *
+     * @param spaceName Space name.
+     * @param key Key.
+     * @param val Value.
+     * @param valBytes Value bytes.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> void onUnswap(@Nullable String spaceName, K key, V val, byte[] valBytes) throws IgniteSpiException;
+
+    /**
+     * Marshaller to be used by SPI.
+     *
+     * @param marshaller Marshaller.
+     */
+    public void registerMarshaller(IndexingMarshaller marshaller);
+
+    /**
+     * Registers space in this SPI.
+     *
+     * @param spaceName Space name.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public void registerSpace(String spaceName) throws IgniteSpiException;
+
+    /**
+     * Rebuilds all indexes of given type.
+     *
+     * @param spaceName Space name.
+     * @param type Type descriptor.
+     */
+    public void rebuildIndexes(@Nullable String spaceName, IndexingTypeDescriptor type);
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingTypeDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingTypeDescriptor.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingTypeDescriptor.java
new file mode 100644
index 0000000..dfcb7d4
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingTypeDescriptor.java
@@ -0,0 +1,84 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+
+import org.apache.ignite.spi.*;
+
+import java.util.*;
+
+/**
+ * Value descriptor which allows to extract fields from value object of given type.
+ * See also {@link IndexingSpi#registerType(String, IndexingTypeDescriptor)}.
+ */
+public interface IndexingTypeDescriptor {
+    /**
+     * Gets type name which uniquely identifies this type.
+     *
+     * @return Type name which uniquely identifies this type.
+     */
+    public String name();
+
+    /**
+     * Gets mapping from values field name to its type.
+     *
+     * @return Fields that can be indexed, participate in queries and can be queried using
+     *      {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}
+     *      method.
+     */
+    public Map<String, Class<?>> valueFields();
+
+    /**
+     * Gets mapping from keys field name to its type.
+     *
+     * @return Fields that can be indexed, participate in queries and can be queried using
+     *      {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}
+     *      method.
+     */
+    public Map<String, Class<?>> keyFields();
+
+    /**
+     * Gets field value for given object.
+     *
+     * @param obj Object to get field value from.
+     * @param field Field name.
+     * @return Value for given field.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <T> T value(Object obj, String field) throws IgniteSpiException;
+
+    /**
+     * Gets indexes for this type.
+     *
+     * @return Indexes for this type.
+     */
+    public Map<String, IndexDescriptor> indexes();
+
+    /**
+     * Gets value class.
+     *
+     * @return Value class.
+     */
+    public Class<?> valueClass();
+
+    /**
+     * Gets key class.
+     *
+     * @return Key class.
+     */
+    public Class<?> keyClass();
+
+    /**
+     * Returns {@code true} if string representation of value should be indexed as text.
+     *
+     * @return If string representation of value should be full-text indexed.
+     */
+    public boolean valueTextIndex();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/main/java/org/gridgain/grid/spi/indexing/NoopIndexingSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/NoopIndexingSpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/NoopIndexingSpi.java
new file mode 100644
index 0000000..d82954c
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/NoopIndexingSpi.java
@@ -0,0 +1,119 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.indexing;
+
+import org.apache.ignite.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * No-op implementation of {@link IndexingSpi}, throws exception on query attempt.
+ */
+@IgniteSpiNoop
+public class NoopIndexingSpi extends IgniteSpiAdapter implements IndexingSpi {
+    /** */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** {@inheritDoc} */
+    @Override public <K, V> IndexingFieldsResult queryFields(@Nullable String spaceName, String qry,
+        Collection<Object> params, IndexingQueryFilter filters) throws IgniteSpiException {
+        throw spiException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> query(@Nullable String spaceName,
+        String qry, Collection<Object> params, IndexingTypeDescriptor type,
+        IndexingQueryFilter filters) throws IgniteSpiException {
+        throw spiException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> queryText(@Nullable
+        String spaceName, String qry, IndexingTypeDescriptor type, IndexingQueryFilter filters)
+        throws IgniteSpiException {
+        throw spiException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long size(@Nullable String spaceName, IndexingTypeDescriptor desc) throws IgniteSpiException {
+        throw spiException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean registerType(@Nullable String spaceName, IndexingTypeDescriptor desc)
+        throws IgniteSpiException {
+        return false;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void unregisterType(@Nullable String spaceName, IndexingTypeDescriptor type)
+        throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K, V> void store(@Nullable String spaceName, IndexingTypeDescriptor type,
+        IndexingEntity<K> key, IndexingEntity<V> val, byte[] ver, long expirationTime) throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K> boolean remove(@Nullable String spaceName, IndexingEntity<K> key) throws IgniteSpiException {
+        return false;
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K> void onSwap(@Nullable String spaceName, String swapSpaceName, K key) throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K, V> void onUnswap(@Nullable String spaceName, K key, V val, byte[] valBytes)
+        throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void registerMarshaller(IndexingMarshaller marshaller) {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void registerSpace(String spaceName) throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void rebuildIndexes(@Nullable String spaceName, IndexingTypeDescriptor type) {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(@Nullable String gridName) throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        // No-op.
+    }
+
+    /**
+     * @return No-op SPI usage exception.
+     */
+    private IgniteSpiException spiException() {
+        return new IgniteSpiException("Current grid configuration does not support queries " +
+            "(please configure GridH2IndexingSpi).");
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxExceptionAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxExceptionAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxExceptionAbstractSelfTest.java
index 27560ac..f319eb3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxExceptionAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxExceptionAbstractSelfTest.java
@@ -571,7 +571,7 @@ public abstract class GridCacheTxExceptionAbstractSelfTest extends GridCacheAbst
     /**
      * Indexing SPI that can fail on demand.
      */
-    private static class TestIndexingSpi extends IgniteSpiAdapter implements GridIndexingSpi {
+    private static class TestIndexingSpi extends IgniteSpiAdapter implements IndexingSpi {
         /** Fail flag. */
         private volatile boolean fail;
 
@@ -583,37 +583,37 @@ public abstract class GridCacheTxExceptionAbstractSelfTest extends GridCacheAbst
         }
 
         /** {@inheritDoc} */
-        @Override public <K, V> GridIndexingFieldsResult queryFields(@Nullable String spaceName, String qry,
-            Collection<Object> params, GridIndexingQueryFilter filters) {
+        @Override public <K, V> IndexingFieldsResult queryFields(@Nullable String spaceName, String qry,
+            Collection<Object> params, IndexingQueryFilter filters) {
             throw new UnsupportedOperationException();
         }
 
         /** {@inheritDoc} */
-        @Override public <K, V> IgniteSpiCloseableIterator<GridIndexingKeyValueRow<K, V>> query(
-            @Nullable String spaceName, String qry, Collection<Object> params, GridIndexingTypeDescriptor type,
-            GridIndexingQueryFilter filters) {
+        @Override public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> query(
+            @Nullable String spaceName, String qry, Collection<Object> params, IndexingTypeDescriptor type,
+            IndexingQueryFilter filters) {
             throw new UnsupportedOperationException();
         }
 
         /** {@inheritDoc} */
-        @Override public <K, V> IgniteSpiCloseableIterator<GridIndexingKeyValueRow<K, V>> queryText(
-            @Nullable String spaceName, String qry, GridIndexingTypeDescriptor type,
-            GridIndexingQueryFilter filters) {
+        @Override public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> queryText(
+            @Nullable String spaceName, String qry, IndexingTypeDescriptor type,
+            IndexingQueryFilter filters) {
             throw new UnsupportedOperationException();
         }
 
         /** {@inheritDoc} */
-        @Override public long size(@Nullable String spaceName, GridIndexingTypeDescriptor desc) {
+        @Override public long size(@Nullable String spaceName, IndexingTypeDescriptor desc) {
             return 0;
         }
 
         /** {@inheritDoc} */
-        @Override public boolean registerType(@Nullable String spaceName, GridIndexingTypeDescriptor desc) {
+        @Override public boolean registerType(@Nullable String spaceName, IndexingTypeDescriptor desc) {
             return true;
         }
 
         /** {@inheritDoc} */
-        @Override public void unregisterType(@Nullable String spaceName, GridIndexingTypeDescriptor type) {
+        @Override public void unregisterType(@Nullable String spaceName, IndexingTypeDescriptor type) {
             // No-op.
         }
 
@@ -628,18 +628,18 @@ public abstract class GridCacheTxExceptionAbstractSelfTest extends GridCacheAbst
         }
 
         /** {@inheritDoc} */
-        @Override public void registerMarshaller(GridIndexingMarshaller marshaller) {
+        @Override public void registerMarshaller(IndexingMarshaller marshaller) {
             // No-op.
         }
 
         /** {@inheritDoc} */
-        @Override public void rebuildIndexes(@Nullable String spaceName, GridIndexingTypeDescriptor type) {
+        @Override public void rebuildIndexes(@Nullable String spaceName, IndexingTypeDescriptor type) {
             // No-op.
         }
 
         /** {@inheritDoc} */
-        @Override public <K, V> void store(@Nullable String spaceName, GridIndexingTypeDescriptor type,
-                                           GridIndexingEntity<K> key, GridIndexingEntity<V> val, byte[] ver, long expirationTime)
+        @Override public <K, V> void store(@Nullable String spaceName, IndexingTypeDescriptor type,
+                                           IndexingEntity<K> key, IndexingEntity<V> val, byte[] ver, long expirationTime)
             throws IgniteSpiException {
             if (fail) {
                 fail = false;
@@ -649,7 +649,7 @@ public abstract class GridCacheTxExceptionAbstractSelfTest extends GridCacheAbst
         }
 
         /** {@inheritDoc} */
-        @Override public <K> boolean remove(@Nullable String spaceName, GridIndexingEntity<K> k)
+        @Override public <K> boolean remove(@Nullable String spaceName, IndexingEntity<K> k)
             throws IgniteSpiException {
             if (fail) {
                 fail = false;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexingSpi.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexingSpi.java b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexingSpi.java
index f6aff01..4a0f8bb 100644
--- a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexingSpi.java
+++ b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/GridH2IndexingSpi.java
@@ -45,7 +45,7 @@ import java.util.*;
 import java.util.concurrent.*;
 
 import static org.apache.ignite.IgniteSystemProperties.*;
-import static org.gridgain.grid.spi.indexing.GridIndexType.*;
+import static org.gridgain.grid.spi.indexing.IndexType.*;
 import static org.gridgain.grid.spi.indexing.h2.opt.GridH2AbstractKeyValueRow.*;
 import static org.h2.result.SortOrder.*;
 
@@ -56,10 +56,10 @@ import static org.h2.result.SortOrder.*;
  * with name {@code PUBLIC} will be used. To avoid name conflicts user should not explicitly name
  * a schema {@code PUBLIC}.
  * <p>
- * For each registered {@link GridIndexingTypeDescriptor} this SPI will create respective SQL table with
+ * For each registered {@link org.gridgain.grid.spi.indexing.IndexingTypeDescriptor} this SPI will create respective SQL table with
  * {@code '_key'} and {@code '_val'} fields for key and value, and fields from
- * {@link GridIndexingTypeDescriptor#keyFields()} and {@link GridIndexingTypeDescriptor#valueFields()}.
- * For each table it will create indexes declared in {@link GridIndexingTypeDescriptor#indexes()}.
+ * {@link org.gridgain.grid.spi.indexing.IndexingTypeDescriptor#keyFields()} and {@link org.gridgain.grid.spi.indexing.IndexingTypeDescriptor#valueFields()}.
+ * For each table it will create indexes declared in {@link org.gridgain.grid.spi.indexing.IndexingTypeDescriptor#indexes()}.
  * <p>
  * Note that you can monitor longer queries by setting {@link #setLongQueryExplain(boolean)} to {@code true}.
  * In this case a warning and execution plan are printed out if query exceeds certain time threshold. The
@@ -131,11 +131,11 @@ import static org.h2.result.SortOrder.*;
  * <img src="http://www.gridgain.com/images/spring-small.png">
  * <br>
  * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
- * @see GridIndexingSpi
+ * @see org.gridgain.grid.spi.indexing.IndexingSpi
  */
 @IgniteSpiMultipleInstancesSupport(true)
 @SuppressWarnings({"UnnecessaryFullyQualifiedName", "NonFinalStaticVariableUsedInClassInitialization"})
-public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingSpi, GridH2IndexingSpiMBean {
+public class GridH2IndexingSpi extends IgniteSpiAdapter implements IndexingSpi, GridH2IndexingSpiMBean {
     /** Default query execution time interpreted as long query (3 seconds). */
     public static final long DFLT_LONG_QRY_EXEC_TIMEOUT = 3000;
 
@@ -244,7 +244,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
     private final CountDownLatch ctxInitLatch = new CountDownLatch(1);
 
     /** Marshaller. */
-    private GridIndexingMarshaller marshaller;
+    private IndexingMarshaller marshaller;
 
     /** */
     private GridUnsafeMemory offheap;
@@ -406,7 +406,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
      * @param tblToUpdate Table to update.
      * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
      */
-    private <K> void removeKey(@Nullable String spaceName, GridIndexingEntity<K> k, TableDescriptor tblToUpdate)
+    private <K> void removeKey(@Nullable String spaceName, IndexingEntity<K> k, TableDescriptor tblToUpdate)
         throws IgniteSpiException {
         K key = k.value();
 
@@ -471,8 +471,8 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
     }
 
     /** {@inheritDoc} */
-    @Override public <K, V> void store(@Nullable String spaceName, GridIndexingTypeDescriptor type,
-        GridIndexingEntity<K> k, GridIndexingEntity<V> v, byte[] ver, long expirationTime)
+    @Override public <K, V> void store(@Nullable String spaceName, IndexingTypeDescriptor type,
+        IndexingEntity<K> k, IndexingEntity<V> v, byte[] ver, long expirationTime)
         throws IgniteSpiException {
         TableDescriptor tbl = tableDescriptor(spaceName, type);
 
@@ -498,7 +498,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
     }
 
     /** {@inheritDoc} */
-    @Override public <K> boolean remove(@Nullable String spaceName, GridIndexingEntity<K> k) throws IgniteSpiException {
+    @Override public <K> boolean remove(@Nullable String spaceName, IndexingEntity<K> k) throws IgniteSpiException {
         assert k != null;
 
         K key = k.value();
@@ -652,9 +652,9 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
 
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
-    @Override public <K, V> IgniteSpiCloseableIterator<GridIndexingKeyValueRow<K, V>> queryText(
-        @Nullable String spaceName, String qry, GridIndexingTypeDescriptor type,
-        GridIndexingQueryFilter filters) throws IgniteSpiException {
+    @Override public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> queryText(
+        @Nullable String spaceName, String qry, IndexingTypeDescriptor type,
+        IndexingQueryFilter filters) throws IgniteSpiException {
         TableDescriptor tbl = tableDescriptor(spaceName, type);
 
         if (tbl != null && tbl.luceneIdx != null)
@@ -664,7 +664,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
     }
 
     /** {@inheritDoc} */
-    @Override public void unregisterType(@Nullable String spaceName, GridIndexingTypeDescriptor type)
+    @Override public void unregisterType(@Nullable String spaceName, IndexingTypeDescriptor type)
         throws IgniteSpiException {
         TableDescriptor tbl = tableDescriptor(spaceName, type);
 
@@ -674,8 +674,8 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
 
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
-    @Override public <K, V> GridIndexingFieldsResult queryFields(@Nullable final String spaceName, final String qry,
-        @Nullable final Collection<Object> params, final GridIndexingQueryFilter filters)
+    @Override public <K, V> IndexingFieldsResult queryFields(@Nullable final String spaceName, final String qry,
+        @Nullable final Collection<Object> params, final IndexingQueryFilter filters)
         throws IgniteSpiException {
         localSpi.set(this);
 
@@ -686,7 +686,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
 
             ResultSet rs = executeSqlQueryWithTimer(conn, qry, params);
 
-            List<GridIndexingFieldMetadata> meta = null;
+            List<IndexingFieldMetadata> meta = null;
 
             if (rs != null) {
                 try {
@@ -708,7 +708,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
                 }
             }
 
-            return new GridIndexingFieldsResultAdapter(meta, new FieldsIterator(rs));
+            return new IndexingFieldsResultAdapter(meta, new FieldsIterator(rs));
         }
         finally {
             setFilters(null);
@@ -869,9 +869,9 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
      * @throws org.apache.ignite.spi.IgniteSpiException If failed.
      */
     @SuppressWarnings("unchecked")
-    @Override public <K, V> IgniteSpiCloseableIterator<GridIndexingKeyValueRow<K, V>> query(@Nullable String spaceName,
-        final String qry, @Nullable final Collection<Object> params, GridIndexingTypeDescriptor type,
-        final GridIndexingQueryFilter filters) throws IgniteSpiException {
+    @Override public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> query(@Nullable String spaceName,
+        final String qry, @Nullable final Collection<Object> params, IndexingTypeDescriptor type,
+        final IndexingQueryFilter filters) throws IgniteSpiException {
         final TableDescriptor tbl = tableDescriptor(spaceName, type);
 
         if (tbl == null)
@@ -900,7 +900,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
      *
      * @param filters Filters.
      */
-    private void setFilters(@Nullable GridIndexingQueryFilter filters) {
+    private void setFilters(@Nullable IndexingQueryFilter filters) {
         GridH2IndexBase.setFiltersForThread(filters);
     }
 
@@ -962,7 +962,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
      * @param type Type description.
      * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
      */
-    @Override public boolean registerType(@Nullable String spaceName, GridIndexingTypeDescriptor type)
+    @Override public boolean registerType(@Nullable String spaceName, IndexingTypeDescriptor type)
         throws IgniteSpiException {
         if (!validateTypeDescriptor(spaceName, type))
             return false;
@@ -1023,7 +1023,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
      * @return True if type is valid.
      * @throws org.apache.ignite.spi.IgniteSpiException If validation failed.
      */
-    private boolean validateTypeDescriptor(@Nullable String spaceName, GridIndexingTypeDescriptor type)
+    private boolean validateTypeDescriptor(@Nullable String spaceName, IndexingTypeDescriptor type)
         throws IgniteSpiException {
         assert type != null;
 
@@ -1152,7 +1152,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
      * @param type Value type descriptor.
      * @return Table descriptor or {@code null} if not found.
      */
-    @Nullable private TableDescriptor tableDescriptor(@Nullable String spaceName, GridIndexingTypeDescriptor type) {
+    @Nullable private TableDescriptor tableDescriptor(@Nullable String spaceName, IndexingTypeDescriptor type) {
         return tableDescriptor(type.name(), spaceName);
     }
 
@@ -1201,7 +1201,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
     }
 
     /** {@inheritDoc} */
-    @Override public void rebuildIndexes(@Nullable String spaceName, GridIndexingTypeDescriptor type) {
+    @Override public void rebuildIndexes(@Nullable String spaceName, IndexingTypeDescriptor type) {
         if (offheap != null)
             throw new UnsupportedOperationException("Index rebuilding is not supported when off-heap memory is used");
 
@@ -1214,19 +1214,19 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
     }
 
     /** {@inheritDoc} */
-    @Override public long size(@Nullable String spaceName, GridIndexingTypeDescriptor type) throws IgniteSpiException {
+    @Override public long size(@Nullable String spaceName, IndexingTypeDescriptor type) throws IgniteSpiException {
         TableDescriptor tbl = tableDescriptor(spaceName, type);
 
         if (tbl == null)
             return -1;
 
-        IgniteSpiCloseableIterator<List<GridIndexingEntity<?>>> iter = queryFields(spaceName,
+        IgniteSpiCloseableIterator<List<IndexingEntity<?>>> iter = queryFields(spaceName,
             "SELECT COUNT(*) FROM " + tbl.fullTableName(), null, null).iterator();
 
         if (!iter.hasNext())
             throw new IllegalStateException();
 
-        return ((GridIndexingEntityAdapter<Number>)iter.next().get(0)).value().longValue();
+        return ((IndexingEntityAdapter<Number>)iter.next().get(0)).value().longValue();
     }
 
     /** {@inheritDoc} */
@@ -1724,7 +1724,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
     }
 
     /** {@inheritDoc} */
-    @Override public void registerMarshaller(GridIndexingMarshaller marshaller) {
+    @Override public void registerMarshaller(IndexingMarshaller marshaller) {
         this.marshaller = marshaller;
     }
 
@@ -1943,7 +1943,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
         private final String fullTblName;
 
         /** */
-        private final GridIndexingTypeDescriptor type;
+        private final IndexingTypeDescriptor type;
 
         /** */
         private final String spaceName;
@@ -1961,7 +1961,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
          * @param spaceName Space name.
          * @param type Type descriptor.
          */
-        TableDescriptor(@Nullable String spaceName, GridIndexingTypeDescriptor type) {
+        TableDescriptor(@Nullable String spaceName, IndexingTypeDescriptor type) {
             this.spaceName = spaceName;
             this.type = type;
 
@@ -1994,7 +1994,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
         /**
          * @return Type.
          */
-        GridIndexingTypeDescriptor type() {
+        IndexingTypeDescriptor type() {
             return type;
         }
 
@@ -2020,9 +2020,9 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
                 }
             }
 
-            for (Map.Entry<String, GridIndexDescriptor> e : type.indexes().entrySet()) {
+            for (Map.Entry<String, IndexDescriptor> e : type.indexes().entrySet()) {
                 String name = e.getKey();
-                GridIndexDescriptor idx = e.getValue();
+                IndexDescriptor idx = e.getValue();
 
                 if (idx.type() == FULLTEXT) {
                     try {
@@ -2064,7 +2064,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
     /**
      * Special field set iterator based on database result set.
      */
-    private static class FieldsIterator extends GridH2ResultSetIterator<List<GridIndexingEntity<?>>> {
+    private static class FieldsIterator extends GridH2ResultSetIterator<List<IndexingEntity<?>>> {
         /** */
         private static final long serialVersionUID = 0L;
 
@@ -2077,12 +2077,12 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
         }
 
         /** {@inheritDoc} */
-        @Override protected List<GridIndexingEntity<?>> createRow() {
-            List<GridIndexingEntity<?>> res = new ArrayList<>(row.length);
+        @Override protected List<IndexingEntity<?>> createRow() {
+            List<IndexingEntity<?>> res = new ArrayList<>(row.length);
 
             for (Object val : row) {
-                res.add(val instanceof GridIndexingEntity ? (GridIndexingEntity<?>)val :
-                    new GridIndexingEntityAdapter<>(val, null));
+                res.add(val instanceof IndexingEntity ? (IndexingEntity<?>)val :
+                    new IndexingEntityAdapter<>(val, null));
             }
 
             return res;
@@ -2092,7 +2092,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
     /**
      * Special key/value iterator based on database result set.
      */
-    private static class KeyValIterator<K, V> extends GridH2ResultSetIterator<GridIndexingKeyValueRow<K, V>> {
+    private static class KeyValIterator<K, V> extends GridH2ResultSetIterator<IndexingKeyValueRow<K, V>> {
         /** */
         private static final long serialVersionUID = 0L;
 
@@ -2105,19 +2105,19 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
         }
 
         /** {@inheritDoc} */
-        @Override protected GridIndexingKeyValueRow<K, V> createRow() {
+        @Override protected IndexingKeyValueRow<K, V> createRow() {
             K key = (K)row[0];
             V val = (V)row[1];
 
-            return new GridIndexingKeyValueRowAdapter<>(new GridIndexingEntityAdapter<>(key, null),
-                new GridIndexingEntityAdapter<>(val, null), null);
+            return new IndexingKeyValueRowAdapter<>(new IndexingEntityAdapter<>(key, null),
+                new IndexingEntityAdapter<>(val, null), null);
         }
     }
 
     /**
      * Field descriptor.
      */
-    private static class SqlFieldMetadata implements GridIndexingFieldMetadata {
+    private static class SqlFieldMetadata implements IndexingFieldMetadata {
         /** */
         private static final long serialVersionUID = 0L;
 
@@ -2221,7 +2221,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
      */
     private class RowDescriptor implements GridH2RowDescriptor {
         /** */
-        private final GridIndexingTypeDescriptor type;
+        private final IndexingTypeDescriptor type;
 
         /** */
         private final String[] fields;
@@ -2252,7 +2252,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
          * @param schema Schema.
          * @param keyAsObj Store key as java object.
          */
-        RowDescriptor(GridIndexingTypeDescriptor type, Schema schema, boolean keyAsObj) {
+        RowDescriptor(IndexingTypeDescriptor type, Schema schema, boolean keyAsObj) {
             assert type != null;
             assert schema != null;
 
@@ -2387,7 +2387,7 @@ public class GridH2IndexingSpi extends IgniteSpiAdapter implements GridIndexingS
     private static class H2Serializer implements JavaObjectSerializer {
         /** {@inheritDoc} */
         @Override public byte[] serialize(Object o) throws Exception {
-            return localSpi.get().marshaller.marshal(new GridIndexingEntityAdapter<>(o, null));
+            return localSpi.get().marshaller.marshal(new IndexingEntityAdapter<>(o, null));
         }
 
         /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2AbstractKeyValueRow.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2AbstractKeyValueRow.java b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2AbstractKeyValueRow.java
index 56d6461..99b778f 100644
--- a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2AbstractKeyValueRow.java
+++ b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2AbstractKeyValueRow.java
@@ -11,7 +11,6 @@ package org.gridgain.grid.spi.indexing.h2.opt;
 
 import org.apache.ignite.spi.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.h2.message.*;
 import org.h2.result.*;
@@ -25,7 +24,7 @@ import java.sql.*;
 import java.util.*;
 
 /**
- * Table row implementation based on {@link GridIndexingTypeDescriptor}.
+ * Table row implementation based on {@link org.gridgain.grid.spi.indexing.IndexingTypeDescriptor}.
  */
 public abstract class GridH2AbstractKeyValueRow extends GridH2Row {
     /** */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2IndexBase.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2IndexBase.java b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2IndexBase.java
index d279e1e..d605d1a 100644
--- a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2IndexBase.java
+++ b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2IndexBase.java
@@ -27,7 +27,7 @@ import java.util.*;
  */
 public abstract class GridH2IndexBase extends BaseIndex {
     /** */
-    protected static final ThreadLocal<GridIndexingQueryFilter> filters = new ThreadLocal<>();
+    protected static final ThreadLocal<IndexingQueryFilter> filters = new ThreadLocal<>();
 
     /** */
     protected final int keyCol;
@@ -49,7 +49,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
      *
      * @param fs Filters.
      */
-    public static void setFiltersForThread(GridIndexingQueryFilter fs) {
+    public static void setFiltersForThread(IndexingQueryFilter fs) {
         filters.set(fs);
     }
 
@@ -105,7 +105,7 @@ public abstract class GridH2IndexBase extends BaseIndex {
     protected Iterator<GridH2Row> filter(Iterator<GridH2Row> iter) {
         IgniteBiPredicate<Object, Object> p = null;
 
-        GridIndexingQueryFilter f = filters.get();
+        IndexingQueryFilter f = filters.get();
 
         if (f != null) {
             String spaceName = ((GridH2Table)getTable()).spaceName();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2TreeIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2TreeIndex.java b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2TreeIndex.java
index ff01b25..ecc89fe 100644
--- a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2TreeIndex.java
+++ b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridH2TreeIndex.java
@@ -162,7 +162,7 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
 
     /** {@inheritDoc} */
     @Override public long getRowCount(@Nullable Session ses) {
-        GridIndexingQueryFilter f = filters.get();
+        IndexingQueryFilter f = filters.get();
 
         try { // Fast path if we don't need to perform any filtering.
             if (f == null || f.forSpace(((GridH2Table)getTable()).spaceName()) == null)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dec83ed4/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndex.java b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndex.java
index 99d9c35..6844093 100644
--- a/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndex.java
+++ b/modules/indexing/src/main/java/org/gridgain/grid/spi/indexing/h2/opt/GridLuceneIndex.java
@@ -46,13 +46,13 @@ public class GridLuceneIndex implements Closeable {
     public static final String EXPIRATION_TIME_FIELD_NAME = "_gg_expires__";
 
     /** */
-    private final GridIndexingMarshaller marshaller;
+    private final IndexingMarshaller marshaller;
 
     /** */
     private final String spaceName;
 
     /** */
-    private final GridIndexingTypeDescriptor type;
+    private final IndexingTypeDescriptor type;
 
     /** */
     private final IndexWriter writer;
@@ -82,8 +82,8 @@ public class GridLuceneIndex implements Closeable {
      * @param storeVal Store value in index.
      * @throws org.apache.ignite.spi.IgniteSpiException If failed.
      */
-    public GridLuceneIndex(GridIndexingMarshaller marshaller, @Nullable GridUnsafeMemory mem,
-        @Nullable String spaceName, GridIndexingTypeDescriptor type, boolean storeVal) throws IgniteSpiException {
+    public GridLuceneIndex(IndexingMarshaller marshaller, @Nullable GridUnsafeMemory mem,
+        @Nullable String spaceName, IndexingTypeDescriptor type, boolean storeVal) throws IgniteSpiException {
         this.marshaller = marshaller;
         this.spaceName = spaceName;
         this.type = type;
@@ -99,10 +99,10 @@ public class GridLuceneIndex implements Closeable {
             throw new IgniteSpiException(e);
         }
 
-        GridIndexDescriptor idx = null;
+        IndexDescriptor idx = null;
 
-        for (GridIndexDescriptor descriptor : type.indexes().values()) {
-            if (descriptor.type() == GridIndexType.FULLTEXT) {
+        for (IndexDescriptor descriptor : type.indexes().values()) {
+            if (descriptor.type() == IndexType.FULLTEXT) {
                 idx = descriptor;
 
                 break;
@@ -137,7 +137,7 @@ public class GridLuceneIndex implements Closeable {
      * @param expires Expiration time.
      * @throws org.apache.ignite.spi.IgniteSpiException If failed.
      */
-    public void store(GridIndexingEntity<?> key, GridIndexingEntity<?> val, byte[] ver, long expires)
+    public void store(IndexingEntity<?> key, IndexingEntity<?> val, byte[] ver, long expires)
         throws IgniteSpiException {
         Document doc = new Document();
 
@@ -197,7 +197,7 @@ public class GridLuceneIndex implements Closeable {
      * @param key Key.
      * @throws org.apache.ignite.spi.IgniteSpiException If failed.
      */
-    public void remove(GridIndexingEntity<?> key) throws IgniteSpiException {
+    public void remove(IndexingEntity<?> key) throws IgniteSpiException {
         try {
             writer.deleteDocuments(new Term(KEY_FIELD_NAME, Base64.encodeBase64String(marshaller.marshal(key))));
         }
@@ -217,8 +217,8 @@ public class GridLuceneIndex implements Closeable {
      * @return Query result.
      * @throws org.apache.ignite.spi.IgniteSpiException If failed.
      */
-    public <K, V> GridCloseableIterator<GridIndexingKeyValueRow<K, V>> query(String qry,
-        GridIndexingQueryFilter filters) throws IgniteSpiException {
+    public <K, V> GridCloseableIterator<IndexingKeyValueRow<K, V>> query(String qry,
+        IndexingQueryFilter filters) throws IgniteSpiException {
         IndexReader reader;
 
         try {
@@ -277,7 +277,7 @@ public class GridLuceneIndex implements Closeable {
     /**
      * Key-value iterator over fulltext search result.
      */
-    private class It<K, V> extends GridCloseableIteratorAdapter<GridIndexingKeyValueRow<K, V>> {
+    private class It<K, V> extends GridCloseableIteratorAdapter<IndexingKeyValueRow<K, V>> {
         /** */
         private static final long serialVersionUID = 0L;
 
@@ -297,7 +297,7 @@ public class GridLuceneIndex implements Closeable {
         private int idx;
 
         /** */
-        private GridIndexingKeyValueRow<K, V> curr;
+        private IndexingKeyValueRow<K, V> curr;
 
         /**
          * Constructor.
@@ -349,28 +349,28 @@ public class GridLuceneIndex implements Closeable {
 
                 String keyStr = doc.get(KEY_FIELD_NAME);
 
-                GridIndexingEntity<K> k = marshaller.unmarshal(Base64.decodeBase64(keyStr));
+                IndexingEntity<K> k = marshaller.unmarshal(Base64.decodeBase64(keyStr));
 
                 byte[] valBytes = doc.getBinaryValue(VAL_FIELD_NAME);
 
-                GridIndexingEntity<V> v = valBytes != null ? marshaller.<V>unmarshal(valBytes) :
+                IndexingEntity<V> v = valBytes != null ? marshaller.<V>unmarshal(valBytes) :
                     type.valueClass() == String.class ?
-                    new GridIndexingEntityAdapter<>((V)doc.get(VAL_STR_FIELD_NAME), null): null;
+                    new IndexingEntityAdapter<>((V)doc.get(VAL_STR_FIELD_NAME), null): null;
 
                 if (!filter(k.value(), v == null ? null : v.value()))
                     continue;
 
                 byte[] ver = doc.getBinaryValue(VER_FIELD_NAME);
 
-                curr = new GridIndexingKeyValueRowAdapter<>(k, v, ver);
+                curr = new IndexingKeyValueRowAdapter<>(k, v, ver);
 
                 break;
             }
         }
 
         /** {@inheritDoc} */
-        @Override protected GridIndexingKeyValueRow<K, V> onNext() throws GridException {
-            GridIndexingKeyValueRow<K, V> res = curr;
+        @Override protected IndexingKeyValueRow<K, V> onNext() throws GridException {
+            IndexingKeyValueRow<K, V> res = curr;
 
             findNext();
 


[23/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java
index c660e68..5e49745 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java
@@ -20,9 +20,9 @@ import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java
index d0316f0..eb1c3b3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache.distributed.dht;
 import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java
index ef1f758..94debd3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java
@@ -20,9 +20,9 @@ import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.cache.datastructures.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java
index c11628d..69c9c15 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java
index 7632932..41c7fb8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java
@@ -16,9 +16,9 @@ import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.apache.ignite.configuration.IgniteDeploymentMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
index d3aa06a..c4e438b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
@@ -21,9 +21,9 @@ import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.preloader.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java
index 1aef75b..a782718 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java
@@ -18,9 +18,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.preloader.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
index 7799773..9c9e2f7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
@@ -18,9 +18,9 @@ import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.preloader.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java
index 1d1cebd..5342bc8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java
index bd65074..656150a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.preloader.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java
index c8c9bb5..c156d08 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java
@@ -19,9 +19,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.preloader.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java
index b4cf4d9..5f82c7f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java
@@ -19,9 +19,9 @@ import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.preloader.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java
index 2530659..b5ccfe0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java
@@ -16,9 +16,9 @@ import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.apache.ignite.configuration.IgniteDeploymentMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java
index 945634c..81aa4a3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java
@@ -20,9 +20,9 @@ import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java
index bfaff8d..fd9164a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java
@@ -16,9 +16,9 @@ import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
index ba470f5..846f3dd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
@@ -19,9 +19,9 @@ import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
index 50e64f1..2d8c908 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
@@ -16,10 +16,10 @@ import org.apache.ignite.product.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.internal.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java
index 7b63819..a452a4d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java
index 8c4e96a..204a0af 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
index d0b414c..e552d88 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
index ab260f5..fab39af 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
@@ -19,9 +19,9 @@ import org.gridgain.grid.cache.store.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOneNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOneNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOneNodeSelfTest.java
index bf8323b..4379eb1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOneNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOneNodeSelfTest.java
@@ -13,8 +13,8 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
index 9fe83ff..424240d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
index 0e52ff6..b062f48 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java
index d5192a3..e3eeb6e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java
index efdff27..c979cb4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java
@@ -17,9 +17,9 @@ import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java
index beba906..a29dfd3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java
index 75d489f..5ff02e2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java
@@ -15,9 +15,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java
index 0985494..0d7b927 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java
@@ -19,9 +19,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java
index a0aec93..d61d700 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java
index cbe02d5..4058d3c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 
 import static org.gridgain.grid.cache.GridCacheMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java
index 2b4d367..64f13d1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java
index 861df0c..83da174 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java
@@ -11,10 +11,10 @@ package org.gridgain.grid.kernal.processors.cache.distributed.near;
 
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java
index d33cd37..5e0b1ba 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java
index 51dd095..846122e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java
@@ -20,9 +20,9 @@ import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java
index d3928f2..3279e38 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java
@@ -14,9 +14,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java
index 288f236..8b0fb53 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.tostring.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java
index 6e37328..0ba769b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java
@@ -14,10 +14,10 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
index 4499014..286ba6f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.log4j.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import static org.gridgain.grid.cache.GridCacheMode.*;
 import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
index 97e951e..73f231b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
@@ -17,9 +17,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
index ef0c067..ab781c0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.log4j.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;
 import static org.gridgain.grid.cache.GridCacheMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java
index dc34749..ccf92ac 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache.distributed.near;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;
 import static org.gridgain.grid.cache.GridCacheMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java
index ab77920..74b44b7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java
@@ -13,10 +13,10 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java
index d848f4e..41c58ff 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java
@@ -18,9 +18,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.processors.clock.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java
index 6e5f12c..0ce883d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.log4j.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import static org.gridgain.grid.cache.GridCacheMode.*;
 import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java
index 6821c7d..cdde421 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.log4j.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import static org.gridgain.grid.cache.GridCacheMode.*;
 import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java
index 9a27e01..675e989 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache.distributed.replicated;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import static org.gridgain.grid.cache.GridCacheMode.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java
index 2b39830..9e6f039 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.swapspace.file.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java
index 1420bf8..46ca309 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache.distributed.replicated;
 import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
index 63089ab..a065a67 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
@@ -16,9 +16,9 @@ import org.apache.ignite.events.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.eventstorage.memory.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java
index be5fe6e..11641e6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.concurrent.atomic.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java
index e08b1a3..1d5ad97 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
 import org.gridgain.grid.cache.eviction.lru.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java
index f0ab280..26ccf3b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
 import org.gridgain.grid.cache.eviction.lru.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.concurrent.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java
index b6f0914..458b9a2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java
@@ -15,9 +15,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java
index c470b64..825d526 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java
@@ -17,9 +17,9 @@ import org.gridgain.grid.cache.eviction.GridCacheEvictionPolicy;
 import org.gridgain.grid.cache.eviction.fifo.GridCacheFifoEvictionPolicy;
 import org.gridgain.grid.cache.store.GridCacheStore;
 import org.gridgain.grid.cache.store.GridCacheStoreAdapter;
-import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.U;
 import org.gridgain.testframework.junits.common.GridCommonAbstractTest;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java
index b6503d3..c307bd9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache.eviction;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java
index 06262e2..54ac3d6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionFilterSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java
index dc2b74b..03e759e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionLockUnlockSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.concurrent.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java
index 032a015..1ca5003 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionTouchSelfTest.java
@@ -17,9 +17,9 @@ import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.eviction.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java
index b8ffb93..2465b1d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheLruNearEvictionPolicySelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.lru.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;


[25/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java
index 0259bbd..c3ada7e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
index 8d0ece7..17d9f42 100644
--- a/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jdk8.backport.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsEventsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsEventsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsEventsAbstractSelfTest.java
index 6bdd0ec..fb9e2dd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsEventsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsEventsAbstractSelfTest.java
@@ -18,8 +18,8 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.ggfs.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java
index 00404ff..d6a4b23 100644
--- a/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.fs.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.ggfs.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 
 import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java
index 2f5c982..1c914d4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java
index e492984..8ed912c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.config.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java
index 8e9b501..a0c5b67 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelUnusedJobSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelUnusedJobSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelUnusedJobSelfTest.java
index 058f55e..c0442db 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelUnusedJobSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelUnusedJobSelfTest.java
@@ -14,8 +14,8 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelledJobsMetricsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelledJobsMetricsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelledJobsMetricsSelfTest.java
index 0d1c0c2..5df659f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelledJobsMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelledJobsMetricsSelfTest.java
@@ -16,8 +16,8 @@ import org.apache.ignite.resources.*;
 import org.apache.ignite.spi.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.collision.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java
index bf77f03..d5f0e49 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
index cb93f58..7376f35 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
@@ -17,9 +17,9 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.product.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.managers.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java
index 5110139..52170c8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java
@@ -23,9 +23,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java
index 39b38ce..b5a589e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java
@@ -5,9 +5,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.processors.task.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java
index 6e8021f..3143ca2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java
index dded7d5..2ea251b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java
@@ -13,10 +13,10 @@ import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
index cc91abd..5da1bcf 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
index a4da1e3..c95306e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.product.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTaskMapAsyncSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridTaskMapAsyncSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTaskMapAsyncSelfTest.java
index dbd9c6b..120a664 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridTaskMapAsyncSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTaskMapAsyncSelfTest.java
@@ -14,8 +14,8 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
index 702b917..c7116c7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.product.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java
index 16c8c74..a832496 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/GridManagerStopSelfTest.java
@@ -30,8 +30,8 @@ import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
 import org.apache.ignite.spi.deployment.*;
 import org.apache.ignite.spi.deployment.local.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.grid.spi.eventstorage.*;
 import org.gridgain.grid.spi.eventstorage.memory.*;
 import org.gridgain.grid.spi.failover.always.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
index 55ef4d7..40616f6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
@@ -21,9 +21,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.apache.ignite.spi.checkpoint.cache.*;
 import org.apache.ignite.spi.checkpoint.jdbc.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java
index abb948f..04d167a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java
@@ -18,10 +18,10 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.apache.ignite.spi.checkpoint.*;
 import org.apache.ignite.spi.checkpoint.cache.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java
index fb74412..5c3e2ab 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.managers.communication;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.kernal.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java
index 4720ba0..e16e19b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java
@@ -16,9 +16,9 @@ import org.apache.ignite.spi.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jdk8.backport.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
index 0151893..dfd691c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
@@ -17,9 +17,9 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
index c6d11c7..5788d3e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.managers.discovery;
 import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.apache.ignite.configuration.IgniteDeploymentMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java
index ec4fa70..0c30477 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.managers.discovery;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
index 3671f2f..97ac44c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
index b98c3fc..f97bb01 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
@@ -10,9 +10,9 @@
 package org.gridgain.grid.kernal.processors.cache;
 
 import org.apache.ignite.configuration.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java
index 4fb12d4..f749751 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java
@@ -17,9 +17,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.lang.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java
index 8b3891c..48663e7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java
@@ -19,9 +19,9 @@ import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.tostring.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
index 5cc0a99..8ee9a3d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.atomic.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicApiAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicApiAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicApiAbstractTest.java
index 3b9d067..d913b8c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicApiAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicApiAbstractTest.java
@@ -15,8 +15,8 @@ import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java
index 7207adc..3e969bf 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
index 30ef6ca..a3cda3d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
@@ -12,8 +12,8 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreNoBatchAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreNoBatchAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreNoBatchAbstractTest.java
index c60c0f0..910d133 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreNoBatchAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreNoBatchAbstractTest.java
@@ -11,8 +11,8 @@ package org.gridgain.grid.kernal.processors.cache;
 
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
index 6189c5c..9a2a8e6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.lang.reflect.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java
index e3dbc82..910711e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java
@@ -11,9 +11,9 @@ package org.gridgain.grid.kernal.processors.cache;
 
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
index 87640d0..90aff88 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
@@ -24,9 +24,9 @@ import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
index 4cf9e52..a136623 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
@@ -24,9 +24,9 @@ import org.gridgain.grid.cache.eviction.fifo.*;
 import org.gridgain.grid.cache.eviction.lru.*;
 import org.gridgain.grid.cache.eviction.random.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java
index f330978..9ef718d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheMemoryMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
index 7d99295..b7363a7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java
index 3a206a8..048099d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java
index a01b849..ff9976e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java
index e67a6b5..8056224 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java
index 10a1687..52f21a1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.concurrent.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java
index 3234c4b..5681714 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java
index b71a808..8a929bf 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.concurrent.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java
index 8a783e5..3ef786b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java
@@ -11,9 +11,9 @@ package org.gridgain.grid.kernal.processors.cache;
 
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
index 07049a9..4257f6f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
@@ -18,9 +18,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.store.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
index 8503287..d2039cb 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
@@ -17,9 +17,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.failover.*;
 import org.gridgain.grid.spi.failover.always.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java
index 641a84c..44b8618 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java
index b22ed56..92a2a62 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java
index 8aa38c0..c05c5f9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java
@@ -11,9 +11,9 @@ package org.gridgain.grid.kernal.processors.cache;
 
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;
 import static org.gridgain.grid.cache.GridCacheDistributionMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java
index 061f3f6..d6ab2fa 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.rendezvous.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLifecycleAwareSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLifecycleAwareSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLifecycleAwareSelfTest.java
index 61b30f2..039f9bf 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLifecycleAwareSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLifecycleAwareSelfTest.java
@@ -18,7 +18,7 @@ import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.cloner.*;
 import org.gridgain.grid.cache.eviction.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java
index 88bb4ce..ce2ef84 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java
index e697a65..8fd5f42 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java
@@ -11,9 +11,9 @@ package org.gridgain.grid.kernal.processors.cache;
 
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java
index 6e9e9a6..9a4ffb8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.lru.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.swapspace.file.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMissingCommitVersionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMissingCommitVersionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMissingCommitVersionSelfTest.java
index cac31a9..a22ae6f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMissingCommitVersionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMissingCommitVersionSelfTest.java
@@ -12,8 +12,8 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java
index 93b7e3e..60ebe1a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.apache.ignite.spi.checkpoint.noop.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java
index 025c6e5..c20eb14 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java
index 5b9d669..c2815c4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java
index 6c9494b..c47be41 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.marshaller.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java
index 0b01c6b..aaa8f42 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.Collection;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java
index 8adc7e2..3447112 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.cache.eviction.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
 import org.gridgain.grid.cache.eviction.lru.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java
index 6552187..bc671da 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java
@@ -16,9 +16,9 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.swapspace.file.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java
index 6996072..27cbf0e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.swapspace.noop.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java
index 1f7d0e3..c6bdf34 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.testframework.junits.common.*;
 


[03/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
# Renaming


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

Branch: refs/heads/master
Commit: 191aae279d9af268a951465ff89188837718d4ce
Parents: 21eed42
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 5 16:42:41 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 5 16:42:41 2014 +0300

----------------------------------------------------------------------
 .../tcp/GridTcpDiscoverySpiAdapter.java         | 997 -------------------
 .../discovery/tcp/GridTcpDiscoverySpiMBean.java | 268 -----
 .../discovery/tcp/TcpClientDiscoverySpi.java    |  30 +-
 .../grid/spi/discovery/tcp/TcpDiscoverySpi.java | 132 +--
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   | 997 +++++++++++++++++++
 .../spi/discovery/tcp/TcpDiscoverySpiMBean.java | 268 +++++
 .../tcp/internal/GridTcpDiscoveryNode.java      | 443 --------
 .../tcp/internal/GridTcpDiscoveryNodesRing.java | 636 ------------
 .../tcp/internal/GridTcpDiscoverySpiState.java  |  45 -
 .../internal/GridTcpDiscoveryStatistics.java    | 639 ------------
 .../tcp/internal/TcpDiscoveryNode.java          | 443 ++++++++
 .../tcp/internal/TcpDiscoveryNodesRing.java     | 636 ++++++++++++
 .../tcp/internal/TcpDiscoverySpiState.java      |  45 +
 .../tcp/internal/TcpDiscoveryStatistics.java    | 639 ++++++++++++
 .../GridTcpDiscoveryDuplicateIdMessage.java     |   8 +-
 .../GridTcpDiscoveryJoinRequestMessage.java     |   8 +-
 .../GridTcpDiscoveryNodeAddedMessage.java       |  14 +-
 .../GridTcpDiscoveryStatusCheckMessage.java     |   8 +-
 ...unctionExcludeNeighborsAbstractSelfTest.java |   4 +-
 .../grid/spi/GridTcpSpiForwardingSelfTest.java  |   2 +-
 .../discovery/tcp/GridTcpDiscoverySelfTest.java |   4 +-
 21 files changed, 3133 insertions(+), 3133 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiAdapter.java
deleted file mode 100644
index 61829fc..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiAdapter.java
+++ /dev/null
@@ -1,997 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.marshaller.*;
-import org.apache.ignite.marshaller.jdk.*;
-import org.apache.ignite.product.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
-import org.gridgain.grid.spi.discovery.tcp.messages.*;
-import org.gridgain.grid.util.*;
-import org.gridgain.grid.util.io.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-import static org.gridgain.grid.spi.discovery.tcp.internal.GridTcpDiscoverySpiState.*;
-
-/**
- * Base class for TCP discovery SPIs.
- */
-abstract class GridTcpDiscoverySpiAdapter extends IgniteSpiAdapter implements DiscoverySpi {
-    /** Default port to listen (value is <tt>47500</tt>). */
-    public static final int DFLT_PORT = 47500;
-
-    /** Default socket operations timeout in milliseconds (value is <tt>2,000ms</tt>). */
-    public static final long DFLT_SOCK_TIMEOUT = 2000;
-
-    /** Default timeout for receiving message acknowledgement in milliseconds (value is <tt>5,000ms</tt>). */
-    public static final long DFLT_ACK_TIMEOUT = 5000;
-
-    /** Default network timeout in milliseconds (value is <tt>5,000ms</tt>). */
-    public static final long DFLT_NETWORK_TIMEOUT = 5000;
-
-    /** Default value for thread priority (value is <tt>10</tt>). */
-    public static final int DFLT_THREAD_PRI = 10;
-
-    /** Default heartbeat messages issuing frequency (value is <tt>2,000ms</tt>). */
-    public static final long DFLT_HEARTBEAT_FREQ = 2000;
-
-    /** Default size of topology snapshots history. */
-    public static final int DFLT_TOP_HISTORY_SIZE = 1000;
-
-    /** Response OK. */
-    protected static final int RES_OK = 1;
-
-    /** Response CONTINUE JOIN. */
-    protected static final int RES_CONTINUE_JOIN = 100;
-
-    /** Response WAIT. */
-    protected static final int RES_WAIT = 200;
-
-    /** Local address. */
-    protected String locAddr;
-
-    /** IP finder. */
-    protected GridTcpDiscoveryIpFinder ipFinder;
-
-    /** Socket operations timeout. */
-    protected long sockTimeout = DFLT_SOCK_TIMEOUT;
-
-    /** Message acknowledgement timeout. */
-    protected long ackTimeout = DFLT_ACK_TIMEOUT;
-
-    /** Network timeout. */
-    protected long netTimeout = DFLT_NETWORK_TIMEOUT;
-
-    /** Thread priority for all threads started by SPI. */
-    protected int threadPri = DFLT_THREAD_PRI;
-
-    /** Heartbeat messages issuing frequency. */
-    protected long hbFreq = DFLT_HEARTBEAT_FREQ;
-
-    /** Size of topology snapshots history. */
-    protected int topHistSize = DFLT_TOP_HISTORY_SIZE;
-
-    /** Grid discovery listener. */
-    protected volatile DiscoverySpiListener lsnr;
-
-    /** Data exchange. */
-    protected DiscoverySpiDataExchange exchange;
-
-    /** Metrics provider. */
-    protected DiscoveryMetricsProvider metricsProvider;
-
-    /** Local node attributes. */
-    protected Map<String, Object> locNodeAttrs;
-
-    /** Local node version. */
-    protected IgniteProductVersion locNodeVer;
-
-    /** Local node. */
-    protected GridTcpDiscoveryNode locNode;
-
-    /** Local host. */
-    protected InetAddress locHost;
-
-    /** Internal and external addresses of local node. */
-    protected Collection<InetSocketAddress> locNodeAddrs;
-
-    /** Socket timeout worker. */
-    protected SocketTimeoutWorker sockTimeoutWorker;
-
-    /** Discovery state. */
-    protected GridTcpDiscoverySpiState spiState = DISCONNECTED;
-
-    /** Start time of the very first grid node. */
-    protected volatile long gridStartTime;
-
-    /** Marshaller. */
-    protected final IgniteMarshaller marsh = new IgniteJdkMarshaller();
-
-    /** Statistics. */
-    protected final GridTcpDiscoveryStatistics stats = new GridTcpDiscoveryStatistics();
-
-    /** Local node ID. */
-    @IgniteLocalNodeIdResource
-    protected UUID locNodeId;
-
-    /** Name of the grid. */
-    @IgniteNameResource
-    protected String gridName;
-
-    /** Logger. */
-    @IgniteLoggerResource
-    protected IgniteLogger log;
-
-    /**
-     * Sets local host IP address that discovery SPI uses.
-     * <p>
-     * If not provided, by default a first found non-loopback address
-     * will be used. If there is no non-loopback address available,
-     * then {@link InetAddress#getLocalHost()} will be used.
-     *
-     * @param locAddr IP address.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    @IgniteLocalHostResource
-    public void setLocalAddress(String locAddr) {
-        // Injection should not override value already set by Spring or user.
-        if (this.locAddr == null)
-            this.locAddr = locAddr;
-    }
-
-    /**
-     * Gets local address that was set to SPI with {@link #setLocalAddress(String)} method.
-     *
-     * @return local address.
-     */
-    public String getLocalAddress() {
-        return locAddr;
-    }
-
-    /**
-     * Gets IP finder for IP addresses sharing and storing.
-     *
-     * @return IP finder for IP addresses sharing and storing.
-     */
-    public GridTcpDiscoveryIpFinder getIpFinder() {
-        return ipFinder;
-    }
-
-    /**
-     * Sets IP finder for IP addresses sharing and storing.
-     * <p>
-     * If not provided {@link GridTcpDiscoveryMulticastIpFinder} will be used by default.
-     *
-     * @param ipFinder IP finder.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setIpFinder(GridTcpDiscoveryIpFinder ipFinder) {
-        this.ipFinder = ipFinder;
-    }
-
-    /**
-     * Sets socket operations timeout. This timeout is used to limit connection time and
-     * write-to-socket time.
-     * <p>
-     * Note that when running GridGain on Amazon EC2, socket timeout must be set to a value
-     * significantly greater than the default (e.g. to {@code 30000}).
-     * <p>
-     * If not specified, default is {@link #DFLT_SOCK_TIMEOUT}.
-     *
-     * @param sockTimeout Socket connection timeout.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setSocketTimeout(long sockTimeout) {
-        this.sockTimeout = sockTimeout;
-    }
-
-    /**
-     * Sets timeout for receiving acknowledgement for sent message.
-     * <p>
-     * If acknowledgement is not received within this timeout, sending is considered as failed
-     * and SPI tries to repeat message sending.
-     * <p>
-     * If not specified, default is {@link #DFLT_ACK_TIMEOUT}.
-     *
-     * @param ackTimeout Acknowledgement timeout.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setAckTimeout(long ackTimeout) {
-        this.ackTimeout = ackTimeout;
-    }
-
-    /**
-     * Sets maximum network timeout to use for network operations.
-     * <p>
-     * If not specified, default is {@link #DFLT_NETWORK_TIMEOUT}.
-     *
-     * @param netTimeout Network timeout.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setNetworkTimeout(long netTimeout) {
-        this.netTimeout = netTimeout;
-    }
-
-    /**
-     * Sets thread priority. All threads within SPI will be started with it.
-     * <p>
-     * If not provided, default value is {@link #DFLT_THREAD_PRI}
-     *
-     * @param threadPri Thread priority.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setThreadPriority(int threadPri) {
-        this.threadPri = threadPri;
-    }
-
-    /**
-     * Sets delay between issuing of heartbeat messages. SPI sends heartbeat messages
-     * in configurable time interval to other nodes to notify them about its state.
-     * <p>
-     * If not provided, default value is {@link #DFLT_HEARTBEAT_FREQ}.
-     *
-     * @param hbFreq Heartbeat frequency in milliseconds.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setHeartbeatFrequency(long hbFreq) {
-        this.hbFreq = hbFreq;
-    }
-
-    /**
-     * @return Size of topology snapshots history.
-     */
-    public long getTopHistorySize() {
-        return topHistSize;
-    }
-
-    /**
-     * Sets size of topology snapshots history. Specified size should be greater than or equal to default size
-     * {@link #DFLT_TOP_HISTORY_SIZE}.
-     *
-     * @param topHistSize Size of topology snapshots history.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setTopHistorySize(int topHistSize) {
-        if (topHistSize < DFLT_TOP_HISTORY_SIZE) {
-            U.warn(log, "Topology history size should be greater than or equal to default size. " +
-                "Specified size will not be set [curSize=" + this.topHistSize + ", specifiedSize=" + topHistSize +
-                ", defaultSize=" + DFLT_TOP_HISTORY_SIZE + ']');
-
-            return;
-        }
-
-        this.topHistSize = topHistSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void setNodeAttributes(Map<String, Object> attrs, IgniteProductVersion ver) {
-        assert locNodeAttrs == null;
-        assert locNodeVer == null;
-
-        if (log.isDebugEnabled()) {
-            log.debug("Node attributes to set: " + attrs);
-            log.debug("Node version to set: " + ver);
-        }
-
-        locNodeAttrs = attrs;
-        locNodeVer = ver;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException {
-        super.onContextInitialized0(spiCtx);
-
-        ipFinder.onSpiContextInitialized(spiCtx);
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void onContextDestroyed0() {
-        super.onContextDestroyed0();
-
-        ipFinder.onSpiContextDestroyed();
-    }
-
-    /** {@inheritDoc} */
-    @Override public ClusterNode getLocalNode() {
-        return locNode;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void setListener(@Nullable DiscoverySpiListener lsnr) {
-        this.lsnr = lsnr;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void setDataExchange(DiscoverySpiDataExchange exchange) {
-        this.exchange = exchange;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void setMetricsProvider(DiscoveryMetricsProvider metricsProvider) {
-        this.metricsProvider = metricsProvider;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getGridStartTime() {
-        assert gridStartTime != 0;
-
-        return gridStartTime;
-    }
-
-    /**
-     * @param sockAddr Remote address.
-     * @return Opened socket.
-     * @throws IOException If failed.
-     */
-    protected Socket openSocket(InetSocketAddress sockAddr) throws IOException {
-        assert sockAddr != null;
-
-        InetSocketAddress resolved = sockAddr.isUnresolved() ?
-            new InetSocketAddress(InetAddress.getByName(sockAddr.getHostName()), sockAddr.getPort()) : sockAddr;
-
-        InetAddress addr = resolved.getAddress();
-
-        assert addr != null;
-
-        Socket sock = new Socket();
-
-        sock.bind(new InetSocketAddress(locHost, 0));
-
-        sock.setTcpNoDelay(true);
-
-        sock.connect(resolved, (int)sockTimeout);
-
-        writeToSocket(sock, U.GG_HEADER);
-
-        return sock;
-    }
-
-    /**
-     * Writes message to the socket.
-     *
-     * @param sock Socket.
-     * @param data Raw data to write.
-     * @throws IOException If IO failed or write timed out.
-     */
-    @SuppressWarnings("ThrowFromFinallyBlock")
-    protected void writeToSocket(Socket sock, byte[] data) throws IOException {
-        assert sock != null;
-        assert data != null;
-
-        SocketTimeoutObject obj = new SocketTimeoutObject(sock, U.currentTimeMillis() + sockTimeout);
-
-        sockTimeoutWorker.addTimeoutObject(obj);
-
-        IOException err = null;
-
-        try {
-            OutputStream out = sock.getOutputStream();
-
-            out.write(data);
-
-            out.flush();
-        }
-        catch (IOException e) {
-            err = e;
-        }
-        finally {
-            boolean cancelled = obj.cancel();
-
-            if (cancelled)
-                sockTimeoutWorker.removeTimeoutObject(obj);
-
-            // Throw original exception.
-            if (err != null)
-                throw err;
-
-            if (!cancelled)
-                throw new SocketTimeoutException("Write timed out (socket was concurrently closed).");
-        }
-    }
-
-    /**
-     * Writes message to the socket.
-     *
-     * @param sock Socket.
-     * @param msg Message.
-     * @throws IOException If IO failed or write timed out.
-     * @throws GridException If marshalling failed.
-     */
-    protected void writeToSocket(Socket sock, GridTcpDiscoveryAbstractMessage msg) throws IOException, GridException {
-        writeToSocket(sock, msg, new GridByteArrayOutputStream(8 * 1024)); // 8K.
-    }
-
-    /**
-     * Writes message to the socket.
-     *
-     * @param sock Socket.
-     * @param msg Message.
-     * @param bout Byte array output stream.
-     * @throws IOException If IO failed or write timed out.
-     * @throws GridException If marshalling failed.
-     */
-    @SuppressWarnings("ThrowFromFinallyBlock")
-    protected void writeToSocket(Socket sock, GridTcpDiscoveryAbstractMessage msg, GridByteArrayOutputStream bout)
-        throws IOException, GridException {
-        assert sock != null;
-        assert msg != null;
-        assert bout != null;
-
-        // Marshall message first to perform only write after.
-        marsh.marshal(msg, bout);
-
-        SocketTimeoutObject obj = new SocketTimeoutObject(sock, U.currentTimeMillis() + sockTimeout);
-
-        sockTimeoutWorker.addTimeoutObject(obj);
-
-        IOException err = null;
-
-        try {
-            OutputStream out = sock.getOutputStream();
-
-            bout.writeTo(out);
-
-            out.flush();
-        }
-        catch (IOException e) {
-            err = e;
-        }
-        finally {
-            boolean cancelled = obj.cancel();
-
-            if (cancelled)
-                sockTimeoutWorker.removeTimeoutObject(obj);
-
-            // Throw original exception.
-            if (err != null)
-                throw err;
-
-            if (!cancelled)
-                throw new SocketTimeoutException("Write timed out (socket was concurrently closed).");
-        }
-    }
-
-    /**
-     * Writes response to the socket.
-     *
-     * @param sock Socket.
-     * @param res Integer response.
-     * @throws IOException If IO failed or write timed out.
-     */
-    @SuppressWarnings("ThrowFromFinallyBlock")
-    protected void writeToSocket(Socket sock, int res) throws IOException {
-        assert sock != null;
-
-        SocketTimeoutObject obj = new SocketTimeoutObject(sock, U.currentTimeMillis() + sockTimeout);
-
-        sockTimeoutWorker.addTimeoutObject(obj);
-
-        OutputStream out = sock.getOutputStream();
-
-        IOException err = null;
-
-        try {
-            out.write(res);
-
-            out.flush();
-        }
-        catch (IOException e) {
-            err = e;
-        }
-        finally {
-            boolean cancelled = obj.cancel();
-
-            if (cancelled)
-                sockTimeoutWorker.removeTimeoutObject(obj);
-
-            // Throw original exception.
-            if (err != null)
-                throw err;
-
-            if (!cancelled)
-                throw new SocketTimeoutException("Write timed out (socket was concurrently closed).");
-        }
-    }
-
-    /**
-     * Reads message from the socket limiting read time.
-     *
-     * @param sock Socket.
-     * @param in Input stream (in case socket stream was wrapped).
-     * @param timeout Socket timeout for this operation.
-     * @return Message.
-     * @throws IOException If IO failed or read timed out.
-     * @throws GridException If unmarshalling failed.
-     */
-    protected <T> T readMessage(Socket sock, @Nullable InputStream in, long timeout) throws IOException, GridException {
-        assert sock != null;
-
-        int oldTimeout = sock.getSoTimeout();
-
-        try {
-            sock.setSoTimeout((int)timeout);
-
-            return marsh.unmarshal(in == null ? sock.getInputStream() : in, U.gridClassLoader());
-        }
-        catch (IOException | GridException e) {
-            if (X.hasCause(e, SocketTimeoutException.class))
-                LT.warn(log, null, "Timed out waiting for message to be read (most probably, the reason is " +
-                    "in long GC pauses on remote node. Current timeout: " + timeout + '.');
-
-            throw e;
-        }
-        finally {
-            // Quietly restore timeout.
-            try {
-                sock.setSoTimeout(oldTimeout);
-            }
-            catch (SocketException ignored) {
-                // No-op.
-            }
-        }
-    }
-
-    /**
-     * Reads message delivery receipt from the socket.
-     *
-     * @param sock Socket.
-     * @param timeout Socket timeout for this operation.
-     * @return Receipt.
-     * @throws IOException If IO failed or read timed out.
-     */
-    protected int readReceipt(Socket sock, long timeout) throws IOException {
-        assert sock != null;
-
-        int oldTimeout = sock.getSoTimeout();
-
-        try {
-            sock.setSoTimeout((int)timeout);
-
-            int res = sock.getInputStream().read();
-
-            if (res == -1)
-                throw new EOFException();
-
-            return res;
-        }
-        catch (SocketTimeoutException e) {
-            LT.warn(log, null, "Timed out waiting for message delivery receipt (most probably, the reason is " +
-                "in long GC pauses on remote node; consider tuning GC and increasing 'ackTimeout' " +
-                "configuration property). Will retry to send message with increased timeout. " +
-                "Current timeout: " + timeout + '.');
-
-            stats.onAckTimeout();
-
-            throw e;
-        }
-        finally {
-            // Quietly restore timeout.
-            try {
-                sock.setSoTimeout(oldTimeout);
-            }
-            catch (SocketException ignored) {
-                // No-op.
-            }
-        }
-    }
-
-    /**
-     * Resolves addresses registered in the IP finder, removes duplicates and local host
-     * address and returns the collection of.
-     *
-     * @return Resolved addresses without duplicates and local address (potentially
-     *      empty but never null).
-     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
-     */
-    protected Collection<InetSocketAddress> resolvedAddresses() throws IgniteSpiException {
-        List<InetSocketAddress> res = new ArrayList<>();
-
-        Collection<InetSocketAddress> addrs;
-
-        // Get consistent addresses collection.
-        while (true) {
-            try {
-                addrs = registeredAddresses();
-
-                break;
-            }
-            catch (IgniteSpiException e) {
-                LT.error(log, e, "Failed to get registered addresses from IP finder on start " +
-                    "(retrying every 2000 ms).");
-            }
-
-            try {
-                U.sleep(2000);
-            }
-            catch (GridInterruptedException e) {
-                throw new IgniteSpiException("Thread has been interrupted.", e);
-            }
-        }
-
-        for (InetSocketAddress addr : addrs) {
-            assert addr != null;
-
-            try {
-                InetSocketAddress resolved = addr.isUnresolved() ?
-                    new InetSocketAddress(InetAddress.getByName(addr.getHostName()), addr.getPort()) : addr;
-
-                if (locNodeAddrs == null || !locNodeAddrs.contains(resolved))
-                    res.add(resolved);
-            }
-            catch (UnknownHostException ignored) {
-                LT.warn(log, null, "Failed to resolve address from IP finder (host is unknown): " + addr);
-
-                // Add address in any case.
-                res.add(addr);
-            }
-        }
-
-        if (!res.isEmpty())
-            Collections.shuffle(res);
-
-        return res;
-    }
-
-    /**
-     * Gets addresses registered in the IP finder, initializes addresses having no
-     * port (or 0 port) with {@link #DFLT_PORT}.
-     *
-     * @return Registered addresses.
-     * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
-     */
-    protected Collection<InetSocketAddress> registeredAddresses() throws IgniteSpiException {
-        Collection<InetSocketAddress> res = new LinkedList<>();
-
-        for (InetSocketAddress addr : ipFinder.getRegisteredAddresses()) {
-            if (addr.getPort() == 0)
-                addr = addr.isUnresolved() ? new InetSocketAddress(addr.getHostName(), DFLT_PORT) :
-                    new InetSocketAddress(addr.getAddress(), DFLT_PORT);
-
-            res.add(addr);
-        }
-
-        return res;
-    }
-
-    /**
-     * @param msg Message.
-     * @return Error.
-     */
-    protected IgniteSpiException duplicateIdError(GridTcpDiscoveryDuplicateIdMessage msg) {
-        assert msg != null;
-
-        return new IgniteSpiException("Local node has the same ID as existing node in topology " +
-            "(fix configuration and restart local node) [localNode=" + locNode +
-            ", existingNode=" + msg.node() + ']');
-    }
-
-    /**
-     * @param msg Message.
-     * @return Error.
-     */
-    protected IgniteSpiException authenticationFailedError(GridTcpDiscoveryAuthFailedMessage msg) {
-        assert msg != null;
-
-        return new IgniteSpiException(new GridAuthenticationException("Authentication failed [nodeId=" +
-            msg.creatorNodeId() + ", addr=" + msg.address().getHostAddress() + ']'));
-    }
-
-    /**
-     * @param msg Message.
-     * @return Error.
-     */
-    protected IgniteSpiException checkFailedError(GridTcpDiscoveryCheckFailedMessage msg) {
-        assert msg != null;
-
-        return versionCheckFailed(msg) ? new IgniteSpiVersionCheckException(msg.error()) :
-            new IgniteSpiException(msg.error());
-    }
-
-    /**
-     * @param msg Message.
-     * @return Whether delivery of the message is ensured.
-     */
-    protected boolean ensured(GridTcpDiscoveryAbstractMessage msg) {
-        return U.getAnnotation(msg.getClass(), GridTcpDiscoveryEnsureDelivery.class) != null;
-    }
-
-    /**
-     * @param msg Failed message.
-     * @return {@code True} if specified failed message relates to version incompatibility, {@code false} otherwise.
-     * @deprecated Parsing of error message was used for preserving backward compatibility. We should remove it
-     *      and create separate message for failed version check with next major release.
-     */
-    @Deprecated
-    private static boolean versionCheckFailed(GridTcpDiscoveryCheckFailedMessage msg) {
-        return msg.error().contains("versions are not compatible");
-    }
-
-    /**
-     * Handles sockets timeouts.
-     */
-    protected class SocketTimeoutWorker extends IgniteSpiThread {
-        /** Time-based sorted set for timeout objects. */
-        private final GridConcurrentSkipListSet<SocketTimeoutObject> timeoutObjs =
-            new GridConcurrentSkipListSet<>(new Comparator<SocketTimeoutObject>() {
-                @Override public int compare(SocketTimeoutObject o1, SocketTimeoutObject o2) {
-                    long time1 = o1.endTime();
-                    long time2 = o2.endTime();
-
-                    long id1 = o1.id();
-                    long id2 = o2.id();
-
-                    return time1 < time2 ? -1 : time1 > time2 ? 1 :
-                        id1 < id2 ? -1 : id1 > id2 ? 1 : 0;
-                }
-            });
-
-        /** Mutex. */
-        private final Object mux0 = new Object();
-
-        /**
-         *
-         */
-        SocketTimeoutWorker() {
-            super(gridName, "tcp-disco-sock-timeout-worker", log);
-
-            setPriority(threadPri);
-        }
-
-        /**
-         * @param timeoutObj Timeout object to add.
-         */
-        @SuppressWarnings({"NakedNotify"})
-        public void addTimeoutObject(SocketTimeoutObject timeoutObj) {
-            assert timeoutObj != null && timeoutObj.endTime() > 0 && timeoutObj.endTime() != Long.MAX_VALUE;
-
-            timeoutObjs.add(timeoutObj);
-
-            if (timeoutObjs.firstx() == timeoutObj) {
-                synchronized (mux0) {
-                    mux0.notifyAll();
-                }
-            }
-        }
-
-        /**
-         * @param timeoutObj Timeout object to remove.
-         */
-        public void removeTimeoutObject(SocketTimeoutObject timeoutObj) {
-            assert timeoutObj != null;
-
-            timeoutObjs.remove(timeoutObj);
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void body() throws InterruptedException {
-            if (log.isDebugEnabled())
-                log.debug("Socket timeout worker has been started.");
-
-            while (!isInterrupted()) {
-                long now = U.currentTimeMillis();
-
-                for (Iterator<SocketTimeoutObject> iter = timeoutObjs.iterator(); iter.hasNext(); ) {
-                    SocketTimeoutObject timeoutObj = iter.next();
-
-                    if (timeoutObj.endTime() <= now) {
-                        iter.remove();
-
-                        if (timeoutObj.onTimeout()) {
-                            LT.warn(log, null, "Socket write has timed out (consider increasing " +
-                                "'sockTimeout' configuration property) [sockTimeout=" + sockTimeout + ']');
-
-                            stats.onSocketTimeout();
-                        }
-                    }
-                    else
-                        break;
-                }
-
-                synchronized (mux0) {
-                    while (true) {
-                        // Access of the first element must be inside of
-                        // synchronization block, so we don't miss out
-                        // on thread notification events sent from
-                        // 'addTimeoutObject(..)' method.
-                        SocketTimeoutObject first = timeoutObjs.firstx();
-
-                        if (first != null) {
-                            long waitTime = first.endTime() - U.currentTimeMillis();
-
-                            if (waitTime > 0)
-                                mux0.wait(waitTime);
-                            else
-                                break;
-                        }
-                        else
-                            mux0.wait(5000);
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Socket timeout object.
-     */
-    protected static class SocketTimeoutObject {
-        /** */
-        private static final AtomicLong idGen = new AtomicLong();
-
-        /** */
-        private final long id = idGen.incrementAndGet();
-
-        /** */
-        private final Socket sock;
-
-        /** */
-        private final long endTime;
-
-        /** */
-        private final AtomicBoolean done = new AtomicBoolean();
-
-        /**
-         * @param sock Socket.
-         * @param endTime End time.
-         */
-        SocketTimeoutObject(Socket sock, long endTime) {
-            assert sock != null;
-            assert endTime > 0;
-
-            this.sock = sock;
-            this.endTime = endTime;
-        }
-
-        /**
-         * @return {@code True} if object has not yet been processed.
-         */
-        boolean cancel() {
-            return done.compareAndSet(false, true);
-        }
-
-        /**
-         * @return {@code True} if object has not yet been canceled.
-         */
-        boolean onTimeout() {
-            if (done.compareAndSet(false, true)) {
-                // Close socket - timeout occurred.
-                U.closeQuiet(sock);
-
-                return true;
-            }
-
-            return false;
-        }
-
-        /**
-         * @return End time.
-         */
-        long endTime() {
-            return endTime;
-        }
-
-        /**
-         * @return ID.
-         */
-        long id() {
-            return id;
-        }
-
-        /** {@inheritDoc} */
-        @Override public String toString() {
-            return S.toString(SocketTimeoutObject.class, this);
-        }
-    }
-
-    /**
-     * Base class for message workers.
-     */
-    protected abstract class MessageWorkerAdapter extends IgniteSpiThread {
-        /** Pre-allocated output stream (100K). */
-        private final GridByteArrayOutputStream bout = new GridByteArrayOutputStream(100 * 1024);
-
-        /** Message queue. */
-        private final BlockingDeque<GridTcpDiscoveryAbstractMessage> queue = new LinkedBlockingDeque<>();
-
-        /** Backed interrupted flag. */
-        private volatile boolean interrupted;
-
-        /**
-         * @param name Thread name.
-         */
-        protected MessageWorkerAdapter(String name) {
-            super(gridName, name, log);
-
-            setPriority(threadPri);
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void body() throws InterruptedException {
-            if (log.isDebugEnabled())
-                log.debug("Message worker started [locNodeId=" + locNodeId + ']');
-
-            while (!isInterrupted()) {
-                GridTcpDiscoveryAbstractMessage msg = queue.poll(2000, TimeUnit.MILLISECONDS);
-
-                if (msg == null)
-                    continue;
-
-                processMessage(msg);
-            }
-        }
-
-        /** {@inheritDoc} */
-        @Override public void interrupt() {
-            interrupted = true;
-
-            super.interrupt();
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean isInterrupted() {
-            return interrupted || super.isInterrupted();
-        }
-
-        /**
-         * @return Current queue size.
-         */
-        int queueSize() {
-            return queue.size();
-        }
-
-        /**
-         * Adds message to queue.
-         *
-         * @param msg Message to add.
-         */
-        void addMessage(GridTcpDiscoveryAbstractMessage msg) {
-            assert msg != null;
-
-            if (msg instanceof GridTcpDiscoveryHeartbeatMessage)
-                queue.addFirst(msg);
-            else
-                queue.add(msg);
-
-            if (log.isDebugEnabled())
-                log.debug("Message has been added to queue: " + msg);
-        }
-
-        protected abstract void processMessage(GridTcpDiscoveryAbstractMessage msg);
-
-        /**
-         * @param sock Socket.
-         * @param msg Message.
-         * @throws IOException If IO failed.
-         * @throws GridException If marshalling failed.
-         */
-        protected final void writeToSocket(Socket sock, GridTcpDiscoveryAbstractMessage msg)
-            throws IOException, GridException {
-            bout.reset();
-
-            GridTcpDiscoverySpiAdapter.this.writeToSocket(sock, msg, bout);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiMBean.java
deleted file mode 100644
index a680fc2..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySpiMBean.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.mbean.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Management bean for {@link TcpDiscoverySpi}.
- */
-public interface GridTcpDiscoverySpiMBean extends IgniteSpiManagementMBean {
-    /**
-     * Gets delay between heartbeat messages sent by coordinator.
-     *
-     * @return Time period in milliseconds.
-     */
-    @IgniteMBeanDescription("Heartbeat frequency.")
-    public long getHeartbeatFrequency();
-
-    /**
-     * Gets current SPI state.
-     *
-     * @return Current SPI state.
-     */
-    @IgniteMBeanDescription("SPI state.")
-    public String getSpiState();
-
-    /**
-     * Gets {@link GridTcpDiscoveryIpFinder} (string representation).
-     *
-     * @return IPFinder (string representation).
-     */
-    @IgniteMBeanDescription("IP Finder.")
-    public String getIpFinderFormatted();
-
-    /**
-     * Gets number of connection attempts.
-     *
-     * @return Number of connection attempts.
-     */
-    @IgniteMBeanDescription("Reconnect count.")
-    public int getReconnectCount();
-
-    /**
-     * Gets network timeout.
-     *
-     * @return Network timeout.
-     */
-    @IgniteMBeanDescription("Network timeout.")
-    public long getNetworkTimeout();
-
-    /**
-     * Gets local TCP port SPI listens to.
-     *
-     * @return Local port range.
-     */
-    @IgniteMBeanDescription("Local TCP port.")
-    public int getLocalPort();
-
-    /**
-     * Gets local TCP port range.
-     *
-     * @return Local port range.
-     */
-    @IgniteMBeanDescription("Local TCP port range.")
-    public int getLocalPortRange();
-
-    /**
-     * Gets max heartbeats count node can miss without initiating status check.
-     *
-     * @return Max missed heartbeats.
-     */
-    @IgniteMBeanDescription("Max missed heartbeats.")
-    public int getMaxMissedHeartbeats();
-
-    /**
-     * Gets max heartbeats count node can miss without failing client node.
-     *
-     * @return Max missed client heartbeats.
-     */
-    @IgniteMBeanDescription("Max missed client heartbeats.")
-    public int getMaxMissedClientHeartbeats();
-
-    /**
-     * Gets thread priority. All threads within SPI will be started with it.
-     *
-     * @return Thread priority.
-     */
-    @IgniteMBeanDescription("Threads priority.")
-    public int getThreadPriority();
-
-    /**
-     * Gets IP finder clean frequency.
-     *
-     * @return IP finder clean frequency.
-     */
-    @IgniteMBeanDescription("IP finder clean frequency.")
-    public long getIpFinderCleanFrequency();
-
-    /**
-     * Gets statistics print frequency.
-     *
-     * @return Statistics print frequency in milliseconds.
-     */
-    @IgniteMBeanDescription("Statistics print frequency.")
-    public long getStatisticsPrintFrequency();
-
-    /**
-     * Gets message worker queue current size.
-     *
-     * @return Message worker queue current size.
-     */
-    @IgniteMBeanDescription("Message worker queue current size.")
-    public int getMessageWorkerQueueSize();
-
-    /**
-     * Gets joined nodes count.
-     *
-     * @return Nodes joined count.
-     */
-    @IgniteMBeanDescription("Nodes joined count.")
-    public long getNodesJoined();
-
-    /**
-     * Gets left nodes count.
-     *
-     * @return Left nodes count.
-     */
-    @IgniteMBeanDescription("Nodes left count.")
-    public long getNodesLeft();
-
-    /**
-     * Gets failed nodes count.
-     *
-     * @return Failed nodes count.
-     */
-    @IgniteMBeanDescription("Nodes failed count.")
-    public long getNodesFailed();
-
-    /**
-     * Gets pending messages registered count.
-     *
-     * @return Pending messages registered count.
-     */
-    @IgniteMBeanDescription("Pending messages registered.")
-    public long getPendingMessagesRegistered();
-
-    /**
-     * Gets pending messages discarded count.
-     *
-     * @return Pending messages registered count.
-     */
-    @IgniteMBeanDescription("Pending messages discarded.")
-    public long getPendingMessagesDiscarded();
-
-    /**
-     * Gets avg message processing time.
-     *
-     * @return Avg message processing time.
-     */
-    @IgniteMBeanDescription("Avg message processing time.")
-    public long getAvgMessageProcessingTime();
-
-    /**
-     * Gets max message processing time.
-     *
-     * @return Max message processing time.
-     */
-    @IgniteMBeanDescription("Max message processing time.")
-    public long getMaxMessageProcessingTime();
-
-    /**
-     * Gets total received messages count.
-     *
-     * @return Total received messages count.
-     */
-    @IgniteMBeanDescription("Total received messages count.")
-    public int getTotalReceivedMessages();
-
-    /**
-     * Gets received messages counts (grouped by type).
-     *
-     * @return Map containing message types and respective counts.
-     */
-    @IgniteMBeanDescription("Received messages by type.")
-    public Map<String, Integer> getReceivedMessages();
-
-    /**
-     * Gets total processed messages count.
-     *
-     * @return Total processed messages count.
-     */
-    @IgniteMBeanDescription("Total processed messages count.")
-    public int getTotalProcessedMessages();
-
-    /**
-     * Gets processed messages counts (grouped by type).
-     *
-     * @return Map containing message types and respective counts.
-     */
-    @IgniteMBeanDescription("Received messages by type.")
-    public Map<String, Integer> getProcessedMessages();
-
-    /**
-     * Gets time local node has been coordinator since.
-     *
-     * @return Time local node is coordinator since.
-     */
-    @IgniteMBeanDescription("Local node is coordinator since.")
-    public long getCoordinatorSinceTimestamp();
-
-    /**
-     * Gets current coordinator.
-     *
-     * @return Gets current coordinator.
-     */
-    @IgniteMBeanDescription("Coordinator node ID.")
-    @Nullable public UUID getCoordinator();
-
-    /**
-     * Gets message acknowledgement timeout.
-     *
-     * @return Message acknowledgement timeout.
-     */
-    @IgniteMBeanDescription("Message acknowledgement timeout.")
-    public long getAckTimeout();
-
-    /**
-     * Gets maximum message acknowledgement timeout.
-     *
-     * @return Maximum message acknowledgement timeout.
-     */
-    @IgniteMBeanDescription("Maximum message acknowledgement timeout.")
-    public long getMaxAckTimeout();
-
-    /**
-     * Gets socket timeout.
-     *
-     * @return Socket timeout.
-     */
-    @IgniteMBeanDescription("Socket timeout.")
-    public long getSocketTimeout();
-
-    /**
-     * Gets join timeout.
-     *
-     * @return Join timeout.
-     */
-    @IgniteMBeanDescription("Join timeout.")
-    public long getJoinTimeout();
-
-    /**
-     * Dumps debug info using configured logger.
-     */
-    @IgniteMBeanDescription("Dump debug info.")
-    public void dumpDebugInfo();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
index d04421d..33ec848 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -47,12 +47,12 @@ import static org.gridgain.grid.spi.discovery.tcp.messages.GridTcpDiscoveryHeart
 @IgniteSpiMultipleInstancesSupport(true)
 @DiscoverySpiOrderSupport(true)
 @DiscoverySpiHistorySupport(true)
-public class TcpClientDiscoverySpi extends GridTcpDiscoverySpiAdapter implements TcpClientDiscoverySpiMBean {
+public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpClientDiscoverySpiMBean {
     /** Default disconnect check interval. */
     public static final long DFLT_DISCONNECT_CHECK_INT = 2000;
 
     /** Remote nodes. */
-    private final ConcurrentMap<UUID, GridTcpDiscoveryNode> rmtNodes = new ConcurrentHashMap8<>();
+    private final ConcurrentMap<UUID, TcpDiscoveryNode> rmtNodes = new ConcurrentHashMap8<>();
 
     /** Socket. */
     private volatile Socket sock;
@@ -245,7 +245,7 @@ public class TcpClientDiscoverySpi extends GridTcpDiscoverySpiAdapter implements
             throw new IgniteSpiException("Failed to resolve local host to set of external addresses: " + locHost, e);
         }
 
-        locNode = new GridTcpDiscoveryNode(
+        locNode = new TcpDiscoveryNode(
             locNodeId,
             addrs.get1(),
             addrs.get2(),
@@ -326,8 +326,8 @@ public class TcpClientDiscoverySpi extends GridTcpDiscoverySpiAdapter implements
 
     /** {@inheritDoc} */
     @Override public Collection<ClusterNode> getRemoteNodes() {
-        return F.view(U.<GridTcpDiscoveryNode, ClusterNode>arrayList(rmtNodes.values(), new P1<GridTcpDiscoveryNode>() {
-            @Override public boolean apply(GridTcpDiscoveryNode node) {
+        return F.view(U.<TcpDiscoveryNode, ClusterNode>arrayList(rmtNodes.values(), new P1<TcpDiscoveryNode>() {
+            @Override public boolean apply(TcpDiscoveryNode node) {
                 return node.visible();
             }
         }));
@@ -338,7 +338,7 @@ public class TcpClientDiscoverySpi extends GridTcpDiscoverySpiAdapter implements
         if (locNodeId.equals(nodeId))
             return locNode;
 
-        GridTcpDiscoveryNode node = rmtNodes.get(nodeId);
+        TcpDiscoveryNode node = rmtNodes.get(nodeId);
 
         return node != null && node.visible() ? node : null;
     }
@@ -350,7 +350,7 @@ public class TcpClientDiscoverySpi extends GridTcpDiscoverySpiAdapter implements
         if (nodeId.equals(locNodeId))
             return true;
 
-        GridTcpDiscoveryNode node = rmtNodes.get(nodeId);
+        TcpDiscoveryNode node = rmtNodes.get(nodeId);
 
         return node != null && node.visible();
     }
@@ -857,16 +857,16 @@ public class TcpClientDiscoverySpi extends GridTcpDiscoverySpiAdapter implements
             if (leaveLatch != null)
                 return;
 
-            GridTcpDiscoveryNode node = msg.node();
+            TcpDiscoveryNode node = msg.node();
 
             UUID newNodeId = node.id();
 
             if (locNodeId.equals(newNodeId)) {
                 if (joinLatch.getCount() > 0) {
-                    Collection<GridTcpDiscoveryNode> top = msg.topology();
+                    Collection<TcpDiscoveryNode> top = msg.topology();
 
                     if (top != null) {
-                        for (GridTcpDiscoveryNode n : top) {
+                        for (TcpDiscoveryNode n : top) {
                             if (n.order() > 0)
                                 n.visible(true);
 
@@ -934,7 +934,7 @@ public class TcpClientDiscoverySpi extends GridTcpDiscoverySpiAdapter implements
                         "[msg=" + msg + ", locNode=" + locNode + ']');
             }
             else {
-                GridTcpDiscoveryNode node = rmtNodes.get(msg.nodeId());
+                TcpDiscoveryNode node = rmtNodes.get(msg.nodeId());
 
                 if (node == null) {
                     if (log.isDebugEnabled())
@@ -984,7 +984,7 @@ public class TcpClientDiscoverySpi extends GridTcpDiscoverySpiAdapter implements
                 if (leaveLatch != null)
                     return;
 
-                GridTcpDiscoveryNode node = rmtNodes.remove(msg.creatorNodeId());
+                TcpDiscoveryNode node = rmtNodes.remove(msg.creatorNodeId());
 
                 if (node == null) {
                     if (log.isDebugEnabled())
@@ -1016,7 +1016,7 @@ public class TcpClientDiscoverySpi extends GridTcpDiscoverySpiAdapter implements
                 return;
 
             if (!locNodeId.equals(msg.creatorNodeId())) {
-                GridTcpDiscoveryNode node = rmtNodes.remove(msg.failedNodeId());
+                TcpDiscoveryNode node = rmtNodes.remove(msg.failedNodeId());
 
                 if (node == null) {
                     if (log.isDebugEnabled())
@@ -1142,7 +1142,7 @@ public class TcpClientDiscoverySpi extends GridTcpDiscoverySpiAdapter implements
             assert nodeId != null;
             assert metrics != null;
 
-            GridTcpDiscoveryNode node = nodeId.equals(locNodeId) ? locNode : rmtNodes.get(nodeId);
+            TcpDiscoveryNode node = nodeId.equals(locNodeId) ? locNode : rmtNodes.get(nodeId);
 
             if (node != null && node.visible()) {
                 node.setMetrics(metrics);
@@ -1186,7 +1186,7 @@ public class TcpClientDiscoverySpi extends GridTcpDiscoverySpiAdapter implements
         private Collection<ClusterNode> allNodes() {
             Collection<ClusterNode> allNodes = new TreeSet<>();
 
-            for (GridTcpDiscoveryNode node : rmtNodes.values()) {
+            for (TcpDiscoveryNode node : rmtNodes.values()) {
                 if (node.visible())
                     allNodes.add(node);
             }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/191aae27/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
index 34b0ad4..4541e94 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -46,7 +46,7 @@ import java.util.concurrent.*;
 import static org.apache.ignite.events.IgniteEventType.*;
 import static org.gridgain.grid.kernal.GridNodeAttributes.*;
 import static org.apache.ignite.spi.IgnitePortProtocol.*;
-import static org.gridgain.grid.spi.discovery.tcp.internal.GridTcpDiscoverySpiState.*;
+import static org.gridgain.grid.spi.discovery.tcp.internal.TcpDiscoverySpiState.*;
 import static org.gridgain.grid.spi.discovery.tcp.messages.GridTcpDiscoveryHeartbeatMessage.*;
 import static org.gridgain.grid.spi.discovery.tcp.messages.GridTcpDiscoveryStatusCheckMessage.*;
 
@@ -139,7 +139,7 @@ import static org.gridgain.grid.spi.discovery.tcp.messages.GridTcpDiscoveryStatu
 @IgniteSpiMultipleInstancesSupport(true)
 @DiscoverySpiOrderSupport(true)
 @DiscoverySpiHistorySupport(true)
-public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridTcpDiscoverySpiMBean {
+public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscoverySpiMBean {
     /** Default local port range (value is <tt>100</tt>). */
     public static final int DFLT_PORT_RANGE = 100;
 
@@ -207,7 +207,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
     /** Nodes ring. */
     @GridToStringExclude
-    private final GridTcpDiscoveryNodesRing ring = new GridTcpDiscoveryNodesRing();
+    private final TcpDiscoveryNodesRing ring = new TcpDiscoveryNodesRing();
 
     /** Topology snapshots history. */
     private final SortedMap<Long, Collection<ClusterNode>> topHist = new TreeMap<>();
@@ -242,10 +242,10 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
     private StatisticsPrinter statsPrinter;
 
     /** Failed nodes (but still in topology). */
-    private Collection<GridTcpDiscoveryNode> failedNodes = new HashSet<>();
+    private Collection<TcpDiscoveryNode> failedNodes = new HashSet<>();
 
     /** Leaving nodes (but still in topology). */
-    private Collection<GridTcpDiscoveryNode> leavingNodes = new HashSet<>();
+    private Collection<TcpDiscoveryNode> leavingNodes = new HashSet<>();
 
     /** If non-shared IP finder is used this flag shows whether IP finder contains local address. */
     private boolean ipFinderHasLocAddr;
@@ -374,7 +374,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
     /** {@inheritDoc} */
     @Override public int getLocalPort() {
-        GridTcpDiscoveryNode locNode0 = locNode;
+        TcpDiscoveryNode locNode0 = locNode;
 
         return locNode0 != null ? locNode0.discoveryPort() : 0;
     }
@@ -604,7 +604,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
     /** {@inheritDoc} */
     @Nullable @Override public UUID getCoordinator() {
-        GridTcpDiscoveryNode crd = resolveCoordinator();
+        TcpDiscoveryNode crd = resolveCoordinator();
 
         return crd != null ? crd.id() : null;
     }
@@ -619,7 +619,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
             // Return local node directly.
             return locNode;
 
-        GridTcpDiscoveryNode node = ring.node(nodeId);
+        TcpDiscoveryNode node = ring.node(nodeId);
 
         if (node != null && !node.visible())
             return null;
@@ -629,7 +629,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
     /** {@inheritDoc} */
     @Override public Collection<ClusterNode> getRemoteNodes() {
-        return F.<GridTcpDiscoveryNode, ClusterNode>upcast(ring.visibleRemoteNodes());
+        return F.<TcpDiscoveryNode, ClusterNode>upcast(ring.visibleRemoteNodes());
     }
 
     /** {@inheritDoc} */
@@ -694,7 +694,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
             throw new IgniteSpiException("Failed to resolve local host to set of external addresses: " + locHost, e);
         }
 
-        locNode = new GridTcpDiscoveryNode(
+        locNode = new TcpDiscoveryNode(
             locNodeId,
             addrs.get1(),
             addrs.get2(),
@@ -853,7 +853,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
         if (hbFreq < 2000)
             U.warn(log, "Heartbeat frequency is too high (at least 2000 ms recommended): " + hbFreq);
 
-        registerMBean(gridName, this, GridTcpDiscoverySpiMBean.class);
+        registerMBean(gridName, this, TcpDiscoverySpiMBean.class);
 
         if (ipFinder instanceof GridTcpDiscoveryMulticastIpFinder) {
             GridTcpDiscoveryMulticastIpFinder mcastIpFinder = ((GridTcpDiscoveryMulticastIpFinder)ipFinder);
@@ -988,7 +988,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
         if (ipFinder != null)
             ipFinder.close();
 
-        Collection<GridTcpDiscoveryNode> rmts = null;
+        Collection<TcpDiscoveryNode> rmts = null;
 
         if (!disconnect) {
             // This is final stop.
@@ -1015,7 +1015,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
             if (lsnr != null) {
                 Collection<ClusterNode> processed = new LinkedList<>();
 
-                for (GridTcpDiscoveryNode n : rmts) {
+                for (TcpDiscoveryNode n : rmts) {
                     assert n.visible();
 
                     processed.add(n);
@@ -1087,7 +1087,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
         if (nodeId == locNodeId)
             return true;
 
-        GridTcpDiscoveryNode node = ring.node(nodeId);
+        TcpDiscoveryNode node = ring.node(nodeId);
 
         if (node == null || !node.visible())
             return false;
@@ -1109,7 +1109,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
      * @param node Node.
      * @return {@code True} if ping succeeds.
      */
-    private boolean pingNode(GridTcpDiscoveryNode node) {
+    private boolean pingNode(TcpDiscoveryNode node) {
         assert node != null;
 
         if (node.id().equals(locNodeId))
@@ -1649,7 +1649,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
      * @param node Node to marshall credentials for.
      * @throws org.apache.ignite.spi.IgniteSpiException If marshalling failed.
      */
-    private void marshalCredentials(GridTcpDiscoveryNode node) throws IgniteSpiException {
+    private void marshalCredentials(TcpDiscoveryNode node) throws IgniteSpiException {
         try {
             // Use security-unsafe getter.
             Map<String, Object> attrs = new HashMap<>(node.getAttributes());
@@ -1671,7 +1671,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
      * @return Security credentials.
      * @throws org.apache.ignite.spi.IgniteSpiException If unmarshal fails.
      */
-    private GridSecurityCredentials unmarshalCredentials(GridTcpDiscoveryNode node) throws IgniteSpiException {
+    private GridSecurityCredentials unmarshalCredentials(TcpDiscoveryNode node) throws IgniteSpiException {
         try {
             byte[] credBytes = (byte[])node.getAttributes().get(GridNodeAttributes.ATTR_SECURITY_CREDENTIALS);
 
@@ -1709,20 +1709,20 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
      * @param topVer Topology version.
      * @param node Remote node this event is connected with.
      */
-    private void notifyDiscovery(int type, long topVer, GridTcpDiscoveryNode node) {
+    private void notifyDiscovery(int type, long topVer, TcpDiscoveryNode node) {
         assert type > 0;
         assert node != null;
 
         DiscoverySpiListener lsnr = this.lsnr;
 
-        GridTcpDiscoverySpiState spiState = spiStateCopy();
+        TcpDiscoverySpiState spiState = spiStateCopy();
 
         if (lsnr != null && node.visible() && (spiState == CONNECTED || spiState == DISCONNECTING)) {
             if (log.isDebugEnabled())
                 log.debug("Discovery notification [node=" + node + ", spiState=" + spiState +
                     ", type=" + U.gridEventName(type) + ", topVer=" + topVer + ']');
 
-            Collection<ClusterNode> top = F.<GridTcpDiscoveryNode, ClusterNode>upcast(ring.visibleNodes());
+            Collection<ClusterNode> top = F.<TcpDiscoveryNode, ClusterNode>upcast(ring.visibleNodes());
 
             Map<Long, Collection<ClusterNode>> hist = updateTopologyHistory(topVer, top);
 
@@ -1763,7 +1763,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
      *      Internal addresses placed before external addresses.
      */
     @SuppressWarnings("TypeMayBeWeakened")
-    private LinkedHashSet<InetSocketAddress> getNodeAddresses(GridTcpDiscoveryNode node) {
+    private LinkedHashSet<InetSocketAddress> getNodeAddresses(TcpDiscoveryNode node) {
         LinkedHashSet<InetSocketAddress> res = new LinkedHashSet<>(node.socketAddresses());
 
         Collection<InetSocketAddress> extAddrs = node.attribute(createSpiAttributeName(ATTR_EXT_ADDRS));
@@ -1782,7 +1782,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
      *      Internal addresses will be sorted with {@code inetAddressesComparator(sameHost)}.
      */
     @SuppressWarnings("TypeMayBeWeakened")
-    private LinkedHashSet<InetSocketAddress> getNodeAddresses(GridTcpDiscoveryNode node, boolean sameHost) {
+    private LinkedHashSet<InetSocketAddress> getNodeAddresses(TcpDiscoveryNode node, boolean sameHost) {
         List<InetSocketAddress> addrs = U.arrayList(node.socketAddresses());
 
         Collections.sort(addrs, U.inetAddressesComparator(sameHost));
@@ -1817,8 +1817,8 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
     /**
      * @return Spi state copy.
      */
-    private GridTcpDiscoverySpiState spiStateCopy() {
-        GridTcpDiscoverySpiState state;
+    private TcpDiscoverySpiState spiStateCopy() {
+        TcpDiscoverySpiState state;
 
         synchronized (mux) {
             state = spiState;
@@ -1834,7 +1834,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
      * @return Coordinator node or {@code null} if there are no coordinator
      * (i.e. local node is the last one and is currently stopping).
      */
-    @Nullable private GridTcpDiscoveryNode resolveCoordinator() {
+    @Nullable private TcpDiscoveryNode resolveCoordinator() {
         return resolveCoordinator(null);
     }
 
@@ -1846,10 +1846,10 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
      * @return Coordinator node or {@code null} if there are no coordinator
      * (i.e. local node is the last one and is currently stopping).
      */
-    @Nullable private GridTcpDiscoveryNode resolveCoordinator(
-        @Nullable Collection<GridTcpDiscoveryNode> filter) {
+    @Nullable private TcpDiscoveryNode resolveCoordinator(
+        @Nullable Collection<TcpDiscoveryNode> filter) {
         synchronized (mux) {
-            Collection<GridTcpDiscoveryNode> excluded = F.concat(false, failedNodes, leavingNodes);
+            Collection<TcpDiscoveryNode> excluded = F.concat(false, failedNodes, leavingNodes);
 
             if (!F.isEmpty(filter))
                 excluded = F.concat(false, excluded, filter);
@@ -1873,7 +1873,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
             Runtime runtime = Runtime.getRuntime();
 
-            GridTcpDiscoveryNode coord = resolveCoordinator();
+            TcpDiscoveryNode coord = resolveCoordinator();
 
             log.info("Discovery SPI statistics [statistics=" + stats + ", spiState=" + spiStateCopy() +
                 ", coord=" + coord +
@@ -1899,13 +1899,13 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
         if (msg instanceof GridTcpDiscoveryNodeAddedMessage) {
             GridTcpDiscoveryNodeAddedMessage nodeAddedMsg = (GridTcpDiscoveryNodeAddedMessage)msg;
 
-            GridTcpDiscoveryNode node = nodeAddedMsg.node();
+            TcpDiscoveryNode node = nodeAddedMsg.node();
 
             if (node.id().equals(destNodeId)) {
-                Collection<GridTcpDiscoveryNode> allNodes = ring.allNodes();
-                Collection<GridTcpDiscoveryNode> topToSend = new ArrayList<>(allNodes.size());
+                Collection<TcpDiscoveryNode> allNodes = ring.allNodes();
+                Collection<TcpDiscoveryNode> topToSend = new ArrayList<>(allNodes.size());
 
-                for (GridTcpDiscoveryNode n0 : allNodes) {
+                for (TcpDiscoveryNode n0 : allNodes) {
                     assert n0.internalOrder() != 0 : n0;
 
                     // Skip next node and nodes added after next
@@ -1995,7 +1995,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
     void forceNextNodeFailure() {
         U.warn(log, "Next node will be forcibly failed (if any).");
 
-        GridTcpDiscoveryNode next;
+        TcpDiscoveryNode next;
 
         synchronized (mux) {
             next = ring.nextNode(failedNodes);
@@ -2023,7 +2023,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
      *
      * @return Nodes ring.
      */
-    GridTcpDiscoveryNodesRing ring() {
+    TcpDiscoveryNodesRing ring() {
         return ring;
     }
 
@@ -2083,14 +2083,14 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
             b.append("Leaving nodes: ").append(U.nl());
 
-            for (GridTcpDiscoveryNode node : leavingNodes)
+            for (TcpDiscoveryNode node : leavingNodes)
                 b.append("    ").append(node.id()).append(U.nl());
 
             b.append(U.nl());
 
             b.append("Failed nodes: ").append(U.nl());
 
-            for (GridTcpDiscoveryNode node : failedNodes)
+            for (TcpDiscoveryNode node : failedNodes)
                 b.append("    ").append(node.id()).append(U.nl());
 
             b.append(U.nl());
@@ -2319,8 +2319,8 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
                 Collection<InetSocketAddress> currAddrs = F.flatCollections(
                     F.viewReadOnly(
                         ring.allNodes(),
-                        new C1<GridTcpDiscoveryNode, Collection<InetSocketAddress>>() {
-                            @Override public Collection<InetSocketAddress> apply(GridTcpDiscoveryNode node) {
+                        new C1<TcpDiscoveryNode, Collection<InetSocketAddress>>() {
+                            @Override public Collection<InetSocketAddress> apply(TcpDiscoveryNode node) {
                                 return !node.isClient() ? getNodeAddresses(node) :
                                     Collections.<InetSocketAddress>emptyList();
                             }
@@ -2490,7 +2490,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
     private class RingMessageWorker extends MessageWorkerAdapter {
         /** Next node. */
         @SuppressWarnings({"FieldAccessedSynchronizedAndUnsynchronized"})
-        private GridTcpDiscoveryNode next;
+        private TcpDiscoveryNode next;
 
         /** Pending messages. */
         private final PendingMessages pendingMsgs = new PendingMessages();
@@ -2585,9 +2585,9 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
                     clientMsgWorker.addMessage(msg);
             }
 
-            Collection<GridTcpDiscoveryNode> failedNodes;
+            Collection<TcpDiscoveryNode> failedNodes;
 
-            GridTcpDiscoverySpiState state;
+            TcpDiscoverySpiState state;
 
             synchronized (mux) {
                 failedNodes = U.arrayList(TcpDiscoverySpi.this.failedNodes);
@@ -2603,7 +2603,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
             while (true) {
                 if (searchNext) {
-                    GridTcpDiscoveryNode newNext = ring.nextNode(failedNodes);
+                    TcpDiscoveryNode newNext = ring.nextNode(failedNodes);
 
                     if (newNext == null) {
                         if (log.isDebugEnabled())
@@ -2950,7 +2950,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
                     TcpDiscoverySpi.this.failedNodes.addAll(failedNodes);
                 }
 
-                for (GridTcpDiscoveryNode n : failedNodes)
+                for (TcpDiscoveryNode n : failedNodes)
                     msgWorker.addMessage(new GridTcpDiscoveryNodeFailedMessage(locNodeId, n.id(), n.internalOrder()));
             }
         }
@@ -2989,7 +2989,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
         private void processJoinRequestMessage(GridTcpDiscoveryJoinRequestMessage msg) {
             assert msg != null;
 
-            GridTcpDiscoveryNode node = msg.node();
+            TcpDiscoveryNode node = msg.node();
 
             if (!msg.client()) {
                 boolean rmtHostLoopback = node.socketAddresses().size() == 1 &&
@@ -3031,7 +3031,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
             }
 
             if (isLocalNodeCoordinator()) {
-                GridTcpDiscoveryNode existingNode = ring.node(node.id());
+                TcpDiscoveryNode existingNode = ring.node(node.id());
 
                 if (existingNode != null) {
                     if (!node.socketAddresses().equals(existingNode.socketAddresses())) {
@@ -3397,10 +3397,10 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
          * @param msg Message.
          * @throws org.apache.ignite.spi.IgniteSpiException Last failure if all attempts failed.
          */
-        private void trySendMessageDirectly(GridTcpDiscoveryNode node, GridTcpDiscoveryAbstractMessage msg)
+        private void trySendMessageDirectly(TcpDiscoveryNode node, GridTcpDiscoveryAbstractMessage msg)
             throws IgniteSpiException {
             if (node.isClient()) {
-                GridTcpDiscoveryNode routerNode = ring.node(node.clientRouterNodeId());
+                TcpDiscoveryNode routerNode = ring.node(node.clientRouterNodeId());
 
                 if (routerNode == null)
                     throw new IgniteSpiException("Router node for client does not exist: " + node);
@@ -3447,7 +3447,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
             else {
                 UUID nodeId = msg.creatorNodeId();
 
-                GridTcpDiscoveryNode node = ring.node(nodeId);
+                TcpDiscoveryNode node = ring.node(nodeId);
 
                 assert node == null || node.isClient();
 
@@ -3505,7 +3505,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
         private void processNodeAddedMessage(GridTcpDiscoveryNodeAddedMessage msg) {
             assert msg != null;
 
-            GridTcpDiscoveryNode node = msg.node();
+            TcpDiscoveryNode node = msg.node();
 
             assert node != null;
 
@@ -3635,12 +3635,12 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
                 synchronized (mux) {
                     if (spiState == CONNECTING && locNode.internalOrder() != node.internalOrder()) {
                         // Initialize topology.
-                        Collection<GridTcpDiscoveryNode> top = msg.topology();
+                        Collection<TcpDiscoveryNode> top = msg.topology();
 
                         if (top != null && !top.isEmpty()) {
                             gridStartTime = msg.gridStartTime();
 
-                            for (GridTcpDiscoveryNode n : top) {
+                            for (TcpDiscoveryNode n : top) {
                                 // Make all preceding nodes and local node visible.
                                 n.visible(true);
                             }
@@ -3710,7 +3710,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
             assert nodeId != null;
 
-            GridTcpDiscoveryNode node = ring.node(nodeId);
+            TcpDiscoveryNode node = ring.node(nodeId);
 
             if (node == null) {
                 if (log.isDebugEnabled())
@@ -3876,7 +3876,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
                 return;
             }
 
-            GridTcpDiscoveryNode leavingNode = ring.node(leavingNodeId);
+            TcpDiscoveryNode leavingNode = ring.node(leavingNodeId);
 
             if (leavingNode != null) {
                 synchronized (mux) {
@@ -3905,7 +3905,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
             }
 
             if (msg.verified() && !locNodeId.equals(leavingNodeId)) {
-                GridTcpDiscoveryNode leftNode = ring.removeNode(leavingNodeId);
+                TcpDiscoveryNode leftNode = ring.removeNode(leavingNodeId);
 
                 assert leftNode != null;
 
@@ -4016,7 +4016,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
             UUID sndId = msg.senderNodeId();
 
             if (sndId != null) {
-                GridTcpDiscoveryNode sndNode = ring.node(sndId);
+                TcpDiscoveryNode sndNode = ring.node(sndId);
 
                 if (sndNode == null) {
                     if (log.isDebugEnabled())
@@ -4043,7 +4043,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
             UUID nodeId = msg.failedNodeId();
             long order = msg.order();
 
-            GridTcpDiscoveryNode node = ring.node(nodeId);
+            TcpDiscoveryNode node = ring.node(nodeId);
 
             if (node != null && node.internalOrder() != order) {
                 if (log.isDebugEnabled())
@@ -4335,7 +4335,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
                     Collection<UUID> clientNodeIds = msg.clientNodeIds();
 
-                    for (GridTcpDiscoveryNode clientNode : ring.clientNodes()) {
+                    for (TcpDiscoveryNode clientNode : ring.clientNodes()) {
                         if (clientNode.visible()) {
                             if (clientNodeIds.contains(clientNode.id()))
                                 clientNode.aliveCheck(maxMissedClientHbs);
@@ -4370,7 +4370,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
             assert nodeId != null;
             assert metrics != null;
 
-            GridTcpDiscoveryNode node = ring.node(nodeId);
+            TcpDiscoveryNode node = ring.node(nodeId);
 
             if (node != null) {
                 node.setMetrics(metrics);
@@ -4733,7 +4733,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
                         }
                         else if (msg instanceof GridTcpDiscoveryClientReconnectMessage) {
                             if (client) {
-                                GridTcpDiscoverySpiState state = spiStateCopy();
+                                TcpDiscoverySpiState state = spiStateCopy();
 
                                 if (state == CONNECTED) {
                                     writeToSocket(sock, RES_OK);
@@ -4755,7 +4755,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
                             boolean ignored = false;
 
-                            GridTcpDiscoverySpiState state = null;
+                            TcpDiscoverySpiState state = null;
 
                             synchronized (mux) {
                                 if (spiState == CONNECTING) {
@@ -4784,7 +4784,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
                             boolean ignored = false;
 
-                            GridTcpDiscoverySpiState state = null;
+                            TcpDiscoverySpiState state = null;
 
                             synchronized (mux) {
                                 if (spiState == CONNECTING) {
@@ -4813,7 +4813,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
                             boolean ignored = false;
 
-                            GridTcpDiscoverySpiState state = null;
+                            TcpDiscoverySpiState state = null;
 
                             synchronized (mux) {
                                 if (spiState == CONNECTING) {
@@ -4842,7 +4842,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
 
                             boolean ignored = false;
 
-                            GridTcpDiscoverySpiState state = null;
+                            TcpDiscoverySpiState state = null;
 
                             synchronized (mux) {
                                 if (spiState == CONNECTING) {
@@ -4935,7 +4935,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
          */
         private boolean nodeAlive(UUID nodeId) {
             // Is node alive or about to be removed from the ring?
-            GridTcpDiscoveryNode node = ring.node(nodeId);
+            TcpDiscoveryNode node = ring.node(nodeId);
 
             boolean nodeAlive = node != null && node.visible();
 
@@ -4959,7 +4959,7 @@ public class TcpDiscoverySpi extends GridTcpDiscoverySpiAdapter implements GridT
             assert msg != null;
             assert !msg.responded();
 
-            GridTcpDiscoverySpiState state = spiStateCopy();
+            TcpDiscoverySpiState state = spiStateCopy();
 
             if (state == CONNECTED) {
                 writeToSocket(sock, RES_OK);


[14/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinder.java
deleted file mode 100644
index 3778c3f..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinder.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs;
-
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-/**
- * Shared filesystem-based IP finder.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * There are no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * <ul>
- *      <li>Path (see {@link #setPath(String)})</li>
- *      <li>Shared flag (see {@link #setShared(boolean)})</li>
- * </ul>
- * <p>
- * If {@link #getPath()} is not provided, then {@link #DFLT_PATH} will be used and
- * only local nodes will discover each other. To enable discovery over network
- * you must provide a path to a shared directory explicitly.
- * <p>
- * The directory will contain empty files named like the following 192.168.1.136#1001.
- * <p>
- * Note that this finder is shared by default (see {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()}.
- */
-public class GridTcpDiscoverySharedFsIpFinder extends TcpDiscoveryIpFinderAdapter {
-    /**
-     * Default path for discovering of local nodes (testing only). Note that this path is relative to
-     * {@code GRIDGAIN_HOME/work} folder if {@code GRIDGAIN_HOME} system or environment variable specified,
-     * otherwise it is relative to {@code work} folder under system {@code java.io.tmpdir} folder.
-     *
-     * @see org.apache.ignite.configuration.IgniteConfiguration#getWorkDirectory()
-     */
-    public static final String DFLT_PATH = "disco/tcp";
-
-    /** Delimiter to use between address and port tokens in file names. */
-    public static final String DELIM = "#";
-
-    /** Grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** File-system path. */
-    private String path = DFLT_PATH;
-
-    /** Folder to keep items in. */
-    @GridToStringExclude
-    private File folder;
-
-    /** Warning guard. */
-    @GridToStringExclude
-    private final AtomicBoolean warnGuard = new AtomicBoolean();
-
-    /** Init guard. */
-    @GridToStringExclude
-    private final AtomicBoolean initGuard = new AtomicBoolean();
-
-    /** Init latch. */
-    @GridToStringExclude
-    private final CountDownLatch initLatch = new CountDownLatch(1);
-
-    /**
-     * Constructor.
-     */
-    public GridTcpDiscoverySharedFsIpFinder() {
-        setShared(true);
-    }
-
-    /**
-     * Gets path.
-     *
-     * @return Shared path.
-     */
-    public String getPath() {
-        return path;
-    }
-
-    /**
-     * Sets path.
-     *
-     * @param path Shared path.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setPath(String path) {
-        this.path = path;
-    }
-
-    /**
-     * Initializes folder to work with.
-     *
-     * @return Folder.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    private File initFolder() throws IgniteSpiException {
-        if (initGuard.compareAndSet(false, true)) {
-            if (path == null)
-                throw new IgniteSpiException("Shared file system path is null " +
-                    "(it should be configured via setPath(..) configuration property).");
-
-            if (path.equals(DFLT_PATH) && warnGuard.compareAndSet(false, true))
-                U.warn(log, "Default local computer-only share is used by IP finder.");
-
-            try {
-                File tmp;
-
-                if (new File(path).exists())
-                    tmp = new File(path);
-                else {
-                    try {
-                        tmp = U.resolveWorkDirectory(path, false);
-                    }
-                    catch (GridException e) {
-                        throw new IgniteSpiException("Failed to resolve directory [path=" + path +
-                            ", exception=" + e.getMessage() + ']');
-                    }
-                }
-
-                if (!tmp.isDirectory())
-                    throw new IgniteSpiException("Failed to initialize shared file system path " +
-                        "(path must point to folder): " + path);
-
-                if (!tmp.canRead() || !tmp.canWrite())
-                    throw new IgniteSpiException("Failed to initialize shared file system path " +
-                        "(path must be readable and writable): " + path);
-
-                folder = tmp;
-            }
-            finally {
-                initLatch.countDown();
-            }
-        }
-        else {
-            try {
-                U.await(initLatch);
-            }
-            catch (GridInterruptedException e) {
-                throw new IgniteSpiException("Thread has been interrupted.", e);
-            }
-
-            if (folder == null)
-                throw new IgniteSpiException("Failed to initialize shared file system folder (check logs for errors).");
-        }
-
-        return folder;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
-        initFolder();
-
-        Collection<InetSocketAddress> addrs = new LinkedList<>();
-
-        for (String fileName : folder.list())
-            if (!".svn".equals(fileName)) {
-                InetSocketAddress addr = null;
-
-                StringTokenizer st = new StringTokenizer(fileName, DELIM);
-
-                if (st.countTokens() == 2) {
-                    String addrStr = st.nextToken();
-                    String portStr = st.nextToken();
-
-                    try {
-                        int port = Integer.parseInt(portStr);
-
-                        addr = new InetSocketAddress(addrStr, port);
-                    }
-                    catch (IllegalArgumentException e) {
-                        U.error(log, "Failed to parse file entry: " + fileName, e);
-                    }
-                }
-
-                if (addr != null)
-                    addrs.add(addr);
-            }
-
-        return Collections.unmodifiableCollection(addrs);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        assert !F.isEmpty(addrs);
-
-        initFolder();
-
-        try {
-            for (InetSocketAddress addr : addrs) {
-                File file = new File(folder, name(addr));
-
-                file.createNewFile();
-            }
-        }
-        catch (IOException e) {
-            throw new IgniteSpiException("Failed to create file.", e);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        assert !F.isEmpty(addrs);
-
-        initFolder();
-
-        try {
-            for (InetSocketAddress addr : addrs) {
-                File file = new File(folder, name(addr));
-
-                file.delete();
-            }
-        }
-        catch (SecurityException e) {
-            throw new IgniteSpiException("Failed to delete file.", e);
-        }
-    }
-
-    /**
-     * Creates file name for address.
-     *
-     * @param addr Node address.
-     * @return Name.
-     */
-    private String name(InetSocketAddress addr) {
-        assert addr != null;
-
-        SB sb = new SB();
-
-        sb.a(addr.getAddress().getHostAddress())
-            .a(DELIM)
-            .a(addr.getPort());
-
-        return sb.toString();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoverySharedFsIpFinder.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java
new file mode 100644
index 0000000..7ee5631
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/TcpDiscoverySharedFsIpFinder.java
@@ -0,0 +1,258 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs;
+
+import org.apache.ignite.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+/**
+ * Shared filesystem-based IP finder.
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * There are no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * <ul>
+ *      <li>Path (see {@link #setPath(String)})</li>
+ *      <li>Shared flag (see {@link #setShared(boolean)})</li>
+ * </ul>
+ * <p>
+ * If {@link #getPath()} is not provided, then {@link #DFLT_PATH} will be used and
+ * only local nodes will discover each other. To enable discovery over network
+ * you must provide a path to a shared directory explicitly.
+ * <p>
+ * The directory will contain empty files named like the following 192.168.1.136#1001.
+ * <p>
+ * Note that this finder is shared by default (see {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder#isShared()}.
+ */
+public class TcpDiscoverySharedFsIpFinder extends TcpDiscoveryIpFinderAdapter {
+    /**
+     * Default path for discovering of local nodes (testing only). Note that this path is relative to
+     * {@code GRIDGAIN_HOME/work} folder if {@code GRIDGAIN_HOME} system or environment variable specified,
+     * otherwise it is relative to {@code work} folder under system {@code java.io.tmpdir} folder.
+     *
+     * @see org.apache.ignite.configuration.IgniteConfiguration#getWorkDirectory()
+     */
+    public static final String DFLT_PATH = "disco/tcp";
+
+    /** Delimiter to use between address and port tokens in file names. */
+    public static final String DELIM = "#";
+
+    /** Grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** File-system path. */
+    private String path = DFLT_PATH;
+
+    /** Folder to keep items in. */
+    @GridToStringExclude
+    private File folder;
+
+    /** Warning guard. */
+    @GridToStringExclude
+    private final AtomicBoolean warnGuard = new AtomicBoolean();
+
+    /** Init guard. */
+    @GridToStringExclude
+    private final AtomicBoolean initGuard = new AtomicBoolean();
+
+    /** Init latch. */
+    @GridToStringExclude
+    private final CountDownLatch initLatch = new CountDownLatch(1);
+
+    /**
+     * Constructor.
+     */
+    public TcpDiscoverySharedFsIpFinder() {
+        setShared(true);
+    }
+
+    /**
+     * Gets path.
+     *
+     * @return Shared path.
+     */
+    public String getPath() {
+        return path;
+    }
+
+    /**
+     * Sets path.
+     *
+     * @param path Shared path.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    /**
+     * Initializes folder to work with.
+     *
+     * @return Folder.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    private File initFolder() throws IgniteSpiException {
+        if (initGuard.compareAndSet(false, true)) {
+            if (path == null)
+                throw new IgniteSpiException("Shared file system path is null " +
+                    "(it should be configured via setPath(..) configuration property).");
+
+            if (path.equals(DFLT_PATH) && warnGuard.compareAndSet(false, true))
+                U.warn(log, "Default local computer-only share is used by IP finder.");
+
+            try {
+                File tmp;
+
+                if (new File(path).exists())
+                    tmp = new File(path);
+                else {
+                    try {
+                        tmp = U.resolveWorkDirectory(path, false);
+                    }
+                    catch (GridException e) {
+                        throw new IgniteSpiException("Failed to resolve directory [path=" + path +
+                            ", exception=" + e.getMessage() + ']');
+                    }
+                }
+
+                if (!tmp.isDirectory())
+                    throw new IgniteSpiException("Failed to initialize shared file system path " +
+                        "(path must point to folder): " + path);
+
+                if (!tmp.canRead() || !tmp.canWrite())
+                    throw new IgniteSpiException("Failed to initialize shared file system path " +
+                        "(path must be readable and writable): " + path);
+
+                folder = tmp;
+            }
+            finally {
+                initLatch.countDown();
+            }
+        }
+        else {
+            try {
+                U.await(initLatch);
+            }
+            catch (GridInterruptedException e) {
+                throw new IgniteSpiException("Thread has been interrupted.", e);
+            }
+
+            if (folder == null)
+                throw new IgniteSpiException("Failed to initialize shared file system folder (check logs for errors).");
+        }
+
+        return folder;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
+        initFolder();
+
+        Collection<InetSocketAddress> addrs = new LinkedList<>();
+
+        for (String fileName : folder.list())
+            if (!".svn".equals(fileName)) {
+                InetSocketAddress addr = null;
+
+                StringTokenizer st = new StringTokenizer(fileName, DELIM);
+
+                if (st.countTokens() == 2) {
+                    String addrStr = st.nextToken();
+                    String portStr = st.nextToken();
+
+                    try {
+                        int port = Integer.parseInt(portStr);
+
+                        addr = new InetSocketAddress(addrStr, port);
+                    }
+                    catch (IllegalArgumentException e) {
+                        U.error(log, "Failed to parse file entry: " + fileName, e);
+                    }
+                }
+
+                if (addr != null)
+                    addrs.add(addr);
+            }
+
+        return Collections.unmodifiableCollection(addrs);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        assert !F.isEmpty(addrs);
+
+        initFolder();
+
+        try {
+            for (InetSocketAddress addr : addrs) {
+                File file = new File(folder, name(addr));
+
+                file.createNewFile();
+            }
+        }
+        catch (IOException e) {
+            throw new IgniteSpiException("Failed to create file.", e);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        assert !F.isEmpty(addrs);
+
+        initFolder();
+
+        try {
+            for (InetSocketAddress addr : addrs) {
+                File file = new File(folder, name(addr));
+
+                file.delete();
+            }
+        }
+        catch (SecurityException e) {
+            throw new IgniteSpiException("Failed to delete file.", e);
+        }
+    }
+
+    /**
+     * Creates file name for address.
+     *
+     * @param addr Node address.
+     * @return Name.
+     */
+    private String name(InetSocketAddress addr) {
+        assert addr != null;
+
+        SB sb = new SB();
+
+        sb.a(addr.getAddress().getHostAddress())
+            .a(DELIM)
+            .a(addr.getPort());
+
+        return sb.toString();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoverySharedFsIpFinder.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/test/config/loaders/grid-cfg-2-grids.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/loaders/grid-cfg-2-grids.xml b/modules/core/src/test/config/loaders/grid-cfg-2-grids.xml
index 6cc5a3b..7e1f68b 100644
--- a/modules/core/src/test/config/loaders/grid-cfg-2-grids.xml
+++ b/modules/core/src/test/config/loaders/grid-cfg-2-grids.xml
@@ -26,7 +26,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                         <property name="multicastGroup" value="228.111.111.111"/>
                         <property name="multicastPort" value="54535"/>
                     </bean>
@@ -43,7 +43,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                         <property name="multicastGroup" value="228.111.111.111"/>
                         <property name="multicastPort" value="54535"/>
                     </bean>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/test/config/loaders/grid-cfg.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/loaders/grid-cfg.xml b/modules/core/src/test/config/loaders/grid-cfg.xml
index d121d3a..c414c48 100644
--- a/modules/core/src/test/config/loaders/grid-cfg.xml
+++ b/modules/core/src/test/config/loaders/grid-cfg.xml
@@ -26,7 +26,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                         <property name="multicastGroup" value="228.111.111.222"/>
                         <property name="multicastPort" value="54522"/>
                     </bean>
@@ -43,7 +43,7 @@
         <property name="discoverySpi">
             <bean class="org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi">
                 <property name="ipFinder">
-                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.GridTcpDiscoveryMulticastIpFinder">
+                    <bean class="org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                         <property name="multicastGroup" value="228.111.111.222"/>
                         <property name="multicastPort" value="54522"/>
                     </bean>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
index eefb52b..bd51479 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/GridTcpDiscoverySelfTest.java
@@ -115,7 +115,7 @@ public class GridTcpDiscoverySelfTest extends GridCommonAbstractTest {
             spi.setIpFinder(finder);
         }
         else if (gridName.contains("MulticastIpFinder")) {
-            GridTcpDiscoveryMulticastIpFinder finder = new GridTcpDiscoveryMulticastIpFinder();
+            TcpDiscoveryMulticastIpFinder finder = new TcpDiscoveryMulticastIpFinder();
 
             finder.setAddressRequestAttempts(10);
             finder.setMulticastGroup(GridTestUtils.getNextMulticastGroup(getClass()));
@@ -703,7 +703,7 @@ public class GridTcpDiscoverySelfTest extends GridCommonAbstractTest {
 
                 TcpDiscoverySpi spi = (TcpDiscoverySpi)g.configuration().getDiscoverySpi();
 
-                GridTcpDiscoveryMulticastIpFinder ipFinder = (GridTcpDiscoveryMulticastIpFinder)spi.getIpFinder();
+                TcpDiscoveryMulticastIpFinder ipFinder = (TcpDiscoveryMulticastIpFinder)spi.getIpFinder();
 
                 boolean found = false;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java
index 02c85ed..9422458 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinderSelfTest.java
@@ -17,7 +17,7 @@ import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
  * JDBC IP finder self test.
  */
 public class GridTcpDiscoveryJdbcIpFinderSelfTest extends
-    GridTcpDiscoveryIpFinderAbstractSelfTest<GridTcpDiscoveryJdbcIpFinder> {
+    GridTcpDiscoveryIpFinderAbstractSelfTest<TcpDiscoveryJdbcIpFinder> {
     /** */
     private ComboPooledDataSource dataSrc;
 
@@ -34,8 +34,8 @@ public class GridTcpDiscoveryJdbcIpFinderSelfTest extends
     }
 
     /** {@inheritDoc} */
-    @Override protected GridTcpDiscoveryJdbcIpFinder ipFinder() throws Exception {
-        GridTcpDiscoveryJdbcIpFinder finder = new GridTcpDiscoveryJdbcIpFinder();
+    @Override protected TcpDiscoveryJdbcIpFinder ipFinder() throws Exception {
+        TcpDiscoveryJdbcIpFinder finder = new TcpDiscoveryJdbcIpFinder();
 
         assert finder.isShared() : "IP finder should be shared by default.";
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java
index 7978be2..e24fd57 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinderSelfTest.java
@@ -19,7 +19,7 @@ import java.util.*;
  * GridTcpDiscoveryMulticastIpFinder test.
  */
 public class GridTcpDiscoveryMulticastIpFinderSelfTest
-    extends GridTcpDiscoveryIpFinderAbstractSelfTest<GridTcpDiscoveryMulticastIpFinder> {
+    extends GridTcpDiscoveryIpFinderAbstractSelfTest<TcpDiscoveryMulticastIpFinder> {
     /**
      * @throws Exception In case of error.
      */
@@ -28,8 +28,8 @@ public class GridTcpDiscoveryMulticastIpFinderSelfTest
     }
 
     /** {@inheritDoc} */
-    @Override protected GridTcpDiscoveryMulticastIpFinder ipFinder() throws Exception {
-        GridTcpDiscoveryMulticastIpFinder ipFinder = new GridTcpDiscoveryMulticastIpFinder();
+    @Override protected TcpDiscoveryMulticastIpFinder ipFinder() throws Exception {
+        TcpDiscoveryMulticastIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();
 
         ipFinder.setMulticastGroup(GridTestUtils.getNextMulticastGroup(getClass()));
         ipFinder.setMulticastPort(GridTestUtils.getNextMulticastPort(getClass()));
@@ -44,19 +44,19 @@ public class GridTcpDiscoveryMulticastIpFinderSelfTest
     public void testExchange() throws Exception {
         String locAddr = null;
 
-        GridTcpDiscoveryMulticastIpFinder ipFinder1 = null;
-        GridTcpDiscoveryMulticastIpFinder ipFinder2 = null;
-        GridTcpDiscoveryMulticastIpFinder ipFinder3 = null;
+        TcpDiscoveryMulticastIpFinder ipFinder1 = null;
+        TcpDiscoveryMulticastIpFinder ipFinder2 = null;
+        TcpDiscoveryMulticastIpFinder ipFinder3 = null;
 
         try {
             ipFinder1 = ipFinder();
 
-            ipFinder2 = new GridTcpDiscoveryMulticastIpFinder();
+            ipFinder2 = new TcpDiscoveryMulticastIpFinder();
 
             ipFinder2.setMulticastGroup(ipFinder1.getMulticastGroup());
             ipFinder2.setMulticastPort(ipFinder1.getMulticastPort());
 
-            ipFinder3 = new GridTcpDiscoveryMulticastIpFinder();
+            ipFinder3 = new TcpDiscoveryMulticastIpFinder();
 
             ipFinder3.setMulticastGroup(ipFinder1.getMulticastGroup());
             ipFinder3.setMulticastPort(ipFinder1.getMulticastPort());

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java
index 71bcd48..31cb8e2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/sharedfs/GridTcpDiscoverySharedFsIpFinderSelfTest.java
@@ -18,7 +18,7 @@ import java.util.*;
  * GridTcpDiscoverySharedFsIpFinder test.
  */
 public class GridTcpDiscoverySharedFsIpFinderSelfTest
-    extends GridTcpDiscoveryIpFinderAbstractSelfTest<GridTcpDiscoverySharedFsIpFinder> {
+    extends GridTcpDiscoveryIpFinderAbstractSelfTest<TcpDiscoverySharedFsIpFinder> {
     /**
      * Constructor.
      *
@@ -29,8 +29,8 @@ public class GridTcpDiscoverySharedFsIpFinderSelfTest
     }
 
     /** {@inheritDoc} */
-    @Override protected GridTcpDiscoverySharedFsIpFinder ipFinder() {
-        GridTcpDiscoverySharedFsIpFinder finder = new GridTcpDiscoverySharedFsIpFinder();
+    @Override protected TcpDiscoverySharedFsIpFinder ipFinder() {
+        TcpDiscoverySharedFsIpFinder finder = new TcpDiscoverySharedFsIpFinder();
 
         assert finder.isShared() : "Ip finder should be shared by default.";
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/test/java/org/gridgain/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/gridgain/testframework/junits/GridAbstractTest.java
index c14ae35..15271ad 100644
--- a/modules/core/src/test/java/org/gridgain/testframework/junits/GridAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/testframework/junits/GridAbstractTest.java
@@ -1066,7 +1066,7 @@ public abstract class GridAbstractTest extends TestCase {
         String mcastAddr = GridTestUtils.getNextMulticastGroup(getClass());
 
         if (!F.isEmpty(mcastAddr)) {
-            GridTcpDiscoveryMulticastIpFinder ipFinder = new GridTcpDiscoveryMulticastIpFinder();
+            TcpDiscoveryMulticastIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();
 
             ipFinder.setMulticastGroup(mcastAddr);
             ipFinder.setMulticastPort(GridTestUtils.getNextMulticastPort(getClass()));

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
index f2596ee..4b9b4ac 100644
--- a/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/testframework/junits/spi/GridSpiAbstractTest.java
@@ -394,12 +394,12 @@ public abstract class GridSpiAbstractTest<T extends IgniteSpi> extends GridAbstr
         if (spi instanceof TcpDiscoverySpi) {
             TcpDiscoveryIpFinder ipFinder = ((TcpDiscoverySpi)spi).getIpFinder();
 
-            if (ipFinder instanceof GridTcpDiscoveryMulticastIpFinder) {
+            if (ipFinder instanceof TcpDiscoveryMulticastIpFinder) {
                 String mcastAddr = GridTestUtils.getNextMulticastGroup(getClass());
 
                 if (mcastAddr != null && !mcastAddr.isEmpty()) {
-                    ((GridTcpDiscoveryMulticastIpFinder)ipFinder).setMulticastGroup(mcastAddr);
-                    ((GridTcpDiscoveryMulticastIpFinder)ipFinder).setMulticastPort(
+                    ((TcpDiscoveryMulticastIpFinder)ipFinder).setMulticastGroup(mcastAddr);
+                    ((TcpDiscoveryMulticastIpFinder)ipFinder).setMulticastPort(
                         GridTestUtils.getNextMulticastPort(getClass()));
                 }
             }


[12/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java
index 5d7c240..936f71b 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridCacheDhtLockBackupSelfTest.java
@@ -40,7 +40,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheDhtLockBackupSelfTest extends GridCommonAbstractTest {
     /** Ip-finder. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Communication spi for grid start. */
     private CommunicationSpi commSpi;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java
index 09b484c..6d753c1 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridOrderedMessageCancelSelfTest.java
@@ -39,7 +39,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridOrderedMessageCancelSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Cancel latch. */
     private static CountDownLatch cancelLatch;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/benchmarks/storevalbytes/GridCacheStoreValueBytesNode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/benchmarks/storevalbytes/GridCacheStoreValueBytesNode.java b/modules/core/src/test/java/org/gridgain/benchmarks/storevalbytes/GridCacheStoreValueBytesNode.java
index 4b0c939..2c3e967 100644
--- a/modules/core/src/test/java/org/gridgain/benchmarks/storevalbytes/GridCacheStoreValueBytesNode.java
+++ b/modules/core/src/test/java/org/gridgain/benchmarks/storevalbytes/GridCacheStoreValueBytesNode.java
@@ -36,7 +36,7 @@ public class GridCacheStoreValueBytesNode {
 
         disc.setLocalAddress("localhost");
 
-        GridTcpDiscoveryVmIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder();
+        TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
 
         Collection<String> addrs = new ArrayList<>();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java
index 4184c89..0259bbd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/cache/affinity/fair/GridCachePartitionFairAffinityNodesSelfTest.java
@@ -25,7 +25,7 @@ import java.util.*;
  */
 public class GridCachePartitionFairAffinityNodesSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Number of backups. */
     private int backups;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
index 1b9b49e..8d0ece7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.testframework.GridTestUtils.*;
  */
 public class GridCacheJdbcBlobStoreMultithreadedSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Number of grids to start. */
     private static final int GRID_CNT = 5;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsEventsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsEventsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsEventsAbstractSelfTest.java
index 752f07d..6bdd0ec 100644
--- a/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsEventsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsEventsAbstractSelfTest.java
@@ -121,7 +121,7 @@ public abstract class GridGgfsEventsAbstractSelfTest extends GridCommonAbstractT
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java
index dfb9713..00404ff 100644
--- a/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/ggfs/GridGgfsFragmentizerAbstractSelfTest.java
@@ -27,7 +27,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridGgfsFragmentizerAbstractSelfTest extends GridGgfsCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Test nodes count. */
     protected static final int NODE_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java
index 82a9370..2f5c982 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityMappedTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridAffinityMappedTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java
index b39beaf..e492984 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinityP2PSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridAffinityP2PSelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final String EXT_AFFINITY_MAPPER_CLS_NAME = "org.gridgain.grid.tests.p2p.GridExternalAffinityMapper";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java
index 014b5c2..8e9b501 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridAffinitySelfTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridAffinitySelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelUnusedJobSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelUnusedJobSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelUnusedJobSelfTest.java
index 8ec817d..058f55e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelUnusedJobSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridCancelUnusedJobSelfTest.java
@@ -58,7 +58,7 @@ public class GridCancelUnusedJobSelfTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java
index 8474d52..bf77f03 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoveryEventSelfTest.java
@@ -33,7 +33,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridDiscoveryEventSelfTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Daemon flag. */
     private boolean daemon;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
index b669b98..cb93f58 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridDiscoverySelfTest.java
@@ -38,7 +38,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridDiscoverySelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static Ignite ignite;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java
index 681f0ed..5110139 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridJobMasterLeaveAwareSelfTest.java
@@ -48,7 +48,7 @@ public class GridJobMasterLeaveAwareSelfTest extends GridCommonAbstractTest {
     private static final int GRID_CNT = 2;
 
     /** Default IP finder for single-JVM cloud grid. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Counts how many times master-leave interface implementation was called. */
     private static volatile CountDownLatch invokeLatch;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java
index aa219eb..39b38ce 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridManagementJobSelfTest.java
@@ -30,7 +30,7 @@ public class GridManagementJobSelfTest extends GridCommonAbstractTest {
     private static final String TASK_NAME = "task";
 
     /** IP finder. */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * Do not start grid initially.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java
index 99ff28f..6e8021f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridMultipleJobsSelfTest.java
@@ -39,7 +39,7 @@ public class GridMultipleJobsSelfTest extends GridCommonAbstractTest {
     private static final int TEST_TIMEOUT = 60 * 1000;
 
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java
index 38e133c..dded7d5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionForCachesSelfTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridProjectionForCachesSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final String CACHE_NAME = "cache";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
index 6842d16..cc91abd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridProjectionLocalJobMultipleArgumentsSelfTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridProjectionLocalJobMultipleArgumentsSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static Collection<Integer> ids;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
index 5eb18d4..a4da1e3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridReleaseTypeSelfTest.java
@@ -26,7 +26,7 @@ import java.util.concurrent.atomic.*;
  */
 public class GridReleaseTypeSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Counter. */
     private static final AtomicInteger cnt = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridTaskMapAsyncSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridTaskMapAsyncSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTaskMapAsyncSelfTest.java
index 7b0e6d1..dbd9c6b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridTaskMapAsyncSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTaskMapAsyncSelfTest.java
@@ -41,7 +41,7 @@ public class GridTaskMapAsyncSelfTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
index 8103061..702b917 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/GridTopologyBuildVersionSelfTest.java
@@ -26,7 +26,7 @@ import java.util.concurrent.atomic.*;
  */
 public class GridTopologyBuildVersionSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Counter. */
     private static final AtomicInteger cnt = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
index 1932bff..55ef4d7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointManagerAbstractSelfTest.java
@@ -87,7 +87,7 @@ public abstract class GridCheckpointManagerAbstractSelfTest extends GridCommonAb
     private static final String SES_VAL_OVERWRITTEN = SES_VAL + "-overwritten";
 
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * Static variable to control whether test should retry checkpoint read attempts.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java
index 4f22297..abb948f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/checkpoint/GridCheckpointTaskSelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCheckpointTaskSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Checkpoints cache name. */
     private static final String CACHE_NAME = "checkpoints.cache";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java
index 3838256..fb74412 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/communication/GridCommunicationSendMessageSelfTest.java
@@ -29,7 +29,7 @@ import static java.util.concurrent.TimeUnit.*;
  */
 public class GridCommunicationSendMessageSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Sample count. */
     private static final int SAMPLE_CNT = 1;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java
index cafe28f..4720ba0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/deployment/GridDeploymentMessageCountSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridDeploymentMessageCountSelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Test p2p task. */
     private static final String TEST_TASK = "org.gridgain.grid.tests.p2p.GridSingleSplitTestTask";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
index a0a246b..0151893 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridDiscoveryManagerAliveCacheSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int PERM_NODES_CNT = 5;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
index ae6483b..c6d11c7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
@@ -27,7 +27,7 @@ public class GridDiscoveryManagerAttributesSelfTest extends GridCommonAbstractTe
     private static final String PREFER_IPV4 = "java.net.preferIPv4Stack";
 
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static IgniteDeploymentMode mode = SHARED;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java
index f6983f9..ec4fa70 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManagerSelfTest.java
@@ -28,7 +28,7 @@ public class GridDiscoveryManagerSelfTest extends GridCommonAbstractTest {
     private static final String CACHE_NAME = "cache";
 
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
index bf2d1d6..3671f2f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
@@ -37,7 +37,7 @@ public abstract class GridAffinityProcessorAbstractSelfTest extends GridCommonAb
     private static final String CACHE_NAME = "cache";
 
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Flag to start grid with cache. */
     private boolean withCache;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
index 3d2d21f..b98c3fc 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractByteArrayValuesSelfTest.java
@@ -38,7 +38,7 @@ public abstract class GridCacheAbstractByteArrayValuesSelfTest extends GridCommo
     protected static final Integer SWAP_TEST_KEY = 3;
 
     /** Shared IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java
index 04d5921..4fb12d4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java
@@ -48,7 +48,7 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest {
     protected static final Map<Object, Object> map = new ConcurrentHashMap8<>();
 
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * @return Grids count to start.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java
index 6d70f67..8b3891c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAffinityRoutingSelfTest.java
@@ -46,7 +46,7 @@ public class GridCacheAffinityRoutingSelfTest extends GridCommonAbstractTest {
     private static final int KEY_CNT = 50;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
index d676285..5cc0a99 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheAtomicMessageCountSelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Starting grid index. */
     private int idx;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicApiAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicApiAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicApiAbstractTest.java
index be4f9cb..3b9d067 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicApiAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicApiAbstractTest.java
@@ -48,7 +48,7 @@ public abstract class GridCacheBasicApiAbstractTest extends GridCommonAbstractTe
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java
index af3ed16..7207adc 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreAbstractTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public abstract class GridCacheBasicStoreAbstractTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Cache store. */
     private static final GridCacheTestStore store = new GridCacheTestStore();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
index 371523e..30ef6ca 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
@@ -57,7 +57,7 @@ public abstract class GridCacheBasicStoreMultithreadedAbstractTest extends GridC
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreNoBatchAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreNoBatchAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreNoBatchAbstractTest.java
index e9320a8..c60c0f0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreNoBatchAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreNoBatchAbstractTest.java
@@ -56,7 +56,7 @@ public abstract class GridCacheBasicStoreNoBatchAbstractTest extends GridCommonA
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
index ea36a1b..6189c5c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
@@ -45,7 +45,7 @@ public class GridCacheClearAllSelfTest extends GridCommonAbstractTest {
     private static final int GRID_CNT = 3;
 
     /** VM IP finder for TCP discovery SPI. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Local caches. */
     private GridCache<Integer, Integer>[] cachesLoc;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java
index b6e48ca..e3dbc82 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapSelfTest.java
@@ -29,7 +29,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheConcurrentMapSelfTest extends GridCommonAbstractTest {
     /** Ip finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
index fa9b379..87640d0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
@@ -49,7 +49,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheConcurrentTxMultiNodeTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Timers. */
     private static final ConcurrentMap<Thread, ConcurrentMap<String, T5<Long, Long, Long, IgniteUuid, Object>>> timers =

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
index 6d7db2b..4cf9e52 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
@@ -75,7 +75,7 @@ public class GridCacheConfigurationConsistencySelfTest extends GridCommonAbstrac
     private int backups;
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java
index d0bcbde..f330978 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationValidationSelfTest.java
@@ -51,7 +51,7 @@ public class GridCacheConfigurationValidationSelfTest extends GridCommonAbstract
     private static final String DUP_DFLT_CACHES_GRID_NAME = "duplicateDefaultCachesCheckFails";
 
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
index 7f828b6..7d99295 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDaemonNodeAbstractSelfTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public abstract class GridCacheDaemonNodeAbstractSelfTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Daemon flag. */
     protected boolean daemon;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java
index a896fb3..3a206a8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheDeploymentSelfTest.java
@@ -39,7 +39,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheDeploymentSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Name for grid without cache. */
     private static final String GRID_NAME = "grid-no-cache";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java
index 7a7a64c..a01b849 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryMemorySizeSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.cache.GridCacheDistributionMode.*;
  */
 public class GridCacheEntryMemorySizeSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Null reference size (optimized marshaller writes one byte for null reference). */
     private static final int NULL_REF_SIZE = 1;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java
index 5aef743..e67a6b5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryVersionSelfTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.kernal.processors.cache.GridCacheVersionManager.
  */
 public class GridCacheEntryVersionSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Atomicity mode. */
     private GridCacheAtomicityMode atomicityMode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java
index 938f9b3..10a1687 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEventAbstractTest.java
@@ -29,7 +29,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public abstract class GridCacheEvictionEventAbstractTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java
index 91ff27d..3234c4b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheFieldsQueryNoDataSelfTest.java
@@ -27,7 +27,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheFieldsQueryNoDataSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java
index ae78756..b71a808 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGetAndTransformStoreAbstractTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public abstract class GridCacheGetAndTransformStoreAbstractTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Cache store. */
     private static final GridCacheTestStore store = new GridCacheTestStore();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java
index 17b5536..8a783e5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGlobalClearAllSelfTest.java
@@ -41,7 +41,7 @@ public class GridCacheGlobalClearAllSelfTest extends GridCommonAbstractTest {
     private static final String CACHE_NAME_OTHER = "cache_name_other";
 
     /** VM IP finder for TCP discovery SPI. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Cache name which will be passed to grid configuration. */
     private GridCacheMode cacheMode = PARTITIONED;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
index 6b81c33..07049a9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockAbstractSelfTest.java
@@ -43,7 +43,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public abstract class GridCacheGroupLockAbstractSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Event wait timeout. */
     private static final int WAIT_TIMEOUT = 3000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
index 6b2aad7..8503287 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheGroupLockFailoverSelfTest.java
@@ -38,7 +38,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheGroupLockFailoverSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Size of the test map. */
     private static final int TEST_MAP_SIZE = 200000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java
index c8fd4f8..641a84c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIncrementTransformTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheIncrementTransformTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Number of nodes to test on. */
     private static final int GRID_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java
index 14fe0e9..b22ed56 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheIteratorPerformanceTest.java
@@ -25,7 +25,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridCacheIteratorPerformanceTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Large entry count. */
     private static final int LARGE_ENTRY_CNT = 100000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java
index bb1183b..8aa38c0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheKeyCheckSelfTest.java
@@ -25,7 +25,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheKeyCheckSelfTest extends GridCacheAbstractSelfTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Atomicity mode. */
     private GridCacheAtomicityMode atomicityMode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java
index 59fe3ff..061f3f6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLeakTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheLeakTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Cache name. */
     private static final String CACHE_NAME = "ggfs-data";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java
index eb6551b..88bb4ce 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheLuceneQueryIndexTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheLuceneQueryIndexTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java
index 4a6f7c9..e697a65 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMarshallerTxAbstractTest.java
@@ -48,7 +48,7 @@ public abstract class GridCacheMarshallerTxAbstractTest extends GridCommonAbstra
     }
 
     /** */
-    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      * Constructs a test.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java
index 03c481f..6e9e9a6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMemoryModeSelfTest.java
@@ -231,7 +231,7 @@ public class GridCacheMemoryModeSelfTest extends GridCommonAbstractTest {
      * @throws GridException If failed.
      */
     void doTest(int cache, int offheapSwap, boolean offheapEmpty, boolean swapEmpty, CIX1<GridCache<String, Integer>> x) throws Exception {
-        ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+        ipFinder = new TcpDiscoveryVmIpFinder(true);
 
         startGrid();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMissingCommitVersionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMissingCommitVersionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMissingCommitVersionSelfTest.java
index b4b4bd9..cac31a9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMissingCommitVersionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMissingCommitVersionSelfTest.java
@@ -50,7 +50,7 @@ public class GridCacheMissingCommitVersionSelfTest extends GridCommonAbstractTes
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         cfg.setDiscoverySpi(discoSpi);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java
index d4389b4..93b7e3e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMultiUpdateLockSelfTest.java
@@ -37,7 +37,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheMultiUpdateLockSelfTest extends GridCommonAbstractTest {
     /** Shared IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Near enabled flag. */
     private boolean nearEnabled;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java
index f5304f1..025c6e5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccManagerSelfTest.java
@@ -26,7 +26,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridCacheMvccManagerSelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Cache mode. */
     private GridCacheMode mode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java
index 45b9f11..5b9d669 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccPartitionedSelfTest.java
@@ -31,7 +31,7 @@ public class GridCacheMvccPartitionedSelfTest extends GridCommonAbstractTest {
     private GridKernal grid;
 
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java
index 9cc86bc..6c9494b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheMvccSelfTest.java
@@ -30,7 +30,7 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest {
     private GridKernal grid;
 
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java
index 23a25f6..0b01c6b 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheNestedTxAbstractTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public class GridCacheNestedTxAbstractTest extends GridCommonAbstractTest {
     /** */
-    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Counter key. */
     private static final String CNTR_KEY = "CNTR_KEY";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java
index bcbbcf4..8adc7e2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheObjectToStringSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public class GridCacheObjectToStringSelfTest extends GridCommonAbstractTest {
     /** VM ip finder for TCP discovery. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Cache mode for test. */
     private GridCacheMode cacheMode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java
index 86bc12e..6552187 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapSelfTest.java
@@ -52,7 +52,7 @@ public class GridCacheOffHeapSelfTest extends GridCommonAbstractTest {
     private final Map<Integer, Object> versions = new HashMap<>();
 
     /** */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java
index 0d9841e..6996072 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOffHeapTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheOffHeapTest extends GridCommonAbstractTest {
     /** */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private GridCacheMode mode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java
index 1bb2d71..1f7d0e3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheOrderedPreloadingSelfTest.java
@@ -27,7 +27,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridCacheOrderedPreloadingSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Number of grids in test. */
     private static final int GRID_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java
index a0ba093..94aef57 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java
@@ -43,7 +43,7 @@ public class GridCacheP2PUndeploySelfTest extends GridCommonAbstractTest {
     private static final long OFFHEAP = 0;// 4 * 1024 * 1024;
 
     /** */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private final AtomicInteger idxGen = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java
index 9da2277..3417b5c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.kernal.GridTopic.*;
  */
 public class GridCachePartitionedGetSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int GRID_CNT = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java
index 3d06931..cacfc26 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java
@@ -37,7 +37,7 @@ public class GridCachePartitionedProjectionAffinitySelfTest extends GridCommonAb
     private static final int GRIDS = 3;
 
     /** */
-    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedWritesTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedWritesTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedWritesTest.java
index e1f98ca..3d3b376 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedWritesTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedWritesTest.java
@@ -37,7 +37,7 @@ public class GridCachePartitionedWritesTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi disco = new TcpDiscoverySpi();
 
-        disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true));
+        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
 
         c.setDiscoverySpi(disco);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
index 63730ef..4aca1c4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
@@ -44,7 +44,7 @@ public class GridCachePreloadingEvictionsSelfTest extends GridCommonAbstractTest
     private static final String VALUE = createValue();
 
     /** */
-    private final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private final AtomicInteger idxGen = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
index d7274f3..6b9d484 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
@@ -31,7 +31,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCachePutAllFailoverSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Size of the test map. */
     private static final int TEST_MAP_SIZE = 100000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java
index 2888ade..8878e3a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.testframework.GridTestUtils.*;
  */
 public class GridCacheReferenceCleanupSelfTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Cache mode for the current test. */
     private GridCacheMode mode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java
index c11600c..45bffc2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java
@@ -30,7 +30,7 @@ import static java.util.concurrent.TimeUnit.*;
  */
 public abstract class GridCacheRefreshAheadAbstractSelfTest extends GridCommonAbstractTest {
     /** */
-    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** */
     private final TestStore store = new TestStore();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReloadSelfTest.java
index 08e21a5..8bcfa7f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReloadSelfTest.java
@@ -49,7 +49,7 @@ public class GridCacheReloadSelfTest extends GridCommonAbstractTest {
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        GridTcpDiscoveryVmIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder();
+        TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
         ipFinder.setAddresses(Collections.singleton("127.0.0.1:47500"));
 
         discoSpi.setIpFinder(ipFinder);


[32/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
deleted file mode 100644
index 4881a36..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ /dev/null
@@ -1,1219 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.events.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
-import org.gridgain.grid.spi.discovery.tcp.messages.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jdk8.backport.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-import static java.util.concurrent.TimeUnit.*;
-import static org.apache.ignite.events.IgniteEventType.*;
-import static org.gridgain.grid.spi.discovery.tcp.messages.TcpDiscoveryHeartbeatMessage.*;
-
-/**
- * Client discovery SPI implementation that uses TCP/IP for node discovery.
- * <p>
- * This discovery SPI requires at least on server node configured with
- * {@link TcpDiscoverySpi}. It will try to connect to random IP taken from
- * {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} which should point to one of these server
- * nodes and will maintain connection only with this node (will not enter the ring).
- * If this connection is broken, it will try to reconnect using addresses from
- * the same IP finder.
- */
-@SuppressWarnings("NonPrivateFieldAccessedInSynchronizedContext")
-@IgniteSpiMultipleInstancesSupport(true)
-@DiscoverySpiOrderSupport(true)
-@DiscoverySpiHistorySupport(true)
-public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpClientDiscoverySpiMBean {
-    /** Default disconnect check interval. */
-    public static final long DFLT_DISCONNECT_CHECK_INT = 2000;
-
-    /** Remote nodes. */
-    private final ConcurrentMap<UUID, TcpDiscoveryNode> rmtNodes = new ConcurrentHashMap8<>();
-
-    /** Socket. */
-    private volatile Socket sock;
-
-    /** Socket reader. */
-    private volatile SocketReader sockRdr;
-
-    /** Heartbeat sender. */
-    private volatile HeartbeatSender hbSender;
-
-    /** Disconnect handler. */
-    private volatile DisconnectHandler disconnectHnd;
-
-    /** Last message ID. */
-    private volatile IgniteUuid lastMsgId;
-
-    /** Current topology version. */
-    private volatile long topVer;
-
-    /** Join error. */
-    private IgniteSpiException joinErr;
-
-    /** Whether reconnect failed. */
-    private boolean reconFailed;
-
-    /** Joined latch. */
-    private CountDownLatch joinLatch;
-
-    /** Left latch. */
-    private volatile CountDownLatch leaveLatch;
-
-    /** Disconnect check interval. */
-    private long disconnectCheckInt = DFLT_DISCONNECT_CHECK_INT;
-
-    /** {@inheritDoc} */
-    @Override public long getDisconnectCheckInterval() {
-        return disconnectCheckInt;
-    }
-
-    /**
-     * Sets disconnect check interval.
-     *
-     * @param disconnectCheckInt Disconnect check interval.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setDisconnectCheckInterval(long disconnectCheckInt) {
-        this.disconnectCheckInt = disconnectCheckInt;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getSocketTimeout() {
-        return sockTimeout;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getAckTimeout() {
-        return ackTimeout;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNetworkTimeout() {
-        return netTimeout;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getThreadPriority() {
-        return threadPri;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getHeartbeatFrequency() {
-        return hbFreq;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String getIpFinderFormatted() {
-        return ipFinder.toString();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getMessageWorkerQueueSize() {
-        SocketReader sockRdr0 = sockRdr;
-
-        return sockRdr0 != null ? sockRdr0.msgWrk.queueSize() : 0;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNodesJoined() {
-        return stats.joinedNodesCount();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNodesLeft() {
-        return stats.leftNodesCount();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getNodesFailed() {
-        return stats.failedNodesCount();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getAvgMessageProcessingTime() {
-        return stats.avgMessageProcessingTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getMaxMessageProcessingTime() {
-        return stats.maxMessageProcessingTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalReceivedMessages() {
-        return stats.totalReceivedMessages();
-    }
-
-    /** {@inheritDoc} */
-    @Override public Map<String, Integer> getReceivedMessages() {
-        return stats.receivedMessages();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTotalProcessedMessages() {
-        return stats.totalProcessedMessages();
-    }
-
-    /** {@inheritDoc} */
-    @Override public Map<String, Integer> getProcessedMessages() {
-        return stats.processedMessages();
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(@Nullable String gridName) throws IgniteSpiException {
-        startStopwatch();
-
-        assertParameter(ipFinder != null, "ipFinder != null");
-        assertParameter(netTimeout > 0, "networkTimeout > 0");
-        assertParameter(sockTimeout > 0, "sockTimeout > 0");
-        assertParameter(ackTimeout > 0, "ackTimeout > 0");
-        assertParameter(hbFreq > 0, "heartbeatFreq > 0");
-        assertParameter(threadPri > 0, "threadPri > 0");
-
-        try {
-            locHost = U.resolveLocalHost(locAddr);
-        }
-        catch (IOException e) {
-            throw new IgniteSpiException("Unknown local address: " + locAddr, e);
-        }
-
-        if (log.isDebugEnabled()) {
-            log.debug(configInfo("localHost", locHost.getHostAddress()));
-            log.debug(configInfo("threadPri", threadPri));
-            log.debug(configInfo("networkTimeout", netTimeout));
-            log.debug(configInfo("sockTimeout", sockTimeout));
-            log.debug(configInfo("ackTimeout", ackTimeout));
-            log.debug(configInfo("ipFinder", ipFinder));
-            log.debug(configInfo("heartbeatFreq", hbFreq));
-        }
-
-        // Warn on odd network timeout.
-        if (netTimeout < 3000)
-            U.warn(log, "Network timeout is too low (at least 3000 ms recommended): " + netTimeout);
-
-        // Warn on odd heartbeat frequency.
-        if (hbFreq < 2000)
-            U.warn(log, "Heartbeat frequency is too high (at least 2000 ms recommended): " + hbFreq);
-
-        registerMBean(gridName, this, TcpClientDiscoverySpiMBean.class);
-
-        try {
-            locHost = U.resolveLocalHost(locAddr);
-        }
-        catch (IOException e) {
-            throw new IgniteSpiException("Unknown local address: " + locAddr, e);
-        }
-
-        if (ipFinder instanceof TcpDiscoveryMulticastIpFinder) {
-            TcpDiscoveryMulticastIpFinder mcastIpFinder = ((TcpDiscoveryMulticastIpFinder)ipFinder);
-
-            if (mcastIpFinder.getLocalAddress() == null)
-                mcastIpFinder.setLocalAddress(locAddr);
-        }
-
-        IgniteBiTuple<Collection<String>, Collection<String>> addrs;
-
-        try {
-            addrs = U.resolveLocalAddresses(locHost);
-        }
-        catch (IOException | GridException e) {
-            throw new IgniteSpiException("Failed to resolve local host to set of external addresses: " + locHost, e);
-        }
-
-        locNode = new TcpDiscoveryNode(
-            locNodeId,
-            addrs.get1(),
-            addrs.get2(),
-            0,
-            metricsProvider,
-            locNodeVer);
-
-        locNode.setAttributes(locNodeAttrs);
-        locNode.local(true);
-
-        sockTimeoutWorker = new SocketTimeoutWorker();
-        sockTimeoutWorker.start();
-
-        joinTopology(false);
-
-        disconnectHnd = new DisconnectHandler();
-        disconnectHnd.start();
-
-        if (log.isDebugEnabled())
-            log.debug(startInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        rmtNodes.clear();
-
-        U.interrupt(disconnectHnd);
-        U.join(disconnectHnd, log);
-
-        U.interrupt(hbSender);
-        U.join(hbSender, log);
-
-        Socket sock0 = sock;
-
-        sock = null;
-
-        if (sock0 != null) {
-            leaveLatch = new CountDownLatch(1);
-
-            try {
-                TcpDiscoveryNodeLeftMessage msg = new TcpDiscoveryNodeLeftMessage(locNodeId);
-
-                msg.client(true);
-
-                writeToSocket(sock0, msg);
-
-                if (!U.await(leaveLatch, netTimeout, MILLISECONDS)) {
-                    if (log.isDebugEnabled())
-                        log.debug("Did not receive node left message for local node (will stop anyway) [sock=" +
-                            sock0 + ']');
-                }
-            }
-            catch (IOException | GridException e) {
-                if (log.isDebugEnabled())
-                    U.error(log, "Failed to send node left message (will stop anyway) [sock=" + sock0 + ']', e);
-            }
-            finally {
-                U.closeQuiet(sock0);
-            }
-        }
-
-        U.interrupt(sockRdr);
-        U.join(sockRdr, log);
-
-        U.interrupt(sockTimeoutWorker);
-        U.join(sockTimeoutWorker, log);
-
-        unregisterMBean();
-
-        if (log.isDebugEnabled())
-            log.debug(stopInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<Object> injectables() {
-        return Arrays.<Object>asList(ipFinder);
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<ClusterNode> getRemoteNodes() {
-        return F.view(U.<TcpDiscoveryNode, ClusterNode>arrayList(rmtNodes.values(), new P1<TcpDiscoveryNode>() {
-            @Override public boolean apply(TcpDiscoveryNode node) {
-                return node.visible();
-            }
-        }));
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public ClusterNode getNode(UUID nodeId) {
-        if (locNodeId.equals(nodeId))
-            return locNode;
-
-        TcpDiscoveryNode node = rmtNodes.get(nodeId);
-
-        return node != null && node.visible() ? node : null;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean pingNode(UUID nodeId) {
-        assert nodeId != null;
-
-        if (nodeId.equals(locNodeId))
-            return true;
-
-        TcpDiscoveryNode node = rmtNodes.get(nodeId);
-
-        return node != null && node.visible();
-    }
-
-    /** {@inheritDoc} */
-    @Override public void disconnect() throws IgniteSpiException {
-        throw new UnsupportedOperationException();
-    }
-
-    /** {@inheritDoc} */
-    @Override public void setAuthenticator(DiscoverySpiNodeAuthenticator auth) {
-        // No-op.
-    }
-
-    /**
-     * @param recon Reconnect flag.
-     * @return Whether joined successfully.
-     * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
-     */
-    private boolean joinTopology(boolean recon) throws IgniteSpiException {
-        if (!recon)
-            stats.onJoinStarted();
-
-        Collection<InetSocketAddress> addrs = null;
-
-        while (!Thread.currentThread().isInterrupted()) {
-            try {
-                while (addrs == null || addrs.isEmpty()) {
-                    addrs = resolvedAddresses();
-
-                    if (!F.isEmpty(addrs)) {
-                        if (log.isDebugEnabled())
-                            log.debug("Resolved addresses from IP finder: " + addrs);
-                    }
-                    else {
-                        U.warn(log, "No addresses registered in the IP finder (will retry in 2000ms): " + ipFinder);
-
-                        U.sleep(2000);
-                    }
-                }
-
-                Iterator<InetSocketAddress> it = addrs.iterator();
-
-                while (it.hasNext() && !Thread.currentThread().isInterrupted()) {
-                    InetSocketAddress addr = it.next();
-
-                    Socket sock = null;
-
-                    try {
-                        long ts = U.currentTimeMillis();
-
-                        IgniteBiTuple<Socket, UUID> t = initConnection(addr);
-
-                        sock = t.get1();
-
-                        UUID rmtNodeId = t.get2();
-
-                        stats.onClientSocketInitialized(U.currentTimeMillis() - ts);
-
-                        locNode.clientRouterNodeId(rmtNodeId);
-
-                        TcpDiscoveryAbstractMessage msg = recon ?
-                            new TcpDiscoveryClientReconnectMessage(locNodeId, rmtNodeId, lastMsgId) :
-                            new TcpDiscoveryJoinRequestMessage(locNode, null);
-
-                        msg.client(true);
-
-                        writeToSocket(sock, msg);
-
-                        int res = readReceipt(sock, ackTimeout);
-
-                        switch (res) {
-                            case RES_OK:
-                                this.sock = sock;
-
-                                sockRdr = new SocketReader(rmtNodeId, new MessageWorker(recon));
-                                sockRdr.start();
-
-                                if (U.await(joinLatch, netTimeout, MILLISECONDS)) {
-                                    IgniteSpiException joinErr0 = joinErr;
-
-                                    if (joinErr0 != null)
-                                        throw joinErr0;
-
-                                    if (reconFailed) {
-                                        if (log.isDebugEnabled())
-                                            log.debug("Failed to reconnect, will try to rejoin [locNode=" +
-                                                locNode + ']');
-
-                                        U.closeQuiet(sock);
-
-                                        U.interrupt(sockRdr);
-                                        U.join(sockRdr, log);
-
-                                        this.sock = null;
-
-                                        return false;
-                                    }
-
-                                    if (log.isDebugEnabled())
-                                        log.debug("Successfully connected to topology [sock=" + sock + ']');
-
-                                    hbSender = new HeartbeatSender();
-                                    hbSender.start();
-
-                                    stats.onJoinFinished();
-
-                                    return true;
-                                }
-                                else {
-                                    U.warn(log, "Join process timed out (will try other address) [sock=" + sock +
-                                        ", timeout=" + netTimeout + ']');
-
-                                    U.closeQuiet(sock);
-
-                                    U.interrupt(sockRdr);
-                                    U.join(sockRdr, log);
-
-                                    it.remove();
-
-                                    break;
-                                }
-
-                            case RES_CONTINUE_JOIN:
-                            case RES_WAIT:
-                                U.closeQuiet(sock);
-
-                                break;
-
-                            default:
-                                if (log.isDebugEnabled())
-                                    log.debug("Received unexpected response to join request: " + res);
-
-                                U.closeQuiet(sock);
-                        }
-                    }
-                    catch (GridInterruptedException ignored) {
-                        if (log.isDebugEnabled())
-                            log.debug("Joining thread was interrupted.");
-
-                        return false;
-                    }
-                    catch (IOException | GridException e) {
-                        if (log.isDebugEnabled())
-                            U.error(log, "Failed to establish connection with address: " + addr, e);
-
-                        U.closeQuiet(sock);
-
-                        it.remove();
-                    }
-                }
-
-                if (addrs.isEmpty()) {
-                    U.warn(log, "Failed to connect to any address from IP finder (will retry to join topology " +
-                        "in 2000ms): " + addrs);
-
-                    U.sleep(2000);
-                }
-            }
-            catch (GridInterruptedException ignored) {
-                if (log.isDebugEnabled())
-                    log.debug("Joining thread was interrupted.");
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * @param addr Address.
-     * @return Remote node ID.
-     * @throws IOException In case of I/O error.
-     * @throws GridException In case of other error.
-     */
-    private IgniteBiTuple<Socket, UUID> initConnection(InetSocketAddress addr) throws IOException, GridException {
-        assert addr != null;
-
-        joinLatch = new CountDownLatch(1);
-
-        Socket sock = openSocket(addr);
-
-        TcpDiscoveryHandshakeRequest req = new TcpDiscoveryHandshakeRequest(locNodeId);
-
-        req.client(true);
-
-        writeToSocket(sock, req);
-
-        TcpDiscoveryHandshakeResponse res = readMessage(sock, null, ackTimeout);
-
-        UUID nodeId = res.creatorNodeId();
-
-        assert nodeId != null;
-        assert !locNodeId.equals(nodeId);
-
-        return F.t(sock, nodeId);
-    }
-
-    /**
-     * FOR TEST PURPOSE ONLY!
-     */
-    void simulateNodeFailure() {
-        U.warn(log, "Simulating client node failure: " + locNodeId);
-
-        U.closeQuiet(sock);
-
-        U.interrupt(disconnectHnd);
-        U.join(disconnectHnd, log);
-
-        U.interrupt(hbSender);
-        U.join(hbSender, log);
-
-        U.interrupt(sockRdr);
-        U.join(sockRdr, log);
-
-        U.interrupt(sockTimeoutWorker);
-        U.join(sockTimeoutWorker, log);
-    }
-
-    /**
-     * Disconnect handler.
-     */
-    private class DisconnectHandler extends IgniteSpiThread {
-        /**
-         */
-        protected DisconnectHandler() {
-            super(gridName, "tcp-client-disco-disconnect-hnd", log);
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void body() throws InterruptedException {
-            while (!isInterrupted()) {
-                try {
-                    U.sleep(disconnectCheckInt);
-
-                    if (sock == null) {
-                        if (log.isDebugEnabled())
-                            log.debug("Node is disconnected from topology, will try to reconnect.");
-
-                        U.interrupt(hbSender);
-                        U.join(hbSender, log);
-
-                        U.interrupt(sockRdr);
-                        U.join(sockRdr, log);
-
-                        // If reconnection fails, try to rejoin.
-                        if (!joinTopology(true)) {
-                            rmtNodes.clear();
-
-                            locNode.order(0);
-
-                            joinTopology(false);
-
-                            getSpiContext().recordEvent(new IgniteDiscoveryEvent(locNode,
-                                "Client node reconnected: " + locNode,
-                                EVT_CLIENT_NODE_RECONNECTED, locNode));
-                        }
-                    }
-                }
-                catch (GridInterruptedException ignored) {
-                    if (log.isDebugEnabled())
-                        log.debug("Disconnect handler was interrupted.");
-
-                    return;
-                }
-                catch (IgniteSpiException e) {
-                    U.error(log, "Failed to reconnect to topology after failure.", e);
-                }
-            }
-        }
-    }
-
-    /**
-     * Heartbeat sender.
-     */
-    private class HeartbeatSender extends IgniteSpiThread {
-        /**
-         */
-        protected HeartbeatSender() {
-            super(gridName, "tcp-client-disco-heartbeat-sender", log);
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void body() throws InterruptedException {
-            Socket sock0 = sock;
-
-            if (sock0 == null) {
-                if (log.isDebugEnabled())
-                    log.debug("Failed to start heartbeat sender, node is already disconnected.");
-
-                return;
-            }
-
-            try {
-                while (!isInterrupted()) {
-                    U.sleep(hbFreq);
-
-                    TcpDiscoveryHeartbeatMessage msg = new TcpDiscoveryHeartbeatMessage(locNodeId);
-
-                    msg.client(true);
-
-                    sockRdr.addMessage(msg);
-                }
-            }
-            catch (GridInterruptedException ignored) {
-                if (log.isDebugEnabled())
-                    log.debug("Heartbeat sender was interrupted.");
-            }
-        }
-    }
-
-    /**
-     * Socket reader.
-     */
-    private class SocketReader extends IgniteSpiThread {
-        /** Remote node ID. */
-        private final UUID nodeId;
-
-        /** Message worker. */
-        private final MessageWorker msgWrk;
-
-        /**
-         * @param nodeId Node ID.
-         * @param msgWrk Message worker.
-         */
-        protected SocketReader(UUID nodeId, MessageWorker msgWrk) {
-            super(gridName, "tcp-client-disco-sock-reader", log);
-
-            assert nodeId != null;
-            assert msgWrk != null;
-
-            this.nodeId = nodeId;
-            this.msgWrk = msgWrk;
-        }
-
-        /** {@inheritDoc} */
-        @Override public synchronized void start() {
-            super.start();
-
-            msgWrk.start();
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void body() throws InterruptedException {
-            Socket sock0 = sock;
-
-            if (sock0 == null) {
-                if (log.isDebugEnabled())
-                    log.debug("Failed to start socket reader, node is already disconnected.");
-
-                return;
-            }
-
-            try {
-                InputStream in = new BufferedInputStream(sock0.getInputStream());
-
-                sock0.setKeepAlive(true);
-                sock0.setTcpNoDelay(true);
-
-                while (!isInterrupted()) {
-                    try {
-                        TcpDiscoveryAbstractMessage msg = marsh.unmarshal(in, U.gridClassLoader());
-
-                        msg.senderNodeId(nodeId);
-
-                        if (log.isDebugEnabled())
-                            log.debug("Message has been received: " + msg);
-
-                        stats.onMessageReceived(msg);
-
-                        IgniteSpiException err = null;
-
-                        if (joinLatch.getCount() > 0) {
-                            if (msg instanceof TcpDiscoveryDuplicateIdMessage)
-                                err = duplicateIdError((TcpDiscoveryDuplicateIdMessage)msg);
-                            else if (msg instanceof TcpDiscoveryAuthFailedMessage)
-                                err = authenticationFailedError((TcpDiscoveryAuthFailedMessage)msg);
-                            else if (msg instanceof TcpDiscoveryCheckFailedMessage)
-                                err = checkFailedError((TcpDiscoveryCheckFailedMessage)msg);
-
-                            if (err != null) {
-                                joinErr = err;
-
-                                joinLatch.countDown();
-
-                                return;
-                            }
-                        }
-
-                        msgWrk.addMessage(msg);
-                    }
-                    catch (GridException e) {
-                        if (log.isDebugEnabled())
-                            U.error(log, "Failed to read message [sock=" + sock0 + ", locNodeId=" + locNodeId +
-                                ", rmtNodeId=" + nodeId + ']', e);
-
-                        IOException ioEx = X.cause(e, IOException.class);
-
-                        if (ioEx != null)
-                            throw ioEx;
-
-                        ClassNotFoundException clsNotFoundEx = X.cause(e, ClassNotFoundException.class);
-
-                        if (clsNotFoundEx != null)
-                            LT.warn(log, null, "Failed to read message due to ClassNotFoundException " +
-                                "(make sure same versions of all classes are available on all nodes) " +
-                                "[rmtNodeId=" + nodeId + ", err=" + clsNotFoundEx.getMessage() + ']');
-                        else
-                            LT.error(log, e, "Failed to read message [sock=" + sock0 + ", locNodeId=" + locNodeId +
-                                ", rmtNodeId=" + nodeId + ']');
-                    }
-                }
-            }
-            catch (IOException e) {
-                if (log.isDebugEnabled())
-                    U.error(log, "Connection failed [sock=" + sock0 + ", locNodeId=" + locNodeId +
-                        ", rmtNodeId=" + nodeId + ']', e);
-            }
-            finally {
-                U.closeQuiet(sock0);
-
-                U.interrupt(msgWrk);
-
-                try {
-                    U.join(msgWrk);
-                }
-                catch (GridInterruptedException ignored) {
-                    // No-op.
-                }
-
-                sock = null;
-            }
-        }
-
-        /**
-         * @param msg Message.
-         */
-        void addMessage(TcpDiscoveryAbstractMessage msg) {
-            assert msg != null;
-
-            msgWrk.addMessage(msg);
-        }
-    }
-
-    /**
-     * Message worker.
-     */
-    private class MessageWorker extends MessageWorkerAdapter {
-        /** Topology history. */
-        private final NavigableMap<Long, Collection<ClusterNode>> topHist = new TreeMap<>();
-
-        /** Indicates that reconnection is in progress. */
-        private boolean recon;
-
-        /** Indicates that pending messages are currently processed. */
-        private boolean pending;
-
-        /**
-         * @param recon Whether reconnection is in progress.
-         */
-        protected MessageWorker(boolean recon) {
-            super("tcp-client-disco-msg-worker");
-
-            this.recon = recon;
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void processMessage(TcpDiscoveryAbstractMessage msg) {
-            assert msg != null;
-            assert msg.verified() || msg.senderNodeId() == null;
-
-            stats.onMessageProcessingStarted(msg);
-
-            if (msg instanceof TcpDiscoveryClientReconnectMessage)
-                processClientReconnectMessage((TcpDiscoveryClientReconnectMessage)msg);
-            else {
-                if (recon && !pending) {
-                    if (log.isDebugEnabled())
-                        log.debug("Discarding message received during reconnection: " + msg);
-                }
-                else {
-                    if (msg instanceof TcpDiscoveryNodeAddedMessage)
-                        processNodeAddedMessage((TcpDiscoveryNodeAddedMessage)msg);
-                    else if (msg instanceof TcpDiscoveryNodeAddFinishedMessage)
-                        processNodeAddFinishedMessage((TcpDiscoveryNodeAddFinishedMessage)msg);
-                    else if (msg instanceof TcpDiscoveryNodeLeftMessage)
-                        processNodeLeftMessage((TcpDiscoveryNodeLeftMessage)msg);
-                    else if (msg instanceof TcpDiscoveryNodeFailedMessage)
-                        processNodeFailedMessage((TcpDiscoveryNodeFailedMessage)msg);
-                    else if (msg instanceof TcpDiscoveryHeartbeatMessage)
-                        processHeartbeatMessage((TcpDiscoveryHeartbeatMessage)msg);
-
-                    if (ensured(msg))
-                        lastMsgId = msg.id();
-                }
-            }
-
-            stats.onMessageProcessingFinished(msg);
-        }
-
-        /**
-         * @param msg Message.
-         */
-        private void processNodeAddedMessage(TcpDiscoveryNodeAddedMessage msg) {
-            if (leaveLatch != null)
-                return;
-
-            TcpDiscoveryNode node = msg.node();
-
-            UUID newNodeId = node.id();
-
-            if (locNodeId.equals(newNodeId)) {
-                if (joinLatch.getCount() > 0) {
-                    Collection<TcpDiscoveryNode> top = msg.topology();
-
-                    if (top != null) {
-                        for (TcpDiscoveryNode n : top) {
-                            if (n.order() > 0)
-                                n.visible(true);
-
-                            rmtNodes.put(n.id(), n);
-                        }
-
-                        topHist.clear();
-
-                        if (msg.topologyHistory() != null)
-                            topHist.putAll(msg.topologyHistory());
-
-                        Collection<List<Object>> dataList = msg.oldNodesDiscoveryData();
-
-                        if (dataList != null) {
-                            for (List<Object> discoData : dataList)
-                                exchange.onExchange(discoData);
-                        }
-
-                        locNode.setAttributes(node.attributes());
-                        locNode.visible(true);
-                    }
-                    else if (log.isDebugEnabled())
-                        log.debug("Discarding node added message with empty topology: " + msg);
-                }
-                else if (log.isDebugEnabled())
-                    log.debug("Discarding node added message (this message has already been processed) " +
-                        "[msg=" + msg + ", locNode=" + locNode + ']');
-            }
-            else {
-                boolean topChanged = rmtNodes.putIfAbsent(newNodeId, node) == null;
-
-                if (topChanged) {
-                    if (log.isDebugEnabled())
-                        log.debug("Added new node to topology: " + node);
-
-                    List<Object> data = msg.newNodeDiscoveryData();
-
-                    if (data != null)
-                        exchange.onExchange(data);
-                }
-            }
-        }
-
-        /**
-         * @param msg Message.
-         */
-        private void processNodeAddFinishedMessage(TcpDiscoveryNodeAddFinishedMessage msg) {
-            if (leaveLatch != null)
-                return;
-
-            if (locNodeId.equals(msg.nodeId())) {
-                if (joinLatch.getCount() > 0) {
-                    long topVer = msg.topologyVersion();
-
-                    locNode.order(topVer);
-
-                    notifyDiscovery(EVT_NODE_JOINED, topVer, locNode, updateTopologyHistory(topVer));
-
-                    joinErr = null;
-
-                    joinLatch.countDown();
-                }
-                else if (log.isDebugEnabled())
-                    log.debug("Discarding node add finished message (this message has already been processed) " +
-                        "[msg=" + msg + ", locNode=" + locNode + ']');
-            }
-            else {
-                TcpDiscoveryNode node = rmtNodes.get(msg.nodeId());
-
-                if (node == null) {
-                    if (log.isDebugEnabled())
-                        log.debug("Discarding node add finished message since node is not found [msg=" + msg + ']');
-
-                    return;
-                }
-
-                long topVer = msg.topologyVersion();
-
-                node.order(topVer);
-                node.visible(true);
-
-                if (locNodeVer.equals(node.version()))
-                    node.version(locNodeVer);
-
-                Collection<ClusterNode> top = updateTopologyHistory(topVer);
-
-                if (!pending && joinLatch.getCount() > 0) {
-                    if (log.isDebugEnabled())
-                        log.debug("Discarding node add finished message (join process is not finished): " + msg);
-
-                    return;
-                }
-
-                notifyDiscovery(EVT_NODE_JOINED, topVer, node, top);
-
-                stats.onNodeJoined();
-            }
-        }
-
-        /**
-         * @param msg Message.
-         */
-        private void processNodeLeftMessage(TcpDiscoveryNodeLeftMessage msg) {
-            if (locNodeId.equals(msg.creatorNodeId())) {
-                if (log.isDebugEnabled())
-                    log.debug("Received node left message for local node: " + msg);
-
-                CountDownLatch leaveLatch0 = leaveLatch;
-
-                assert leaveLatch0 != null;
-
-                leaveLatch0.countDown();
-            }
-            else {
-                if (leaveLatch != null)
-                    return;
-
-                TcpDiscoveryNode node = rmtNodes.remove(msg.creatorNodeId());
-
-                if (node == null) {
-                    if (log.isDebugEnabled())
-                        log.debug("Discarding node left message since node is not found [msg=" + msg + ']');
-
-                    return;
-                }
-
-                Collection<ClusterNode> top = updateTopologyHistory(msg.topologyVersion());
-
-                if (!pending && joinLatch.getCount() > 0) {
-                    if (log.isDebugEnabled())
-                        log.debug("Discarding node left message (join process is not finished): " + msg);
-
-                    return;
-                }
-
-                notifyDiscovery(EVT_NODE_LEFT, msg.topologyVersion(), node, top);
-
-                stats.onNodeLeft();
-            }
-        }
-
-        /**
-         * @param msg Message.
-         */
-        private void processNodeFailedMessage(TcpDiscoveryNodeFailedMessage msg) {
-            if (leaveLatch != null)
-                return;
-
-            if (!locNodeId.equals(msg.creatorNodeId())) {
-                TcpDiscoveryNode node = rmtNodes.remove(msg.failedNodeId());
-
-                if (node == null) {
-                    if (log.isDebugEnabled())
-                        log.debug("Discarding node failed message since node is not found [msg=" + msg + ']');
-
-                    return;
-                }
-
-                Collection<ClusterNode> top = updateTopologyHistory(msg.topologyVersion());
-
-                if (!pending && joinLatch.getCount() > 0) {
-                    if (log.isDebugEnabled())
-                        log.debug("Discarding node failed message (join process is not finished): " + msg);
-
-                    return;
-                }
-
-                notifyDiscovery(EVT_NODE_FAILED, msg.topologyVersion(), node, top);
-
-                stats.onNodeFailed();
-            }
-        }
-
-        /**
-         * @param msg Message.
-         */
-        private void processHeartbeatMessage(TcpDiscoveryHeartbeatMessage msg) {
-            if (leaveLatch != null)
-                return;
-
-            if (locNodeId.equals(msg.creatorNodeId())) {
-                if (msg.senderNodeId() == null) {
-                    Socket sock0 = sock;
-
-                    if (sock0 != null) {
-                        msg.setMetrics(locNodeId, metricsProvider.getMetrics());
-
-                        try {
-                            writeToSocket(sock0, msg);
-
-                            if (log.isDebugEnabled())
-                                log.debug("Heartbeat message sent [sock=" + sock0 + ", msg=" + msg + ']');
-                        }
-                        catch (IOException | GridException e) {
-                            if (log.isDebugEnabled())
-                                U.error(log, "Failed to send heartbeat message [sock=" + sock0 +
-                                    ", msg=" + msg + ']', e);
-
-                            U.closeQuiet(sock0);
-
-                            sock = null;
-
-                            interrupt();
-                        }
-                    }
-                    else if (log.isDebugEnabled())
-                        log.debug("Failed to send heartbeat message (node is disconnected): " + msg);
-                }
-                else if (log.isDebugEnabled())
-                    log.debug("Received heartbeat response: " + msg);
-            }
-            else {
-                if (msg.hasMetrics()) {
-                    long tstamp = U.currentTimeMillis();
-
-                    for (Map.Entry<UUID, MetricsSet> e : msg.metrics().entrySet()) {
-                        MetricsSet metricsSet = e.getValue();
-
-                        updateMetrics(e.getKey(), metricsSet.metrics(), tstamp);
-
-                        for (T2<UUID, ClusterNodeMetrics> t : metricsSet.clientMetrics())
-                            updateMetrics(t.get1(), t.get2(), tstamp);
-                    }
-                }
-            }
-        }
-
-        /**
-         * @param msg Message.
-         */
-        private void processClientReconnectMessage(TcpDiscoveryClientReconnectMessage msg) {
-            if (leaveLatch != null)
-                return;
-
-            if (locNodeId.equals(msg.creatorNodeId())) {
-                if (msg.success()) {
-                    pending = true;
-
-                    try {
-                        for (TcpDiscoveryAbstractMessage pendingMsg : msg.pendingMessages())
-                            processMessage(pendingMsg);
-                    }
-                    finally {
-                        pending = false;
-                    }
-
-                    joinErr = null;
-                    reconFailed = false;
-
-                    joinLatch.countDown();
-                }
-                else {
-                    joinErr = null;
-                    reconFailed = true;
-
-                    getSpiContext().recordEvent(new IgniteDiscoveryEvent(locNode,
-                        "Client node disconnected: " + locNode,
-                        EVT_CLIENT_NODE_DISCONNECTED, locNode));
-
-                    joinLatch.countDown();
-                }
-            }
-            else if (log.isDebugEnabled())
-                log.debug("Discarding reconnect message for another client: " + msg);
-        }
-
-        /**
-         * @param nodeId Node ID.
-         * @param metrics Metrics.
-         * @param tstamp Timestamp.
-         */
-        private void updateMetrics(UUID nodeId, ClusterNodeMetrics metrics, long tstamp) {
-            assert nodeId != null;
-            assert metrics != null;
-
-            TcpDiscoveryNode node = nodeId.equals(locNodeId) ? locNode : rmtNodes.get(nodeId);
-
-            if (node != null && node.visible()) {
-                node.setMetrics(metrics);
-
-                node.lastUpdateTime(tstamp);
-
-                notifyDiscovery(EVT_NODE_METRICS_UPDATED, topVer, node, allNodes());
-            }
-            else if (log.isDebugEnabled())
-                log.debug("Received metrics from unknown node: " + nodeId);
-        }
-
-        /**
-         * @param topVer New topology version.
-         * @return Latest topology snapshot.
-         */
-        private Collection<ClusterNode> updateTopologyHistory(long topVer) {
-            TcpClientDiscoverySpi.this.topVer = topVer;
-
-            Collection<ClusterNode> allNodes = allNodes();
-
-            if (!topHist.containsKey(topVer)) {
-                assert topHist.isEmpty() || topHist.lastKey() == topVer - 1 :
-                    "lastVer=" + topHist.lastKey() + ", newVer=" + topVer;
-
-                topHist.put(topVer, allNodes);
-
-                if (topHist.size() > topHistSize)
-                    topHist.pollFirstEntry();
-
-                assert topHist.lastKey() == topVer;
-                assert topHist.size() <= topHistSize;
-            }
-
-            return allNodes;
-        }
-
-        /**
-         * @return All nodes.
-         */
-        private Collection<ClusterNode> allNodes() {
-            Collection<ClusterNode> allNodes = new TreeSet<>();
-
-            for (TcpDiscoveryNode node : rmtNodes.values()) {
-                if (node.visible())
-                    allNodes.add(node);
-            }
-
-            allNodes.add(locNode);
-
-            return allNodes;
-        }
-
-        /**
-         * @param type Event type.
-         * @param topVer Topology version.
-         * @param node Node.
-         * @param top Topology snapshot.
-         */
-        private void notifyDiscovery(int type, long topVer, ClusterNode node, Collection<ClusterNode> top) {
-            DiscoverySpiListener lsnr = TcpClientDiscoverySpi.this.lsnr;
-
-            if (lsnr != null) {
-                if (log.isDebugEnabled())
-                    log.debug("Discovery notification [node=" + node + ", type=" + U.gridEventName(type) +
-                        ", topVer=" + topVer + ']');
-
-                lsnr.onDiscovery(type, topVer, node, top, new TreeMap<>(topHist));
-            }
-            else if (log.isDebugEnabled())
-                log.debug("Skipped discovery notification [node=" + node + ", type=" + U.gridEventName(type) +
-                    ", topVer=" + topVer + ']');
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java
deleted file mode 100644
index 38e8e0c..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpiMBean.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp;
-
-import org.apache.ignite.mbean.*;
-import org.apache.ignite.spi.*;
-
-import java.util.*;
-
-/**
- * Management bean for {@link TcpClientDiscoverySpi}.
- */
-public interface TcpClientDiscoverySpiMBean extends IgniteSpiManagementMBean {
-    /**
-     * Gets disconnect check interval.
-     *
-     * @return Disconnect check interval.
-     */
-    @IgniteMBeanDescription("Disconnect check interval.")
-    public long getDisconnectCheckInterval();
-
-    /**
-     * Gets socket timeout.
-     *
-     * @return Socket timeout.
-     */
-    @IgniteMBeanDescription("Socket timeout.")
-    public long getSocketTimeout();
-
-    /**
-     * Gets message acknowledgement timeout.
-     *
-     * @return Message acknowledgement timeout.
-     */
-    @IgniteMBeanDescription("Message acknowledgement timeout.")
-    public long getAckTimeout();
-
-    /**
-     * Gets network timeout.
-     *
-     * @return Network timeout.
-     */
-    @IgniteMBeanDescription("Network timeout.")
-    public long getNetworkTimeout();
-
-    /**
-     * Gets thread priority. All threads within SPI will be started with it.
-     *
-     * @return Thread priority.
-     */
-    @IgniteMBeanDescription("Threads priority.")
-    public int getThreadPriority();
-
-    /**
-     * Gets delay between heartbeat messages sent by coordinator.
-     *
-     * @return Time period in milliseconds.
-     */
-    @IgniteMBeanDescription("Heartbeat frequency.")
-    public long getHeartbeatFrequency();
-
-    /**
-     * Gets {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} (string representation).
-     *
-     * @return IPFinder (string representation).
-     */
-    @IgniteMBeanDescription("IP Finder.")
-    public String getIpFinderFormatted();
-
-    /**
-     * Gets message worker queue current size.
-     *
-     * @return Message worker queue current size.
-     */
-    @IgniteMBeanDescription("Message worker queue current size.")
-    public int getMessageWorkerQueueSize();
-
-    /**
-     * Gets joined nodes count.
-     *
-     * @return Nodes joined count.
-     */
-    @IgniteMBeanDescription("Nodes joined count.")
-    public long getNodesJoined();
-
-    /**
-     * Gets left nodes count.
-     *
-     * @return Left nodes count.
-     */
-    @IgniteMBeanDescription("Nodes left count.")
-    public long getNodesLeft();
-
-    /**
-     * Gets failed nodes count.
-     *
-     * @return Failed nodes count.
-     */
-    @IgniteMBeanDescription("Nodes failed count.")
-    public long getNodesFailed();
-
-    /**
-     * Gets avg message processing time.
-     *
-     * @return Avg message processing time.
-     */
-    @IgniteMBeanDescription("Avg message processing time.")
-    public long getAvgMessageProcessingTime();
-
-    /**
-     * Gets max message processing time.
-     *
-     * @return Max message processing time.
-     */
-    @IgniteMBeanDescription("Max message processing time.")
-    public long getMaxMessageProcessingTime();
-
-    /**
-     * Gets total received messages count.
-     *
-     * @return Total received messages count.
-     */
-    @IgniteMBeanDescription("Total received messages count.")
-    public int getTotalReceivedMessages();
-
-    /**
-     * Gets received messages counts (grouped by type).
-     *
-     * @return Map containing message types and respective counts.
-     */
-    @IgniteMBeanDescription("Received messages by type.")
-    public Map<String, Integer> getReceivedMessages();
-
-    /**
-     * Gets total processed messages count.
-     *
-     * @return Total processed messages count.
-     */
-    @IgniteMBeanDescription("Total processed messages count.")
-    public int getTotalProcessedMessages();
-
-    /**
-     * Gets processed messages counts (grouped by type).
-     *
-     * @return Map containing message types and respective counts.
-     */
-    @IgniteMBeanDescription("Received messages by type.")
-    public Map<String, Integer> getProcessedMessages();
-}


[22/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java
index 0b137fa..98ba0a8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.lru.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLoadAllSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLoadAllSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLoadAllSelfTest.java
index afc0687..099d0fb 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLoadAllSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLoadAllSelfTest.java
@@ -15,8 +15,8 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLockSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLockSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLockSelfTest.java
index 475e33f..ee1f291 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLockSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalLockSelfTest.java
@@ -13,8 +13,8 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalMultithreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalMultithreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalMultithreadedSelfTest.java
index b074328..7740025 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalMultithreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalMultithreadedSelfTest.java
@@ -13,8 +13,8 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalTxTimeoutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalTxTimeoutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalTxTimeoutSelfTest.java
index 3778726..c918005 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalTxTimeoutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/local/GridCacheLocalTxTimeoutSelfTest.java
@@ -13,8 +13,8 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java
index 48bdce8..541954f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSwapScanQueryAbstractSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.portables.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.swapspace.file.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
index bc95bfa..f199b37 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
@@ -22,9 +22,9 @@ import org.gridgain.grid.cache.query.GridCacheContinuousQueryEntry;
 import org.gridgain.grid.cache.store.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.continuous.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java
index ad00482..9ceb009 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/query/reducefields/GridCacheAbstractReduceFieldsQuerySelfTest.java
@@ -15,10 +15,10 @@ import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java
index 2e99dd2..c25d897 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/clock/GridTimeSyncProcessorSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.lifecycle.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorRemoteTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorRemoteTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorRemoteTest.java
index d0f09cb..3d61707 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorRemoteTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorRemoteTest.java
@@ -13,7 +13,7 @@ import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java
index dc61f99..aad7b50 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/closure/GridClosureProcessorSelfTest.java
@@ -17,9 +17,9 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java
index a2d64d7..8891c1e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderImplSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.marshaller.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.portables.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java
index 13aa139..02566dd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderPerformanceTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.dataload;
 import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jdk8.backport.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java
index 8604295..2c169e5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/dataload/GridDataLoaderProcessorSelfTest.java
@@ -17,9 +17,9 @@ import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridCacheGgfsPerBlockLruEvictionPolicySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridCacheGgfsPerBlockLruEvictionPolicySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridCacheGgfsPerBlockLruEvictionPolicySelfTest.java
index 3d0c919..5417ece 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridCacheGgfsPerBlockLruEvictionPolicySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridCacheGgfsPerBlockLruEvictionPolicySelfTest.java
@@ -16,8 +16,8 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.ggfs.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsAbstractSelfTest.java
index 28f7ac5..de65d6a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsAbstractSelfTest.java
@@ -16,8 +16,8 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsCacheSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsCacheSelfTest.java
index 7825943..f73bdc9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsCacheSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsCacheSelfTest.java
@@ -13,8 +13,8 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.fs.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 
 import java.util.concurrent.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java
index 1077e71..565b423 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsDataManagerSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.fs.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java
index 1f694e2..c08f34e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetaManagerSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.fs.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java
index d62796d..810b153 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsMetricsSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.fs.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.U;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsModesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsModesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsModesSelfTest.java
index 444e27c..0fe5df6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsModesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsModesSelfTest.java
@@ -15,8 +15,8 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java
index 3903ef0..c402cad 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorSelfTest.java
@@ -17,9 +17,9 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java
index 31e2043..9880b37 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsProcessorValidationSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.fs.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 
 import java.lang.reflect.Array;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java
index 899f9d2..fbf1148 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsServerManagerIpcEndpointRegistrationAbstractSelfTest.java
@@ -15,9 +15,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.port.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.ipc.loopback.*;
 import org.gridgain.grid.util.ipc.shmem.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java
index b7fa462..86a8c3d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsSizeSelfTest.java
@@ -18,9 +18,9 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java
index f8b5fcc..c7cb467 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsStreamsSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.fs.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java
index 45a4709..729fddd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/GridGgfsTaskSelfTest.java
@@ -19,9 +19,9 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java
index 70d1903..6d8ddd3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/ggfs/split/GridGgfsAbstractRecordResolverSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.fs.*;
 import org.apache.ignite.fs.mapreduce.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
index a2e6b0b..a339499 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
@@ -18,8 +18,8 @@ import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.rest.*;
 import org.gridgain.grid.kernal.processors.rest.handlers.*;
 import org.gridgain.grid.kernal.processors.rest.request.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java
index b00c8f2..2659c04 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/service/GridServiceProcessorAbstractSelfTest.java
@@ -18,9 +18,9 @@ import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.affinity.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java
index fb49cb6..e18273f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerEvictionSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.streamer.*;
 import org.apache.ignite.streamer.window.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java
index ab1c047..a9953ec 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerFailoverSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.streamer.*;
 import org.apache.ignite.streamer.window.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java
index fdd8642..be8c3e9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/streamer/GridStreamerSelfTest.java
@@ -19,9 +19,9 @@ import org.apache.ignite.streamer.*;
 import org.apache.ignite.streamer.router.*;
 import org.apache.ignite.streamer.window.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/lang/GridFuncSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/lang/GridFuncSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/lang/GridFuncSelfTest.java
index e26912a..832068e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/lang/GridFuncSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/lang/GridFuncSelfTest.java
@@ -17,8 +17,8 @@ import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.future.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java
index 448e421..f7034b6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/messaging/GridMessagingSelfTest.java
@@ -6,9 +6,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.resources.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java
index 7d517a4..a3ae83d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PContinuousDeploymentSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.p2p;
 import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.apache.ignite.configuration.IgniteDeploymentMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java
index 4532ece..bbb17dd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PDoubleDeploymentSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.p2p;
 import org.apache.ignite.*;
 import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java
index f9dc135..453acba 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PMissedResourceCacheSizeSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.config.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PSameClassLoaderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PSameClassLoaderSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PSameClassLoaderSelfTest.java
index 68217ca..36e5e4f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PSameClassLoaderSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PSameClassLoaderSelfTest.java
@@ -11,7 +11,7 @@ package org.gridgain.grid.p2p;
 
 import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.testframework.config.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromFutureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromFutureSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromFutureSelfTest.java
index 6e53d39..4d95752 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromFutureSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromFutureSelfTest.java
@@ -14,8 +14,8 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromJobSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromJobSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromJobSelfTest.java
index 1428b1f..a4a7c85 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromJobSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromJobSelfTest.java
@@ -15,8 +15,8 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromTaskSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromTaskSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromTaskSelfTest.java
index 2ab9a64..a6b1b4e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromTaskSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionCancelSiblingsFromTaskSelfTest.java
@@ -15,8 +15,8 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobWaitTaskAttributeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobWaitTaskAttributeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobWaitTaskAttributeSelfTest.java
index 079ff97..b4c7d8c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobWaitTaskAttributeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionJobWaitTaskAttributeSelfTest.java
@@ -14,8 +14,8 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeSelfTest.java
index 50d7f4d..d35efa5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeSelfTest.java
@@ -14,8 +14,8 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeWaitListenerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeWaitListenerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeWaitListenerSelfTest.java
index 93a3e0f..80ed3e8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeWaitListenerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetFutureAttributeWaitListenerSelfTest.java
@@ -14,8 +14,8 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeSelfTest.java
index 28babfd..b9c7f59 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeSelfTest.java
@@ -14,8 +14,8 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeWaitListenerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeWaitListenerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeWaitListenerSelfTest.java
index 4592f6e..cd43362 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeWaitListenerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionSetJobAttributeWaitListenerSelfTest.java
@@ -14,8 +14,8 @@ import org.apache.ignite.compute.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionWaitAttributeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionWaitAttributeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionWaitAttributeSelfTest.java
index f52759a..6da556a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/session/GridSessionWaitAttributeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/session/GridSessionWaitAttributeSelfTest.java
@@ -15,8 +15,8 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/GridSpiLocalHostInjectionTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/GridSpiLocalHostInjectionTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/GridSpiLocalHostInjectionTest.java
index a67ca69..2483ed4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/GridSpiLocalHostInjectionTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/GridSpiLocalHostInjectionTest.java
@@ -12,7 +12,7 @@ package org.gridgain.grid.spi;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.processors.resource.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.*;
 import org.gridgain.testframework.junits.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
@@ -84,7 +84,7 @@ public class GridSpiLocalHostInjectionTest extends GridCommonAbstractTest {
     }
 
     /**
-     * Performs test of {@code localHost} resource injection for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}.
+     * Performs test of {@code localHost} resource injection for {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}.
      *
      * @param cfgVal {@code true} if {@code localHost} should be set in configuration adapter.
      * @param spiVal {@code true} if {@code localHost} should be set in SPI

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java
index 97d5c1d..0350995 100644
--- a/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/spi/GridTcpSpiForwardingSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.internal.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.nio.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
@@ -27,7 +27,7 @@ import java.util.*;
 import java.util.concurrent.*;
 
 /**
- * Test for {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi} and {@link org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi}.
+ * Test for {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi} and {@link org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi}.
  */
 public class GridTcpSpiForwardingSelfTest extends GridCommonAbstractTest {
     /** */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoveryRandomStartStopTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoveryRandomStartStopTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoveryRandomStartStopTest.java
deleted file mode 100644
index 7bdb912..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoveryRandomStartStopTest.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.events.*;
-import org.gridgain.grid.kernal.managers.eventstorage.*;
-import org.gridgain.testframework.junits.spi.*;
-
-import javax.swing.*;
-import java.io.*;
-import java.util.*;
-
-/**
- * Base discovery random start-stop test class.
- * @param <T> Discovery spi type.
- */
-public abstract class GridAbstractDiscoveryRandomStartStopTest<T extends DiscoverySpi> extends GridSpiAbstractTest<T> {
-    /** */
-    private static final int DFLT_MAX_INTERVAL = 10;
-
-    /** */
-    private volatile boolean semaphore = true;
-
-    /** */
-    private boolean isRunning;
-
-    /** */
-    private Pinger pinger;
-
-    /** */
-    private class Pinger extends Thread {
-        /** */
-        private final Object mux = new Object();
-
-        /** */
-        private volatile boolean canceled;
-
-        /** {@inheritDoc} */
-        @SuppressWarnings({"UnusedCatchParameter"})
-        @Override public void run() {
-            while (!canceled) {
-                try {
-                    if (getSpi() != null) {
-                        Collection<ClusterNode> nodes = getSpi().getRemoteNodes();
-
-                        for (ClusterNode item : nodes) {
-                            boolean flag = getSpi().pingNode(item.id());
-
-                            if (flag) {
-                                info("Ping node [nodeId=" + item.id().toString().toUpperCase() +
-                                    ", pingResult=" + flag + ']');
-                            }
-                            else {
-                                info("***Error*** Ping node fail [nodeId=" + item.id().toString().toUpperCase() +
-                                    ", pingResult=" + flag + ']');
-                            }
-                        }
-                    }
-                }
-                catch (Exception e) {
-                    error("Can't get remote nodes list.", e);
-                }
-
-                synchronized (mux) {
-                    if (!canceled) {
-                        try {
-                            mux.wait(2000);
-                        }
-                        catch (InterruptedException e) {
-                            //No-op.
-                        }
-                    }
-                }
-            }
-        }
-
-        /** {@inheritDoc} */
-        @Override public void interrupt() {
-            synchronized (mux) {
-                canceled = true;
-
-                mux.notifyAll();
-            }
-
-            super.interrupt();
-        }
-    }
-
-    /** */
-    private class DiscoveryListener implements GridLocalEventListener {
-        /** {@inheritDoc} */
-        @Override public void onEvent(IgniteEvent evt) {
-            info("Discovery event [event=" + evt + ']');
-        }
-    }
-
-    /** */
-    protected GridAbstractDiscoveryRandomStartStopTest() {
-        super(false);
-    }
-
-    /**
-     * @return Max interval.
-     */
-    protected int getMaxInterval() {
-        return DFLT_MAX_INTERVAL;
-    }
-
-    /**
-     *
-     */
-    private class Waiter extends Thread {
-        /** {@inheritDoc} */
-        @Override public void run() {
-            // Wait until Ok is pressed.
-            JOptionPane.showMessageDialog(
-                null,
-                new JComponent[] {
-                    new JLabel("Test started."),
-                    new JLabel("Press OK to stop test.")
-                },
-                "GridGain",
-                JOptionPane.INFORMATION_MESSAGE
-            );
-
-            semaphore = false;
-        }
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    @SuppressWarnings({"BusyWait"})
-    public void testDiscovery() throws Exception {
-        Random rand = new Random();
-
-        new Waiter().start();
-
-        while (semaphore) {
-            int interval = rand.nextInt(getMaxInterval() - 1) + 1;
-
-            toggleState();
-
-            if (isRunning)
-                info("Spi stopped for the interval of " + interval + " seconds...");
-            else
-                info("Spi started for the interval of " + interval + " seconds...");
-
-            try {
-                Thread.sleep(interval * 1000);
-            }
-            catch (InterruptedException e) {
-                error("Got interrupted", e);
-
-                break;
-            }
-        }
-
-        info("Spi stopped...");
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    private void toggleState() throws Exception {
-        if (isRunning)
-            spiStop();
-        else
-            spiStart();
-
-        isRunning = !isRunning;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void beforeTestsStarted() throws Exception {
-        if (getSpiContext() != null)
-            getSpiContext().addLocalEventListener(new DiscoveryListener());
-
-        pinger = new Pinger();
-
-        pinger.start();
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTestsStopped() throws Exception {
-        pinger.interrupt();
-    }
-
-    /** {@inheritDoc} */
-    @Override protected Map<String, Serializable> getNodeAttributes() {
-        Map<String, Serializable> attrs = new HashMap<>(1);
-
-        attrs.put("testDiscoveryAttribute", new Date());
-
-        return attrs;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoverySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoverySelfTest.java
deleted file mode 100644
index 92dd077..0000000
--- a/modules/core/src/test/java/org/gridgain/grid/spi/discovery/GridAbstractDiscoverySelfTest.java
+++ /dev/null
@@ -1,488 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery;
-
-import mx4j.tools.adaptor.http.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.marshaller.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.kernal.managers.security.*;
-import org.gridgain.grid.security.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.testframework.config.*;
-import org.gridgain.testframework.junits.*;
-import org.gridgain.testframework.junits.spi.*;
-
-import javax.management.*;
-import java.io.*;
-import java.util.*;
-import java.util.concurrent.atomic.*;
-
-import static org.apache.ignite.events.IgniteEventType.*;
-import static org.apache.ignite.product.IgniteProductVersion.*;
-
-/**
- * Base discovery self-test class.
- * @param <T> SPI implementation class.
- */
-@SuppressWarnings({"JUnitAbstractTestClassNamingConvention"})
-public abstract class GridAbstractDiscoverySelfTest<T extends IgniteSpi> extends GridSpiAbstractTest<T> {
-    /** */
-    private static final List<DiscoverySpi> spis = new ArrayList<>();
-
-    /** */
-    private static final Collection<GridTestResources> spiRsrcs = new ArrayList<>();
-
-    /** */
-    private static long spiStartTime;
-
-    /** */
-    private static final Object mux = new Object();
-
-    /** */
-    private static final String TEST_ATTRIBUTE_NAME = "test.node.prop";
-
-    /** */
-    protected GridAbstractDiscoverySelfTest() {
-        super(false);
-    }
-
-    /**
-     * Checks that each started discovery spi found all other SPI's.
-     * @throws Exception If failed.
-     */
-    @SuppressWarnings({"UnconditionalWait"})
-    public void testDiscovery() throws Exception {
-        assert spis.size() > 1;
-        assert spiStartTime > 0;
-        assert spiRsrcs.size() == getSpiCount();
-
-        boolean isAllDiscovered = false;
-
-        while (!isAllDiscovered) {
-            for (DiscoverySpi spi : spis) {
-                if (spi.getRemoteNodes().size() < (getSpiCount() - 1)) {
-                    isAllDiscovered = false;
-
-                    break;
-                }
-
-                isAllDiscovered = true;
-
-                for (GridTestResources rscrs : spiRsrcs) {
-                    UUID nodeId = rscrs.getNodeId();
-
-                    if (!nodeId.equals(spi.getLocalNode().id())) {
-                        if (!isContainsNodeId(spi.getRemoteNodes(), nodeId)) {
-                            isAllDiscovered = false;
-
-                            break;
-                        }
-                    }
-                }
-            }
-
-            if (isAllDiscovered)
-                info("All nodes discovered.");
-            else {
-                if (System.currentTimeMillis() > spiStartTime + getMaxDiscoveryTime()) {
-                    for (int i = 0; i < getSpiCount(); i++) {
-                        DiscoverySpi spi = spis.get(i);
-
-                        info("Remote nodes [spiIdx=" + i + ", nodes=" + spi.getRemoteNodes() + ']');
-                    }
-
-                    fail("Nodes were not discovered.");
-                }
-                else {
-                    synchronized (mux) {
-                        mux.wait(getMaxDiscoveryTime());
-                    }
-                }
-            }
-        }
-    }
-
-    /** */
-    private static class DiscoveryListener implements DiscoverySpiListener {
-        /** * */
-        private boolean isMetricsUpdate;
-
-        /**
-         *
-         *
-         * @return Metrics updates.
-         */
-        public boolean isMetricsUpdated() {
-            return isMetricsUpdate;
-        }
-
-        /** {@inheritDoc} */
-        @Override public void onDiscovery(int type, long topVer, ClusterNode node, Collection<ClusterNode> topSnapshot,
-            Map<Long, Collection<ClusterNode>> topHist) {
-            if (type == EVT_NODE_METRICS_UPDATED)
-                isMetricsUpdate = true;
-        }
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    @SuppressWarnings({"UnconditionalWait"})
-    public void testMetrics() throws Exception {
-        Collection<DiscoveryListener> listeners = new ArrayList<>();
-
-        long metricsStartTime = System.currentTimeMillis();
-
-        for (DiscoverySpi spi : spis) {
-            DiscoveryListener metricsUpdateLsnr = new DiscoveryListener();
-
-            spi.setListener(metricsUpdateLsnr);
-
-            listeners.add(metricsUpdateLsnr);
-        }
-
-        boolean isAllSpiMetricUpdated = false;
-
-        while (!isAllSpiMetricUpdated) {
-            isAllSpiMetricUpdated = true;
-
-            for (DiscoveryListener lsnr : listeners) {
-                if (!lsnr.isMetricsUpdated()) {
-                    isAllSpiMetricUpdated = false;
-
-                    break;
-                }
-            }
-
-            if (isAllSpiMetricUpdated)
-                info("All SPI metrics updated.");
-            else {
-                if (System.currentTimeMillis() > metricsStartTime + getMaxMetricsWaitTime()) {
-                    for (int i = 0; i < getSpiCount(); i++) {
-                        DiscoverySpi spi = spis.get(i);
-
-                        info("Remote nodes [spiIdx=" + i + ", nodes=" + spi.getRemoteNodes() + ']');
-                    }
-
-                    fail("SPI Metrics not updated.");
-                }
-                else {
-                    synchronized (mux) {
-                        mux.wait(getMaxMetricsWaitTime());
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Tests whether local node heartbeats cause METRICS_UPDATE event.
-     *
-     * @throws Exception If test failed.
-     */
-    public void testLocalHeartbeat() throws Exception {
-        AtomicInteger[] locUpdCnts = new AtomicInteger[getSpiCount()];
-
-        int i = 0;
-
-        for (final DiscoverySpi spi : spis) {
-            final AtomicInteger spiCnt = new AtomicInteger(0);
-
-            DiscoverySpiListener locHeartbeatLsnr = new DiscoverySpiListener() {
-                @Override public void onDiscovery(int type, long topVer, ClusterNode node,
-                    Collection<ClusterNode> topSnapshot, Map<Long, Collection<ClusterNode>> topHist) {
-                    // If METRICS_UPDATED came from local node
-                    if (type == EVT_NODE_METRICS_UPDATED
-                        && node.id().equals(spi.getLocalNode().id()))
-                        spiCnt.addAndGet(1);
-                }
-            };
-
-            locUpdCnts[i] = spiCnt;
-
-            spi.setListener(locHeartbeatLsnr);
-
-            i++;
-        }
-
-        // Sleep fro 3 Heartbeats.
-        Thread.sleep(getMaxDiscoveryTime() * 3);
-
-        for (AtomicInteger cnt : locUpdCnts) {
-            assert cnt.get() > 1 : "One of the SPIs did not get at least 2 METRICS_UPDATE events from local node";
-        }
-    }
-
-    /**
-     * @param nodes Nodes iterator.
-     * @param nodeId Node UUID.
-     * @return {@code true} if provided iterator contains node with provided UUID.
-     */
-    private boolean isContainsNodeId(Iterable<ClusterNode> nodes, UUID nodeId) {
-        for (ClusterNode node : nodes) {
-            assert node.id() != null;
-
-            if (node.id().equals(nodeId))
-                return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Checks that physical address of local node is equal to local.ip property.
-     */
-    public void testLocalNode() {
-        for (DiscoverySpi spi : spis) {
-            ClusterNode loc = spi.getLocalNode();
-
-            Collection<ClusterNode> rmt = spi.getRemoteNodes();
-
-            assert !rmt.contains(loc);
-        }
-    }
-
-    /**
-     * Check that "test.node.prop" is present on all nodes.
-     */
-    public void testNodeAttributes() {
-        for (DiscoverySpi spi : spis) {
-            assert !spi.getRemoteNodes().isEmpty() : "No remote nodes found in Spi.";
-
-            Collection<UUID> nodeIds = new HashSet<>();
-
-            for (GridTestResources rsrc : spiRsrcs) {
-                nodeIds.add(rsrc.getNodeId());
-            }
-
-            for (ClusterNode node : spi.getRemoteNodes()) {
-                if (nodeIds.contains(node.id())) {
-                    Serializable attr = node.attribute(TEST_ATTRIBUTE_NAME);
-
-                    if (attr == null || !(attr instanceof String)) {
-                        fail("Node does not contains attribute [attr=" + TEST_ATTRIBUTE_NAME + ", nodeId=" +
-                            node.id() + ", spiIdx=" + spis.indexOf(spi) + ']');
-                    }
-                    else if (!"true".equals(attr)) {
-                        fail("Attribute value is wrong [attr=" + TEST_ATTRIBUTE_NAME + ", value=" + attr + ", nodeId=" +
-                            node.id() + ", spiIdx=" + spis.indexOf(spi) + ']');
-                    }
-                    else {
-                        info("Node contains attribute [attr=" + TEST_ATTRIBUTE_NAME + ", value=" + attr + ", nodeId=" +
-                            node.id() + ", spiIdx=" + spis.indexOf(spi) + ']');
-                    }
-                }
-                else
-                    error("Discovered unknown node [node=" + node + ", spiIdx=" + spis.indexOf(spi) + ']');
-            }
-        }
-    }
-
-    /**
-     * Checks that each spi can pings all other.
-     */
-    public void testPing() {
-        for (DiscoverySpi spi : spis) {
-            for (GridTestResources rscrs : spiRsrcs) {
-                UUID nodeId = rscrs.getNodeId();
-
-                if (spi.pingNode(nodeId))
-                    info("Ping node success [nodeId=" + nodeId + ", spiIdx=" + spis.indexOf(spi) + ']');
-                else
-                    fail("Ping node error [nodeId=" + nodeId + ", spiIdx=" + spis.indexOf(spi) + ']');
-            }
-        }
-    }
-
-    /**
-     * Checks that node serializable.
-     *
-     * @throws Exception If failed.
-     */
-    public void testNodeSerialize() throws Exception {
-        for (DiscoverySpi spi : spis) {
-            ClusterNode node = spi.getLocalNode();
-
-            assert node != null;
-
-            writeObject(node);
-
-            info("Serialize node success [nodeId=" + node.id() + ", spiIdx=" + spis.indexOf(spi) + ']');
-        }
-    }
-
-    /**
-     * @param idx Index.
-     * @return Discovery SPI.
-     */
-    protected abstract DiscoverySpi getSpi(int idx);
-
-    /**
-     * @return SPI count.
-     */
-    protected int getSpiCount() {
-        return 2;
-    }
-
-    /**
-     * @return Maximum discovery time.
-     */
-    protected long getMaxDiscoveryTime() {
-        return 10000;
-    }
-
-    /**
-     * @return Maximum metrics wait time.
-     */
-    protected long getMaxMetricsWaitTime() {
-        return getMaxDiscoveryTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void beforeTestsStarted() throws Exception {
-        try {
-            for (int i = 0; i < getSpiCount(); i++) {
-                DiscoverySpi spi = getSpi(i);
-
-                GridTestResources rsrcMgr = new GridTestResources(getMBeanServer(i));
-
-                rsrcMgr.inject(spi);
-
-                spi.setNodeAttributes(Collections.<String, Object>singletonMap(TEST_ATTRIBUTE_NAME, "true"),
-                    fromString("99.99.99"));
-
-                spi.setListener(new DiscoverySpiListener() {
-                    @SuppressWarnings({"NakedNotify"})
-                    @Override public void onDiscovery(int type, long topVer, ClusterNode node,
-                        Collection<ClusterNode> topSnapshot, Map<Long, Collection<ClusterNode>> topHist) {
-                        info("Discovery event [type=" + type + ", node=" + node + ']');
-
-                        synchronized (mux) {
-                            mux.notifyAll();
-                        }
-                    }
-                });
-
-                spi.setDataExchange(new DiscoverySpiDataExchange() {
-                    @Override public List<Object> collect(UUID nodeId) {
-                        return new LinkedList<>();
-                    }
-
-                    @Override public void onExchange(List<Object> data) {
-                        // No-op.
-                    }
-                });
-
-                spi.setAuthenticator(new DiscoverySpiNodeAuthenticator() {
-                    @Override public GridSecurityContext authenticateNode(ClusterNode n, GridSecurityCredentials cred) {
-                        GridSecuritySubjectAdapter subj = new GridSecuritySubjectAdapter(
-                            GridSecuritySubjectType.REMOTE_NODE, n.id());
-
-                        subj.permissions(new GridAllowAllPermissionSet());
-
-                        return new GridSecurityContext(subj);
-                    }
-
-                    @Override public boolean isGlobalNodeAuthentication() {
-                        return false;
-                    }
-                });
-
-
-                spi.spiStart(getTestGridName() + i);
-
-                spis.add(spi);
-
-                spiRsrcs.add(rsrcMgr);
-
-                // Force to use test context instead of default dummy context.
-                spi.onContextInitialized(initSpiContext());
-            }
-        }
-        catch (Throwable e) {
-            e.printStackTrace();
-        }
-
-        spiStartTime = System.currentTimeMillis();
-    }
-
-    /**
-     * @param idx Index.
-     * @return MBean server.
-     * @throws Exception If failed.
-     */
-    private MBeanServer getMBeanServer(int idx) throws Exception {
-        HttpAdaptor adaptor = new HttpAdaptor();
-
-        MBeanServer srv = MBeanServerFactory.createMBeanServer();
-
-        adaptor.setPort(Integer.valueOf(GridTestProperties.getProperty("discovery.mbeanserver.selftest.baseport")) +
-            idx);
-
-        srv.registerMBean(adaptor, new ObjectName("mbeanAdaptor:protocol=HTTP"));
-
-        adaptor.start();
-
-        return srv;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTestsStopped() throws Exception {
-        assert spis.size() > 1;
-        assert spis.size() == spiRsrcs.size();
-
-        for (DiscoverySpi spi : spis) {
-            spi.setListener(null);
-
-            spi.spiStop();
-        }
-
-        for (GridTestResources rscrs : spiRsrcs) {
-            rscrs.stopThreads();
-        }
-
-        // Clear.
-        spis.clear();
-        spiRsrcs.clear();
-
-        spiStartTime = 0;
-
-        tearDown();
-    }
-
-    /**
-     * @param node Grid node.
-     * @throws IOException If write failed.
-     */
-    private void writeObject(ClusterNode node) throws Exception {
-
-        IgniteMarshaller marshaller = getTestResources().getMarshaller();
-
-        OutputStream out = new NullOutputStream();
-
-        try {
-            marshaller.marshal(node, out);
-        }
-        finally {
-            U.close(out, null);
-        }
-    }
-
-    /**
-     *
-     */
-    private static class NullOutputStream extends OutputStream {
-        /** {@inheritDoc} */
-        @Override public void write(int b) throws IOException {
-            // No-op
-        }
-    }
-}


[15/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
# Renaming


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

Branch: refs/heads/master
Commit: 4f31df32c1efa257555c2ae9a154d8e4fa943864
Parents: 717180b
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 5 16:50:11 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 5 16:50:11 2014 +0300

----------------------------------------------------------------------
 .../store/CacheNodeWithStoreStartup.java        |   2 +-
 .../org/gridgain/grid/kernal/GridGainEx.java    |   2 +-
 .../discovery/tcp/TcpClientDiscoverySpi.java    |   4 +-
 .../grid/spi/discovery/tcp/TcpDiscoverySpi.java |  12 +-
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |   3 +-
 .../jdbc/GridTcpDiscoveryJdbcIpFinder.java      | 361 ---------
 .../ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java | 361 +++++++++
 .../GridTcpDiscoveryMulticastIpFinder.java      | 752 -------------------
 .../TcpDiscoveryMulticastIpFinder.java          | 752 +++++++++++++++++++
 .../GridTcpDiscoverySharedFsIpFinder.java       | 258 -------
 .../sharedfs/TcpDiscoverySharedFsIpFinder.java  | 258 +++++++
 .../test/config/loaders/grid-cfg-2-grids.xml    |   4 +-
 .../core/src/test/config/loaders/grid-cfg.xml   |   4 +-
 .../discovery/tcp/GridTcpDiscoverySelfTest.java |   4 +-
 .../GridTcpDiscoveryJdbcIpFinderSelfTest.java   |   6 +-
 ...idTcpDiscoveryMulticastIpFinderSelfTest.java |  16 +-
 ...ridTcpDiscoverySharedFsIpFinderSelfTest.java |   6 +-
 .../testframework/junits/GridAbstractTest.java  |   2 +-
 .../junits/spi/GridSpiAbstractTest.java         |   6 +-
 19 files changed, 1405 insertions(+), 1408 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java b/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java
index 2bf0cfd..9035376 100644
--- a/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java
+++ b/examples/src/main/java/org/gridgain/examples/datagrid/store/CacheNodeWithStoreStartup.java
@@ -50,7 +50,7 @@ public class CacheNodeWithStoreStartup {
         // Discovery SPI.
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
-        TcpDiscoveryVmIpFinder ipFinder = new GridTcpDiscoveryMulticastIpFinder();
+        TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();
 
         ipFinder.setAddresses(Arrays.asList("127.0.0.1:47500..47509"));
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
index 178d323..5469e86 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
@@ -1676,7 +1676,7 @@ public class GridGainEx {
                 TcpDiscoverySpi tcpDisco = (TcpDiscoverySpi)discoSpi;
 
                 if (tcpDisco.getIpFinder() == null)
-                    tcpDisco.setIpFinder(new GridTcpDiscoveryMulticastIpFinder());
+                    tcpDisco.setIpFinder(new TcpDiscoveryMulticastIpFinder());
             }
 
             if (evtSpi == null)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
index ff50969..bb3a2ca 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -228,8 +228,8 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
             throw new IgniteSpiException("Unknown local address: " + locAddr, e);
         }
 
-        if (ipFinder instanceof GridTcpDiscoveryMulticastIpFinder) {
-            GridTcpDiscoveryMulticastIpFinder mcastIpFinder = ((GridTcpDiscoveryMulticastIpFinder)ipFinder);
+        if (ipFinder instanceof TcpDiscoveryMulticastIpFinder) {
+            TcpDiscoveryMulticastIpFinder mcastIpFinder = ((TcpDiscoveryMulticastIpFinder)ipFinder);
 
             if (mcastIpFinder.getLocalAddress() == null)
                 mcastIpFinder.setLocalAddress(locAddr);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
index 7a1b964..acd2599 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -22,9 +22,7 @@ import org.gridgain.grid.kernal.managers.security.*;
 import org.gridgain.grid.security.*;
 import org.gridgain.grid.spi.discovery.*;
 import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc.*;
 import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs.*;
 import org.gridgain.grid.spi.discovery.tcp.messages.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
@@ -68,11 +66,11 @@ import static org.gridgain.grid.spi.discovery.tcp.messages.GridTcpDiscoveryStatu
  * (see {@link #setIpFinder(org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder)}).
  * See the following IP finder implementations for details on configuration:
  * <ul>
- * <li>{@link GridTcpDiscoverySharedFsIpFinder}</li>
+ * <li>{@link org.gridgain.grid.spi.discovery.tcp.ipfinder.sharedfs.TcpDiscoverySharedFsIpFinder}</li>
  * <li>{@gglink org.gridgain.grid.spi.discovery.tcp.ipfinder.s3.GridTcpDiscoveryS3IpFinder}</li>
- * <li>{@link GridTcpDiscoveryJdbcIpFinder}</li>
+ * <li>{@link org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc.TcpDiscoveryJdbcIpFinder}</li>
  * <li>{@link org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder}</li>
- * <li>{@link GridTcpDiscoveryMulticastIpFinder} - default</li>
+ * <li>{@link org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder} - default</li>
  * </ul>
  * </li>
  * </ul>
@@ -853,8 +851,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
 
         registerMBean(gridName, this, TcpDiscoverySpiMBean.class);
 
-        if (ipFinder instanceof GridTcpDiscoveryMulticastIpFinder) {
-            GridTcpDiscoveryMulticastIpFinder mcastIpFinder = ((GridTcpDiscoveryMulticastIpFinder)ipFinder);
+        if (ipFinder instanceof TcpDiscoveryMulticastIpFinder) {
+            TcpDiscoveryMulticastIpFinder mcastIpFinder = ((TcpDiscoveryMulticastIpFinder)ipFinder);
 
             if (mcastIpFinder.getLocalAddress() == null)
                 mcastIpFinder.setLocalAddress(locAddr);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 03b422a..47ee030 100644
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -20,7 +20,6 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.spi.discovery.*;
 import org.gridgain.grid.spi.discovery.tcp.internal.*;
 import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.*;
 import org.gridgain.grid.spi.discovery.tcp.messages.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.io.*;
@@ -183,7 +182,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
     /**
      * Sets IP finder for IP addresses sharing and storing.
      * <p>
-     * If not provided {@link GridTcpDiscoveryMulticastIpFinder} will be used by default.
+     * If not provided {@link org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder} will be used by default.
      *
      * @param ipFinder IP finder.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinder.java
deleted file mode 100644
index 0e1a15b..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/GridTcpDiscoveryJdbcIpFinder.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc;
-
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-
-import javax.sql.*;
-import java.net.*;
-import java.sql.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-import static java.sql.Connection.*;
-
-/**
- * JDBC-based IP finder.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * <ul>
- *     <li>Data source (see {@link #setDataSource(DataSource)}).</li>
- * </ul>
- * <h2 class="header">Optional</h2>
- * The following configuration parameters are optional:
- * <ul>
- *     <li>Flag indicating whether DB schema should be initialized by GridGain (default behaviour) or
- *         was explicitly created by user (see {@link #setInitSchema(boolean)})</li>
- * </ul>
- * <p>
- * The database will contain 1 table which will hold IP addresses.
- */
-public class GridTcpDiscoveryJdbcIpFinder extends TcpDiscoveryIpFinderAdapter {
-    /** Query to get addresses. */
-    public static final String GET_ADDRS_QRY = "select hostname, port from tbl_addrs";
-
-    /** Query to register address. */
-    public static final String REG_ADDR_QRY = "insert into tbl_addrs values (?, ?)";
-
-    /** Query to unregister address. */
-    public static final String UNREG_ADDR_QRY = "delete from tbl_addrs where hostname = ? and port = ?";
-
-    /** Query to create addresses table. */
-    public static final String CREATE_ADDRS_TABLE_QRY =
-        "create table if not exists tbl_addrs (" +
-        "hostname VARCHAR(1024), " +
-        "port INT)";
-
-    /** Query to check database validity. */
-    public static final String CHK_QRY = "select count(*) from tbl_addrs";
-
-    /** Grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Data source. */
-    private DataSource dataSrc;
-
-    /** Flag for schema initialization. */
-    private boolean initSchema = true;
-
-    /** Init guard. */
-    @GridToStringExclude
-    private final AtomicBoolean initGuard = new AtomicBoolean();
-
-    /** Init latch. */
-    @GridToStringExclude
-    private final CountDownLatch initLatch = new CountDownLatch(1);
-
-    /**
-     * Constructor.
-     */
-    public GridTcpDiscoveryJdbcIpFinder() {
-        setShared(true);
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
-        init();
-
-        Connection conn = null;
-
-        PreparedStatement stmt = null;
-
-        ResultSet rs = null;
-
-        try {
-            conn = dataSrc.getConnection();
-
-            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
-            stmt = conn.prepareStatement(GET_ADDRS_QRY);
-
-            rs = stmt.executeQuery();
-
-            Collection<InetSocketAddress> addrs = new LinkedList<>();
-
-            while (rs.next())
-                addrs.add(new InetSocketAddress(rs.getString(1), rs.getInt(2)));
-
-            return addrs;
-        }
-        catch (SQLException e) {
-            throw new IgniteSpiException("Failed to get registered addresses version.", e);
-        }
-        finally {
-            U.closeQuiet(rs);
-            U.closeQuiet(stmt);
-            U.closeQuiet(conn);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        assert !F.isEmpty(addrs);
-
-        init();
-
-        Connection conn = null;
-
-        PreparedStatement stmtUnreg = null;
-
-        PreparedStatement stmtReg = null;
-
-        boolean committed = false;
-
-        try {
-            conn = dataSrc.getConnection();
-
-            conn.setAutoCommit(false);
-
-            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
-            stmtUnreg = conn.prepareStatement(UNREG_ADDR_QRY);
-            stmtReg = conn.prepareStatement(REG_ADDR_QRY);
-
-            for (InetSocketAddress addr : addrs) {
-                stmtUnreg.setString(1, addr.getAddress().getHostAddress());
-                stmtUnreg.setInt(2, addr.getPort());
-
-                stmtUnreg.addBatch();
-
-                stmtReg.setString(1, addr.getAddress().getHostAddress());
-                stmtReg.setInt(2, addr.getPort());
-
-                stmtReg.addBatch();
-            }
-
-            stmtUnreg.executeBatch();
-            stmtUnreg.close();
-
-            stmtReg.executeBatch();
-            stmtReg.close();
-
-            conn.commit();
-
-            committed = true;
-        }
-        catch (SQLException e) {
-            U.rollbackConnectionQuiet(conn);
-
-            throw new IgniteSpiException("Failed to register addresses: " + addrs, e);
-        }
-        finally {
-            if (!committed)
-                U.rollbackConnectionQuiet(conn);
-
-            U.closeQuiet(stmtUnreg);
-            U.closeQuiet(stmtReg);
-            U.closeQuiet(conn);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        assert !F.isEmpty(addrs);
-
-        init();
-
-        Connection conn = null;
-
-        PreparedStatement stmt = null;
-
-        boolean committed = false;
-
-        try {
-            conn = dataSrc.getConnection();
-
-            conn.setAutoCommit(false);
-
-            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
-            stmt = conn.prepareStatement(UNREG_ADDR_QRY);
-
-            for (InetSocketAddress addr : addrs) {
-                stmt.setString(1, addr.getAddress().getHostAddress());
-                stmt.setInt(2, addr.getPort());
-
-                stmt.addBatch();
-            }
-
-            stmt.executeBatch();
-            conn.commit();
-
-            committed = true;
-        }
-        catch (SQLException e) {
-            U.rollbackConnectionQuiet(conn);
-
-            throw new IgniteSpiException("Failed to unregister addresses: " + addrs, e);
-        }
-        finally {
-            if (!committed)
-                U.rollbackConnectionQuiet(conn);
-
-            U.closeQuiet(stmt);
-            U.closeQuiet(conn);
-        }
-    }
-
-    /**
-     * Sets data source.
-     * <p>
-     * Data source should be fully configured and ready-to-use.
-     *
-     * @param dataSrc Data source.
-     */
-    @IgniteSpiConfiguration(optional = false)
-    public void setDataSource(DataSource dataSrc) {
-        this.dataSrc = dataSrc;
-    }
-
-    /**
-     * Flag indicating whether DB schema should be initialized by GridGain (default behaviour) or
-     * was explicitly created by user.
-     *
-     * @param initSchema {@code True} if DB schema should be initialized by GridGain (default behaviour),
-     *      {code @false} if schema was explicitly created by user.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setInitSchema(boolean initSchema) {
-        this.initSchema = initSchema;
-    }
-
-    /**
-     * Checks configuration validity.
-     *
-     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
-     */
-    private void init() throws IgniteSpiException {
-        if (initGuard.compareAndSet(false, true)) {
-            if (dataSrc == null)
-                throw new IgniteSpiException("Data source is null (you must configure it via setDataSource(..)" +
-                    " configuration property)");
-
-            if (!initSchema) {
-                initLatch.countDown();
-
-                checkSchema();
-
-                return;
-            }
-
-            Connection conn = null;
-
-            Statement stmt = null;
-
-            boolean committed = false;
-
-            try {
-                conn = dataSrc.getConnection();
-
-                conn.setAutoCommit(false);
-
-                conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
-                // Create tbl_addrs.
-                stmt = conn.createStatement();
-
-                stmt.executeUpdate(CREATE_ADDRS_TABLE_QRY);
-
-                conn.commit();
-
-                committed = true;
-
-                if (log.isDebugEnabled())
-                    log.debug("DB schema has been initialized.");
-            }
-            catch (SQLException e) {
-                U.rollbackConnectionQuiet(conn);
-
-                throw new IgniteSpiException("Failed to initialize DB schema.", e);
-            }
-            finally {
-                if (!committed)
-                    U.rollbackConnectionQuiet(conn);
-
-                U.closeQuiet(stmt);
-                U.closeQuiet(conn);
-
-                initLatch.countDown();
-            }
-        }
-        else
-            checkSchema();
-    }
-
-    /**
-     * Checks correctness of existing DB schema.
-     *
-     * @throws org.apache.ignite.spi.IgniteSpiException If schema wasn't properly initialized.
-     */
-    private void checkSchema() throws IgniteSpiException {
-        try {
-            U.await(initLatch);
-        }
-        catch (GridInterruptedException e) {
-            throw new IgniteSpiException("Thread has been interrupted.", e);
-        }
-
-        Connection conn = null;
-
-        Statement stmt = null;
-
-        try {
-            conn = dataSrc.getConnection();
-
-            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
-
-            // Check if tbl_addrs exists and database initialized properly.
-            stmt = conn.createStatement();
-
-            stmt.execute(CHK_QRY);
-        }
-        catch (SQLException e) {
-            throw new IgniteSpiException("IP finder has not been properly initialized.", e);
-        }
-        finally {
-            U.closeQuiet(stmt);
-            U.closeQuiet(conn);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryJdbcIpFinder.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java
new file mode 100644
index 0000000..4b5c00b
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java
@@ -0,0 +1,361 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.ipfinder.jdbc;
+
+import org.apache.ignite.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+
+import javax.sql.*;
+import java.net.*;
+import java.sql.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+import static java.sql.Connection.*;
+
+/**
+ * JDBC-based IP finder.
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * <ul>
+ *     <li>Data source (see {@link #setDataSource(DataSource)}).</li>
+ * </ul>
+ * <h2 class="header">Optional</h2>
+ * The following configuration parameters are optional:
+ * <ul>
+ *     <li>Flag indicating whether DB schema should be initialized by GridGain (default behaviour) or
+ *         was explicitly created by user (see {@link #setInitSchema(boolean)})</li>
+ * </ul>
+ * <p>
+ * The database will contain 1 table which will hold IP addresses.
+ */
+public class TcpDiscoveryJdbcIpFinder extends TcpDiscoveryIpFinderAdapter {
+    /** Query to get addresses. */
+    public static final String GET_ADDRS_QRY = "select hostname, port from tbl_addrs";
+
+    /** Query to register address. */
+    public static final String REG_ADDR_QRY = "insert into tbl_addrs values (?, ?)";
+
+    /** Query to unregister address. */
+    public static final String UNREG_ADDR_QRY = "delete from tbl_addrs where hostname = ? and port = ?";
+
+    /** Query to create addresses table. */
+    public static final String CREATE_ADDRS_TABLE_QRY =
+        "create table if not exists tbl_addrs (" +
+        "hostname VARCHAR(1024), " +
+        "port INT)";
+
+    /** Query to check database validity. */
+    public static final String CHK_QRY = "select count(*) from tbl_addrs";
+
+    /** Grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Data source. */
+    private DataSource dataSrc;
+
+    /** Flag for schema initialization. */
+    private boolean initSchema = true;
+
+    /** Init guard. */
+    @GridToStringExclude
+    private final AtomicBoolean initGuard = new AtomicBoolean();
+
+    /** Init latch. */
+    @GridToStringExclude
+    private final CountDownLatch initLatch = new CountDownLatch(1);
+
+    /**
+     * Constructor.
+     */
+    public TcpDiscoveryJdbcIpFinder() {
+        setShared(true);
+    }
+
+    /** {@inheritDoc} */
+    @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException {
+        init();
+
+        Connection conn = null;
+
+        PreparedStatement stmt = null;
+
+        ResultSet rs = null;
+
+        try {
+            conn = dataSrc.getConnection();
+
+            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
+
+            stmt = conn.prepareStatement(GET_ADDRS_QRY);
+
+            rs = stmt.executeQuery();
+
+            Collection<InetSocketAddress> addrs = new LinkedList<>();
+
+            while (rs.next())
+                addrs.add(new InetSocketAddress(rs.getString(1), rs.getInt(2)));
+
+            return addrs;
+        }
+        catch (SQLException e) {
+            throw new IgniteSpiException("Failed to get registered addresses version.", e);
+        }
+        finally {
+            U.closeQuiet(rs);
+            U.closeQuiet(stmt);
+            U.closeQuiet(conn);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void registerAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        assert !F.isEmpty(addrs);
+
+        init();
+
+        Connection conn = null;
+
+        PreparedStatement stmtUnreg = null;
+
+        PreparedStatement stmtReg = null;
+
+        boolean committed = false;
+
+        try {
+            conn = dataSrc.getConnection();
+
+            conn.setAutoCommit(false);
+
+            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
+
+            stmtUnreg = conn.prepareStatement(UNREG_ADDR_QRY);
+            stmtReg = conn.prepareStatement(REG_ADDR_QRY);
+
+            for (InetSocketAddress addr : addrs) {
+                stmtUnreg.setString(1, addr.getAddress().getHostAddress());
+                stmtUnreg.setInt(2, addr.getPort());
+
+                stmtUnreg.addBatch();
+
+                stmtReg.setString(1, addr.getAddress().getHostAddress());
+                stmtReg.setInt(2, addr.getPort());
+
+                stmtReg.addBatch();
+            }
+
+            stmtUnreg.executeBatch();
+            stmtUnreg.close();
+
+            stmtReg.executeBatch();
+            stmtReg.close();
+
+            conn.commit();
+
+            committed = true;
+        }
+        catch (SQLException e) {
+            U.rollbackConnectionQuiet(conn);
+
+            throw new IgniteSpiException("Failed to register addresses: " + addrs, e);
+        }
+        finally {
+            if (!committed)
+                U.rollbackConnectionQuiet(conn);
+
+            U.closeQuiet(stmtUnreg);
+            U.closeQuiet(stmtReg);
+            U.closeQuiet(conn);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void unregisterAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        assert !F.isEmpty(addrs);
+
+        init();
+
+        Connection conn = null;
+
+        PreparedStatement stmt = null;
+
+        boolean committed = false;
+
+        try {
+            conn = dataSrc.getConnection();
+
+            conn.setAutoCommit(false);
+
+            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
+
+            stmt = conn.prepareStatement(UNREG_ADDR_QRY);
+
+            for (InetSocketAddress addr : addrs) {
+                stmt.setString(1, addr.getAddress().getHostAddress());
+                stmt.setInt(2, addr.getPort());
+
+                stmt.addBatch();
+            }
+
+            stmt.executeBatch();
+            conn.commit();
+
+            committed = true;
+        }
+        catch (SQLException e) {
+            U.rollbackConnectionQuiet(conn);
+
+            throw new IgniteSpiException("Failed to unregister addresses: " + addrs, e);
+        }
+        finally {
+            if (!committed)
+                U.rollbackConnectionQuiet(conn);
+
+            U.closeQuiet(stmt);
+            U.closeQuiet(conn);
+        }
+    }
+
+    /**
+     * Sets data source.
+     * <p>
+     * Data source should be fully configured and ready-to-use.
+     *
+     * @param dataSrc Data source.
+     */
+    @IgniteSpiConfiguration(optional = false)
+    public void setDataSource(DataSource dataSrc) {
+        this.dataSrc = dataSrc;
+    }
+
+    /**
+     * Flag indicating whether DB schema should be initialized by GridGain (default behaviour) or
+     * was explicitly created by user.
+     *
+     * @param initSchema {@code True} if DB schema should be initialized by GridGain (default behaviour),
+     *      {code @false} if schema was explicitly created by user.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setInitSchema(boolean initSchema) {
+        this.initSchema = initSchema;
+    }
+
+    /**
+     * Checks configuration validity.
+     *
+     * @throws org.apache.ignite.spi.IgniteSpiException If any error occurs.
+     */
+    private void init() throws IgniteSpiException {
+        if (initGuard.compareAndSet(false, true)) {
+            if (dataSrc == null)
+                throw new IgniteSpiException("Data source is null (you must configure it via setDataSource(..)" +
+                    " configuration property)");
+
+            if (!initSchema) {
+                initLatch.countDown();
+
+                checkSchema();
+
+                return;
+            }
+
+            Connection conn = null;
+
+            Statement stmt = null;
+
+            boolean committed = false;
+
+            try {
+                conn = dataSrc.getConnection();
+
+                conn.setAutoCommit(false);
+
+                conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
+
+                // Create tbl_addrs.
+                stmt = conn.createStatement();
+
+                stmt.executeUpdate(CREATE_ADDRS_TABLE_QRY);
+
+                conn.commit();
+
+                committed = true;
+
+                if (log.isDebugEnabled())
+                    log.debug("DB schema has been initialized.");
+            }
+            catch (SQLException e) {
+                U.rollbackConnectionQuiet(conn);
+
+                throw new IgniteSpiException("Failed to initialize DB schema.", e);
+            }
+            finally {
+                if (!committed)
+                    U.rollbackConnectionQuiet(conn);
+
+                U.closeQuiet(stmt);
+                U.closeQuiet(conn);
+
+                initLatch.countDown();
+            }
+        }
+        else
+            checkSchema();
+    }
+
+    /**
+     * Checks correctness of existing DB schema.
+     *
+     * @throws org.apache.ignite.spi.IgniteSpiException If schema wasn't properly initialized.
+     */
+    private void checkSchema() throws IgniteSpiException {
+        try {
+            U.await(initLatch);
+        }
+        catch (GridInterruptedException e) {
+            throw new IgniteSpiException("Thread has been interrupted.", e);
+        }
+
+        Connection conn = null;
+
+        Statement stmt = null;
+
+        try {
+            conn = dataSrc.getConnection();
+
+            conn.setTransactionIsolation(TRANSACTION_READ_COMMITTED);
+
+            // Check if tbl_addrs exists and database initialized properly.
+            stmt = conn.createStatement();
+
+            stmt.execute(CHK_QRY);
+        }
+        catch (SQLException e) {
+            throw new IgniteSpiException("IP finder has not been properly initialized.", e);
+        }
+        finally {
+            U.closeQuiet(stmt);
+            U.closeQuiet(conn);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryJdbcIpFinder.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinder.java
deleted file mode 100644
index 1c4a5f9..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/GridTcpDiscoveryMulticastIpFinder.java
+++ /dev/null
@@ -1,752 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast;
-
-import org.apache.ignite.*;
-import org.apache.ignite.marshaller.*;
-import org.apache.ignite.marshaller.jdk.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import static org.apache.ignite.IgniteSystemProperties.*;
-import static org.apache.ignite.spi.IgnitePortProtocol.*;
-
-/**
- * Multicast-based IP finder.
- * <p>
- * When TCP discovery starts this finder sends multicast request and waits
- * for some time when others nodes reply to this request with messages containing
- * their addresses (time IP finder waits for response and number of attempts to
- * re-send multicast request in case if no replies are received can be configured,
- * see {@link #setResponseWaitTime(int)} and {@link #setAddressRequestAttempts(int)}).
- * <p>
- * In addition to address received via multicast this finder can work with pre-configured
- * list of addresses specified via {@link #setAddresses(Collection)} method.
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * There are no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * <ul>
- *      <li>Multicast IP address (see {@link #setMulticastGroup(String)}).</li>
- *      <li>Multicast port number (see {@link #setMulticastPort(int)}).</li>
- *      <li>Address response wait time (see {@link #setResponseWaitTime(int)}).</li>
- *      <li>Address request attempts (see {@link #setAddressRequestAttempts(int)}).</li>
- *      <li>Pre-configured addresses (see {@link #setAddresses(Collection)})</li>
- *      <li>Local address (see {@link #setLocalAddress(String)})</li>
- * </ul>
- */
-public class GridTcpDiscoveryMulticastIpFinder extends TcpDiscoveryVmIpFinder {
-    /** Default multicast IP address (value is {@code 228.1.2.4}). */
-    public static final String DFLT_MCAST_GROUP = "228.1.2.4";
-
-    /** Default multicast port number (value is {@code 47400}). */
-    public static final int DFLT_MCAST_PORT = 47400;
-
-    /** Default time IP finder waits for reply to multicast address request (value is {@code 500}). */
-    public static final int DFLT_RES_WAIT_TIME = 500;
-
-    /** Default number of attempts to send multicast address request (value is {@code 2}). */
-    public static final int DFLT_ADDR_REQ_ATTEMPTS = 2;
-
-    /** Address request message data. */
-    private static final byte[] MSG_ADDR_REQ_DATA = U.GG_HEADER;
-
-    /** */
-    private static final IgniteMarshaller marsh = new IgniteJdkMarshaller();
-
-    /** Grid logger. */
-    @IgniteLoggerResource
-    private IgniteLogger log;
-
-    /** Grid name. */
-    @IgniteNameResource
-    @GridToStringExclude
-    private String gridName;
-
-    /** Multicast IP address as string. */
-    private String mcastGrp = DFLT_MCAST_GROUP;
-
-    /** Multicast port number. */
-    private int mcastPort = DFLT_MCAST_PORT;
-
-    /** Time IP finder waits for reply to multicast address request. */
-    private int resWaitTime = DFLT_RES_WAIT_TIME;
-
-    /** Number of attempts to send multicast address request. */
-    private int addrReqAttempts = DFLT_ADDR_REQ_ATTEMPTS;
-
-    /** Local address */
-    private String locAddr;
-
-    /** */
-    @GridToStringExclude
-    private Collection<AddressSender> addrSnds;
-
-    /**
-     * Constructs new IP finder.
-     */
-    public GridTcpDiscoveryMulticastIpFinder() {
-        setShared(true);
-    }
-
-    /**
-     * Sets IP address of multicast group.
-     * <p>
-     * If not provided, default value is {@link #DFLT_MCAST_GROUP}.
-     *
-     * @param mcastGrp Multicast IP address.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setMulticastGroup(String mcastGrp) {
-        this.mcastGrp = mcastGrp;
-    }
-
-    /**
-     * Gets IP address of multicast group.
-     *
-     * @return Multicast IP address.
-     */
-    public String getMulticastGroup() {
-        return mcastGrp;
-    }
-
-    /**
-     * Sets port number which multicast messages are sent to.
-     * <p>
-     * If not provided, default value is {@link #DFLT_MCAST_PORT}.
-     *
-     * @param mcastPort Multicast port number.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setMulticastPort(int mcastPort) {
-        this.mcastPort = mcastPort;
-    }
-
-    /**
-     * Gets port number which multicast messages are sent to.
-     *
-     * @return Port number.
-     */
-    public int getMulticastPort() {
-        return mcastPort;
-    }
-
-    /**
-     * Sets time in milliseconds IP finder waits for reply to
-     * multicast address request.
-     * <p>
-     * If not provided, default value is {@link #DFLT_RES_WAIT_TIME}.
-     *
-     * @param resWaitTime Time IP finder waits for reply to multicast address request.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setResponseWaitTime(int resWaitTime) {
-        this.resWaitTime = resWaitTime;
-    }
-
-    /**
-     * Gets time in milliseconds IP finder waits for reply to
-     * multicast address request.
-     *
-     * @return Time IP finder waits for reply to multicast address request.
-     */
-    public int getResponseWaitTime() {
-        return resWaitTime;
-    }
-
-    /**
-     * Sets number of attempts to send multicast address request. IP finder re-sends
-     * request only in case if no reply for previous request is received.
-     * <p>
-     * If not provided, default value is {@link #DFLT_ADDR_REQ_ATTEMPTS}.
-     *
-     * @param addrReqAttempts Number of attempts to send multicast address request.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setAddressRequestAttempts(int addrReqAttempts) {
-        this.addrReqAttempts = addrReqAttempts;
-    }
-
-    /**
-     * Gets number of attempts to send multicast address request. IP finder re-sends
-     * request only in case if no reply for previous request is received.
-     *
-     * @return Number of attempts to send multicast address request.
-     */
-    public int getAddressRequestAttempts() {
-        return addrReqAttempts;
-    }
-
-    /**
-     * Sets local host address used by this IP finder. If provided address is non-loopback then multicast
-     * socket is bound to this interface. If local address is not set or is any local address then IP finder
-     * creates multicast sockets for all found non-loopback addresses.
-     * <p>
-     * If not provided then this property is initialized by the local address set in {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}
-     * configuration.
-     *
-     * @param locAddr Local host address.
-     * @see org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi#setLocalAddress(String)
-     */
-    @IgniteSpiConfiguration(optional = true)
-    public void setLocalAddress(String locAddr) {
-        this.locAddr = locAddr;
-    }
-
-    /**
-     * Gets local address that multicast IP finder uses.
-     *
-     * @return Local address.
-     */
-    public String getLocalAddress() {
-        return locAddr;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
-        // If GRIDGAIN_OVERRIDE_MCAST_GRP system property is set, use its value to override multicast group from
-        // configuration. Used for testing purposes.
-        String overrideMcastGrp = System.getProperty(GG_OVERRIDE_MCAST_GRP);
-
-        if (overrideMcastGrp != null)
-            mcastGrp = overrideMcastGrp;
-
-        if (F.isEmpty(mcastGrp))
-            throw new IgniteSpiException("Multicast IP address is not specified.");
-
-        if (mcastPort < 0 || mcastPort > 65535)
-            throw new IgniteSpiException("Invalid multicast port: " + mcastPort);
-
-        if (resWaitTime <= 0)
-            throw new IgniteSpiException("Invalid wait time, value greater than zero is expected: " + resWaitTime);
-
-        if (addrReqAttempts <= 0)
-            throw new IgniteSpiException("Invalid number of address request attempts, " +
-                "value greater than zero is expected: " + addrReqAttempts);
-
-        if (F.isEmpty(getRegisteredAddresses()))
-            U.warn(log, "GridTcpDiscoveryMulticastIpFinder has no pre-configured addresses " +
-                "(it is recommended in production to specify at least one address in " +
-                "GridTcpDiscoveryMulticastIpFinder.getAddresses() configuration property)");
-
-        InetAddress mcastAddr;
-
-        try {
-            mcastAddr = InetAddress.getByName(mcastGrp);
-        }
-        catch (UnknownHostException e) {
-            throw new IgniteSpiException("Unknown multicast group: " + mcastGrp, e);
-        }
-
-        if (!mcastAddr.isMulticastAddress())
-            throw new IgniteSpiException("Invalid multicast group address: " + mcastAddr);
-
-        Collection<String> locAddrs;
-
-        try {
-            locAddrs = U.resolveLocalAddresses(U.resolveLocalHost(locAddr)).get1();
-        }
-        catch (IOException | GridException e) {
-            throw new IgniteSpiException("Failed to resolve local addresses [locAddr=" + locAddr + ']', e);
-        }
-
-        assert locAddrs != null;
-
-        addrSnds = new ArrayList<>(locAddrs.size());
-
-        Collection<InetAddress> reqItfs = new ArrayList<>(locAddrs.size()); // Interfaces used to send requests.
-
-        for (String locAddr : locAddrs) {
-            InetAddress addr;
-
-            try {
-                addr = InetAddress.getByName(locAddr);
-            }
-            catch (UnknownHostException e) {
-                if (log.isDebugEnabled())
-                    log.debug("Failed to resolve local address [locAddr=" + locAddr + ", err=" + e + ']');
-
-                continue;
-            }
-
-            if (!addr.isLoopbackAddress()) {
-                try {
-                    addrSnds.add(new AddressSender(mcastAddr, addr, addrs));
-
-                    reqItfs.add(addr);
-                }
-                catch (IOException e) {
-                    if (log.isDebugEnabled())
-                        log.debug("Failed to create multicast socket [mcastAddr=" + mcastAddr +
-                            ", mcastGrp=" + mcastGrp + ", mcastPort=" + mcastPort + ", locAddr=" + addr +
-                            ", err=" + e + ']');
-                }
-            }
-        }
-
-        if (addrSnds.isEmpty()) {
-            try {
-                // Create non-bound socket if local host is loopback or failed to create sockets explicitly
-                // bound to interfaces.
-                addrSnds.add(new AddressSender(mcastAddr, null, addrs));
-            }
-            catch (IOException e) {
-                throw new IgniteSpiException("Failed to create multicast socket [mcastAddr=" + mcastAddr +
-                    ", mcastGrp=" + mcastGrp + ", mcastPort=" + mcastPort + ']', e);
-            }
-        }
-
-        for (AddressSender addrSnd :addrSnds)
-            addrSnd.start();
-
-        Collection<InetSocketAddress> ret;
-
-        if (reqItfs.size() > 1) {
-            ret = new HashSet<>();
-
-            Collection<AddressReceiver> rcvrs = new ArrayList<>();
-
-            for (InetAddress itf : reqItfs) {
-                AddressReceiver rcvr = new AddressReceiver(mcastAddr, itf);
-
-                rcvr.start();
-
-                rcvrs.add(rcvr);
-            }
-
-            for (AddressReceiver rcvr : rcvrs) {
-                try {
-                    rcvr.join();
-
-                    ret.addAll(rcvr.addresses());
-                }
-                catch (InterruptedException ignore) {
-                    U.warn(log, "Got interrupted while receiving address request.");
-
-                    Thread.currentThread().interrupt();
-
-                    break;
-                }
-            }
-        }
-        else
-            ret = requestAddresses(mcastAddr, F.first(reqItfs));
-
-        if (!ret.isEmpty())
-            registerAddresses(ret);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException {
-        super.onSpiContextInitialized(spiCtx);
-
-        spiCtx.registerPort(mcastPort, UDP);
-    }
-
-    /**
-     * Sends multicast address request message and waits for reply. Response wait time and number
-     * of request attempts are configured as properties {@link #setResponseWaitTime} and
-     * {@link #setAddressRequestAttempts}.
-     *
-     * @param mcastAddr Multicast address where to send request.
-     * @param sockItf Optional interface multicast socket should be bound to.
-     * @return Collection of received addresses.
-     */
-    private Collection<InetSocketAddress> requestAddresses(InetAddress mcastAddr, @Nullable InetAddress sockItf) {
-        Collection<InetSocketAddress> rmtAddrs = new HashSet<>();
-
-        try {
-            DatagramPacket reqPckt = new DatagramPacket(MSG_ADDR_REQ_DATA, MSG_ADDR_REQ_DATA.length,
-                mcastAddr, mcastPort);
-
-            byte[] resData = new byte[AddressResponse.MAX_DATA_LENGTH];
-
-            DatagramPacket resPckt = new DatagramPacket(resData, resData.length);
-
-            boolean sndError = false;
-
-            for (int i = 0; i < addrReqAttempts; i++) {
-                MulticastSocket sock = null;
-
-                try {
-                    sock = new MulticastSocket(0);
-
-                    // Use 'false' to enable support for more than one node on the same machine.
-                    sock.setLoopbackMode(false);
-
-                    if (sockItf != null)
-                        sock.setInterface(sockItf);
-
-                    sock.setSoTimeout(resWaitTime);
-
-                    reqPckt.setData(MSG_ADDR_REQ_DATA);
-
-                    try {
-                        sock.send(reqPckt);
-                    }
-                    catch (IOException e) {
-                        if (!handleNetworkError(e))
-                            break;
-
-                        if (i < addrReqAttempts - 1) {
-                            if (log.isDebugEnabled())
-                                log.debug("Failed to send multicast address request (will retry in 500 ms): " + e);
-
-                            U.sleep(500);
-                        }
-                        else {
-                            if (log.isDebugEnabled())
-                                log.debug("Failed to send multicast address request: " + e);
-                        }
-
-                        sndError = true;
-
-                        continue;
-                    }
-
-                    long rcvEnd = U.currentTimeMillis() + resWaitTime;
-
-                    try {
-                        while (U.currentTimeMillis() < rcvEnd) { // Try to receive multiple responses.
-                            sock.receive(resPckt);
-
-                            byte[] data = resPckt.getData();
-
-                            if (!U.bytesEqual(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length)) {
-                                U.error(log, "Failed to verify message header.");
-
-                                continue;
-                            }
-
-                            AddressResponse addrRes;
-
-                            try {
-                                addrRes = new AddressResponse(data);
-                            }
-                            catch (GridException e) {
-                                LT.warn(log, e, "Failed to deserialize multicast response.");
-
-                                continue;
-                            }
-
-                            rmtAddrs.addAll(addrRes.addresses());
-                        }
-                    }
-                    catch (SocketTimeoutException ignored) {
-                        if (log.isDebugEnabled()) // DatagramSocket.receive timeout has expired.
-                            log.debug("Address receive timeout.");
-                    }
-                }
-                catch (IOException e) {
-                    U.error(log, "Failed to request nodes addresses.", e);
-                }
-                finally {
-                    U.close(sock);
-                }
-
-                if (!rmtAddrs.isEmpty())
-                    break;
-
-                if (i < addrReqAttempts - 1) // Wait some time before re-sending address request.
-                    U.sleep(200);
-            }
-
-            if (log.isDebugEnabled())
-                log.debug("Received nodes addresses: " + rmtAddrs);
-
-            if (rmtAddrs.isEmpty() && sndError)
-                U.quietAndWarn(log, "Failed to send multicast message (is multicast enabled on this node?).");
-
-            return rmtAddrs;
-        }
-        catch (GridInterruptedException ignored) {
-            U.warn(log, "Got interrupted while sending address request.");
-
-            Thread.currentThread().interrupt();
-
-            return rmtAddrs;
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void close() {
-        for (AddressSender addrSnd : addrSnds)
-            U.interrupt(addrSnd);
-
-        for (AddressSender addrSnd : addrSnds)
-            U.join(addrSnd, log);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryMulticastIpFinder.class, this, "super", super.toString());
-    }
-
-    /**
-     * @param e Network error to handle.
-     * @return {@code True} if this error is recoverable and the operation can be retried.
-     */
-    private boolean handleNetworkError(IOException e) {
-        if ("Network is unreachable".equals(e.getMessage()) && U.isMacOs()) {
-            U.warn(log, "Multicast does not work on Mac OS JVM loopback address (configure external IP address " +
-                "for 'localHost' configuration property)");
-
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Response to multicast address request.
-     */
-    private static class AddressResponse {
-        /** Maximum supported multicast message. */
-        public static final int MAX_DATA_LENGTH = 64 * 1024;
-
-        /** */
-        private byte[] data;
-
-        /** */
-        private Collection<InetSocketAddress> addrs;
-
-        /**
-         * @param addrs Addresses discovery SPI binds to.
-         * @throws GridException If marshalling failed.
-         */
-        private AddressResponse(Collection<InetSocketAddress> addrs) throws GridException {
-            this.addrs = addrs;
-
-            byte[] addrsData = marsh.marshal(addrs);
-            data = new byte[U.GG_HEADER.length + addrsData.length];
-
-            if (data.length > MAX_DATA_LENGTH)
-                throw new GridException("Too long data packet [size=" + data.length + ", max=" + MAX_DATA_LENGTH + "]");
-
-            System.arraycopy(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length);
-            System.arraycopy(addrsData, 0, data, 4, addrsData.length);
-        }
-
-        /**
-         * @param data Message data.
-         * @throws GridException If unmarshalling failed.
-         */
-        private AddressResponse(byte[] data) throws GridException {
-            assert U.bytesEqual(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length);
-
-            this.data = data;
-
-            addrs = marsh.unmarshal(Arrays.copyOfRange(data, U.GG_HEADER.length, data.length), null);
-        }
-
-        /**
-         * @return Message data.
-         */
-        byte[] data() {
-            return data;
-        }
-
-        /**
-         * @return IP address discovery SPI binds to.
-         */
-        public Collection<InetSocketAddress> addresses() {
-            return addrs;
-        }
-    }
-
-    /**
-     * Thread sends multicast address request message and waits for reply.
-     */
-    private class AddressReceiver extends IgniteSpiThread {
-        /** */
-        private final InetAddress mcastAddr;
-
-        /** */
-        private final InetAddress sockAddr;
-
-        /** */
-        private Collection<InetSocketAddress> addrs;
-
-        /**
-         * @param mcastAddr Multicast address where to send request.
-         * @param sockAddr Optional address multicast socket should be bound to.
-         */
-        private AddressReceiver(InetAddress mcastAddr, InetAddress sockAddr) {
-            super(gridName, "tcp-disco-multicast-addr-rcvr", log);
-            this.mcastAddr = mcastAddr;
-            this.sockAddr = sockAddr;
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void body() throws InterruptedException {
-            addrs = requestAddresses(mcastAddr, sockAddr);
-        }
-
-        /**
-         * @return Received addresses.
-         */
-        Collection<InetSocketAddress> addresses() {
-            return addrs;
-        }
-    }
-
-    /**
-     * Thread listening for multicast address requests and sending response
-     * containing socket address this node's discovery SPI listens to.
-     */
-    private class AddressSender extends IgniteSpiThread {
-        /** */
-        @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
-        private MulticastSocket sock;
-
-        /** */
-        private final InetAddress mcastGrp;
-
-        /** */
-        private final Collection<InetSocketAddress> addrs;
-
-        /** */
-        private final InetAddress sockItf;
-
-        /**
-         * @param mcastGrp Multicast address.
-         * @param sockItf Optional interface multicast socket should be bound to.
-         * @param addrs Local node addresses.
-         * @throws IOException If fails to create multicast socket.
-         */
-        private AddressSender(InetAddress mcastGrp, @Nullable InetAddress sockItf, Collection<InetSocketAddress> addrs)
-            throws IOException {
-            super(gridName, "tcp-disco-multicast-addr-sender", log);
-            this.mcastGrp = mcastGrp;
-            this.addrs = addrs;
-            this.sockItf = sockItf;
-
-            sock = createSocket();
-        }
-
-        /**
-         * Creates multicast socket and joins multicast group.
-         *
-         * @throws IOException If fails to create socket or join multicast group.
-         * @return Multicast socket.
-         */
-        private MulticastSocket createSocket() throws IOException {
-            MulticastSocket sock = new MulticastSocket(mcastPort);
-
-            sock.setLoopbackMode(false); // Use 'false' to enable support for more than one node on the same machine.
-
-            if (sockItf != null)
-                sock.setInterface(sockItf);
-
-            if (sock.getLoopbackMode())
-                U.warn(log, "Loopback mode is disabled which prevents nodes on the same machine from discovering " +
-                    "each other.");
-
-            sock.joinGroup(mcastGrp);
-
-            return sock;
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void body() throws InterruptedException {
-            AddressResponse res;
-
-            try {
-                res = new AddressResponse(addrs);
-            }
-            catch (GridException e) {
-                U.error(log, "Failed to prepare multicast message.", e);
-
-                return;
-            }
-
-            byte[] reqData = new byte[MSG_ADDR_REQ_DATA.length];
-
-            DatagramPacket pckt = new DatagramPacket(reqData, reqData.length);
-
-            while (!isInterrupted()) {
-                try {
-                    MulticastSocket sock;
-
-                    synchronized (this) {
-                        if (isInterrupted())
-                            return;
-
-                        sock = this.sock;
-
-                        if (sock == null)
-                            sock = createSocket();
-                    }
-
-                    sock.receive(pckt);
-
-                    if (!U.bytesEqual(U.GG_HEADER, 0, reqData, 0, U.GG_HEADER.length)) {
-                        U.error(log, "Failed to verify message header.");
-
-                        continue;
-                    }
-
-                    try {
-                        sock.send(new DatagramPacket(res.data(), res.data().length, pckt.getAddress(), pckt.getPort()));
-                    }
-                    catch (IOException e) {
-                        if (e.getMessage().contains("Operation not permitted")) {
-                            if (log.isDebugEnabled())
-                                log.debug("Got 'operation not permitted' error, ignoring: " + e);
-                        }
-                        else
-                            throw e;
-                    }
-                }
-                catch (IOException e) {
-                    if (!isInterrupted()) {
-                        U.error(log, "Failed to send/receive address message (will try to reconnect).", e);
-
-                        synchronized (this) {
-                            U.close(sock);
-
-                            sock = null;
-                        }
-                    }
-                }
-            }
-        }
-
-        /** {@inheritDoc} */
-        @Override public void interrupt() {
-            super.interrupt();
-
-            synchronized (this) {
-                U.close(sock);
-
-                sock = null;
-            }
-        }
-
-        /** {@inheritDoc} */
-        @Override protected void cleanup() {
-            synchronized (this) {
-                U.close(sock);
-
-                sock = null;
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4f31df32/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
new file mode 100644
index 0000000..acc20a4
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
@@ -0,0 +1,752 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.ipfinder.multicast;
+
+import org.apache.ignite.*;
+import org.apache.ignite.marshaller.*;
+import org.apache.ignite.marshaller.jdk.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.*;
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import static org.apache.ignite.IgniteSystemProperties.*;
+import static org.apache.ignite.spi.IgnitePortProtocol.*;
+
+/**
+ * Multicast-based IP finder.
+ * <p>
+ * When TCP discovery starts this finder sends multicast request and waits
+ * for some time when others nodes reply to this request with messages containing
+ * their addresses (time IP finder waits for response and number of attempts to
+ * re-send multicast request in case if no replies are received can be configured,
+ * see {@link #setResponseWaitTime(int)} and {@link #setAddressRequestAttempts(int)}).
+ * <p>
+ * In addition to address received via multicast this finder can work with pre-configured
+ * list of addresses specified via {@link #setAddresses(Collection)} method.
+ * <h1 class="header">Configuration</h1>
+ * <h2 class="header">Mandatory</h2>
+ * There are no mandatory configuration parameters.
+ * <h2 class="header">Optional</h2>
+ * <ul>
+ *      <li>Multicast IP address (see {@link #setMulticastGroup(String)}).</li>
+ *      <li>Multicast port number (see {@link #setMulticastPort(int)}).</li>
+ *      <li>Address response wait time (see {@link #setResponseWaitTime(int)}).</li>
+ *      <li>Address request attempts (see {@link #setAddressRequestAttempts(int)}).</li>
+ *      <li>Pre-configured addresses (see {@link #setAddresses(Collection)})</li>
+ *      <li>Local address (see {@link #setLocalAddress(String)})</li>
+ * </ul>
+ */
+public class TcpDiscoveryMulticastIpFinder extends TcpDiscoveryVmIpFinder {
+    /** Default multicast IP address (value is {@code 228.1.2.4}). */
+    public static final String DFLT_MCAST_GROUP = "228.1.2.4";
+
+    /** Default multicast port number (value is {@code 47400}). */
+    public static final int DFLT_MCAST_PORT = 47400;
+
+    /** Default time IP finder waits for reply to multicast address request (value is {@code 500}). */
+    public static final int DFLT_RES_WAIT_TIME = 500;
+
+    /** Default number of attempts to send multicast address request (value is {@code 2}). */
+    public static final int DFLT_ADDR_REQ_ATTEMPTS = 2;
+
+    /** Address request message data. */
+    private static final byte[] MSG_ADDR_REQ_DATA = U.GG_HEADER;
+
+    /** */
+    private static final IgniteMarshaller marsh = new IgniteJdkMarshaller();
+
+    /** Grid logger. */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** Grid name. */
+    @IgniteNameResource
+    @GridToStringExclude
+    private String gridName;
+
+    /** Multicast IP address as string. */
+    private String mcastGrp = DFLT_MCAST_GROUP;
+
+    /** Multicast port number. */
+    private int mcastPort = DFLT_MCAST_PORT;
+
+    /** Time IP finder waits for reply to multicast address request. */
+    private int resWaitTime = DFLT_RES_WAIT_TIME;
+
+    /** Number of attempts to send multicast address request. */
+    private int addrReqAttempts = DFLT_ADDR_REQ_ATTEMPTS;
+
+    /** Local address */
+    private String locAddr;
+
+    /** */
+    @GridToStringExclude
+    private Collection<AddressSender> addrSnds;
+
+    /**
+     * Constructs new IP finder.
+     */
+    public TcpDiscoveryMulticastIpFinder() {
+        setShared(true);
+    }
+
+    /**
+     * Sets IP address of multicast group.
+     * <p>
+     * If not provided, default value is {@link #DFLT_MCAST_GROUP}.
+     *
+     * @param mcastGrp Multicast IP address.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setMulticastGroup(String mcastGrp) {
+        this.mcastGrp = mcastGrp;
+    }
+
+    /**
+     * Gets IP address of multicast group.
+     *
+     * @return Multicast IP address.
+     */
+    public String getMulticastGroup() {
+        return mcastGrp;
+    }
+
+    /**
+     * Sets port number which multicast messages are sent to.
+     * <p>
+     * If not provided, default value is {@link #DFLT_MCAST_PORT}.
+     *
+     * @param mcastPort Multicast port number.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setMulticastPort(int mcastPort) {
+        this.mcastPort = mcastPort;
+    }
+
+    /**
+     * Gets port number which multicast messages are sent to.
+     *
+     * @return Port number.
+     */
+    public int getMulticastPort() {
+        return mcastPort;
+    }
+
+    /**
+     * Sets time in milliseconds IP finder waits for reply to
+     * multicast address request.
+     * <p>
+     * If not provided, default value is {@link #DFLT_RES_WAIT_TIME}.
+     *
+     * @param resWaitTime Time IP finder waits for reply to multicast address request.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setResponseWaitTime(int resWaitTime) {
+        this.resWaitTime = resWaitTime;
+    }
+
+    /**
+     * Gets time in milliseconds IP finder waits for reply to
+     * multicast address request.
+     *
+     * @return Time IP finder waits for reply to multicast address request.
+     */
+    public int getResponseWaitTime() {
+        return resWaitTime;
+    }
+
+    /**
+     * Sets number of attempts to send multicast address request. IP finder re-sends
+     * request only in case if no reply for previous request is received.
+     * <p>
+     * If not provided, default value is {@link #DFLT_ADDR_REQ_ATTEMPTS}.
+     *
+     * @param addrReqAttempts Number of attempts to send multicast address request.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setAddressRequestAttempts(int addrReqAttempts) {
+        this.addrReqAttempts = addrReqAttempts;
+    }
+
+    /**
+     * Gets number of attempts to send multicast address request. IP finder re-sends
+     * request only in case if no reply for previous request is received.
+     *
+     * @return Number of attempts to send multicast address request.
+     */
+    public int getAddressRequestAttempts() {
+        return addrReqAttempts;
+    }
+
+    /**
+     * Sets local host address used by this IP finder. If provided address is non-loopback then multicast
+     * socket is bound to this interface. If local address is not set or is any local address then IP finder
+     * creates multicast sockets for all found non-loopback addresses.
+     * <p>
+     * If not provided then this property is initialized by the local address set in {@link org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi}
+     * configuration.
+     *
+     * @param locAddr Local host address.
+     * @see org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi#setLocalAddress(String)
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public void setLocalAddress(String locAddr) {
+        this.locAddr = locAddr;
+    }
+
+    /**
+     * Gets local address that multicast IP finder uses.
+     *
+     * @return Local address.
+     */
+    public String getLocalAddress() {
+        return locAddr;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void initializeLocalAddresses(Collection<InetSocketAddress> addrs) throws IgniteSpiException {
+        // If GRIDGAIN_OVERRIDE_MCAST_GRP system property is set, use its value to override multicast group from
+        // configuration. Used for testing purposes.
+        String overrideMcastGrp = System.getProperty(GG_OVERRIDE_MCAST_GRP);
+
+        if (overrideMcastGrp != null)
+            mcastGrp = overrideMcastGrp;
+
+        if (F.isEmpty(mcastGrp))
+            throw new IgniteSpiException("Multicast IP address is not specified.");
+
+        if (mcastPort < 0 || mcastPort > 65535)
+            throw new IgniteSpiException("Invalid multicast port: " + mcastPort);
+
+        if (resWaitTime <= 0)
+            throw new IgniteSpiException("Invalid wait time, value greater than zero is expected: " + resWaitTime);
+
+        if (addrReqAttempts <= 0)
+            throw new IgniteSpiException("Invalid number of address request attempts, " +
+                "value greater than zero is expected: " + addrReqAttempts);
+
+        if (F.isEmpty(getRegisteredAddresses()))
+            U.warn(log, "GridTcpDiscoveryMulticastIpFinder has no pre-configured addresses " +
+                "(it is recommended in production to specify at least one address in " +
+                "GridTcpDiscoveryMulticastIpFinder.getAddresses() configuration property)");
+
+        InetAddress mcastAddr;
+
+        try {
+            mcastAddr = InetAddress.getByName(mcastGrp);
+        }
+        catch (UnknownHostException e) {
+            throw new IgniteSpiException("Unknown multicast group: " + mcastGrp, e);
+        }
+
+        if (!mcastAddr.isMulticastAddress())
+            throw new IgniteSpiException("Invalid multicast group address: " + mcastAddr);
+
+        Collection<String> locAddrs;
+
+        try {
+            locAddrs = U.resolveLocalAddresses(U.resolveLocalHost(locAddr)).get1();
+        }
+        catch (IOException | GridException e) {
+            throw new IgniteSpiException("Failed to resolve local addresses [locAddr=" + locAddr + ']', e);
+        }
+
+        assert locAddrs != null;
+
+        addrSnds = new ArrayList<>(locAddrs.size());
+
+        Collection<InetAddress> reqItfs = new ArrayList<>(locAddrs.size()); // Interfaces used to send requests.
+
+        for (String locAddr : locAddrs) {
+            InetAddress addr;
+
+            try {
+                addr = InetAddress.getByName(locAddr);
+            }
+            catch (UnknownHostException e) {
+                if (log.isDebugEnabled())
+                    log.debug("Failed to resolve local address [locAddr=" + locAddr + ", err=" + e + ']');
+
+                continue;
+            }
+
+            if (!addr.isLoopbackAddress()) {
+                try {
+                    addrSnds.add(new AddressSender(mcastAddr, addr, addrs));
+
+                    reqItfs.add(addr);
+                }
+                catch (IOException e) {
+                    if (log.isDebugEnabled())
+                        log.debug("Failed to create multicast socket [mcastAddr=" + mcastAddr +
+                            ", mcastGrp=" + mcastGrp + ", mcastPort=" + mcastPort + ", locAddr=" + addr +
+                            ", err=" + e + ']');
+                }
+            }
+        }
+
+        if (addrSnds.isEmpty()) {
+            try {
+                // Create non-bound socket if local host is loopback or failed to create sockets explicitly
+                // bound to interfaces.
+                addrSnds.add(new AddressSender(mcastAddr, null, addrs));
+            }
+            catch (IOException e) {
+                throw new IgniteSpiException("Failed to create multicast socket [mcastAddr=" + mcastAddr +
+                    ", mcastGrp=" + mcastGrp + ", mcastPort=" + mcastPort + ']', e);
+            }
+        }
+
+        for (AddressSender addrSnd :addrSnds)
+            addrSnd.start();
+
+        Collection<InetSocketAddress> ret;
+
+        if (reqItfs.size() > 1) {
+            ret = new HashSet<>();
+
+            Collection<AddressReceiver> rcvrs = new ArrayList<>();
+
+            for (InetAddress itf : reqItfs) {
+                AddressReceiver rcvr = new AddressReceiver(mcastAddr, itf);
+
+                rcvr.start();
+
+                rcvrs.add(rcvr);
+            }
+
+            for (AddressReceiver rcvr : rcvrs) {
+                try {
+                    rcvr.join();
+
+                    ret.addAll(rcvr.addresses());
+                }
+                catch (InterruptedException ignore) {
+                    U.warn(log, "Got interrupted while receiving address request.");
+
+                    Thread.currentThread().interrupt();
+
+                    break;
+                }
+            }
+        }
+        else
+            ret = requestAddresses(mcastAddr, F.first(reqItfs));
+
+        if (!ret.isEmpty())
+            registerAddresses(ret);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void onSpiContextInitialized(IgniteSpiContext spiCtx) throws IgniteSpiException {
+        super.onSpiContextInitialized(spiCtx);
+
+        spiCtx.registerPort(mcastPort, UDP);
+    }
+
+    /**
+     * Sends multicast address request message and waits for reply. Response wait time and number
+     * of request attempts are configured as properties {@link #setResponseWaitTime} and
+     * {@link #setAddressRequestAttempts}.
+     *
+     * @param mcastAddr Multicast address where to send request.
+     * @param sockItf Optional interface multicast socket should be bound to.
+     * @return Collection of received addresses.
+     */
+    private Collection<InetSocketAddress> requestAddresses(InetAddress mcastAddr, @Nullable InetAddress sockItf) {
+        Collection<InetSocketAddress> rmtAddrs = new HashSet<>();
+
+        try {
+            DatagramPacket reqPckt = new DatagramPacket(MSG_ADDR_REQ_DATA, MSG_ADDR_REQ_DATA.length,
+                mcastAddr, mcastPort);
+
+            byte[] resData = new byte[AddressResponse.MAX_DATA_LENGTH];
+
+            DatagramPacket resPckt = new DatagramPacket(resData, resData.length);
+
+            boolean sndError = false;
+
+            for (int i = 0; i < addrReqAttempts; i++) {
+                MulticastSocket sock = null;
+
+                try {
+                    sock = new MulticastSocket(0);
+
+                    // Use 'false' to enable support for more than one node on the same machine.
+                    sock.setLoopbackMode(false);
+
+                    if (sockItf != null)
+                        sock.setInterface(sockItf);
+
+                    sock.setSoTimeout(resWaitTime);
+
+                    reqPckt.setData(MSG_ADDR_REQ_DATA);
+
+                    try {
+                        sock.send(reqPckt);
+                    }
+                    catch (IOException e) {
+                        if (!handleNetworkError(e))
+                            break;
+
+                        if (i < addrReqAttempts - 1) {
+                            if (log.isDebugEnabled())
+                                log.debug("Failed to send multicast address request (will retry in 500 ms): " + e);
+
+                            U.sleep(500);
+                        }
+                        else {
+                            if (log.isDebugEnabled())
+                                log.debug("Failed to send multicast address request: " + e);
+                        }
+
+                        sndError = true;
+
+                        continue;
+                    }
+
+                    long rcvEnd = U.currentTimeMillis() + resWaitTime;
+
+                    try {
+                        while (U.currentTimeMillis() < rcvEnd) { // Try to receive multiple responses.
+                            sock.receive(resPckt);
+
+                            byte[] data = resPckt.getData();
+
+                            if (!U.bytesEqual(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length)) {
+                                U.error(log, "Failed to verify message header.");
+
+                                continue;
+                            }
+
+                            AddressResponse addrRes;
+
+                            try {
+                                addrRes = new AddressResponse(data);
+                            }
+                            catch (GridException e) {
+                                LT.warn(log, e, "Failed to deserialize multicast response.");
+
+                                continue;
+                            }
+
+                            rmtAddrs.addAll(addrRes.addresses());
+                        }
+                    }
+                    catch (SocketTimeoutException ignored) {
+                        if (log.isDebugEnabled()) // DatagramSocket.receive timeout has expired.
+                            log.debug("Address receive timeout.");
+                    }
+                }
+                catch (IOException e) {
+                    U.error(log, "Failed to request nodes addresses.", e);
+                }
+                finally {
+                    U.close(sock);
+                }
+
+                if (!rmtAddrs.isEmpty())
+                    break;
+
+                if (i < addrReqAttempts - 1) // Wait some time before re-sending address request.
+                    U.sleep(200);
+            }
+
+            if (log.isDebugEnabled())
+                log.debug("Received nodes addresses: " + rmtAddrs);
+
+            if (rmtAddrs.isEmpty() && sndError)
+                U.quietAndWarn(log, "Failed to send multicast message (is multicast enabled on this node?).");
+
+            return rmtAddrs;
+        }
+        catch (GridInterruptedException ignored) {
+            U.warn(log, "Got interrupted while sending address request.");
+
+            Thread.currentThread().interrupt();
+
+            return rmtAddrs;
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public void close() {
+        for (AddressSender addrSnd : addrSnds)
+            U.interrupt(addrSnd);
+
+        for (AddressSender addrSnd : addrSnds)
+            U.join(addrSnd, log);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryMulticastIpFinder.class, this, "super", super.toString());
+    }
+
+    /**
+     * @param e Network error to handle.
+     * @return {@code True} if this error is recoverable and the operation can be retried.
+     */
+    private boolean handleNetworkError(IOException e) {
+        if ("Network is unreachable".equals(e.getMessage()) && U.isMacOs()) {
+            U.warn(log, "Multicast does not work on Mac OS JVM loopback address (configure external IP address " +
+                "for 'localHost' configuration property)");
+
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Response to multicast address request.
+     */
+    private static class AddressResponse {
+        /** Maximum supported multicast message. */
+        public static final int MAX_DATA_LENGTH = 64 * 1024;
+
+        /** */
+        private byte[] data;
+
+        /** */
+        private Collection<InetSocketAddress> addrs;
+
+        /**
+         * @param addrs Addresses discovery SPI binds to.
+         * @throws GridException If marshalling failed.
+         */
+        private AddressResponse(Collection<InetSocketAddress> addrs) throws GridException {
+            this.addrs = addrs;
+
+            byte[] addrsData = marsh.marshal(addrs);
+            data = new byte[U.GG_HEADER.length + addrsData.length];
+
+            if (data.length > MAX_DATA_LENGTH)
+                throw new GridException("Too long data packet [size=" + data.length + ", max=" + MAX_DATA_LENGTH + "]");
+
+            System.arraycopy(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length);
+            System.arraycopy(addrsData, 0, data, 4, addrsData.length);
+        }
+
+        /**
+         * @param data Message data.
+         * @throws GridException If unmarshalling failed.
+         */
+        private AddressResponse(byte[] data) throws GridException {
+            assert U.bytesEqual(U.GG_HEADER, 0, data, 0, U.GG_HEADER.length);
+
+            this.data = data;
+
+            addrs = marsh.unmarshal(Arrays.copyOfRange(data, U.GG_HEADER.length, data.length), null);
+        }
+
+        /**
+         * @return Message data.
+         */
+        byte[] data() {
+            return data;
+        }
+
+        /**
+         * @return IP address discovery SPI binds to.
+         */
+        public Collection<InetSocketAddress> addresses() {
+            return addrs;
+        }
+    }
+
+    /**
+     * Thread sends multicast address request message and waits for reply.
+     */
+    private class AddressReceiver extends IgniteSpiThread {
+        /** */
+        private final InetAddress mcastAddr;
+
+        /** */
+        private final InetAddress sockAddr;
+
+        /** */
+        private Collection<InetSocketAddress> addrs;
+
+        /**
+         * @param mcastAddr Multicast address where to send request.
+         * @param sockAddr Optional address multicast socket should be bound to.
+         */
+        private AddressReceiver(InetAddress mcastAddr, InetAddress sockAddr) {
+            super(gridName, "tcp-disco-multicast-addr-rcvr", log);
+            this.mcastAddr = mcastAddr;
+            this.sockAddr = sockAddr;
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void body() throws InterruptedException {
+            addrs = requestAddresses(mcastAddr, sockAddr);
+        }
+
+        /**
+         * @return Received addresses.
+         */
+        Collection<InetSocketAddress> addresses() {
+            return addrs;
+        }
+    }
+
+    /**
+     * Thread listening for multicast address requests and sending response
+     * containing socket address this node's discovery SPI listens to.
+     */
+    private class AddressSender extends IgniteSpiThread {
+        /** */
+        @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
+        private MulticastSocket sock;
+
+        /** */
+        private final InetAddress mcastGrp;
+
+        /** */
+        private final Collection<InetSocketAddress> addrs;
+
+        /** */
+        private final InetAddress sockItf;
+
+        /**
+         * @param mcastGrp Multicast address.
+         * @param sockItf Optional interface multicast socket should be bound to.
+         * @param addrs Local node addresses.
+         * @throws IOException If fails to create multicast socket.
+         */
+        private AddressSender(InetAddress mcastGrp, @Nullable InetAddress sockItf, Collection<InetSocketAddress> addrs)
+            throws IOException {
+            super(gridName, "tcp-disco-multicast-addr-sender", log);
+            this.mcastGrp = mcastGrp;
+            this.addrs = addrs;
+            this.sockItf = sockItf;
+
+            sock = createSocket();
+        }
+
+        /**
+         * Creates multicast socket and joins multicast group.
+         *
+         * @throws IOException If fails to create socket or join multicast group.
+         * @return Multicast socket.
+         */
+        private MulticastSocket createSocket() throws IOException {
+            MulticastSocket sock = new MulticastSocket(mcastPort);
+
+            sock.setLoopbackMode(false); // Use 'false' to enable support for more than one node on the same machine.
+
+            if (sockItf != null)
+                sock.setInterface(sockItf);
+
+            if (sock.getLoopbackMode())
+                U.warn(log, "Loopback mode is disabled which prevents nodes on the same machine from discovering " +
+                    "each other.");
+
+            sock.joinGroup(mcastGrp);
+
+            return sock;
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void body() throws InterruptedException {
+            AddressResponse res;
+
+            try {
+                res = new AddressResponse(addrs);
+            }
+            catch (GridException e) {
+                U.error(log, "Failed to prepare multicast message.", e);
+
+                return;
+            }
+
+            byte[] reqData = new byte[MSG_ADDR_REQ_DATA.length];
+
+            DatagramPacket pckt = new DatagramPacket(reqData, reqData.length);
+
+            while (!isInterrupted()) {
+                try {
+                    MulticastSocket sock;
+
+                    synchronized (this) {
+                        if (isInterrupted())
+                            return;
+
+                        sock = this.sock;
+
+                        if (sock == null)
+                            sock = createSocket();
+                    }
+
+                    sock.receive(pckt);
+
+                    if (!U.bytesEqual(U.GG_HEADER, 0, reqData, 0, U.GG_HEADER.length)) {
+                        U.error(log, "Failed to verify message header.");
+
+                        continue;
+                    }
+
+                    try {
+                        sock.send(new DatagramPacket(res.data(), res.data().length, pckt.getAddress(), pckt.getPort()));
+                    }
+                    catch (IOException e) {
+                        if (e.getMessage().contains("Operation not permitted")) {
+                            if (log.isDebugEnabled())
+                                log.debug("Got 'operation not permitted' error, ignoring: " + e);
+                        }
+                        else
+                            throw e;
+                    }
+                }
+                catch (IOException e) {
+                    if (!isInterrupted()) {
+                        U.error(log, "Failed to send/receive address message (will try to reconnect).", e);
+
+                        synchronized (this) {
+                            U.close(sock);
+
+                            sock = null;
+                        }
+                    }
+                }
+            }
+        }
+
+        /** {@inheritDoc} */
+        @Override public void interrupt() {
+            super.interrupt();
+
+            synchronized (this) {
+                U.close(sock);
+
+                sock = null;
+            }
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void cleanup() {
+            synchronized (this) {
+                U.close(sock);
+
+                sock = null;
+            }
+        }
+    }
+}


[17/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDiscardMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDiscardMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDiscardMessage.java
deleted file mode 100644
index 3211f8d..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDiscardMessage.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message sent by coordinator when some operation handling is over. All receiving
- * nodes should discard this and all preceding messages in local buffers.
- */
-public class GridTcpDiscoveryDiscardMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** ID of the message to discard (this and all preceding). */
-    private IgniteUuid msgId;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryDiscardMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param msgId Message ID.
-     */
-    public GridTcpDiscoveryDiscardMessage(UUID creatorNodeId, IgniteUuid msgId) {
-        super(creatorNodeId);
-
-        this.msgId = msgId;
-    }
-
-    /**
-     * Gets message ID to discard (this and all preceding).
-     *
-     * @return Message ID.
-     */
-    public IgniteUuid msgId() {
-        return msgId;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeGridUuid(out, msgId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        msgId = U.readGridUuid(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryDiscardMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDuplicateIdMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDuplicateIdMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDuplicateIdMessage.java
deleted file mode 100644
index 7dba08a..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryDuplicateIdMessage.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message telling joining node that new topology already contain
- * different node with same ID.
- */
-public class GridTcpDiscoveryDuplicateIdMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Node with duplicate ID. */
-    private TcpDiscoveryNode node;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryDuplicateIdMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param node Node with same ID.
-     */
-    public GridTcpDiscoveryDuplicateIdMessage(UUID creatorNodeId, TcpDiscoveryNode node) {
-        super(creatorNodeId);
-
-        assert node != null;
-
-        this.node = node;
-    }
-
-    /**
-     * @return Node with duplicate ID.
-     */
-    public TcpDiscoveryNode node() {
-        return node;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeObject(node);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        node = (TcpDiscoveryNode)in.readObject();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryDuplicateIdMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryEnsureDelivery.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryEnsureDelivery.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryEnsureDelivery.java
deleted file mode 100644
index 1bf0ca1..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryEnsureDelivery.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import java.lang.annotation.*;
-
-/**
- * Message classes with this annotation attached are processed in a special way to
- * ensure messages delivery.
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface GridTcpDiscoveryEnsureDelivery {
-    // No-op.
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryHandshakeRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryHandshakeRequest.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryHandshakeRequest.java
deleted file mode 100644
index c1a38d9..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryHandshakeRequest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Handshake request.
- */
-public class GridTcpDiscoveryHandshakeRequest extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryHandshakeRequest() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     */
-    public GridTcpDiscoveryHandshakeRequest(UUID creatorNodeId) {
-        super(creatorNodeId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryHandshakeRequest.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryHandshakeResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryHandshakeResponse.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryHandshakeResponse.java
deleted file mode 100644
index d8661e4..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryHandshakeResponse.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Handshake response.
- */
-public class GridTcpDiscoveryHandshakeResponse extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** */
-    private long order;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryHandshakeResponse() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param locNodeOrder Local node order.
-     */
-    public GridTcpDiscoveryHandshakeResponse(UUID creatorNodeId, long locNodeOrder) {
-        super(creatorNodeId);
-
-        order = locNodeOrder;
-    }
-
-    /**
-     * Gets order of the node sent the response.
-     *
-     * @return Order of the node sent the response.
-     */
-    public long order() {
-        return order;
-    }
-
-    /**
-     * Sets order of the node sent the response.
-     *
-     * @param order Order of the node sent the response.
-     */
-    public void order(long order) {
-        this.order = order;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeLong(order);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        order = in.readLong();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryHandshakeResponse.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryHeartbeatMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryHeartbeatMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryHeartbeatMessage.java
deleted file mode 100644
index 5870231..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryHeartbeatMessage.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.apache.ignite.cluster.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.util.tostring.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-import static org.gridgain.grid.spi.discovery.DiscoveryMetricsHelper.*;
-
-/**
- * Heartbeat message.
- * <p>
- * It is sent by coordinator node across the ring once a configured period.
- * Message makes two passes:
- * <ol>
- *      <li>During first pass, all nodes add their metrics to the message and
- *          update local metrics with metrics currently present in the message.</li>
- *      <li>During second pass, all nodes update all metrics present in the message
- *          and remove their own metrics from the message.</li>
- * </ol>
- * When message reaches coordinator second time it is discarded (it finishes the
- * second pass).
- */
-@GridTcpDiscoveryRedirectToClient
-public class GridTcpDiscoveryHeartbeatMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Map to store nodes metrics. */
-    @GridToStringExclude
-    private Map<UUID, MetricsSet> metrics;
-
-    /** Client node IDs. */
-    private Collection<UUID> clientNodeIds;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryHeartbeatMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node.
-     */
-    public GridTcpDiscoveryHeartbeatMessage(UUID creatorNodeId) {
-        super(creatorNodeId);
-
-        metrics = U.newHashMap(1);
-        clientNodeIds = new HashSet<>();
-    }
-
-    /**
-     * Sets metrics for particular node.
-     *
-     * @param nodeId Node ID.
-     * @param metrics Node metrics.
-     */
-    public void setMetrics(UUID nodeId, ClusterNodeMetrics metrics) {
-        assert nodeId != null;
-        assert metrics != null;
-        assert !this.metrics.containsKey(nodeId);
-
-        this.metrics.put(nodeId, new MetricsSet(metrics));
-    }
-
-    /**
-     * Sets metrics for a client node.
-     *
-     * @param nodeId Server node ID.
-     * @param clientNodeId Client node ID.
-     * @param metrics Node metrics.
-     */
-    public void setClientMetrics(UUID nodeId, UUID clientNodeId, ClusterNodeMetrics metrics) {
-        assert nodeId != null;
-        assert clientNodeId != null;
-        assert metrics != null;
-        assert this.metrics.containsKey(nodeId);
-
-        this.metrics.get(nodeId).addClientMetrics(clientNodeId, metrics);
-    }
-
-    /**
-     * Removes metrics for particular node from the message.
-     *
-     * @param nodeId Node ID.
-     */
-    public void removeMetrics(UUID nodeId) {
-        assert nodeId != null;
-
-        metrics.remove(nodeId);
-    }
-
-    /**
-     * Gets metrics map.
-     *
-     * @return Metrics map.
-     */
-    public Map<UUID, MetricsSet> metrics() {
-        return metrics;
-    }
-
-    /**
-     * @return {@code True} if this message contains metrics.
-     */
-    public boolean hasMetrics() {
-        return !metrics.isEmpty();
-    }
-
-    /**
-     * @return {@code True} if this message contains metrics.
-     */
-    public boolean hasMetrics(UUID nodeId) {
-        assert nodeId != null;
-
-        return metrics.get(nodeId) != null;
-    }
-
-    /**
-     * Gets client node IDs for  particular node.
-     *
-     * @return Client node IDs.
-     */
-    public Collection<UUID> clientNodeIds() {
-        return clientNodeIds;
-    }
-
-    /**
-     * Adds client node ID.
-     *
-     * @param clientNodeId Client node ID.
-     */
-    public void addClientNodeId(UUID clientNodeId) {
-        clientNodeIds.add(clientNodeId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeInt(metrics.size());
-
-        if (!metrics.isEmpty()) {
-            for (Map.Entry<UUID, MetricsSet> e : metrics.entrySet()) {
-                U.writeUuid(out, e.getKey());
-                out.writeObject(e.getValue());
-            }
-        }
-
-        U.writeCollection(out, clientNodeIds);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        int metricsSize = in.readInt();
-
-        metrics = U.newHashMap(metricsSize);
-
-        for (int i = 0; i < metricsSize; i++)
-            metrics.put(U.readUuid(in), (MetricsSet)in.readObject());
-
-        clientNodeIds = U.readCollection(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryHeartbeatMessage.class, this, "super", super.toString());
-    }
-
-    /**
-     * @param metrics Metrics.
-     * @return Serialized metrics.
-     */
-    private static byte[] serializeMetrics(ClusterNodeMetrics metrics) {
-        assert metrics != null;
-
-        byte[] buf = new byte[DiscoveryMetricsHelper.METRICS_SIZE];
-
-        serialize(buf, 0, metrics);
-
-        return buf;
-    }
-
-    /**
-     * @param nodeId Node ID.
-     * @param metrics Metrics.
-     * @return Serialized metrics.
-     */
-    private static byte[] serializeMetrics(UUID nodeId, ClusterNodeMetrics metrics) {
-        assert nodeId != null;
-        assert metrics != null;
-
-        byte[] buf = new byte[16 + DiscoveryMetricsHelper.METRICS_SIZE];
-
-        U.longToBytes(nodeId.getMostSignificantBits(), buf, 0);
-        U.longToBytes(nodeId.getLeastSignificantBits(), buf, 8);
-
-        serialize(buf, 16, metrics);
-
-        return buf;
-    }
-
-    /**
-     */
-    @SuppressWarnings("PublicInnerClass")
-    public static class MetricsSet implements Externalizable {
-        /** */
-        private static final long serialVersionUID = 0L;
-
-        /** Metrics. */
-        private byte[] metrics;
-
-        /** Client metrics. */
-        private Collection<byte[]> clientMetrics;
-
-        /**
-         */
-        public MetricsSet() {
-            // No-op.
-        }
-
-        /**
-         * @param metrics Metrics.
-         */
-        public MetricsSet(ClusterNodeMetrics metrics) {
-            assert metrics != null;
-
-            this.metrics = serializeMetrics(metrics);
-        }
-
-        /**
-         * @return Deserialized metrics.
-         */
-        public ClusterNodeMetrics metrics() {
-            return deserialize(metrics, 0);
-        }
-
-        /**
-         * @return Client metrics.
-         */
-        public Collection<T2<UUID, ClusterNodeMetrics>> clientMetrics() {
-            return F.viewReadOnly(clientMetrics, new C1<byte[], T2<UUID, ClusterNodeMetrics>>() {
-                @Override public T2<UUID, ClusterNodeMetrics> apply(byte[] bytes) {
-                    UUID nodeId = new UUID(U.bytesToLong(bytes, 0), U.bytesToLong(bytes, 8));
-
-                    return new T2<>(nodeId, deserialize(bytes, 16));
-                }
-            });
-        }
-
-        /**
-         * @param nodeId Client node ID.
-         * @param metrics Client metrics.
-         */
-        private void addClientMetrics(UUID nodeId, ClusterNodeMetrics metrics) {
-            assert nodeId != null;
-            assert metrics != null;
-
-            if (clientMetrics == null)
-                clientMetrics = new ArrayList<>();
-
-            clientMetrics.add(serializeMetrics(nodeId, metrics));
-        }
-
-        /** {@inheritDoc} */
-        @Override public void writeExternal(ObjectOutput out) throws IOException {
-            U.writeByteArray(out, metrics);
-
-            out.writeInt(clientMetrics != null ? clientMetrics.size() : -1);
-
-            if (clientMetrics != null) {
-                for (byte[] arr : clientMetrics)
-                    U.writeByteArray(out, arr);
-            }
-        }
-
-        /** {@inheritDoc} */
-        @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-            metrics = U.readByteArray(in);
-
-            int clientMetricsSize = in.readInt();
-
-            if (clientMetricsSize >= 0) {
-                clientMetrics = new ArrayList<>(clientMetricsSize);
-
-                for (int i = 0; i < clientMetricsSize; i++)
-                    clientMetrics.add(U.readByteArray(in));
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryJoinRequestMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryJoinRequestMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryJoinRequestMessage.java
deleted file mode 100644
index ac3b1ea..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryJoinRequestMessage.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Initial message sent by a node that wants to enter topology.
- * Sent to random node during SPI start. Then forwarded directly to coordinator.
- */
-public class GridTcpDiscoveryJoinRequestMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** New node that wants to join the topology. */
-    private TcpDiscoveryNode node;
-
-    /** Discovery data. */
-    private List<Object> discoData;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryJoinRequestMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param node New node that wants to join.
-     * @param discoData Discovery data.
-     */
-    public GridTcpDiscoveryJoinRequestMessage(TcpDiscoveryNode node, List<Object> discoData) {
-        super(node.id());
-
-        this.node = node;
-        this.discoData = discoData;
-    }
-
-    /**
-     * Gets new node that wants to join the topology.
-     *
-     * @return Node that wants to join the topology.
-     */
-    public TcpDiscoveryNode node() {
-        return node;
-    }
-
-    /**
-     * @return Discovery data.
-     */
-    public List<Object> discoveryData() {
-        return discoData;
-    }
-
-    /**
-     * @return {@code true} flag.
-     */
-    public boolean responded() {
-        return getFlag(RESPONDED_FLAG_POS);
-    }
-
-    /**
-     * @param responded Responded flag.
-     */
-    public void responded(boolean responded) {
-        setFlag(RESPONDED_FLAG_POS, responded);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeObject(node);
-        U.writeCollection(out, discoData);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        node = (TcpDiscoveryNode)in.readObject();
-        discoData = U.readList(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryJoinRequestMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryLoopbackProblemMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryLoopbackProblemMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryLoopbackProblemMessage.java
deleted file mode 100644
index f2265e0..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryLoopbackProblemMessage.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message telling joining node that it has loopback problem (misconfiguration).
- * This means that remote node is configured to use loopback address, but joining node is not, or vise versa.
- */
-public class GridTcpDiscoveryLoopbackProblemMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Remote node addresses. */
-    private Collection<String> addrs;
-
-    /** Remote node host names. */
-    private Collection<String> hostNames;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryLoopbackProblemMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param addrs Remote node addresses.
-     * @param hostNames Remote node host names.
-     */
-    public GridTcpDiscoveryLoopbackProblemMessage(UUID creatorNodeId, Collection<String> addrs,
-        Collection<String> hostNames) {
-        super(creatorNodeId);
-
-        this.addrs = addrs;
-        this.hostNames = hostNames;
-    }
-
-    /**
-     * @return Remote node addresses.
-     */
-    public Collection<String> addresses() {
-        return addrs;
-    }
-
-    /**
-     * @return Remote node host names.
-     */
-    public Collection<String> hostNames() {
-        return hostNames;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeCollection(out, addrs);
-        U.writeCollection(out, hostNames);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        addrs = U.readCollection(in);
-        hostNames = U.readCollection(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryLoopbackProblemMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddFinishedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddFinishedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddFinishedMessage.java
deleted file mode 100644
index 84e19a6..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddFinishedMessage.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Sent by coordinator across the ring to finish node add process.
- */
-@GridTcpDiscoveryEnsureDelivery
-@GridTcpDiscoveryRedirectToClient
-public class GridTcpDiscoveryNodeAddFinishedMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Added node ID. */
-    private UUID nodeId;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryNodeAddFinishedMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId ID of the creator node (coordinator).
-     * @param nodeId Added node ID.
-     */
-    public GridTcpDiscoveryNodeAddFinishedMessage(UUID creatorNodeId, UUID nodeId) {
-        super(creatorNodeId);
-
-        this.nodeId = nodeId;
-    }
-
-    /**
-     * Gets ID of the node added.
-     *
-     * @return ID of the node added.
-     */
-    public UUID nodeId() {
-        return nodeId;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeUuid(out, nodeId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        nodeId = U.readUuid(in);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryNodeAddFinishedMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddedMessage.java
deleted file mode 100644
index 72e4d15..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeAddedMessage.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message telling nodes that new node should be added to topology.
- * When newly added node receives the message it connects to its next and finishes
- * join process.
- */
-@GridTcpDiscoveryEnsureDelivery
-@GridTcpDiscoveryRedirectToClient
-public class GridTcpDiscoveryNodeAddedMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Added node. */
-    private TcpDiscoveryNode node;
-
-    /** Pending messages from previous node. */
-    private Collection<GridTcpDiscoveryAbstractMessage> msgs;
-
-    /** Discarded message ID. */
-    private IgniteUuid discardMsgId;
-
-    /** Current topology. Initialized by coordinator. */
-    @GridToStringInclude
-    private Collection<TcpDiscoveryNode> top;
-
-    /** Topology snapshots history. */
-    private Map<Long, Collection<ClusterNode>> topHist;
-
-    /** Discovery data from new node. */
-    private List<Object> newNodeDiscoData;
-
-    /** Discovery data from old nodes. */
-    private Collection<List<Object>> oldNodesDiscoData;
-
-    /** Start time of the first grid node. */
-    private long gridStartTime;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryNodeAddedMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId Creator node ID.
-     * @param node Node to add to topology.
-     * @param newNodeDiscoData New Node discovery data.
-     * @param gridStartTime Start time of the first grid node.
-     */
-    public GridTcpDiscoveryNodeAddedMessage(UUID creatorNodeId, TcpDiscoveryNode node,
-        List<Object> newNodeDiscoData, long gridStartTime) {
-        super(creatorNodeId);
-
-        assert node != null;
-        assert gridStartTime > 0;
-
-        this.node = node;
-        this.newNodeDiscoData = newNodeDiscoData;
-        this.gridStartTime = gridStartTime;
-
-        oldNodesDiscoData = new LinkedList<>();
-    }
-
-    /**
-     * Gets newly added node.
-     *
-     * @return New node.
-     */
-    public TcpDiscoveryNode node() {
-        return node;
-    }
-
-    /**
-     * Gets pending messages sent to new node by its previous.
-     *
-     * @return Pending messages from previous node.
-     */
-    @Nullable public Collection<GridTcpDiscoveryAbstractMessage> messages() {
-        return msgs;
-    }
-
-    /**
-     * Gets discarded message ID.
-     *
-     * @return Discarded message ID.
-     */
-    @Nullable public IgniteUuid discardedMessageId() {
-        return discardMsgId;
-    }
-
-    /**
-     * Sets pending messages to send to new node.
-     *
-     * @param msgs Pending messages to send to new node.
-     * @param discardMsgId Discarded message ID.
-     */
-    public void messages(@Nullable Collection<GridTcpDiscoveryAbstractMessage> msgs, @Nullable IgniteUuid discardMsgId) {
-        this.msgs = msgs;
-        this.discardMsgId = discardMsgId;
-    }
-
-    /**
-     * Gets topology.
-     *
-     * @return Current topology.
-     */
-    @Nullable public Collection<TcpDiscoveryNode> topology() {
-        return top;
-    }
-
-    /**
-     * Sets topology.
-     *
-     * @param top Current topology.
-     */
-    public void topology(@Nullable Collection<TcpDiscoveryNode> top) {
-        this.top = top;
-    }
-
-    /**
-     * Gets topology snapshots history.
-     *
-     * @return Map with topology snapshots history.
-     */
-    @Nullable public Map<Long, Collection<ClusterNode>> topologyHistory() {
-        return topHist;
-    }
-
-    /**
-     * Sets topology snapshots history.
-     *
-     * @param topHist Map with topology snapshots history.
-     */
-    public void topologyHistory(@Nullable Map<Long, Collection<ClusterNode>> topHist) {
-        this.topHist = topHist;
-    }
-
-    /**
-     * @return Discovery data from new node.
-     */
-    public List<Object> newNodeDiscoveryData() {
-        return newNodeDiscoData;
-    }
-
-    /**
-     * @return Discovery data from old nodes.
-     */
-    public Collection<List<Object>> oldNodesDiscoveryData() {
-        return oldNodesDiscoData;
-    }
-
-    /**
-     * @param discoData Discovery data to add.
-     */
-    public void addDiscoveryData(List<Object> discoData) {
-        // Old nodes disco data may be null if message
-        // makes more than 1 pass due to stopping of the nodes in topology.
-        if (oldNodesDiscoData != null)
-            oldNodesDiscoData.add(discoData);
-    }
-
-    /**
-     * Clears discovery data to minimize message size.
-     */
-    public void clearDiscoveryData() {
-        newNodeDiscoData = null;
-        oldNodesDiscoData = null;
-    }
-
-    /**
-     * @return First grid node start time.
-     */
-    public long gridStartTime() {
-        return gridStartTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeObject(node);
-        U.writeCollection(out, msgs);
-        U.writeGridUuid(out, discardMsgId);
-        U.writeCollection(out, top);
-        U.writeMap(out, topHist);
-        out.writeLong(gridStartTime);
-        U.writeCollection(out, newNodeDiscoData);
-
-        out.writeInt(oldNodesDiscoData != null ? oldNodesDiscoData.size() : -1);
-
-        if (oldNodesDiscoData != null) {
-            for (List<Object> list : oldNodesDiscoData)
-                U.writeCollection(out, list);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        node = (TcpDiscoveryNode)in.readObject();
-        msgs = U.readCollection(in);
-        discardMsgId = U.readGridUuid(in);
-        top = U.readCollection(in);
-        topHist = U.readTreeMap(in);
-        gridStartTime = in.readLong();
-        newNodeDiscoData = U.readList(in);
-
-        int oldNodesDiscoDataSize = in.readInt();
-
-        if (oldNodesDiscoDataSize >= 0) {
-            oldNodesDiscoData = new ArrayList<>(oldNodesDiscoDataSize);
-
-            for (int i = 0; i < oldNodesDiscoDataSize; i++)
-                oldNodesDiscoData.add(U.readList(in));
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryNodeAddedMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeFailedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeFailedMessage.java
deleted file mode 100644
index de9ee67..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeFailedMessage.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Sent by node that has detected node failure to coordinator across the ring,
- * then sent by coordinator across the ring.
- */
-@GridTcpDiscoveryEnsureDelivery
-@GridTcpDiscoveryRedirectToClient
-public class GridTcpDiscoveryNodeFailedMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** ID of the failed node. */
-    private UUID failedNodeId;
-
-    /** Internal order of the failed node. */
-    private long order;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryNodeFailedMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId ID of the node that detects nodes failure.
-     * @param failedNodeId ID of the failed nodes.
-     * @param order Order of the failed node.
-     */
-    public GridTcpDiscoveryNodeFailedMessage(UUID creatorNodeId, UUID failedNodeId, long order) {
-        super(creatorNodeId);
-
-        assert failedNodeId != null;
-        assert order > 0;
-
-        this.failedNodeId = failedNodeId;
-        this.order = order;
-    }
-
-    /**
-     * Gets ID of the failed node.
-     *
-     * @return ID of the failed node.
-     */
-    public UUID failedNodeId() {
-        return failedNodeId;
-    }
-
-    /**
-     * @return Internal order of the failed node.
-     */
-    public long order() {
-        return order;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeUuid(out, failedNodeId);
-        out.writeLong(order);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        failedNodeId = U.readUuid(in);
-        order = in.readLong();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryNodeFailedMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeLeftMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeLeftMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeLeftMessage.java
deleted file mode 100644
index efef8f3..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryNodeLeftMessage.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Sent by node that is stopping to coordinator across the ring,
- * then sent by coordinator across the ring.
- */
-@GridTcpDiscoveryEnsureDelivery
-@GridTcpDiscoveryRedirectToClient
-public class GridTcpDiscoveryNodeLeftMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryNodeLeftMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNodeId ID of the node that is about to leave the topology.
-     */
-    public GridTcpDiscoveryNodeLeftMessage(UUID creatorNodeId) {
-        super(creatorNodeId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryNodeLeftMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryPingRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryPingRequest.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryPingRequest.java
deleted file mode 100644
index 025f58e..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryPingRequest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Ping request.
- */
-public class GridTcpDiscoveryPingRequest extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Pinged client node ID. */
-    private UUID clientNodeId;
-
-    /**
-     * For {@link Externalizable}.
-     */
-    public GridTcpDiscoveryPingRequest() {
-        // No-op.
-    }
-
-    /**
-     * @param creatorNodeId Creator node ID.
-     * @param clientNodeId Pinged client node ID.
-     */
-    public GridTcpDiscoveryPingRequest(UUID creatorNodeId, @Nullable UUID clientNodeId) {
-        super(creatorNodeId);
-
-        this.clientNodeId = clientNodeId;
-    }
-
-    /**
-     * @return Pinged client node ID.
-     */
-    @Nullable public UUID clientNodeId() {
-        return clientNodeId;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        U.writeUuid(out, clientNodeId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        clientNodeId = U.readUuid(in);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryPingResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryPingResponse.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryPingResponse.java
deleted file mode 100644
index 10373f8..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryPingResponse.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Ping response.
- */
-public class GridTcpDiscoveryPingResponse extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Whether pinged client exists. */
-    private boolean clientExists;
-
-    /**
-     * For {@link Externalizable}.
-     */
-    public GridTcpDiscoveryPingResponse() {
-        // No-op.
-    }
-
-    /**
-     * @param creatorNodeId Creator node ID.
-     */
-    public GridTcpDiscoveryPingResponse(UUID creatorNodeId) {
-        super(creatorNodeId);
-    }
-
-    /**
-     * @param clientExists Whether pinged client exists.
-     */
-    public void clientExists(boolean clientExists) {
-        this.clientExists = clientExists;
-    }
-
-    /**
-     * @return Whether pinged client exists.
-     */
-    public boolean clientExists() {
-        return clientExists;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeBoolean(clientExists);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        clientExists = in.readBoolean();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryRedirectToClient.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryRedirectToClient.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryRedirectToClient.java
deleted file mode 100644
index 19f345b..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryRedirectToClient.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import java.lang.annotation.*;
-
-/**
- * Message classes with this annotation attached will be
- * redirected to client nodes when going through ring.
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface GridTcpDiscoveryRedirectToClient {
-    // No-op.
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryStatusCheckMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryStatusCheckMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryStatusCheckMessage.java
deleted file mode 100644
index 4baebab..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/GridTcpDiscoveryStatusCheckMessage.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.discovery.tcp.messages;
-
-import org.gridgain.grid.spi.discovery.tcp.internal.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Message sent by node to its next to ensure that next node and
- * connection to it are alive. Receiving node should send it across the ring,
- * until message does not reach coordinator. Coordinator responds directly to node.
- * <p>
- * If a failed node id is specified then the message is sent across the ring up to the sender node
- * to ensure that the failed node is actually failed.
- */
-public class GridTcpDiscoveryStatusCheckMessage extends GridTcpDiscoveryAbstractMessage {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Status OK. */
-    public static final int STATUS_OK = 1;
-
-    /** Status RECONNECT. */
-    public static final int STATUS_RECON = 2;
-
-    /** Creator node. */
-    private TcpDiscoveryNode creatorNode;
-
-    /** Failed node id. */
-    private UUID failedNodeId;
-
-    /** Creator node status (initialized by coordinator). */
-    private int status;
-
-    /**
-     * Public default no-arg constructor for {@link Externalizable} interface.
-     */
-    public GridTcpDiscoveryStatusCheckMessage() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param creatorNode Creator node.
-     * @param failedNodeId Failed node id.
-     */
-    public GridTcpDiscoveryStatusCheckMessage(TcpDiscoveryNode creatorNode, UUID failedNodeId) {
-        super(creatorNode.id());
-
-        this.creatorNode = creatorNode;
-        this.failedNodeId = failedNodeId;
-    }
-
-    /**
-     * Gets creator node.
-     *
-     * @return Creator node.
-     */
-    public TcpDiscoveryNode creatorNode() {
-        return creatorNode;
-    }
-
-    /**
-     * Gets failed node id.
-     *
-     * @return Failed node id.
-     */
-    public UUID failedNodeId() {
-        return failedNodeId;
-    }
-
-    /**
-     * Gets creator status.
-     *
-     * @return Creator node status.
-     */
-    public int status() {
-        return status;
-    }
-
-    /**
-     * Sets creator node status (should be set by coordinator).
-     *
-     * @param status Creator node status.
-     */
-    public void status(int status) {
-        this.status = status;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal(out);
-
-        out.writeObject(creatorNode);
-        U.writeUuid(out, failedNodeId);
-        out.writeInt(status);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        super.readExternal(in);
-
-        creatorNode = (TcpDiscoveryNode)in.readObject();
-        failedNodeId = U.readUuid(in);
-        status = in.readInt();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridTcpDiscoveryStatusCheckMessage.class, this, "super", super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java
new file mode 100644
index 0000000..70a705b
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java
@@ -0,0 +1,266 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Base class to implement discovery messages.
+ */
+public abstract class TcpDiscoveryAbstractMessage implements Externalizable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** */
+    protected static final int CLIENT_FLAG_POS = 0;
+
+    /** */
+    protected static final int RESPONDED_FLAG_POS = 1;
+
+    /** */
+    protected static final int CLIENT_RECON_SUCCESS_FLAG_POS = 2;
+
+    /** Sender of the message (transient). */
+    private UUID senderNodeId;
+
+    /** Message ID. */
+    private IgniteUuid id;
+
+    /** Verifier node ID. */
+    private UUID verifierNodeId;
+
+    /** Topology version. */
+    private long topVer;
+
+    /** Destination client node ID. */
+    private UUID destClientNodeId;
+
+    /** Flags. */
+    @GridToStringExclude
+    private int flags;
+
+    /** Pending message index. */
+    private short pendingIdx;
+
+    /**
+     * Default no-arg constructor for {@link Externalizable} interface.
+     */
+    protected TcpDiscoveryAbstractMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     */
+    protected TcpDiscoveryAbstractMessage(UUID creatorNodeId) {
+        id = IgniteUuid.fromUuid(creatorNodeId);
+    }
+
+    /**
+     * Gets creator node.
+     *
+     * @return Creator node ID.
+     */
+    public UUID creatorNodeId() {
+        return id.globalId();
+    }
+
+    /**
+     * Gets message ID.
+     *
+     * @return Message ID.
+     */
+    public IgniteUuid id() {
+        return id;
+    }
+
+    /**
+     * Gets sender node ID.
+     *
+     * @return Sender node ID.
+     */
+    public UUID senderNodeId() {
+        return senderNodeId;
+    }
+
+    /**
+     * Sets sender node ID.
+     *
+     * @param senderNodeId Sender node ID.
+     */
+    public void senderNodeId(UUID senderNodeId) {
+        this.senderNodeId = senderNodeId;
+    }
+
+    /**
+     * Checks whether message is verified.
+     *
+     * @return {@code true} if message was verified.
+     */
+    public boolean verified() {
+        return verifierNodeId != null;
+    }
+
+    /**
+     * Gets verifier node ID.
+     *
+     * @return verifier node ID.
+     */
+    public UUID verifierNodeId() {
+        return verifierNodeId;
+    }
+
+    /**
+     * Verifies the message and stores verifier ID.
+     *
+     * @param verifierNodeId Verifier node ID.
+     */
+    public void verify(UUID verifierNodeId) {
+        this.verifierNodeId = verifierNodeId;
+    }
+
+    /**
+     * Gets topology version.
+     *
+     * @return Topology version.
+     */
+    public long topologyVersion() {
+        return topVer;
+    }
+
+    /**
+     * Sets topology version.
+     *
+     * @param topVer Topology version.
+     */
+    public void topologyVersion(long topVer) {
+        this.topVer = topVer;
+    }
+
+    /**
+     * Get client node flag.
+     *
+     * @return Client node flag.
+     */
+    public boolean client() {
+        return getFlag(CLIENT_FLAG_POS);
+    }
+
+    /**
+     * Sets client node flag.
+     *
+     * @param client Client node flag.
+     */
+    public void client(boolean client) {
+        setFlag(CLIENT_FLAG_POS, client);
+    }
+
+    /**
+     * @return Destination client node ID.
+     */
+    public UUID destinationClientNodeId() {
+        return destClientNodeId;
+    }
+
+    /**
+     * @param destClientNodeId Destination client node ID.
+     */
+    public void destinationClientNodeId(UUID destClientNodeId) {
+        this.destClientNodeId = destClientNodeId;
+    }
+
+    /**
+     * @return Pending message index.
+     */
+    public short pendingIndex() {
+        return pendingIdx;
+    }
+
+    /**
+     * @param pendingIdx Pending message index.
+     */
+    public void pendingIndex(short pendingIdx) {
+        this.pendingIdx = pendingIdx;
+    }
+
+    /**
+     * @param pos Flag position.
+     * @return Flag value.
+     */
+    protected boolean getFlag(int pos) {
+        assert pos >= 0 && pos < 32;
+
+        int mask = 1 << pos;
+
+        return (flags & mask) == mask;
+    }
+
+    /**
+     * @param pos Flag position.
+     * @param val Flag value.
+     */
+    protected void setFlag(int pos, boolean val) {
+        assert pos >= 0 && pos < 32;
+
+        int mask = 1 << pos;
+
+        if (val)
+            flags |= mask;
+        else
+            flags &= ~mask;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        U.writeGridUuid(out, id);
+        U.writeUuid(out, verifierNodeId);
+        out.writeLong(topVer);
+        U.writeUuid(out, destClientNodeId);
+        out.writeInt(flags);
+        out.writeShort(pendingIdx);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        id = U.readGridUuid(in);
+        verifierNodeId = U.readUuid(in);
+        topVer = in.readLong();
+        destClientNodeId = U.readUuid(in);
+        flags = in.readInt();
+        pendingIdx = in.readShort();
+    }
+
+    /** {@inheritDoc} */
+    @Override public final boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        else if (obj instanceof TcpDiscoveryAbstractMessage)
+            return id.equals(((TcpDiscoveryAbstractMessage)obj).id);
+
+        return false;
+    }
+
+    /** {@inheritDoc} */
+    @Override public final int hashCode() {
+        return id.hashCode();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryAbstractMessage.class, this, "isClient", getFlag(CLIENT_FLAG_POS));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
new file mode 100644
index 0000000..906b687
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryAuthFailedMessage.java
@@ -0,0 +1,72 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+/**
+ * Message telling joining node that its authentication failed on coordinator.
+ */
+public class TcpDiscoveryAuthFailedMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Coordinator address. */
+    private InetAddress addr;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryAuthFailedMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param addr Coordinator address.
+     */
+    public TcpDiscoveryAuthFailedMessage(UUID creatorNodeId, InetAddress addr) {
+        super(creatorNodeId);
+
+        this.addr = addr;
+    }
+
+    /**
+     * @return Coordinator address.
+     */
+    public InetAddress address() {
+        return addr;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeByteArray(out, addr.getAddress());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        addr = InetAddress.getByAddress(U.readByteArray(in));
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryAuthFailedMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryCheckFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryCheckFailedMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryCheckFailedMessage.java
new file mode 100644
index 0000000..9247b68
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryCheckFailedMessage.java
@@ -0,0 +1,71 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message telling joining node that it failed coordinator's validation check.
+ */
+public class TcpDiscoveryCheckFailedMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Coordinator version. */
+    private String err;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryCheckFailedMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param err Error message from coordinator.
+     */
+    public TcpDiscoveryCheckFailedMessage(UUID creatorNodeId, String err) {
+        super(creatorNodeId);
+
+        this.err = err;
+    }
+
+    /**
+     * @return Error message from coordinator.
+     */
+    public String error() {
+        return err;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeString(out, err);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        err = U.readString(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryCheckFailedMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryClientReconnectMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryClientReconnectMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryClientReconnectMessage.java
new file mode 100644
index 0000000..4951f5b
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryClientReconnectMessage.java
@@ -0,0 +1,119 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message telling that client node is reconnecting to topology.
+ */
+public class TcpDiscoveryClientReconnectMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** New router nodeID. */
+    private UUID routerNodeId;
+
+    /** Last message ID. */
+    private IgniteUuid lastMsgId;
+
+    /** Pending messages. */
+    @GridToStringExclude
+    private Collection<TcpDiscoveryAbstractMessage> msgs;
+
+    /**
+     * For {@link Externalizable}.
+     */
+    public TcpDiscoveryClientReconnectMessage() {
+        // No-op.
+    }
+
+    /**
+     * @param creatorNodeId Creator node ID.
+     * @param routerNodeId New router node ID.
+     * @param lastMsgId Last message ID.
+     */
+    public TcpDiscoveryClientReconnectMessage(UUID creatorNodeId, UUID routerNodeId, IgniteUuid lastMsgId) {
+        super(creatorNodeId);
+
+        this.routerNodeId = routerNodeId;
+        this.lastMsgId = lastMsgId;
+    }
+
+    /**
+     * @return New router node ID.
+     */
+    public UUID routerNodeId() {
+        return routerNodeId;
+    }
+
+    /**
+     * @return Last message ID.
+     */
+    public IgniteUuid lastMessageId() {
+        return lastMsgId;
+    }
+
+    /**
+     * @param msgs Pending messages.
+     */
+    public void pendingMessages(Collection<TcpDiscoveryAbstractMessage> msgs) {
+        this.msgs = msgs;
+    }
+
+    /**
+     * @return Pending messages.
+     */
+    public Collection<TcpDiscoveryAbstractMessage> pendingMessages() {
+        return msgs;
+    }
+
+    /**
+     * @param success Success flag.
+     */
+    public void success(boolean success) {
+        setFlag(CLIENT_RECON_SUCCESS_FLAG_POS, success);
+    }
+
+    /**
+     * @return Success flag.
+     */
+    public boolean success() {
+        return getFlag(CLIENT_RECON_SUCCESS_FLAG_POS);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeUuid(out, routerNodeId);
+        U.writeGridUuid(out, lastMsgId);
+        U.writeCollection(out, msgs);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        routerNodeId = U.readUuid(in);
+        lastMsgId = U.readGridUuid(in);
+        msgs = U.readCollection(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryClientReconnectMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDiscardMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDiscardMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDiscardMessage.java
new file mode 100644
index 0000000..a607285
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDiscardMessage.java
@@ -0,0 +1,75 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message sent by coordinator when some operation handling is over. All receiving
+ * nodes should discard this and all preceding messages in local buffers.
+ */
+public class TcpDiscoveryDiscardMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** ID of the message to discard (this and all preceding). */
+    private IgniteUuid msgId;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryDiscardMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param msgId Message ID.
+     */
+    public TcpDiscoveryDiscardMessage(UUID creatorNodeId, IgniteUuid msgId) {
+        super(creatorNodeId);
+
+        this.msgId = msgId;
+    }
+
+    /**
+     * Gets message ID to discard (this and all preceding).
+     *
+     * @return Message ID.
+     */
+    public IgniteUuid msgId() {
+        return msgId;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        U.writeGridUuid(out, msgId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        msgId = U.readGridUuid(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryDiscardMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java
new file mode 100644
index 0000000..755f10e
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java
@@ -0,0 +1,75 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.spi.discovery.tcp.internal.*;
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Message telling joining node that new topology already contain
+ * different node with same ID.
+ */
+public class TcpDiscoveryDuplicateIdMessage extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Node with duplicate ID. */
+    private TcpDiscoveryNode node;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryDuplicateIdMessage() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param node Node with same ID.
+     */
+    public TcpDiscoveryDuplicateIdMessage(UUID creatorNodeId, TcpDiscoveryNode node) {
+        super(creatorNodeId);
+
+        assert node != null;
+
+        this.node = node;
+    }
+
+    /**
+     * @return Node with duplicate ID.
+     */
+    public TcpDiscoveryNode node() {
+        return node;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeObject(node);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        node = (TcpDiscoveryNode)in.readObject();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryDuplicateIdMessage.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryEnsureDelivery.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryEnsureDelivery.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryEnsureDelivery.java
new file mode 100644
index 0000000..d6b90da
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryEnsureDelivery.java
@@ -0,0 +1,23 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import java.lang.annotation.*;
+
+/**
+ * Message classes with this annotation attached are processed in a special way to
+ * ensure messages delivery.
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+public @interface TcpDiscoveryEnsureDelivery {
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java
new file mode 100644
index 0000000..5fc78dd
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java
@@ -0,0 +1,44 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Handshake request.
+ */
+public class TcpDiscoveryHandshakeRequest extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryHandshakeRequest() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     */
+    public TcpDiscoveryHandshakeRequest(UUID creatorNodeId) {
+        super(creatorNodeId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryHandshakeRequest.class, this, "super", super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cdb10bc1/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
new file mode 100644
index 0000000..0413216
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java
@@ -0,0 +1,82 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.gridgain.grid.spi.discovery.tcp.messages;
+
+import org.gridgain.grid.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Handshake response.
+ */
+public class TcpDiscoveryHandshakeResponse extends TcpDiscoveryAbstractMessage {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** */
+    private long order;
+
+    /**
+     * Public default no-arg constructor for {@link Externalizable} interface.
+     */
+    public TcpDiscoveryHandshakeResponse() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param creatorNodeId Creator node ID.
+     * @param locNodeOrder Local node order.
+     */
+    public TcpDiscoveryHandshakeResponse(UUID creatorNodeId, long locNodeOrder) {
+        super(creatorNodeId);
+
+        order = locNodeOrder;
+    }
+
+    /**
+     * Gets order of the node sent the response.
+     *
+     * @return Order of the node sent the response.
+     */
+    public long order() {
+        return order;
+    }
+
+    /**
+     * Sets order of the node sent the response.
+     *
+     * @param order Order of the node sent the response.
+     */
+    public void order(long order) {
+        this.order = order;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        out.writeLong(order);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        super.readExternal(in);
+
+        order = in.readLong();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(TcpDiscoveryHandshakeResponse.class, this, "super", super.toString());
+    }
+}


[24/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java
index 94aef57..6429469 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheP2PUndeploySelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.swapspace.file.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java
index 3417b5c..cfb1ca9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedGetSelfTest.java
@@ -15,10 +15,10 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java
index cacfc26..3641952 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedProjectionAffinitySelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedWritesTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedWritesTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedWritesTest.java
index 3d3b376..ced8020 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedWritesTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePartitionedWritesTest.java
@@ -11,8 +11,8 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
index 4aca1c4..91f45c1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
@@ -17,9 +17,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
index 6b9d484..7b8fda6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCachePutAllFailoverSelfTest.java
@@ -10,9 +10,9 @@ import org.apache.ignite.resources.*;
 import org.apache.ignite.spi.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.failover.*;
 import org.gridgain.grid.spi.failover.always.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java
index 8878e3a..80c4747 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java
index 45bffc2..6b0e343 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheRefreshAheadAbstractSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.tostring.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReloadSelfTest.java
index 8bcfa7f..db95ab4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReloadSelfTest.java
@@ -5,8 +5,8 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.lru.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java
index e36ca58..ed6f067 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReplicatedSynchronousCommitTest.java
@@ -18,9 +18,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jdk8.backport.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java
index ed7c88d..1d522e7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSlowTxWarnTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStopSelfTest.java
index d65506e..f936f69 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStopSelfTest.java
@@ -13,8 +13,8 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java
index 8a4e85b..4a3c658 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStorePutxSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java
index 88bb025..442d657 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheStoreValueBytesSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java
index 70870b3..af82c3e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapPreloadSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java
index 557c76f..2489e5c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheSwapReloadSelfTest.java
@@ -16,9 +16,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.swapspace.*;
 import org.gridgain.grid.spi.swapspace.file.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java
index cab5a3a..31e150d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTtlManagerSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java
index f4cd3e0..cadc2ce 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxAbstractTest.java
@@ -15,9 +15,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java
index b3100cf..d81c131 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxConcurrentGetAbstractTest.java
@@ -15,9 +15,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java
index 50e3728..064d784 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxMultiNodeAbstractTest.java
@@ -21,9 +21,9 @@ import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.tostring.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java
index 1aba84f..15972ba 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxReentryAbstractSelfTest.java
@@ -18,9 +18,9 @@ import org.gridgain.grid.kernal.processors.cache.distributed.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
 import org.apache.ignite.spi.communication.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java
index 672e10f..55e27e7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheVariableTopologySelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStoreAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStoreAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStoreAbstractTest.java
index eb94447..0e76744 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStoreAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStoreAbstractTest.java
@@ -13,8 +13,8 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java
index 27ccf56..274a8ff 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheWriteBehindStorePartitionedMultiNodeSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java
index b36cc97..b3959a2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicLongApiSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java
index 08e247e..b601fe0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceApiSelfAbstractTest.java
@@ -14,9 +14,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.datastructures.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 import org.mockito.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java
index 1766a6a..d85f880 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicReferenceMultiNodeAbstractTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java
index de5afc0..07048a8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheAtomicStampedApiSelfAbstractTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache.datastructures;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java
index 51bfc91..166d107 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheCountDownLatchSelfTest.java
@@ -16,9 +16,9 @@ import org.apache.ignite.resources.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.datastructures.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java
index 419e5ad..d22277a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueApiSelfAbstractTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache.datastructures;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java
index d6816f5..2a1eb96 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueJoinedNodeSelfAbstractTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.tostring.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
index f3cbc43..09e28c0 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
@@ -17,9 +17,9 @@ import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.tostring.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java
index 3ed07f2..54f70cf 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueMultiNodeConsistencySelfTest.java
@@ -16,9 +16,9 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java
index 5eafd21..7723ee8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheQueueRotativeMultiNodeAbstractTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.tostring.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
index 67ecd5e..9fcd24a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceApiSelfAbstractTest.java
@@ -14,9 +14,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.datastructures.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java
index 41ebf2c..c1d7a7f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/GridCacheSequenceMultiNodeAbstractSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
index 0a9f353..7f1a187 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceMultiThreadedTest.java
@@ -14,9 +14,9 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.datastructures.*;
 import org.gridgain.grid.kernal.processors.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java
index 373a70f..45d5800 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache.datastructures.partitioned;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java
index 67ed72d..1d024f2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedNodeRestartTxSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.datastructures.*;
 import org.gridgain.grid.kernal.processors.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
index d396692..ab255fd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.datastructures.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java
index ef8911c..c7856c2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueEntryMoveSelfTest.java
@@ -18,9 +18,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.datastructures.*;
 import org.gridgain.grid.kernal.processors.affinity.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java
index 5ac5326..9dd83c9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractJobExecutionTest.java
@@ -16,9 +16,9 @@ import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
index dd1a7ae..0df49c2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractNodeRestartSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java
index ff4de8b..45b4117 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheAbstractPrimarySyncSelfTest.java
@@ -11,9 +11,9 @@ package org.gridgain.grid.kernal.processors.cache.distributed;
 
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java
index ef914a1..9cc728a 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheBasicOpAbstractTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java
index 1f3b3df..4d4ba11 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheLockAbstractTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java
index 70747f1..f4691a1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeAbstractTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.tostring.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java
index 0075a70..265a85f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java
@@ -18,9 +18,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java
index e6be5fa..25a5b5f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheMultithreadedFailoverAbstractTest.java
@@ -17,9 +17,9 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
index bf60481..483e0c6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java
index 4ddde21..67215ae 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java
index 7b326dc..66bb4ca 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 import org.jdk8.backport.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
index d851651..9e51616 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.events.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.eventstorage.memory.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
index 16bc993..66399a9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.lifecycle.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.thread.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java
index 7ffeecc..a23d41f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java
@@ -14,9 +14,9 @@ import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
index 892dc0f..01a6ceb 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
@@ -15,9 +15,9 @@ import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.eclipse.jetty.util.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java
index 80d68be..d4af015 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java
index 9b5873b..feb68a3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java
index b29dff9..9dd8fc5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java
@@ -18,9 +18,9 @@ import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.cache.store.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java
index ed0de91..9043871 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java
@@ -12,9 +12,9 @@ package org.gridgain.grid.kernal.processors.cache.distributed.dht;
 import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.grid.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.spi.swapspace.file.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
index caa87e8..3da14de 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
@@ -13,9 +13,9 @@ import org.apache.ignite.configuration.*;
 import org.apache.log4j.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;
 import static org.gridgain.grid.cache.GridCacheMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java
index 6e10498..037fe12 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java
@@ -18,9 +18,9 @@ import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1ef8f69b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
index d659716..f46e632 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
@@ -20,9 +20,9 @@ import org.gridgain.grid.cache.affinity.consistenthash.*;
 import org.gridgain.grid.cache.eviction.fifo.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.spi.discovery.tcp.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.*;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.testframework.junits.common.*;
 


[08/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheClearCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheClearCommandSpec.scala b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheClearCommandSpec.scala
index 4b0ebb2..ffb02ef 100644
--- a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheClearCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheClearCommandSpec.scala
@@ -17,7 +17,7 @@ import org.gridgain.grid.cache.GridCacheAtomicityMode._
 import org.gridgain.grid.cache.GridCacheMode._
 import org.gridgain.grid.cache._
 import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
 import org.gridgain.grid.{_}
 import org.gridgain.visor._
 import org.gridgain.visor.commands.cache.VisorCacheCommand._
@@ -30,7 +30,7 @@ import scala.collection.JavaConversions._
  */
 class VisorCacheClearCommandSpec extends VisorRuntimeBaseSpec(2) {
     /** IP finder. */
-    val ipFinder = new GridTcpDiscoveryVmIpFinder(true)
+    val ipFinder = new TcpDiscoveryVmIpFinder(true)
 
     /**
      * Creates grid configuration for provided grid host.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheCompactCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheCompactCommandSpec.scala b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheCompactCommandSpec.scala
index 348924d..a244709 100644
--- a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheCompactCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cache/VisorCacheCompactCommandSpec.scala
@@ -16,7 +16,7 @@ import org.apache.ignite.configuration.IgniteConfiguration
 import org.gridgain.grid.cache.GridCacheMode._
 import org.gridgain.grid.cache._
 import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
 import org.gridgain.grid.{_}
 import org.gridgain.visor._
 import org.gridgain.visor.commands.cache.VisorCacheCommand._
@@ -29,7 +29,7 @@ import scala.collection.JavaConversions._
  */
 class VisorCacheCompactCommandSpec extends VisorRuntimeBaseSpec(2) {
     /** IP finder. */
-    val ipFinder = new GridTcpDiscoveryVmIpFinder(true)
+    val ipFinder = new TcpDiscoveryVmIpFinder(true)
 
     /**
      * Creates grid configuration for provided grid host.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/717180b3/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cswap/VisorCacheSwapCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cswap/VisorCacheSwapCommandSpec.scala b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cswap/VisorCacheSwapCommandSpec.scala
index a876545..afc51a2 100644
--- a/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cswap/VisorCacheSwapCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/gridgain/visor/commands/cswap/VisorCacheSwapCommandSpec.scala
@@ -15,7 +15,7 @@ import org.apache.ignite.Ignition
 import org.apache.ignite.configuration.IgniteConfiguration
 import org.gridgain.grid.cache.{GridCacheConfiguration, GridCacheMode}
 import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder
 import org.gridgain.visor._
 import org.gridgain.visor.commands.cache.VisorCacheCommand._
 import org.jetbrains.annotations.Nullable
@@ -24,7 +24,7 @@ import scala.collection.JavaConversions._
 
 class VisorCacheSwapCommandSpec extends VisorRuntimeBaseSpec(2) {
     /** IP finder. */
-    val ipFinder = new GridTcpDiscoveryVmIpFinder(true)
+    val ipFinder = new TcpDiscoveryVmIpFinder(true)
 
     /**
      * Creates grid configuration for provided grid host.


[05/52] [abbrv] incubator-ignite git commit: # Renaming

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java
index fa5c570..04028b7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedAffinityFilterSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
 @SuppressWarnings({"PointlessArithmeticExpression"})
 public class GridCachePartitionedAffinityFilterSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Backup count. */
     private static final int BACKUPS = 1;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java
index 8de327e..9fd391d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePartitionedReloadAllAbstractSelfTest.java
@@ -41,7 +41,7 @@ public abstract class GridCachePartitionedReloadAllAbstractSelfTest extends Grid
     private static final int BACKUP_CNT = 1;
 
     /** IP finder. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Map where dummy cache store values are stored. */
     private final Map<Integer, String> map = new ConcurrentHashMap8<>();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
index 0115ca4..f4d4c64 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadEventsAbstractSelfTest.java
@@ -34,7 +34,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public abstract class GridCachePreloadEventsAbstractSelfTest extends GridCommonAbstractTest {
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
index 813a3d0..56b2f67 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
@@ -44,7 +44,7 @@ public abstract class GridCachePreloadLifecycleAbstractTest extends GridCommonAb
     protected LifecycleBean lifecycleBean;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Default keys. */
     protected static final String[] DFLT_KEYS = new String[] {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java
index 5b00e1c..9daddb6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCachePreloadRestartAbstractSelfTest.java
@@ -84,7 +84,7 @@ public abstract class GridCachePreloadRestartAbstractSelfTest extends GridCommon
     private int retries = DFLT_RETRIES;
 
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
index 0216d3e..cab8006 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTransformEventSelfTest.java
@@ -59,7 +59,7 @@ public class GridCacheTransformEventSelfTest extends GridCommonAbstractTest {
     private Set<Integer> keys;
 
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Nodes. */
     private Ignite[] ignites;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java
index 156f0aa..253c844 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/GridCacheTxConsistencyRestartAbstractSelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public abstract class GridCacheTxConsistencyRestartAbstractSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Grid count. */
     private static final int GRID_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java
index 333e722..21880d6 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheAbstractTransformWriteThroughSelfTest.java
@@ -52,7 +52,7 @@ public abstract class GridCacheAbstractTransformWriteThroughSelfTest extends Gri
     public static final int KEYS_CNT = 30;
 
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Value increment closure. */
     private static final IgniteClosure<Integer, Integer> INCR_CLOS = new IgniteClosure<Integer, Integer>() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java
index e609afa..625a3e2 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedDebugTest.java
@@ -40,7 +40,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheColocatedDebugTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final  GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Test thread count. */
     private static final int THREAD_CNT = 10;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java
index bfc87ef..b6cbf97 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedOptimisticTransactionSelfTest.java
@@ -43,7 +43,7 @@ public class GridCacheColocatedOptimisticTransactionSelfTest extends GridCommonA
     private static final String VAL = "val";
 
     /** Shared IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Grids. */
     private static Ignite[] ignites;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
index 5747c95..d484dfb 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheColocatedTxSingleThreadedSelfTest.java
@@ -29,7 +29,7 @@ public class GridCacheColocatedTxSingleThreadedSelfTest extends GridCacheTxSingl
     private static final boolean CACHE_DEBUG = false;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings({"ConstantConditions"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java
index 2329298..6b0060e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEntrySelfTest.java
@@ -38,7 +38,7 @@ public class GridCacheDhtEntrySelfTest extends GridCommonAbstractTest {
     private static final int GRID_CNT = 2;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
index d3832c1..f614082 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
@@ -42,7 +42,7 @@ public class GridCacheDhtEvictionNearReadersSelfTest extends GridCommonAbstractT
     private static final int GRID_CNT = 4;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Default constructor. */
     public GridCacheDhtEvictionNearReadersSelfTest() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java
index 4fd1ee6..9680b14 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionSelfTest.java
@@ -43,7 +43,7 @@ public class GridCacheDhtEvictionSelfTest extends GridCommonAbstractTest {
     private static final int GRID_CNT = 2;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Default constructor. */
     public GridCacheDhtEvictionSelfTest() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java
index 8862569..3e7729d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtEvictionsDisabledSelfTest.java
@@ -25,7 +25,7 @@ import static org.gridgain.grid.cache.GridCacheDistributionMode.*;
  */
 public class GridCacheDhtEvictionsDisabledSelfTest extends GridCommonAbstractTest {
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java
index 624a36f..c328599 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtInternalEntrySelfTest.java
@@ -38,7 +38,7 @@ import static org.gridgain.grid.cache.GridCachePreloadMode.*;
  */
 public class GridCacheDhtInternalEntrySelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Grid count. */
     private static final int GRID_CNT = 2;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java
index ac480a5..eb27ef3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtMappingSelfTest.java
@@ -32,7 +32,7 @@ public class GridCacheDhtMappingSelfTest extends GridCommonAbstractTest {
     private static final int BACKUPS = 1;
 
     /** IP finder. */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java
index c230837..98b87f1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadBigDataSelfTest.java
@@ -59,7 +59,7 @@ public class GridCacheDhtPreloadBigDataSelfTest extends GridCommonAbstractTest {
     private LifecycleBean lbean;
 
     /** IP finder. */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
index 499bf52..09f6f85 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDelayedSelfTest.java
@@ -57,7 +57,7 @@ public class GridCacheDhtPreloadDelayedSelfTest extends GridCommonAbstractTest {
     private long delay = -1;
 
     /** IP finder. */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java
index c219b55..6ba74ae 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadDisabledSelfTest.java
@@ -57,7 +57,7 @@ public class GridCacheDhtPreloadDisabledSelfTest extends GridCommonAbstractTest
     private int partitions = DFLT_PARTITIONS;
 
     /** IP finder. */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
index b139f55..154acbf 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
@@ -46,7 +46,7 @@ public class GridCacheDhtPreloadMessageCountTest extends GridCommonAbstractTest
     private GridCachePreloadMode preloadMode = GridCachePreloadMode.SYNC;
 
     /** IP finder. */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java
index e1eba24..a8da0da 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadMultiThreadedSelfTest.java
@@ -30,7 +30,7 @@ import java.util.concurrent.*;
  */
 public class GridCacheDhtPreloadMultiThreadedSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private boolean cacheEnabled = true;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java
index f283e8d..787615d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadPutGetSelfTest.java
@@ -52,7 +52,7 @@ public class GridCacheDhtPreloadPutGetSelfTest extends GridCommonAbstractTest {
     private GridCachePreloadMode preloadMode;
 
     /** IP finder. */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java
index fedd7d8..591096e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadSelfTest.java
@@ -68,7 +68,7 @@ public class GridCacheDhtPreloadSelfTest extends GridCommonAbstractTest {
     private int partitions = DFLT_PARTITIONS;
 
     /** IP finder. */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java
index 1811763..0feb90e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadStartStopSelfTest.java
@@ -68,7 +68,7 @@ public class GridCacheDhtPreloadStartStopSelfTest extends GridCommonAbstractTest
     private int cacheCnt = DFLT_CACHE_CNT;
 
     /** IP finder. */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java
index acb82ef..7a6c511 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCacheDhtPreloadUnloadSelfTest.java
@@ -57,7 +57,7 @@ public class GridCacheDhtPreloadUnloadSelfTest extends GridCommonAbstractTest {
     private LifecycleBean lbean;
 
     /** IP finder. */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Network timeout. */
     private long netTimeout = 1000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java
index 03212a7..15f26c8 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedTopologyChangeSelfTest.java
@@ -50,7 +50,7 @@ public class GridCachePartitionedTopologyChangeSelfTest extends GridCommonAbstra
     private static final int PARTITION_BACKUP = 2;
 
     /** */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java
index 4dce871..c6a8ff4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedUnloadEventsSelfTest.java
@@ -32,7 +32,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridCachePartitionedUnloadEventsSelfTest extends GridCommonAbstractTest {
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
index e70d24f..007b9f7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
@@ -42,7 +42,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
 @SuppressWarnings("ErrorNotRethrown")
 public class GridCacheAtomicInvalidPartitionHandlingSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Delay flag. */
     private static volatile boolean delay;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
index 7a58541..9a81479 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest.java
@@ -40,7 +40,7 @@ public abstract class GridCacheAffinityFunctionExcludeNeighborsAbstractSelfTest
     private int gridInstanceNum;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(final String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java
index e79568c..73edb05 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheGetStoreErrorSelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheDistributionMode.*;
  */
 public class GridCacheGetStoreErrorSelfTest extends GridCommonAbstractTest {
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Near enabled flag. */
     private boolean nearEnabled;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java
index c1354d7..d98173f 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearEvictionSelfTest.java
@@ -38,7 +38,7 @@ public class GridCacheNearEvictionSelfTest extends GridCommonAbstractTest {
     private int gridCnt;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
index 14bb804..3a8a945 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiGetSelfTest.java
@@ -43,7 +43,7 @@ public class GridCacheNearMultiGetSelfTest extends GridCommonAbstractTest {
     private static final int GRID_CNT = 3;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings({"ConstantConditions"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
index a24ffbd..a91fc7c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
@@ -52,7 +52,7 @@ public class GridCacheNearMultiNodeSelfTest extends GridCommonAbstractTest {
     private static TestStore store = new TestStore();
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Grid counter. */
     private AtomicInteger cntr = new AtomicInteger(0);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
index 6f8121a..60e9cf3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public class GridCacheNearOnlyTopologySelfTest extends GridCommonAbstractTest {
     /** Shared ip finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Near only flag. */
     private boolean nearOnly;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
index 189ad18..c1e2ec3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
@@ -88,7 +88,7 @@ public class GridCacheNearReaderPreloadSelfTest extends GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     private void startUp() throws Exception {
-        GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+        TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
         Ignite node1 = G.start(dataNode(ipFinder, "node1"));
         Ignite node2 = G.start(dataNode(ipFinder, "node2"));
@@ -111,7 +111,7 @@ public class GridCacheNearReaderPreloadSelfTest extends GridCommonAbstractTest {
      * @return Configuration for data node.
      * @throws GridException If failed.
      */
-    private IgniteConfiguration dataNode(GridTcpDiscoveryIpFinder ipFinder, String gridName)
+    private IgniteConfiguration dataNode(TcpDiscoveryIpFinder ipFinder, String gridName)
         throws Exception {
         GridCacheConfiguration ccfg = new GridCacheConfiguration();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java
index 2b8fcca..191581e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearReadersSelfTest.java
@@ -39,7 +39,7 @@ public class GridCacheNearReadersSelfTest extends GridCommonAbstractTest {
     private int grids = 2;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Grid counter. */
     private static AtomicInteger cntr = new AtomicInteger(0);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java
index aa71228..cee4a72 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearTxMultiNodeSelfTest.java
@@ -38,7 +38,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheNearTxMultiNodeSelfTest extends GridCommonAbstractTest {
     /** */
-    protected static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int GRID_CNT = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java
index 776baf1..7c919ac 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityExcludeNeighborsPerformanceTest.java
@@ -41,7 +41,7 @@ public class GridCachePartitionedAffinityExcludeNeighborsPerformanceTest extends
     private boolean excNeighbores;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static Collection<String> msgs = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java
index a053d2c..8d8b378 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinityHashIdResolverSelfTest.java
@@ -30,7 +30,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
  */
 public class GridCachePartitionedAffinityHashIdResolverSelfTest extends GridCommonAbstractTest {
     /** Shared IP finder. */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Hash ID resolver. */
     private GridCacheAffinityNodeHashResolver rslvr;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java
index c11f380..eb4e365 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedAffinitySelfTest.java
@@ -53,7 +53,7 @@ public class GridCachePartitionedAffinitySelfTest extends GridCommonAbstractTest
     private static AtomicBoolean failFlag = new AtomicBoolean(false);
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java
index 0b5bff4..b9311cd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedBasicStoreMultiNodeSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCachePartitionedBasicStoreMultiNodeSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Number of grids to start. */
     private static final int GRID_CNT = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java
index fadd191..041bc3e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedEvictionSelfTest.java
@@ -43,7 +43,7 @@ public class GridCachePartitionedEvictionSelfTest extends GridCacheAbstractSelfT
     private static final int KEY_CNT = 100;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected int gridCount() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java
index 758c039..6da1f31 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java
@@ -33,7 +33,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridCachePartitionedExplicitLockNodeFailureSelfTest extends GridCommonAbstractTest {
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     public static final int GRID_CNT = 4;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java
index 8d91fe9..d9eea17 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedFilteredPutSelfTest.java
@@ -27,7 +27,7 @@ import static org.gridgain.grid.cache.GridCacheDistributionMode.*;
  */
 public class GridCachePartitionedFilteredPutSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java
index 4783d19..d7637fd 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedLoadCacheSelfTest.java
@@ -29,7 +29,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCachePartitionedLoadCacheSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Grids count. */
     private static final int GRID_CNT = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java
index 35846d6..69f01a3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiNodeCounterSelfTest.java
@@ -59,7 +59,7 @@ public class GridCachePartitionedMultiNodeCounterSelfTest extends GridCommonAbst
     private static final String CNTR_KEY = "CNTR_KEY";
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static CountDownLatch startLatchMultiNode;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java
index 10d1e91..1c377bb 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedMultiThreadedPutGetSelfTest.java
@@ -45,7 +45,7 @@ public class GridCachePartitionedMultiThreadedPutGetSelfTest extends GridCommonA
     private static final int TX_CNT = 500;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java
index abd0ffb..aceaad4 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedQueryMultiThreadedSelfTest.java
@@ -42,7 +42,7 @@ public class GridCachePartitionedQueryMultiThreadedSelfTest extends GridCommonAb
     private static final int GRID_CNT = 3;
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Don't start grid by default. */
     public GridCachePartitionedQueryMultiThreadedSelfTest() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java
index 685d564..746f2cc 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedStorePutSelfTest.java
@@ -33,7 +33,7 @@ import static org.gridgain.grid.kernal.processors.cache.distributed.GridCacheMod
  */
 public class GridCachePartitionedStorePutSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final AtomicInteger CNT = new AtomicInteger(0);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
index 8c24230..ae9e16d 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
@@ -28,7 +28,7 @@ public class GridCachePartitionedTxMultiThreadedSelfTest extends GridCacheTxMult
     private static final boolean CACHE_DEBUG = false;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings({"ConstantConditions"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
index 3dff104..7cc9c14 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSalvageSelfTest.java
@@ -52,7 +52,7 @@ public class GridCachePartitionedTxSalvageSelfTest extends GridCommonAbstractTes
     private static String salvageTimeoutOld;
 
     /** Standard VM IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
index ea6b1bf..8d689a1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxSingleThreadedSelfTest.java
@@ -29,7 +29,7 @@ public class GridCachePartitionedTxSingleThreadedSelfTest extends GridCacheTxSin
     private static final boolean CACHE_DEBUG = false;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings({"ConstantConditions"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java
index 3550a47..76ef1e9 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedTxTimeoutSelfTest.java
@@ -27,7 +27,7 @@ public class GridCachePartitionedTxTimeoutSelfTest extends GridCacheTxTimeoutAbs
     private static final long TIMEOUT = 50;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java
index bcb52e1..e83c0ee 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridPartitionedBackupLoadSelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridPartitionedBackupLoadSelfTest extends GridCommonAbstractTest {
     /** */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final int GRID_CNT = 3;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java
index 67ed92e..0fb9a4c 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedInvalidateSelfTest.java
@@ -49,7 +49,7 @@ public class GridCacheReplicatedInvalidateSelfTest extends GridCommonAbstractTes
     private static final String VAL = "test";
 
     /** */
-    private static GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /**
      * Don't start grid by default.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java
index 1b26d4c..b9de6bb 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxMultiThreadedSelfTest.java
@@ -31,7 +31,7 @@ public class GridCacheReplicatedTxMultiThreadedSelfTest extends GridCacheTxMulti
     private static final boolean LOG_TO_FILE = true;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings({"unchecked"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java
index 3c64734..9a0c5f3 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxSingleThreadedSelfTest.java
@@ -31,7 +31,7 @@ public class GridCacheReplicatedTxSingleThreadedSelfTest extends GridCacheTxSing
     private static final boolean LOG_TO_FILE = true;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @SuppressWarnings({"unchecked"})

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java
index e2ef0e0..3b68176 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedTxTimeoutSelfTest.java
@@ -26,7 +26,7 @@ public class GridCacheReplicatedTxTimeoutSelfTest extends GridCacheTxTimeoutAbst
     private static final long TIMEOUT = 50;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java
index bd010b1..fe9da16 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheReplicatedUnswapAdvancedSelfTest.java
@@ -34,7 +34,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridCacheReplicatedUnswapAdvancedSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder IP_FINDER = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java
index 8db0cf7..c3e2b80 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/GridCacheSyncReplicatedPreloadSelfTest.java
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheSyncReplicatedPreloadSelfTest extends GridCommonAbstractTest {
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private static final boolean DISCO_DEBUG_MODE = false;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
index 5aec3aa..4dc6dc5 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
@@ -48,7 +48,7 @@ public class GridCacheReplicatedPreloadSelfTest extends GridCommonAbstractTest {
     private int poolSize = 2;
 
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java
index f9c2c23..3929857 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadStartStopEventsSelfTest.java
@@ -29,7 +29,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  */
 public class GridCacheReplicatedPreloadStartStopEventsSelfTest extends GridCommonAbstractTest {
     /** */
-    private GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java
index fd5e4db..3a6616e 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionConsistencySelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheConcurrentEvictionConsistencySelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Default iteration count. */
     private static final int ITERATION_CNT = 50000;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java
index 04efc8f..7feb2b1 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheConcurrentEvictionsSelfTest.java
@@ -35,7 +35,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
  */
 public class GridCacheConcurrentEvictionsSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Replicated cache. */
     private GridCacheMode mode = REPLICATED;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java
index e061a85..b3aac91 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheDistributedEvictionsSelfTest.java
@@ -36,7 +36,7 @@ import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
  */
 public class GridCacheDistributedEvictionsSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private int gridCnt = 2;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java
index bd9b5af..b9347c7 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEmptyEntriesAbstractSelfTest.java
@@ -18,7 +18,7 @@ import org.gridgain.grid.cache.eviction.fifo.GridCacheFifoEvictionPolicy;
 import org.gridgain.grid.cache.store.GridCacheStore;
 import org.gridgain.grid.cache.store.GridCacheStoreAdapter;
 import org.gridgain.grid.spi.discovery.tcp.TcpDiscoverySpi;
-import org.gridgain.grid.spi.discovery.tcp.ipfinder.GridTcpDiscoveryIpFinder;
+import org.gridgain.grid.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.gridgain.grid.spi.discovery.tcp.ipfinder.vm.GridTcpDiscoveryVmIpFinder;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.U;
@@ -32,7 +32,7 @@ import static org.gridgain.grid.cache.GridCacheAtomicityMode.*;
  */
 public abstract class GridCacheEmptyEntriesAbstractSelfTest extends GridCommonAbstractTest {
     /** IP finder. */
-    private static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    private static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** */
     private GridCacheEvictionPolicy<?, ?> plc;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/805377cc/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java
index 0753862..c439b27 100644
--- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/eviction/GridCacheEvictionAbstractTest.java
@@ -37,7 +37,7 @@ import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
 public abstract class GridCacheEvictionAbstractTest<T extends GridCacheEvictionPolicy<?, ?>>
     extends GridCommonAbstractTest {
     /** IP finder. */
-    protected static final GridTcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
+    protected static final TcpDiscoveryIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(true);
 
     /** Replicated cache. */
     protected GridCacheMode mode = REPLICATED;