IGNITE-12493: Replace direct setClientMode call with startClientGrid. (#7216)

diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcConnectionSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcConnectionSelfTest.java
index 89bfdaa..8344a3f 100644
--- a/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcConnectionSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcConnectionSelfTest.java
@@ -45,9 +45,6 @@
     /** Daemon node flag. */
     private boolean daemon;
 
-    /** Client node flag. */
-    private boolean client;
-
     /**
      * @return Config URL to use in test.
      */
@@ -63,8 +60,6 @@
 
         cfg.setDaemon(daemon);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -150,9 +145,7 @@
      */
     @Test
     public void testClientNodeId() throws Exception {
-        client = true;
-
-        IgniteEx client = (IgniteEx)startGrid();
+        IgniteEx client = startClientGrid();
 
         UUID clientId = client.localNode().id();
 
diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/RestProcessorMultiStartSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/RestProcessorMultiStartSelfTest.java
index a090d16..389cb1a 100644
--- a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/RestProcessorMultiStartSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/RestProcessorMultiStartSelfTest.java
@@ -20,6 +20,7 @@
 import java.util.Map;
 import org.apache.ignite.configuration.ConnectorConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -31,26 +32,15 @@
     /** */
     private static final int GRID_CNT = 3;
 
-    /** */
-    private static boolean client = false;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setConnectorConfiguration(new ConnectorConfiguration());
-        cfg.setClientMode(client);
 
         return cfg;
     }
 
-    /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        super.beforeTest();
-
-        client = false;
-    }
-
     /**
      * Test that multiple nodes can start with JETTY enabled.
      *
@@ -88,11 +78,9 @@
                 assertFalse(((Map)GridTestUtils.getFieldValue(rest, "handlers")).isEmpty());
             }
 
-            client = true;
+            IgniteEx client = startClientGrid(clnIdx);
 
-            startGrid(clnIdx);
-
-            IgniteRestProcessor rest = grid(GRID_CNT - 1).context().rest();
+            IgniteRestProcessor rest = client.context().rest();
 
             // Check that rest processor doesn't start.
             assertNotNull(rest);
diff --git a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadSelfTest.java
index 7bacabc..0707a15 100644
--- a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadSelfTest.java
@@ -444,7 +444,7 @@
      */
     @Test
     public void testBulkLoadToNonAffinityNode() throws Exception {
-        IgniteEx client = startGrid(getConfiguration("client").setClientMode(true));
+        IgniteEx client = startClientGrid(getConfiguration("client"));
 
         try (Connection con = connect(client, null)) {
             con.setSchema('"' + DEFAULT_CACHE_NAME + '"');
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/ResetLostPartitionTest.java b/modules/core/src/test/java/org/apache/ignite/cache/ResetLostPartitionTest.java
index 427d3a5..26a26ac 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/ResetLostPartitionTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/ResetLostPartitionTest.java
@@ -110,16 +110,6 @@
             .setIndexedTypes(String.class, String.class);
     }
 
-    /** Client configuration */
-    private IgniteConfiguration getClientConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setPeerClassLoadingEnabled(true);
-        cfg.setClientMode(true);
-
-        return cfg;
-    }
-
     /**
      * Test to restore lost partitions after grid reactivation.
      *
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityClientNodeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityClientNodeSelfTest.java
index 45a36d1..b203fb5 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityClientNodeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityClientNodeSelfTest.java
@@ -79,11 +79,8 @@
         ccfg5.setBackups(1);
         ccfg5.setName(CACHE5);
 
-        if (igniteInstanceName.equals(getTestIgniteInstanceName(NODE_CNT - 1))) {
-            cfg.setClientMode(true);
-
+        if (igniteInstanceName.equals(getTestIgniteInstanceName(NODE_CNT - 1)))
             cfg.setCacheConfiguration(ccfg5);
-        }
         else
             cfg.setCacheConfiguration(ccfg1, ccfg2, ccfg4);
 
@@ -96,7 +93,7 @@
 
         startGridsMultiThreaded(NODE_CNT - 1);
 
-        startGrid(NODE_CNT - 1); // Start client after servers.
+        startClientGrid(NODE_CNT - 1); // Start client after servers.
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityDistributionLoggingTest.java b/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityDistributionLoggingTest.java
index 7706d94e..f6a2e72 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityDistributionLoggingTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityDistributionLoggingTest.java
@@ -183,7 +183,7 @@
     private String runAndGetExchangeLog(boolean testClientNode) throws Exception {
         assert nodes > 1;
 
-        IgniteEx ignite = (IgniteEx)startGrids(nodes - 1);
+        IgniteEx ignite = startGrids(nodes - 1);
 
         awaitPartitionMapExchange();
 
@@ -197,13 +197,8 @@
 
         GridTestUtils.setFieldValue(aff, "log", log);
 
-        if (testClientNode) {
-            IgniteConfiguration cfg = getConfiguration("client");
-
-            cfg.setClientMode(true);
-
-            startGrid(cfg);
-        }
+        if (testClientNode)
+            startClientGrid(getConfiguration("client"));
         else
             startGrid(nodes);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityHistoryCleanupTest.java b/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityHistoryCleanupTest.java
index 12096f9..cdee5eb 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityHistoryCleanupTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityHistoryCleanupTest.java
@@ -41,9 +41,6 @@
  *
  */
 public class AffinityHistoryCleanupTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -61,8 +58,6 @@
 
         cfg.setCacheConfiguration(ccfgs);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -111,9 +106,7 @@
             topVer(4, 1)), // FullHistSize = 5.
             5);
 
-        client = true;
-
-        startGrid(4);
+        startClientGrid(4);
 
         stopGrid(4);
 
@@ -127,7 +120,7 @@
             topVer(6, 0)), // Client event ->FullHistSize = 5.
             5);
 
-        startGrid(4);
+        startClientGrid(4);
 
         stopGrid(4);
 
@@ -143,7 +136,7 @@
             topVer(8, 0)), // Client event ->FullHistSize = 5.
             5);
 
-        startGrid(4);
+        startClientGrid(4);
 
         stopGrid(4);
 
@@ -161,8 +154,6 @@
             topVer(10, 0)), // Client event ->FullHistSize = 5.
             5);
 
-        client = false;
-
         startGrid(4);
 
         checkHistory(ignite, F.asList(
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
index 4488dea..0fde82b 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java
@@ -58,9 +58,6 @@
     /** Number of transactions. */
     private static final int TX_CNT = 1000;
 
-    /** Client flag. */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         MvccFeatureChecker.skipIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
@@ -72,13 +69,11 @@
     @Override protected void beforeTest() throws Exception {
         startGridsMultiThreaded(GRID_CNT - 2);
 
-        client = true;
-
-        Ignite grid = startGrid(GRID_CNT - 2);
+        Ignite grid = startClientGrid(GRID_CNT - 2);
 
         grid.createNearCache(DEFAULT_CACHE_NAME, new NearCacheConfiguration());
 
-        grid = startGrid(GRID_CNT - 1);
+        grid = startClientGrid(GRID_CNT - 1);
 
         grid.cache(DEFAULT_CACHE_NAME);
     }
@@ -95,7 +90,7 @@
 
         IgniteConfiguration c = super.getConfiguration(igniteInstanceName);
 
-        if (!client) {
+        if (!c.isClientMode()) {
             CacheConfiguration cc = defaultCacheConfiguration();
 
             cc.setCacheMode(PARTITIONED);
@@ -110,8 +105,6 @@
 
             c.setCacheConfiguration(cc);
         }
-        else
-            c.setClientMode(true);
 
         return c;
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/ClusterBaselineNodesMetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/ClusterBaselineNodesMetricsSelfTest.java
index c7239bd..338ff80 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/ClusterBaselineNodesMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/ClusterBaselineNodesMetricsSelfTest.java
@@ -23,7 +23,6 @@
 import javax.management.ObjectName;
 import java.lang.management.ManagementFactory;
 import java.util.Collection;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.cluster.BaselineNode;
 import org.apache.ignite.configuration.DataRegionConfiguration;
 import org.apache.ignite.configuration.DataStorageConfiguration;
@@ -68,9 +67,7 @@
         startGrid(2);
 
         // Start client node.
-        Ignition.setClientMode(true);
-        startGrid(3);
-        Ignition.setClientMode(false);
+        startClientGrid(3);
 
         Collection<BaselineNode> baselineNodes;
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/ClusterGroupSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/ClusterGroupSelfTest.java
index cf64c15..534cc3a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/ClusterGroupSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/ClusterGroupSelfTest.java
@@ -57,23 +57,21 @@
 
         ids = new LinkedList<>();
 
-        try {
-            for (int i = 0; i < NODES_CNT; i++) {
-                Ignition.setClientMode(i > 1);
+        for (int i = 0; i < NODES_CNT; i++) {
+            Ignite g;
 
-                Ignite g = startGrid(i);
+            if (i > 1)
+                g = startClientGrid(i);
+            else
+                g = startGrid(i);
 
-                ids.add(g.cluster().localNode().id());
+            ids.add(g.cluster().localNode().id());
 
-                if (i == 0)
-                    ignite = g;
-            }
-
-            waitForTopology(NODES_CNT);
+            if (i == 0)
+                ignite = g;
         }
-        finally {
-            Ignition.setClientMode(false);
-        }
+
+        waitForTopology(NODES_CNT);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
index 54937dc..67ad942 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
@@ -31,7 +31,6 @@
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicy;
 import org.apache.ignite.cluster.ClusterMetrics;
 import org.apache.ignite.configuration.CacheConfiguration;
@@ -341,10 +340,7 @@
         Ignite node = grid();
 
         Ignite node1 = startGrid(1);
-
-        Ignition.setClientMode(true);
-
-        Ignite node2 = startGrid(2);
+        Ignite node2 = startClientGrid(2);
 
         waitForDiscovery(node2, node1, node);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsUpdateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsUpdateTest.java
index c44b606..30534c2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsUpdateTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsUpdateTest.java
@@ -37,17 +37,12 @@
  *
  */
 public class ClusterNodeMetricsUpdateTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setMetricsUpdateFrequency(500);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -60,9 +55,7 @@
 
         Ignite srv0 = startGridsMultiThreaded(NODES / 2);
 
-        client = true;
-
-        startGridsMultiThreaded(NODES / 2, NODES / 2);
+        startClientGridsMultiThreaded(NODES / 2, NODES / 2);
 
         Map<UUID, Integer> expJobs = new HashMap<>();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/ComputeJobCancelWithServiceSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/ComputeJobCancelWithServiceSelfTest.java
index d55d85d..57a0fde 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/ComputeJobCancelWithServiceSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/ComputeJobCancelWithServiceSelfTest.java
@@ -22,7 +22,6 @@
 import java.util.List;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteException;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.compute.ComputeJob;
 import org.apache.ignite.compute.ComputeJobAdapter;
 import org.apache.ignite.compute.ComputeJobResult;
@@ -52,9 +51,7 @@
 
         server.services().deployNodeSingleton("my-service", new MyService());
 
-        Ignition.setClientMode(true);
-
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         ComputeTaskFuture<Integer> fut = client.compute().executeAsync(new MyTask(), null);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinitySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridAffinitySelfTest.java
index 71cb999..3119eb4 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/GridAffinitySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/GridAffinitySelfTest.java
@@ -42,9 +42,7 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (igniteInstanceName.endsWith("1"))
-            cfg.setClientMode(true);
-        else {
+        if (!igniteInstanceName.endsWith("1")) {
             assert igniteInstanceName.endsWith("2");
 
             CacheConfiguration cacheCfg = defaultCacheConfiguration();
@@ -62,7 +60,7 @@
     @Override protected void beforeTest() throws Exception {
         startGrid(2);
 
-        startGrid(1);
+        startClientGrid(1);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java
index 98d2f89..250908e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java
@@ -34,16 +34,10 @@
     /** */
     private String nodeVer;
 
-    /** */
-    private boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (clientMode)
-            cfg.setClientMode(true);
-
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi() {
             @Override public void setNodeAttributes(Map<String, Object> attrs,
                 IgniteProductVersion ver) {
@@ -62,8 +56,6 @@
 
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
-        clientMode = false;
-
         stopAllGrids();
     }
 
@@ -106,9 +98,8 @@
 
         try {
             nodeVer = "1.0.1";
-            clientMode = true;
 
-            startGrid(1);
+            startClientGrid(1);
 
             fail("Exception has not been thrown.");
         }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientConnectAfterCommunicationFailureTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientConnectAfterCommunicationFailureTest.java
index bc1ef6d..e161430 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientConnectAfterCommunicationFailureTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientConnectAfterCommunicationFailureTest.java
@@ -41,8 +41,7 @@
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         return super.getConfiguration(gridName)
             .setNetworkTimeout(500)
-            .setCommunicationSpi(new TcpCommunicationSpi(gridName.contains("block")))
-            .setClientMode(gridName.contains("client"));
+            .setCommunicationSpi(new TcpCommunicationSpi(gridName.contains("block")));
     }
 
     /**
@@ -52,7 +51,7 @@
     public void testClientReconnects() throws Exception {
         Ignite srv1 = startGrid("server1");
         Ignite srv2 = startGrid("server2");
-        startGrid("client-block");
+        startClientGrid("client-block");
 
         assertEquals(1, srv2.cluster().forClients().nodes().size());
         assertEquals(1, srv1.cluster().forClients().nodes().size());
@@ -65,7 +64,7 @@
     public void testClientThreadsSuspended() throws Exception {
         Ignite srv1 = startGrid("server1");
         Ignite srv2 = startGrid("server2");
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         boolean blockedAnything = false;
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientFailuresTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientFailuresTest.java
index 3f01702..753f09c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientFailuresTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientFailuresTest.java
@@ -36,18 +36,13 @@
  */
 public class IgniteClientFailuresTest extends GridCommonAbstractTest {
     /** */
-    private boolean clientMode;
-
-    /** */
     private GridStringLogger inMemoryLog;
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(clientMode);
-
-        if (!clientMode) {
+        if (!igniteInstanceName.startsWith("client")) {
             cfg.setClientFailureDetectionTimeout(10_000);
 
             cfg.setSystemWorkerBlockedTimeout(5_000);
@@ -84,9 +79,7 @@
 
         IgniteEx srv = startGrid(0);
 
-        clientMode = true;
-
-        IgniteEx client00 = startGrid("client00");
+        IgniteEx client00 = startClientGrid("client00");
 
         client00.getOrCreateCache(new CacheConfiguration<>("cache0"));
 
@@ -113,9 +106,7 @@
     public void testFailedClientLeavesTopologyAfterTimeout() throws Exception {
         IgniteEx srv0 = startGrid(0);
 
-        clientMode = true;
-
-        IgniteEx client00 = startGrid("client00");
+        IgniteEx client00 = startClientGrid("client00");
 
         Thread.sleep(5_000);
 
@@ -127,7 +118,7 @@
 
         assertEquals(2, cl.topology(cl.topologyVersion()).size());
 
-        IgniteEx client01 = startGrid("client01");
+        IgniteEx client01 = startClientGrid("client01");
 
         assertEquals(3, cl.topology(cl.topologyVersion()).size());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java
index c0230a8..3fc5036 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java
@@ -67,9 +67,6 @@
     /** */
     private static final long RECONNECT_TIMEOUT = 10_000;
 
-    /** */
-    protected boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -88,10 +85,6 @@
         commSpi.setSharedMemoryPort(-1);
 
         cfg.setCommunicationSpi(commSpi);
-
-        if (clientMode)
-            cfg.setClientMode(true);
-
         cfg.setIncludeEventTypes(EventType.EVTS_ALL);
 
         return cfg;
@@ -167,13 +160,8 @@
 
         int clients = clientCount();
 
-        if (clients > 0) {
-            clientMode = true;
-
-            startGridsMultiThreaded(srvs, clients);
-
-            clientMode = false;
-        }
+        if (clients > 0)
+            startClientGridsMultiThreaded(srvs, clients);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectApiExceptionTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectApiExceptionTest.java
index 10976d1..e361b22 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectApiExceptionTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectApiExceptionTest.java
@@ -64,7 +64,6 @@
  *
  */
 public class IgniteClientReconnectApiExceptionTest extends IgniteClientReconnectAbstractTest {
-
     /** Cache key for test put and invoke operation after reconnect */
     private static final int CACHE_PUT_INVOKE_KEY = 10010;
 
@@ -104,9 +103,7 @@
      */
     @SuppressWarnings("unchecked")
     private void dataStructureOperationsTest() throws Exception {
-        clientMode = true;
-
-        final Ignite client = startGrid(serverCount());
+        final Ignite client = startClientGrid(serverCount());
 
         doTestIgniteOperationOnDisconnect(client, Arrays.asList(
             // Check atomic long.
@@ -215,17 +212,13 @@
                 }
             )
         ));
-
-        clientMode = false;
     }
 
     /**
      * @throws Exception If failed.
      */
     private void cacheOperationsTest() throws Exception {
-        clientMode = true;
-
-        final Ignite client = startGrid(serverCount());
+        final Ignite client = startClientGrid(serverCount());
 
         final IgniteCache<Object, Object> dfltCache = client.cache(DEFAULT_CACHE_NAME);
 
@@ -532,17 +525,13 @@
             )
 
         ));
-
-        clientMode = false;
     }
 
     /**
      * @throws Exception If failed.
      */
     private void igniteOperationsTest() throws Exception {
-        clientMode = true;
-
-        final Ignite client = startGrid(serverCount());
+        final Ignite client = startClientGrid(serverCount());
 
         final IgniteCache<Object, Object> dfltCache = client.cache(DEFAULT_CACHE_NAME);
 
@@ -763,8 +752,6 @@
                 }
             )
         ));
-
-        clientMode = false;
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
index e39a769..320f645 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
@@ -159,9 +159,7 @@
      */
     @Test
     public void testReconnect() throws Exception {
-        clientMode = true;
-
-        IgniteEx client = startGrid(SRV_CNT);
+        IgniteEx client = startClientGrid(SRV_CNT);
 
         final IgniteDiscoverySpi clientSpi = spi0(client);
 
@@ -300,8 +298,6 @@
 
         assertEquals(21, nearCache.localPeek(20));
 
-        this.clientMode = false;
-
         IgniteEx srv2 = startGrid(SRV_CNT + 1);
 
         Integer key = primaryKey(srv2.cache(DEFAULT_CACHE_NAME));
@@ -339,9 +335,7 @@
      */
     @Test
     public void testReconnectTransactions() throws Exception {
-        clientMode = true;
-
-        IgniteEx client = startGrid(SRV_CNT);
+        IgniteEx client = startClientGrid(SRV_CNT);
 
         Ignite srv = ignite(0);
 
@@ -409,9 +403,7 @@
      */
     @Test
     public void testTxStateAfterClientReconnect() throws Exception {
-        clientMode = true;
-
-        IgniteEx client = startGrid(SRV_CNT);
+        IgniteEx client = startClientGrid(SRV_CNT);
 
         Ignite srv = ignite(0);
 
@@ -440,8 +432,6 @@
                 }, TransactionRollbackException.class);
             }
         }
-
-        clientMode = false;
     }
 
     /**
@@ -449,9 +439,7 @@
      */
     @Test
     public void testReconnectTransactionInProgress1() throws Exception {
-        clientMode = true;
-
-        IgniteEx client = startGrid(SRV_CNT);
+        IgniteEx client = startClientGrid(SRV_CNT);
 
         CacheConfiguration<Object, Object> ccfg = new CacheConfiguration<>(DEFAULT_CACHE_NAME);
 
@@ -611,9 +599,7 @@
      */
     @Test
     public void testReconnectTransactionInProgress2() throws Exception {
-        clientMode = true;
-
-        final IgniteEx client = startGrid(SRV_CNT);
+        final IgniteEx client = startClientGrid(SRV_CNT);
 
         CacheConfiguration<Object, Object> ccfg = new CacheConfiguration<>(DEFAULT_CACHE_NAME);
 
@@ -671,9 +657,7 @@
      */
     @Test
     public void testReconnectExchangeInProgress() throws Exception {
-        clientMode = true;
-
-        IgniteEx client = startGrid(SRV_CNT);
+        IgniteEx client = startClientGrid(SRV_CNT);
 
         Ignite srv = ignite(0);
 
@@ -683,8 +667,6 @@
 
         coordCommSpi.blockMessages(GridDhtPartitionsFullMessage.class, client.localNode().id());
 
-        clientMode = false;
-
         startGrid(SRV_CNT + 1);
 
         final CountDownLatch reconnectLatch = new CountDownLatch(1);
@@ -756,14 +738,12 @@
 
         srvCommSpi.blockMessages(GridDhtPartitionsFullMessage.class, clientId);
 
-        clientMode = true;
-
         nodeId = clientId;
 
         IgniteInternalFuture<Boolean> fut = GridTestUtils.runAsync(new Callable<Boolean>() {
             @Override public Boolean call() throws Exception {
                 try {
-                    startGrid(optimize(getConfiguration(getTestIgniteInstanceName(SRV_CNT))));
+                    startClientGrid(optimize(getConfiguration(getTestIgniteInstanceName(SRV_CNT))));
 
                     // Commented due to IGNITE-4473, because
                     // IgniteClientDisconnectedException won't
@@ -823,9 +803,7 @@
      */
     @Test
     public void testReconnectOperationInProgress() throws Exception {
-        clientMode = true;
-
-        IgniteEx client = startGrid(SRV_CNT);
+        IgniteEx client = startClientGrid(SRV_CNT);
 
         client.events().localListen(new IgnitePredicate<Event>() {
             @Override public boolean apply(Event evt) {
@@ -908,9 +886,7 @@
      */
     @Test
     public void testReconnectCacheDestroyed() throws Exception {
-        clientMode = true;
-
-        final IgniteEx client = startGrid(SRV_CNT);
+        final IgniteEx client = startClientGrid(SRV_CNT);
 
         assertTrue(client.cluster().localNode().isClient());
 
@@ -946,9 +922,7 @@
      */
     @Test
     public void testReconnectCacheDestroyedAndCreated() throws Exception {
-        clientMode = true;
-
-        final Ignite client = startGrid(SRV_CNT);
+        final Ignite client = startClientGrid(SRV_CNT);
 
         assertTrue(client.cluster().localNode().isClient());
 
@@ -990,9 +964,7 @@
      */
     @Test
     public void testReconnectMarshallerCache() throws Exception {
-        clientMode = true;
-
-        final Ignite client = startGrid(SRV_CNT);
+        final Ignite client = startClientGrid(SRV_CNT);
 
         assertTrue(client.cluster().localNode().isClient());
 
@@ -1033,9 +1005,7 @@
      */
     @Test
     public void testReconnectClusterRestart() throws Exception {
-        clientMode = true;
-
-        final Ignite client = startGrid(SRV_CNT);
+        final Ignite client = startClientGrid(SRV_CNT);
 
         assertTrue(client.cluster().localNode().isClient());
 
@@ -1068,8 +1038,6 @@
 
         assertTrue(disconnectLatch.await(30_000, MILLISECONDS));
 
-        clientMode = false;
-
         Ignite srv = startGrid(0);
 
         assertTrue(reconnectLatch.await(10_000, MILLISECONDS));
@@ -1098,8 +1066,6 @@
      */
     @Test
     public void testReconnectClusterRestartMultinode() throws Exception {
-        clientMode = true;
-
         final int CLIENTS = 5;
 
         CountDownLatch disconnectLatch = new CountDownLatch(CLIENTS);
@@ -1110,7 +1076,7 @@
         for (int i = 0; i < CLIENTS; i++) {
             int g = SRV_CNT + i;
 
-            IgniteEx client = startGrid(g);
+            IgniteEx client = startClientGrid(g);
 
             info(">>>>> Started client: " + g);
 
@@ -1130,8 +1096,6 @@
 
         log.info("Restart servers.");
 
-        clientMode = false;
-
         startGridsMultiThreaded(0, SRV_CNT);
 
         assertTrue(reconnectLatch.await(30_000, MILLISECONDS));
@@ -1180,14 +1144,12 @@
     private void reconnectMultinode(boolean longHist) throws Exception {
         grid(0).createCache(new CacheConfiguration<>(DEFAULT_CACHE_NAME));
 
-        clientMode = true;
-
         final int CLIENTS = 5;
 
         List<Ignite> clients = new ArrayList<>();
 
         for (int i = 0; i < CLIENTS; i++) {
-            Ignite client = startGrid(SRV_CNT + i);
+            Ignite client = startClientGrid(SRV_CNT + i);
 
             assertNotNull(client.getOrCreateCache(new CacheConfiguration<>(DEFAULT_CACHE_NAME)));
 
@@ -1203,7 +1165,7 @@
                     int idx = nodeIdx.incrementAndGet();
 
                     for (int i = 0; i < 25; i++) {
-                        startGrid(idx);
+                        startClientGrid(idx);
 
                         stopGrid(idx);
                     }
@@ -1269,15 +1231,11 @@
                 assertEquals(CLIENTS, grp.nodes().size());
             }
 
-            clientMode = false;
-
             startGrid(nodes++);
 
             srvNodes++;
 
-            clientMode = true;
-
-            startGrid(nodes++);
+            startClientGrid(nodes++);
         }
     }
 
@@ -1286,9 +1244,7 @@
      */
     @Test
     public void testReconnectDestroyCache() throws Exception {
-        clientMode = true;
-
-        Ignite client = startGrid(SRV_CNT);
+        Ignite client = startClientGrid(SRV_CNT);
 
         CacheConfiguration<Integer, Integer> ccfg1 = new CacheConfiguration<>(DEFAULT_CACHE_NAME);
         ccfg1.setName("cache1");
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectDelayedSpiTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectDelayedSpiTest.java
index ea43299..96eefcf 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectDelayedSpiTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectDelayedSpiTest.java
@@ -74,7 +74,7 @@
             }
         });
 
-        final Ignite client = startGrid(getConfiguration().setClientMode(true));
+        final Ignite client = startClientGrid(getConfiguration());
 
         client.getOrCreateCache(new CacheConfiguration<>(DEFAULT_CACHE_NAME));
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectStopTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectStopTest.java
index 95dbffb..c13ef80 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectStopTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectStopTest.java
@@ -46,9 +46,7 @@
      */
     @Test
     public void testStopWhenDisconnected() throws Exception {
-        clientMode = true;
-
-        Ignite client = startGrid(serverCount());
+        Ignite client = startClientGrid(serverCount());
 
         assertTrue(client.cluster().localNode().isClient());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientRejoinTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientRejoinTest.java
index e3b0dd2..dc66277 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientRejoinTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientRejoinTest.java
@@ -97,8 +97,6 @@
 
             dspi.setJoinTimeout(60_000);
             dspi.setClientReconnectDisabled(clientReconnectDisabled);
-
-            cfg.setClientMode(true);
         }
 
         // TODO: IGNITE-4833
@@ -125,7 +123,7 @@
         final int CLIENTS_NUM = 5;
 
         for (int i = 0; i < CLIENTS_NUM; i++)
-            clientNodes.add(startGrid("client" + i));
+            clientNodes.add(startClientGrid("client" + i));
 
         blockAll = true;
 
@@ -223,7 +221,7 @@
                             }
                         });
 
-                    return startGrid(nodeName, optimize(cfg), null);
+                    return startClientGrid(nodeName, optimize(cfg));
                 }
             });
 
@@ -297,7 +295,7 @@
 
                     String igniteInstanceName = "client" + idx;
 
-                    return startGrid(igniteInstanceName, getConfiguration(igniteInstanceName)
+                    return startClientGrid(igniteInstanceName, getConfiguration(igniteInstanceName)
                         .setFailureHandler(new TestFailureHandler(true, failureHndLatch)));
                 }
             });
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteConnectionConcurrentReserveAndRemoveTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteConnectionConcurrentReserveAndRemoveTest.java
index 9d74ae8..e1061ec 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteConnectionConcurrentReserveAndRemoveTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteConnectionConcurrentReserveAndRemoveTest.java
@@ -46,8 +46,6 @@
 
         c.setDataStorageConfiguration(memCfg);
 
-        c.setClientMode(igniteInstanceName.startsWith("client"));
-
         TestRecordingCommunicationSpi spi = new TestRecordingCommunicationSpi();
         spi.setIdleConnectionTimeout(Integer.MAX_VALUE);
 
@@ -71,11 +69,11 @@
     public void test() throws Exception {
         IgniteEx svr = startGrid(0);
 
-        Ignite c1 = startGrid("client1");
+        Ignite c1 = startClientGrid("client1");
 
         assertTrue(c1.configuration().isClientMode());
 
-        Ignite c2 = startGrid("client2");
+        Ignite c2 = startClientGrid("client2");
 
         assertTrue(c2.configuration().isClientMode());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteRoundRobinErrorAfterClientReconnectTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteRoundRobinErrorAfterClientReconnectTest.java
index c2a3935..bc8fb68 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteRoundRobinErrorAfterClientReconnectTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteRoundRobinErrorAfterClientReconnectTest.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal;
 
 import org.apache.ignite.Ignite;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.events.Event;
 import org.apache.ignite.events.EventType;
 import org.apache.ignite.internal.util.future.GridFutureAdapter;
@@ -40,7 +39,7 @@
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
         startGrid(SRV_IDX);
-        startGrid(CLI_IDX);
+        startClientGrid(CLI_IDX);
     }
 
     /** {@inheritDoc} */
@@ -49,16 +48,6 @@
     }
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        if (igniteInstanceName.endsWith("1"))
-            cfg.setClientMode(true);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected long getTestTimeout() {
         return 60000;
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteSlowClientDetectionSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteSlowClientDetectionSelfTest.java
index 9ec9be8..9906121 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteSlowClientDetectionSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteSlowClientDetectionSelfTest.java
@@ -63,10 +63,6 @@
 
         ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setClientReconnectDisabled(true);
 
-        if (getTestIgniteInstanceName(nodeCount() - 1).equals(igniteInstanceName) ||
-            getTestIgniteInstanceName(nodeCount() - 2).equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         TcpCommunicationSpi commSpi = new TcpCommunicationSpi();
 
         commSpi.setSlowClientQueueLimit(50);
@@ -88,7 +84,9 @@
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        startGrids(nodeCount());
+        startGrids(nodeCount() - 2);
+        startClientGrid(nodeCount() - 2);
+        startClientGrid(nodeCount() - 1);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteUpdateNotifierPerClusterSettingSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteUpdateNotifierPerClusterSettingSelfTest.java
index aa933f9..33bb1d5 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteUpdateNotifierPerClusterSettingSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteUpdateNotifierPerClusterSettingSelfTest.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal;
 
 import org.apache.ignite.Ignite;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.processors.cluster.ClusterProcessor;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.junits.WithSystemProperty;
@@ -30,23 +29,11 @@
 /**
  */
 public class IgniteUpdateNotifierPerClusterSettingSelfTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
     }
 
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /**
      * @throws Exception If failed.
      */
@@ -80,24 +67,18 @@
 
         checkNotifier(grid2, enabled);
 
-        client = true;
-
-        IgniteEx grid3 = startGrid(2);
+        IgniteEx grid3 = startClientGrid(2);
 
         checkNotifier(grid3, enabled);
 
         // Failover.
         stopGrid(0); // Kill oldest.
 
-        client = false;
-
         IgniteEx grid4 = startGrid(3);
 
         checkNotifier(grid4, enabled);
 
-        client = true;
-
-        IgniteEx grid5 = startGrid(4);
+        IgniteEx grid5 = startClientGrid(4);
 
         checkNotifier(grid5, enabled);
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/TransactionMetricsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/TransactionMetricsTest.java
index 14db83f..5b6090d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/TransactionMetricsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/TransactionMetricsTest.java
@@ -101,11 +101,7 @@
 
         startGrid(1);
 
-        IgniteConfiguration clientConf = getConfiguration(getTestIgniteInstanceName(2));
-
-        clientConf.setClientMode(true);
-
-        IgniteEx client = startGrid(clientConf);
+        IgniteEx client = startClientGrid(getConfiguration(getTestIgniteInstanceName(2)));
 
         awaitPartitionMapExchange();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryConfigurationConsistencySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryConfigurationConsistencySelfTest.java
index 9b47ffc..7dfbb98 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryConfigurationConsistencySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryConfigurationConsistencySelfTest.java
@@ -42,15 +42,10 @@
     /** */
     private BinaryConfiguration binaryCfg;
 
-    /** */
-    private boolean isClient;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(isClient);
-
         cfg.setMarshaller(new BinaryMarshaller());
 
         cfg.setBinaryConfiguration(binaryCfg);
@@ -61,8 +56,6 @@
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
-
-        isClient = false;
     }
 
     /**
@@ -80,10 +73,9 @@
 
         startGrid(1);
 
-        isClient = true;
         binaryCfg = customConfig(true);
 
-        startGrid(2);
+        startClientGrid(2);
     }
 
     /**
@@ -95,9 +87,7 @@
 
         startGrids(2);
 
-        isClient = true;
-
-        startGrid(2);
+        startClientGrid(2);
     }
 
     /**
@@ -109,9 +99,7 @@
 
         startGrids(2);
 
-        isClient = true;
-
-        startGrid(2);
+        startClientGrid(2);
     }
 
     /**
@@ -123,9 +111,7 @@
 
         startGrids(2);
 
-        isClient = true;
-
-        startGrid(2);
+        startClientGrid(2);
     }
 
     /**
@@ -181,11 +167,9 @@
             }
         }, IgniteCheckedException.class, "");
 
-        isClient = true;
-
         GridTestUtils.assertThrows(log, new Callable<Void>() {
             @Override public Void call() throws Exception {
-                startGrid(2);
+                startClientGrid(2);
 
                 return null;
             }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/encryption/EncryptedCacheNodeJoinTest.java b/modules/core/src/test/java/org/apache/ignite/internal/encryption/EncryptedCacheNodeJoinTest.java
index f8d5134..cdf802b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/encryption/EncryptedCacheNodeJoinTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/encryption/EncryptedCacheNodeJoinTest.java
@@ -87,8 +87,6 @@
         else
             cfg.setEncryptionSpi(null);
 
-        cfg.setClientMode(grid.equals(CLIENT));
-
         if (configureCache)
             cfg.setCacheConfiguration(cacheConfiguration(grid));
 
@@ -201,7 +199,7 @@
 
         grid3.cluster().active(true);
 
-        IgniteEx client = startGrid(CLIENT);
+        IgniteEx client = startClientGrid(CLIENT);
 
         createEncryptedCache(client, grid0, cacheName(), null);
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/encryption/EncryptionMXBeanTest.java b/modules/core/src/test/java/org/apache/ignite/internal/encryption/EncryptionMXBeanTest.java
index 2ddedd2..07c5d38 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/encryption/EncryptionMXBeanTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/encryption/EncryptionMXBeanTest.java
@@ -58,7 +58,7 @@
     public void testMasterKeyChangeFromClient() throws Exception {
         IgniteEx ignite = startGrid(GRID_0);
 
-        IgniteEx client = startGrid(getConfiguration("client").setClientMode(true));
+        IgniteEx client = startClientGrid(getConfiguration("client"));
 
         ignite.cluster().active(true);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/encryption/MasterKeyChangeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/encryption/MasterKeyChangeTest.java
index d878b28..201f8e6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/encryption/MasterKeyChangeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/encryption/MasterKeyChangeTest.java
@@ -163,7 +163,7 @@
     public void testRejectCacheStartOnClientDuringRotation() throws Exception {
         IgniteEx srv = startGrid(GRID_0);
 
-        IgniteEx client = startGrid(getConfiguration("client").setClientMode(true));
+        IgniteEx client = startClientGrid(getConfiguration("client"));
 
         srv.cluster().active(true);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/IgniteDiagnosticMessagesTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/IgniteDiagnosticMessagesTest.java
index a98505c..54e0836 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/IgniteDiagnosticMessagesTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/IgniteDiagnosticMessagesTest.java
@@ -73,9 +73,6 @@
  */
 public class IgniteDiagnosticMessagesTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private Integer connectionsPerNode;
 
     /** */
@@ -97,8 +94,6 @@
         if (connectionsPerNode != null)
             ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setConnectionsPerNode(connectionsPerNode);
 
-        cfg.setClientMode(client);
-
         if (strLog != null) {
             cfg.setGridLogger(strLog);
 
@@ -622,11 +617,8 @@
     private void checkBasicDiagnosticInfo(CacheAtomicityMode atomicityMode) throws Exception {
         startGrids(3);
 
-        client = true;
-
-        startGrid(3);
-
-        startGrid(4);
+        startClientGrid(3);
+        startClientGrid(4);
 
         CacheConfiguration ccfg = cacheConfiguration(atomicityMode).setCacheMode(REPLICATED);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteCommunicationBalanceTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteCommunicationBalanceTest.java
index 264ed79..24bf52e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteCommunicationBalanceTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteCommunicationBalanceTest.java
@@ -45,9 +45,6 @@
  */
 public class IgniteCommunicationBalanceTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private int selectors;
 
     /** {@inheritDoc} */
@@ -63,8 +60,6 @@
         if (selectors > 0)
             commSpi.setSelectorsCount(selectors);
 
-        cfg.setClientMode(client);
-
         if (sslEnabled())
             cfg.setSslContextFactory(GridTestUtils.sslFactory());
 
@@ -116,9 +111,7 @@
 
             startGridsMultiThreaded(SRVS);
 
-            client = true;
-
-            final Ignite client = startGrid(SRVS);
+            final Ignite client = startClientGrid(SRVS);
 
             for (int i = 0; i < SRVS; i++) {
                 ClusterNode node = client.cluster().node(ignite(i).cluster().localNode().id());
@@ -210,10 +203,7 @@
 
         try {
             startGridsMultiThreaded(5);
-
-            client = true;
-
-            startGridsMultiThreaded(5, 5);
+            startClientGridsMultiThreaded(5, 5);
 
             for (int i = 0; i < 5; i++) {
                 log.info("Iteration: " + i);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessagesTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessagesTest.java
index c9352cd..5c30169 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessagesTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessagesTest.java
@@ -21,7 +21,6 @@
 import java.util.List;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.util.typedef.G;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -31,29 +30,14 @@
  *
  */
 public class IgniteIoTestMessagesTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
         startGrids(3);
 
-        client = true;
-
-        startGrid(3);
-
-        startGrid(4);
+        startClientGrid(3);
+        startClientGrid(4);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteVariousConnectionNumberTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteVariousConnectionNumberTest.java
index 4f5ed5d..85695bc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteVariousConnectionNumberTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/IgniteVariousConnectionNumberTest.java
@@ -45,9 +45,6 @@
     /** */
     private static Random rnd = new Random();
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -60,8 +57,6 @@
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setUsePairedConnections(rnd.nextBoolean());
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -82,10 +77,7 @@
     @Test
     public void testVariousConnectionNumber() throws Exception {
         startGridsMultiThreaded(3);
-
-        client = true;
-
-        startGridsMultiThreaded(3, 3);
+        startClientGridsMultiThreaded(3, 3);
 
         CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
 
@@ -105,11 +97,14 @@
 
             Ignite node = ignite(idx);
 
-            client = node.configuration().isClientMode();
+            boolean client = node.configuration().isClientMode();
 
             stopGrid(idx);
 
-            startGrid(idx);
+            if (client)
+                startClientGrid(idx);
+            else
+                startGrid(idx);
         }
     }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
index 7ab79bf..86d464b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
@@ -59,9 +59,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (igniteInstanceName.equals(getTestIgniteInstanceName(1)))
-            cfg.setClientMode(true);
-
         if (binaryMarshallerEnabled)
             cfg.setMarshaller(new BinaryMarshaller());
 
@@ -118,7 +115,7 @@
         System.setProperty(PREFER_IPV4, "true");
 
         for (int i = 0; i < 2; i++) {
-            Ignite g = startGrid(i);
+            Ignite g = i == 1 ? startClientGrid(i) : startGrid(i);
 
             assert "true".equals(g.cluster().localNode().attribute(PREFER_IPV4));
 
@@ -166,7 +163,7 @@
             System.setProperty(IGNITE_OPTIMIZED_MARSHALLER_USE_DEFAULT_SUID, second);
 
             try {
-                IgniteEx g = startGrid(1);
+                IgniteEx g = startClientGrid(1);
 
                 checkIsClientFlag(g);
 
@@ -228,7 +225,7 @@
                 System.clearProperty(IGNITE_BINARY_MARSHALLER_USE_STRING_SERIALIZATION_VER_2);
 
             try {
-                IgniteEx g = startGrid(1);
+                IgniteEx g = startClientGrid(1);
 
                 checkIsClientFlag(g);
 
@@ -319,7 +316,7 @@
                 System.clearProperty(prop);
 
             try {
-                IgniteEx g = startGrid(1);
+                IgniteEx g = startClientGrid(1);
 
                 checkIsClientFlag(g);
 
@@ -353,7 +350,7 @@
         mode = CONTINUOUS;
 
         try {
-            startGrid(1);
+            startClientGrid(1);
 
             fail();
         }
@@ -375,7 +372,7 @@
         p2pEnabled = true;
 
         try {
-            startGrid(1);
+            startClientGrid(1);
 
             fail();
         }
@@ -395,7 +392,7 @@
         System.setProperty(PREFER_IPV4, val);
 
         for (int i = 0; i < 2; i++) {
-            Ignite g = startGrid(i);
+            Ignite g = i == 1 ? startClientGrid(i) : startGrid(i);
 
             assert val.equals(g.cluster().localNode().attribute(PREFER_IPV4));
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteTopologyPrintFormatSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteTopologyPrintFormatSelfTest.java
index 5d96dc5..67ac530 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteTopologyPrintFormatSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteTopologyPrintFormatSelfTest.java
@@ -50,13 +50,8 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (igniteInstanceName.endsWith("client"))
-            cfg.setClientMode(true);
-
-        if (igniteInstanceName.endsWith("client_force_server")) {
-            cfg.setClientMode(true);
+        if (igniteInstanceName.endsWith("client_force_server"))
             ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
-        }
 
         return cfg;
     }
@@ -167,8 +162,8 @@
             setLogger(log, server);
 
             Ignite server1 = startGrid("server1");
-            Ignite client1 = startGrid("first client");
-            Ignite client2 = startGrid("second client");
+            Ignite client1 = startClientGrid("first client");
+            Ignite client2 = startClientGrid("second client");
 
             waitForDiscovery(server, server1, client1, client2);
         }
@@ -223,9 +218,9 @@
             setLogger(log, server);
 
             Ignite server1 = startGrid("server1");
-            Ignite client1 = startGrid("first client");
-            Ignite client2 = startGrid("second client");
-            Ignite forceServClnt3 = startGrid("third client_force_server");
+            Ignite client1 = startClientGrid("first client");
+            Ignite client2 = startClientGrid("second client");
+            Ignite forceServClnt3 = startClientGrid("third client_force_server");
 
             waitForDiscovery(server, server1, client1, client2, forceServClnt3);
         }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/metric/CacheMetricsAddRemoveTest.java b/modules/core/src/test/java/org/apache/ignite/internal/metric/CacheMetricsAddRemoveTest.java
index e55b459..aac2284 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/metric/CacheMetricsAddRemoveTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/metric/CacheMetricsAddRemoveTest.java
@@ -20,7 +20,6 @@
 import java.util.Arrays;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.internal.processors.metric.GridMetricManager;
 import org.apache.ignite.internal.processors.metric.MetricRegistry;
@@ -64,10 +63,7 @@
     @Override protected void beforeTestsStarted() throws Exception {
         startGridsMultiThreaded(2);
 
-        IgniteConfiguration clientCfg = getConfiguration("client")
-            .setClientMode(true);
-
-        startGrid(clientCfg);
+        startClientGrid(getConfiguration("client"));
     }
 
     /** */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java b/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
index 49cb8fa..a54912e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
@@ -140,7 +140,6 @@
         jmxSpi.setExportFilter(mgrp -> !mgrp.name().startsWith(FILTERED_PREFIX));
 
         cfg.setMetricExporterSpi(jmxSpi);
-        cfg.setClientMode(igniteInstanceName.startsWith("client"));
 
         return cfg;
     }
@@ -725,8 +724,8 @@
     /** */
     @Test
     public void testScanQuery() throws Exception {
-        try(IgniteEx client1 = startGrid("client-1");
-            IgniteEx client2 = startGrid("client-2")) {
+        try(IgniteEx client1 = startClientGrid("client-1");
+            IgniteEx client2 = startClientGrid("client-2")) {
 
             IgniteCache<Integer, Integer> cache1 = client1.createCache(
                 new CacheConfiguration<Integer, Integer>("cache1")
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java
index 283e447..2c85e89 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java
@@ -55,7 +55,6 @@
 import org.apache.ignite.configuration.ClientConfiguration;
 import org.apache.ignite.configuration.DataRegionConfiguration;
 import org.apache.ignite.configuration.DataStorageConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.client.thin.ProtocolVersion;
 import org.apache.ignite.internal.managers.systemview.walker.CachePagesListViewWalker;
@@ -125,15 +124,6 @@
     /** */
     public static final String TEST_TRANSFORMER = "TestTransformer";
 
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(igniteInstanceName.startsWith("client"));
-
-        return cfg;
-    }
-
     /** Tests work of {@link SystemView} for caches. */
     @Test
     public void testCachesView() throws Exception {
@@ -794,8 +784,8 @@
     public void testScanQuery() throws Exception {
         try(IgniteEx g0 = startGrid(0);
             IgniteEx g1 = startGrid(1);
-            IgniteEx client1 = startGrid("client-1");
-            IgniteEx client2 = startGrid("client-2")) {
+            IgniteEx client1 = startClientGrid("client-1");
+            IgniteEx client2 = startClientGrid("client-2")) {
 
             IgniteCache<Integer, Integer> cache1 = client1.createCache(
                 new CacheConfiguration<Integer, Integer>("cache1")
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
index ba6358c..5349ca7 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/affinity/GridAffinityProcessorAbstractSelfTest.java
@@ -64,8 +64,6 @@
 
             cfg.setCacheConfiguration(cacheCfg);
         }
-        else
-            cfg.setClientMode(true);
 
         return cfg;
     }
@@ -89,7 +87,7 @@
         withCache = false;
 
         for (int i = NODES_CNT; i < 2 * NODES_CNT; i++)
-            startGrid(i);
+            startClientGrid(i);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/authentication/AuthenticationOnNotActiveClusterTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/authentication/AuthenticationOnNotActiveClusterTest.java
index 0f0573f..859cb8f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/authentication/AuthenticationOnNotActiveClusterTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/authentication/AuthenticationOnNotActiveClusterTest.java
@@ -39,9 +39,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (getTestIgniteInstanceIndex(igniteInstanceName) == CLI_NODE)
-            cfg.setClientMode(true);
-
         cfg.setAuthenticationEnabled(true);
 
         cfg.setDataStorageConfiguration(new DataStorageConfiguration()
@@ -85,7 +82,8 @@
      */
     @Test
     public void testDefaultUser() throws Exception {
-        startGrids(NODES_COUNT);
+        startGrids(NODES_COUNT - 1);
+        startClientGrid(CLI_NODE);
 
         for (int i = 0; i < NODES_COUNT; ++i) {
             AuthorizationContext actx = grid(i).context().authentication().authenticate("ignite", "ignite");
@@ -100,7 +98,9 @@
      */
     @Test
     public void testNotDefaultUser() throws Exception {
-        startGrids(NODES_COUNT + 1);
+        startGrids(NODES_COUNT - 1);
+        startClientGrid(CLI_NODE);
+        startGrid(NODES_COUNT);
 
         grid(0).cluster().active(true);
 
@@ -115,7 +115,8 @@
 
         U.sleep(500);
 
-        startGrids(NODES_COUNT);
+        startGrids(NODES_COUNT - 1);
+        startClientGrid(CLI_NODE);
 
         for (int i = 0; i < NODES_COUNT; ++i) {
             for (int usrCnt = 0; usrCnt < 10; ++usrCnt) {
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/authentication/AuthenticationProcessorNodeRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/authentication/AuthenticationProcessorNodeRestartTest.java
index 040d68e..29bc9c6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/authentication/AuthenticationProcessorNodeRestartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/authentication/AuthenticationProcessorNodeRestartTest.java
@@ -54,9 +54,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (getTestIgniteInstanceIndex(igniteInstanceName) == CLI_NODE)
-            cfg.setClientMode(true);
-
         cfg.setAuthenticationEnabled(true);
 
         cfg.setDataStorageConfiguration(new DataStorageConfiguration()
@@ -87,7 +84,8 @@
 
         U.resolveWorkDirectory(U.defaultWorkDirectory(), "db", true);
 
-        startGrids(NODES_COUNT);
+        startGrids(NODES_COUNT - 1);
+        startClientGrid(CLI_NODE);
 
         grid(0).cluster().active(true);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/authentication/AuthenticationProcessorSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/authentication/AuthenticationProcessorSelfTest.java
index 3e7557a..5b18c16 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/authentication/AuthenticationProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/authentication/AuthenticationProcessorSelfTest.java
@@ -67,9 +67,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (getTestIgniteInstanceIndex(igniteInstanceName) == CLI_NODE)
-            cfg.setClientMode(true);
-
         cfg.setAuthenticationEnabled(true);
 
         cfg.setDataStorageConfiguration(new DataStorageConfiguration()
@@ -100,7 +97,8 @@
 
         U.resolveWorkDirectory(U.defaultWorkDirectory(), "db", true);
 
-        startGrids(NODES_COUNT);
+        startGrids(NODES_COUNT - 1);
+        startClientGrid(CLI_NODE);
 
         grid(0).cluster().active(true);
 
@@ -484,7 +482,8 @@
 
             stopAllGrids();
 
-            startGrids(NODES_COUNT);
+            startGrids(NODES_COUNT - 1);
+            startClientGrid(CLI_NODE);
 
             for (int i = 0; i < NODES_COUNT; ++i) {
                 for (int usrIdx = 0; usrIdx < NODES_COUNT; ++usrIdx) {
@@ -521,7 +520,8 @@
 
             U.sleep(500);
 
-            startGrids(NODES_COUNT);
+            startGrids(NODES_COUNT - 1);
+            startClientGrid(CLI_NODE);
 
             for (int i = 0; i < NODES_COUNT; ++i) {
                 AuthorizationContext  actx = grid(i).context().authentication()
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataRegistrationInsideEntryProcessorTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataRegistrationInsideEntryProcessorTest.java
index dd26e09..12812fd 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataRegistrationInsideEntryProcessorTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataRegistrationInsideEntryProcessorTest.java
@@ -118,8 +118,8 @@
             .setPartitionLossPolicy(READ_WRITE_SAFE)
         );
 
-        IgniteEx client1 = startGrid(getConfiguration().setIgniteInstanceName("client1").setClientMode(true));
-        IgniteEx client2 = startGrid(getConfiguration().setIgniteInstanceName("client2").setClientMode(true));
+        IgniteEx client1 = startClientGrid(getConfiguration().setIgniteInstanceName("client1"));
+        IgniteEx client2 = startClientGrid(getConfiguration().setIgniteInstanceName("client2"));
 
         AtomicBoolean stop = new AtomicBoolean();
         AtomicInteger keyCntr = new AtomicInteger();
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheAffinityCallSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheAffinityCallSelfTest.java
index e1b23c7..f75ff9c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheAffinityCallSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheAffinityCallSelfTest.java
@@ -64,11 +64,8 @@
         cfg.setFailoverSpi(failSpi);
 
         // Do not configure cache on client.
-        if (igniteInstanceName.equals(getTestIgniteInstanceName(SRVS))) {
-            cfg.setClientMode(true);
-
+        if (igniteInstanceName.equals(getTestIgniteInstanceName(SRVS)))
             ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
-        }
         else {
             CacheConfiguration ccfg = defaultCacheConfiguration();
             ccfg.setName(CACHE_NAME);
@@ -96,9 +93,9 @@
      */
     @Test
     public void testAffinityCallFromClientRestartNode() throws Exception {
-        startGridsMultiThreaded(SRVS + 1);
+        startGridsMultiThreaded(SRVS);
 
-        Ignite client = grid(SRVS);
+        Ignite client = startClientGrid(SRVS);
 
         assertTrue(client.configuration().isClientMode());
 
@@ -145,11 +142,11 @@
      */
     @Test
     public void testAffinityCallNoServerNode() throws Exception {
-        startGridsMultiThreaded(SRVS + 1);
+        startGridsMultiThreaded(SRVS);
 
         final Integer key = 1;
 
-        final IgniteEx client = grid(SRVS);
+        final IgniteEx client = startClientGrid(SRVS);
 
         assertTrue(client.configuration().isClientMode());
         assertNull(client.context().cache().cache(CACHE_NAME));
@@ -194,11 +191,11 @@
      */
     @Test
     public void testAffinityFailoverNoCacheOnClient() throws Exception {
-        startGridsMultiThreaded(SRVS + 1);
+        startGridsMultiThreaded(SRVS);
 
         final Integer key = 1;
 
-        final IgniteEx client = grid(SRVS);
+        final IgniteEx client = startClientGrid(SRVS);
 
         assertTrue(client.configuration().isClientMode());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheAtomicSingleMessageCountSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheAtomicSingleMessageCountSelfTest.java
index a53414e..5491d2b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheAtomicSingleMessageCountSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheAtomicSingleMessageCountSelfTest.java
@@ -48,9 +48,6 @@
  * Tests single / transform messages being sent between nodes in ATOMIC mode.
  */
 public class CacheAtomicSingleMessageCountSelfTest extends GridCommonAbstractTest {
-    /** Starting grid index. */
-    private int idx;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -62,12 +59,7 @@
         cCfg.setCacheMode(PARTITIONED);
         cCfg.setBackups(1);
         cCfg.setWriteSynchronizationMode(FULL_SYNC);
-
         cfg.setCacheConfiguration(cCfg);
-
-        if (idx++ == 0)
-            cfg.setClientMode(true);
-
         cfg.setCommunicationSpi(new TestCommunicationSpi());
 
         return cfg;
@@ -78,7 +70,8 @@
      */
     @Test
     public void testSingleMessage() throws Exception {
-        startGrids(2);
+        startClientGrid(0);
+        startGrid(1);
 
         try {
             awaitPartitionMapExchange();
@@ -111,7 +104,8 @@
      */
     @Test
     public void testSingleTransformMessage() throws Exception {
-        startGrids(2);
+        startClientGrid(0);
+        startGrid(1);
 
         int cacheId = ((IgniteKernal)grid(0)).internalCache(DEFAULT_CACHE_NAME).context().cacheId();
 
@@ -154,7 +148,8 @@
      */
     @Test
     public void testSingleFilterMessage() throws Exception {
-        startGrids(2);
+        startClientGrid(0);
+        startGrid(1);
 
         try {
             awaitPartitionMapExchange();
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheClientStoreSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheClientStoreSelfTest.java
index 52d6d85..1581882 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheClientStoreSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheClientStoreSelfTest.java
@@ -74,9 +74,6 @@
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         boolean client = igniteInstanceName != null && igniteInstanceName.startsWith("client");
-
-        cfg.setClientMode(client);
-
         if (client)
             cfg.setDataStorageConfiguration(new DataStorageConfiguration());
 
@@ -119,7 +116,7 @@
 
         startGrids(2);
 
-        Ignite ignite = startGrid("client-1");
+        Ignite ignite = startClientGrid("client-1");
 
         IgniteCache<Object, Object> cache = ignite.cache(CACHE_NAME);
 
@@ -153,7 +150,7 @@
 
         factory = new Factory2();
 
-        startGrid("client-1");
+        startClientGrid("client-1");
     }
 
     /**
@@ -171,13 +168,13 @@
 
         System.setProperty(IGNITE_SKIP_CONFIGURATION_CONSISTENCY_CHECK, "true");
 
-        startGrid("client-1");
+        startClientGrid("client-1");
 
         factory = new Factory1();
 
         System.clearProperty(IGNITE_SKIP_CONFIGURATION_CONSISTENCY_CHECK);
 
-        startGrid("client-2");
+        startClientGrid("client-2");
     }
 
     /**
@@ -214,7 +211,7 @@
     private void doTestNoStore() throws Exception {
         factory = null;
 
-        Ignite ignite = startGrid("client-1");
+        Ignite ignite = startClientGrid("client-1");
 
         IgniteCache<Object, Object> cache = ignite.cache(CACHE_NAME);
 
@@ -247,7 +244,7 @@
 
         startGrids(2);
 
-        Ignite client = startGrid("client-1");
+        Ignite client = startClientGrid("client-1");
 
         IgniteCache<Object, Object> cache = client.cache(CACHE_NAME);
 
@@ -273,7 +270,7 @@
 
         startGrids(2);
 
-        Ignite client = startGrid("client-1");
+        Ignite client = startClientGrid("client-1");
 
         IgniteCache cache = grid(0).cache(CACHE_NAME);
 
@@ -296,7 +293,7 @@
 
         startGrids(2);
 
-        Ignite client = startGrid("client-1");
+        Ignite client = startClientGrid("client-1");
 
         IgniteCache cache = client.cache(CACHE_NAME);
 
@@ -320,7 +317,7 @@
 
         startGrids(2);
 
-        Ignite client = startGrid("client-1");
+        Ignite client = startClientGrid("client-1");
 
         IgniteCache cache = client.cache(CACHE_NAME);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConcurrentReadThroughTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConcurrentReadThroughTest.java
index 185cc02..c429ef3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConcurrentReadThroughTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConcurrentReadThroughTest.java
@@ -45,9 +45,6 @@
     private static final int SYS_THREADS = 16;
 
     /** */
-    private static boolean client;
-
-    /** */
     @Before
     public void beforeCacheConcurrentReadThroughTest() {
         MvccFeatureChecker.skipIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
@@ -57,9 +54,7 @@
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setClientMode(client);
-
-        if (!client) {
+        if (!cfg.isClientMode()) {
             cfg.setPublicThreadPoolSize(SYS_THREADS);
             cfg.setSystemThreadPoolSize(SYS_THREADS);
         }
@@ -81,9 +76,7 @@
     public void testConcurrentReadThrough() throws Exception {
         startGrid(0);
 
-        client = true;
-
-        Ignite client = startGrid(1);
+        Ignite client = startClientGrid(1);
 
         assertTrue(client.configuration().isClientMode());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationSerializationOnDiscoveryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationSerializationOnDiscoveryTest.java
index 371681c..a968eea 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationSerializationOnDiscoveryTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationSerializationOnDiscoveryTest.java
@@ -55,9 +55,6 @@
         return params;
     }
 
-    /** Client mode. */
-    private boolean clientMode;
-
     /** Caches. */
     private CacheConfiguration[] caches;
 
@@ -71,8 +68,6 @@
 
         cfg.setConsistentId(igniteInstanceName);
 
-        cfg.setClientMode(clientMode);
-
         if (caches != null)
             cfg.setCacheConfiguration(caches);
 
@@ -249,11 +244,8 @@
         startGrid(2);
 
         caches = null;
-        clientMode = true;
 
-        IgniteEx clnt = startGrid(3);
-
-        clientMode = false;
+        IgniteEx clnt = startClientGrid(3);
 
         if (persistenceEnabled)
             clnt.cluster().active(true);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationSerializationOnExchangeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationSerializationOnExchangeTest.java
index 4b782fc..af6d89f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationSerializationOnExchangeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConfigurationSerializationOnExchangeTest.java
@@ -56,9 +56,6 @@
         return params;
     }
 
-    /** Client mode. */
-    private boolean clientMode;
-
     /** Persistence enabled. */
     @Parameterized.Parameter
     public boolean persistenceEnabled;
@@ -69,8 +66,6 @@
 
         cfg.setConsistentId(igniteInstanceName);
 
-        cfg.setClientMode(clientMode);
-
         if (persistenceEnabled)
             cfg.setDataStorageConfiguration(new DataStorageConfiguration()
                 .setDefaultDataRegionConfiguration(
@@ -122,9 +117,7 @@
         if (persistenceEnabled)
             crd.cluster().active(true);
 
-        clientMode = true;
-
-        startGrid(3);
+        startClientGrid(3);
 
         crd.getOrCreateCaches(Lists.newArrayList(
             onlyOnNode(0),
@@ -153,9 +146,7 @@
         if (persistenceEnabled)
             otherNode.cluster().active(true);
 
-        clientMode = true;
-
-        startGrid(3);
+        startClientGrid(3);
 
         otherNode.getOrCreateCaches(Lists.newArrayList(
             onlyOnNode(0),
@@ -182,9 +173,7 @@
         if (persistenceEnabled)
             crd.cluster().active(true);
 
-        clientMode = true;
-
-        IgniteEx clientNode = startGrid(3);
+        IgniteEx clientNode = startClientGrid(3);
 
         clientNode.getOrCreateCaches(Lists.newArrayList(
             onlyOnNode(0),
@@ -205,15 +194,11 @@
      * Restart nodes and check caches.
      */
     private void restartNodesAndCheck() throws Exception {
-        clientMode = false;
-
         stopAllGrids();
 
         startGridsMultiThreaded(3);
 
-        clientMode = true;
-
-        startGrid(3);
+        startClientGrid(3);
 
         awaitPartitionMapExchange();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConnectionLeakStoreTxTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConnectionLeakStoreTxTest.java
index 5e60caf..058e750 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConnectionLeakStoreTxTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheConnectionLeakStoreTxTest.java
@@ -31,7 +31,6 @@
 import org.apache.ignite.cache.store.CacheStoreSession;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.resources.CacheStoreSessionResource;
 import org.apache.ignite.resources.IgniteInstanceResource;
 import org.apache.ignite.testframework.junits.cache.TestCacheSession;
@@ -58,27 +57,13 @@
     private static final int CLIENT_NODE = 1;
 
     /** */
-    private static boolean client;
-
-    /** */
     private static volatile boolean isLoadFromStore;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         startGrid(0);
 
-        client = true;
-
-        startGrid(CLIENT_NODE);
+        startClientGrid(CLIENT_NODE);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheEnumOperationsAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheEnumOperationsAbstractTest.java
index 9fa620a..517da04 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheEnumOperationsAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheEnumOperationsAbstractTest.java
@@ -24,7 +24,6 @@
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.internal.binary.BinaryEnumObjectImpl;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
@@ -43,18 +42,6 @@
  *
  */
 public abstract class CacheEnumOperationsAbstractTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /**
      * @return Number of nodes.
      */
@@ -66,10 +53,7 @@
 
         if (!singleNode()) {
             startGridsMultiThreaded(4);
-
-            client = true;
-
-            startGridsMultiThreaded(4, 2);
+            startClientGridsMultiThreaded(4, 2);
         }
         else
             startGrid(0);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheEventWithTxLabelTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheEventWithTxLabelTest.java
index 1165d93..7bcd7f7 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheEventWithTxLabelTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheEventWithTxLabelTest.java
@@ -32,7 +32,6 @@
 import org.apache.ignite.cache.CacheEntryProcessor;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.events.CacheEvent;
 import org.apache.ignite.events.Event;
 import org.apache.ignite.internal.IgniteKernal;
@@ -71,9 +70,6 @@
     /** Cache name. */
     public static final String CACHE_NAME = "cache";
 
-    /** Client or server mode to start Ignite instance. */
-    private static boolean client;
-
     /** Key related to primary node. */
     private Integer primaryKey = 0;
 
@@ -102,23 +98,11 @@
     private static CacheEntryProcessor entryProcessor = (CacheEntryProcessor)(entry, objects) -> entry.getValue();
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        return super.getConfiguration(igniteInstanceName).setClientMode(client);
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        client = false;
-
         startGridsMultiThreaded(SRVS);
-
-        client = true;
-
-        startGridsMultiThreaded(SRVS, CLIENTS);
-
-        client = false;
+        startClientGridsMultiThreaded(SRVS, CLIENTS);
 
         waitForDiscovery(primary(), backup1(), backup2(), client());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheExchangeMessageDuplicatedStateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheExchangeMessageDuplicatedStateTest.java
index 1f1bc07..6ed87ef 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheExchangeMessageDuplicatedStateTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheExchangeMessageDuplicatedStateTest.java
@@ -64,17 +64,12 @@
     /** */
     private static final String AFF4_FILTER_CACHE2 = "a4c2";
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setUserAttributes(Collections.singletonMap("name", igniteInstanceName));
 
-        cfg.setClientMode(client);
-
         TestRecordingCommunicationSpi commSpi = new TestRecordingCommunicationSpi();
 
         commSpi.record(new IgniteBiPredicate<ClusterNode, Message>() {
@@ -156,9 +151,7 @@
             checkMessages(0, true);
         }
 
-        client = true;
-
-        startGrid(SRVS);
+        startClientGrid(SRVS);
 
         awaitPartitionMapExchange();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheFutureExceptionSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheFutureExceptionSelfTest.java
index 1a5fc1c..b7d4b55 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheFutureExceptionSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheFutureExceptionSelfTest.java
@@ -49,9 +49,6 @@
 
         cfg.setIgniteInstanceName(igniteInstanceName);
 
-        if (igniteInstanceName.equals(getTestIgniteInstanceName(1)))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -67,7 +64,7 @@
     public void testAsyncCacheFuture() throws Exception {
         startGrid(0);
 
-        startGrid(1);
+        startClientGrid(1);
 
         testGet(false, false);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGetRemoveSkipStoreTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGetRemoveSkipStoreTest.java
index 5d010bc..efd0038 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGetRemoveSkipStoreTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGetRemoveSkipStoreTest.java
@@ -29,7 +29,6 @@
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.store.CacheStoreAdapter;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteFuture;
@@ -51,16 +50,6 @@
     /** Read semaphore to delay read-through. */
     private static volatile Semaphore readSemaphore;
 
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        if (igniteInstanceName.contains("client"))
-            cfg.setClientMode(true);
-
-        return cfg;
-    }
-
     /**
      * Creates cache configuration with the given atomicity mode and number of backups.
      *
@@ -107,7 +96,7 @@
     @Override protected void beforeTestsStarted() throws Exception {
         startGrids(GRID_CNT);
 
-        startGrid("client");
+        startClientGrid("client");
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGetsDistributionAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGetsDistributionAbstractTest.java
index cf2ff1b..8d233c3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGetsDistributionAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGetsDistributionAbstractTest.java
@@ -68,11 +68,7 @@
 
         startGridsMultiThreaded(gridCount());
 
-        IgniteConfiguration clientCfg = getConfiguration(CLIENT_NAME);
-
-        clientCfg.setClientMode(true);
-
-        startGrid(clientCfg);
+        startClientGrid(getConfiguration(CLIENT_NAME));
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterRandomOperationsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterRandomOperationsTest.java
index 3f344ef..c9dcfb7 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterRandomOperationsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterRandomOperationsTest.java
@@ -45,7 +45,6 @@
 import org.apache.ignite.cache.store.CacheStoreAdapter;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.util.tostring.GridToStringInclude;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -86,9 +85,6 @@
     public static final int ITERATION_CNT = 100;
 
     /** */
-    private boolean client;
-
-    /** */
     private static ConcurrentMap<UUID, BlockingQueue<Cache.Entry<TestKey, TestValue>>>
         afterPutEvts = new ConcurrentHashMap<>();
 
@@ -97,23 +93,12 @@
         afterRmvEvts = new ConcurrentHashMap<>();
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
         startGridsMultiThreaded(NODES - 1);
 
-        client = true;
-
-        startGrid(NODES - 1);
+        startClientGrid(NODES - 1);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsCacheSizeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsCacheSizeTest.java
index 5a682da..546a23f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsCacheSizeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsCacheSizeTest.java
@@ -47,9 +47,6 @@
     /** Entities cnt. */
     private static final int ENTITIES_CNT = 100;
 
-    /** Client mode. */
-    private boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -65,9 +62,6 @@
             .setBackups(1)
             .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL));
 
-        if (clientMode)
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -78,9 +72,7 @@
 
     @Test
     public void testCacheSize() throws Exception {
-        clientMode = true;
-
-        startGrid(GRID_CNT);
+        startClientGrid(GRID_CNT);
 
         IgniteCache cacheNode0 = grid(0).cache(DEFAULT_CACHE_NAME);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNearReaderUpdateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNearReaderUpdateTest.java
index 0815ae1..80e80ef 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNearReaderUpdateTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNearReaderUpdateTest.java
@@ -62,9 +62,6 @@
  */
 public class CacheNearReaderUpdateTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private static final int SRVS = 4;
 
     /** */
@@ -81,8 +78,6 @@
 
         cfg.setPeerClassLoadingEnabled(false);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -97,12 +92,7 @@
         super.beforeTestsStarted();
 
         startGridsMultiThreaded(SRVS);
-
-        client = true;
-
-        startGridsMultiThreaded(SRVS, CLIENTS);
-
-        client = false;
+        startClientGridsMultiThreaded(SRVS, CLIENTS);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNoAffinityExchangeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNoAffinityExchangeTest.java
index 467ebea..bd3fead 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNoAffinityExchangeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNoAffinityExchangeTest.java
@@ -63,9 +63,6 @@
  */
 public class CacheNoAffinityExchangeTest extends GridCommonAbstractTest {
     /** */
-    private volatile boolean startClient;
-
-    /** */
     private volatile boolean startClientCaches;
 
     /** Tx cache name from client static configuration. */
@@ -98,9 +95,7 @@
         cfg.setDataStorageConfiguration(new DataStorageConfiguration().setDefaultDataRegionConfiguration(
             new DataRegionConfiguration().setMaxSize(200 * 1024 * 1024)));
 
-        if (startClient) {
-            cfg.setClientMode(true);
-
+        if (cfg.isClientMode()) {
             // It is necessary to ensure that client always connects to grid(0).
             ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(CLIENT_IP_FINDER);
 
@@ -123,8 +118,6 @@
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
 
-        startClient = false;
-
         startClientCaches = false;
 
         super.afterTest();
@@ -155,9 +148,7 @@
 
         discoSpi.latch = latch;
 
-        startClient = true;
-
-        startGrid(4);
+        startClientGrid(4);
 
         assertTrue(GridTestUtils.waitForCondition(() ->
                 new AffinityTopologyVersion(5, 0).equals(grid(0).context().discovery().topologyVersionEx()) &&
@@ -207,9 +198,7 @@
             new AffinityTopologyVersion(4, 3).equals(grid(3).context().discovery().topologyVersionEx()),
             5_000));
 
-        startClient = true;
-
-        startGrid(4);
+        startClientGrid(4);
 
         TestDiscoverySpi discoSpi = (TestDiscoverySpi)grid(2).context().discovery().getInjectedDiscoverySpi();
 
@@ -266,11 +255,7 @@
             IgniteCache<Integer, Integer> txCache = ig.createCache(new CacheConfiguration<Integer, Integer>()
                 .setName("tx").setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL).setCacheMode(CacheMode.REPLICATED));
 
-            startClient = true;
-
-            Ignite client = startGrid("client");
-
-            startClient = false;
+            Ignite client = startClientGrid("client");
 
             stopGrid(1);
             stopGrid(2);
@@ -336,9 +321,7 @@
 
         ig.cluster().active(true);
 
-        startClient = true;
-
-        IgniteEx stableClient = startGrid(2);
+        IgniteEx stableClient = startClientGrid(2);
 
         IgniteCache<Integer, Integer> stableClientTxCacheProxy = stableClient.createCache(
             new CacheConfiguration<Integer, Integer>()
@@ -353,7 +336,7 @@
             @Override public void run() {
                 for (int i = 0; i < 10; i++) {
                     try {
-                        startGrid(3);
+                        startClientGrid(3);
 
                         stopGrid(3);
                     }
@@ -407,11 +390,9 @@
 
         discoSpi.latch = latch;
 
-        startClient = true;
-
         startClientCaches = true;
 
-        Ignite client = startGrid(2);
+        Ignite client = startClientGrid(2);
 
         assertTrue(GridTestUtils.waitForCondition(() -> {
                 AffinityTopologyVersion topVer0 = grid(0).context().discovery().topologyVersionEx();
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheOptimisticTransactionsWithFilterTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheOptimisticTransactionsWithFilterTest.java
index 143e721..5e34f63 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheOptimisticTransactionsWithFilterTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheOptimisticTransactionsWithFilterTest.java
@@ -24,7 +24,6 @@
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.testframework.GridTestUtils;
@@ -46,33 +45,17 @@
  */
 public class CacheOptimisticTransactionsWithFilterTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private static final TransactionIsolation[] ISOLATIONS = {REPEATABLE_READ, READ_COMMITTED};
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
         startGrids(serversNumber());
 
-        client = true;
+        startClientGrid(serversNumber());
 
-        startGrid(serversNumber());
-
-        startGrid(serversNumber() + 1);
-
-        client = false;
+        startClientGrid(serversNumber() + 1);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CachePutEventListenerErrorSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CachePutEventListenerErrorSelfTest.java
index 4847a87..ec24660 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CachePutEventListenerErrorSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CachePutEventListenerErrorSelfTest.java
@@ -21,7 +21,6 @@
 import javax.cache.CacheException;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.CacheConfiguration;
@@ -56,28 +55,21 @@
 
         startGridsMultiThreaded(3);
 
-        Ignition.setClientMode(true);
+        Ignite ignite = startClientGrid("client");
 
-        try {
-            Ignite ignite = startGrid("client");
-
-            ignite.events().remoteListen(
-                new IgniteBiPredicate<UUID, Event>() {
-                    @Override public boolean apply(UUID uuid, Event evt) {
-                        return true;
-                    }
-                },
-                new IgnitePredicate<Event>() {
-                    @Override public boolean apply(Event evt) {
-                        throw new NoClassDefFoundError("XXX");
-                    }
-                },
-                EventType.EVT_CACHE_OBJECT_PUT
-            );
-        }
-        finally {
-            Ignition.setClientMode(false);
-        }
+        ignite.events().remoteListen(
+            new IgniteBiPredicate<UUID, Event>() {
+                @Override public boolean apply(UUID uuid, Event evt) {
+                    return true;
+                }
+            },
+            new IgnitePredicate<Event>() {
+                @Override public boolean apply(Event evt) {
+                    throw new NoClassDefFoundError("XXX");
+                }
+            },
+            EventType.EVT_CACHE_OBJECT_PUT
+        );
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
index 555c85f..4a67210 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
@@ -105,9 +105,6 @@
     /** */
     private static final int CLIENTS = 3;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -116,8 +113,6 @@
 
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -126,12 +121,7 @@
         super.beforeTestsStarted();
 
         startGridsMultiThreaded(SRVS);
-
-        client = true;
-
-        startGridsMultiThreaded(SRVS, CLIENTS);
-
-        client = false;
+        startClientGridsMultiThreaded(SRVS, CLIENTS);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreTxPutAllMultiNodeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreTxPutAllMultiNodeTest.java
index 66b3768..b0da5ec 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreTxPutAllMultiNodeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreTxPutAllMultiNodeTest.java
@@ -34,7 +34,6 @@
 import org.apache.ignite.cache.store.CacheStoreAdapter;
 import org.apache.ignite.cache.store.CacheStoreSession;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
 import org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager;
@@ -62,23 +61,13 @@
     private IgniteCache<Integer, String> cache;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(final String gridName) throws Exception {
-        final IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        if (gridName.contains("client"))
-            cfg.setClientMode(true);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
         MvccFeatureChecker.skipIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
 
         startGrid(1);
         startGrid(2);
 
-        client = startGrid("client");
+        client = startClientGrid("client");
 
         cache = client.getOrCreateCache(cacheConfiguration());
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
index 25a9cc6..5f86967 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeAbstractTest.java
@@ -55,9 +55,6 @@
  */
 public abstract class CacheStoreUsageMultinodeAbstractTest extends GridCommonAbstractTest {
     /** */
-    protected boolean client;
-
-    /** */
     protected boolean cache;
 
     /** */
@@ -79,8 +76,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(client);
-
         if (cache)
             cfg.setCacheConfiguration(cacheConfiguration());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartAbstractTest.java
index bd80d3d..c9a61d3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeDynamicStartAbstractTest.java
@@ -33,9 +33,7 @@
 
         startGridsMultiThreaded(3);
 
-        client = true;
-
-        startGrid(3);
+        startClientGrid(3);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartAbstractTest.java
index 6ab128b..cc9ce08 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheStoreUsageMultinodeStaticStartAbstractTest.java
@@ -148,11 +148,9 @@
 
             startGridsMultiThreaded(3);
 
-            client = true;
-
             cacheStore = clientStore;
 
-            startGrid(3);
+            startClientGrid(3);
 
             checkStoreUpdate(clientStore);
         }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheTxFastFinishTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheTxFastFinishTest.java
index 85e0991..64083eb 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheTxFastFinishTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheTxFastFinishTest.java
@@ -50,9 +50,6 @@
  */
 public class CacheTxFastFinishTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private boolean nearCache;
 
     /** {@inheritDoc} */
@@ -71,8 +68,6 @@
 
         cfg.setCacheConfiguration(ccfg);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -111,15 +106,11 @@
 
         fastFinishTx(ignite(0));
 
-        client = true;
-
-        startGrid(1);
+        startClientGrid(1);
 
         for (int i = 0; i < 2; i++)
             fastFinishTx(ignite(i));
 
-        client = false;
-
         startGrid(2);
 
         for (int i = 0; i < 3; i++)
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientFastReplyCoordinatorFailureTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientFastReplyCoordinatorFailureTest.java
index a505ba7..6616b96 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientFastReplyCoordinatorFailureTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientFastReplyCoordinatorFailureTest.java
@@ -55,9 +55,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (igniteInstanceName.contains("client"))
-            cfg.setClientMode(true);
-
         cfg.setFailureHandler(new StopNodeOrHaltFailureHandler());
 
         cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(IP_FINDER));
@@ -123,7 +120,7 @@
         awaitPartitionMapExchange();
 
         // Client join will be hanging on local join exchange.
-        IgniteInternalFuture<Ignite> startFut = GridTestUtils.runAsync(() -> startGrid("client-1"));
+        IgniteInternalFuture<Ignite> startFut = GridTestUtils.runAsync(() -> startClientGrid("client-1"));
 
         clientSingleMesssageLatch.await();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientSlowDiscoveryAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientSlowDiscoveryAbstractTest.java
index 24555b5..4537c7d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientSlowDiscoveryAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientSlowDiscoveryAbstractTest.java
@@ -50,9 +50,6 @@
         .setBackups(1)
         .setAffinity(new RendezvousAffinityFunction(false, 64));
 
-    /** Client mode. */
-    protected boolean clientMode;
-
     /** Communication SPI supplier. */
     protected Supplier<CommunicationSpi> communicationSpiSupplier = TestRecordingCommunicationSpi::new;
 
@@ -67,7 +64,6 @@
         cfg.setCacheConfiguration(ccfg);
         cfg.setCommunicationSpi(communicationSpiSupplier.get());
         cfg.setDiscoverySpi(discoverySpiSupplier.get());
-        cfg.setClientMode(clientMode);
 
         return cfg;
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientSlowDiscoveryTopologyChangeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientSlowDiscoveryTopologyChangeTest.java
index 1a13b15..0588432 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientSlowDiscoveryTopologyChangeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientSlowDiscoveryTopologyChangeTest.java
@@ -75,8 +75,6 @@
         for (int k = 0; k < 64; k++)
             crd.cache(CACHE_NAME).put(k, k);
 
-        clientMode = true;
-
         TestRecordingCommunicationSpi clientCommSpi = new TestRecordingCommunicationSpi();
 
         // Delay client join process.
@@ -114,7 +112,7 @@
 
         discoverySpiSupplier = () -> clientDiscoSpi;
 
-        IgniteInternalFuture<IgniteEx> clientStartFut = GridTestUtils.runAsync(() -> startGrid(3));
+        IgniteInternalFuture<IgniteEx> clientStartFut = GridTestUtils.runAsync(() -> startClientGrid(3));
 
         // Wait till client node starts join process.
         clientCommSpi.waitForBlocked();
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientSlowDiscoveryTransactionRemapTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientSlowDiscoveryTransactionRemapTest.java
index 51a72bc..b09ea99 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientSlowDiscoveryTransactionRemapTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClientSlowDiscoveryTransactionRemapTest.java
@@ -371,8 +371,6 @@
     /** */
     @Before
     public void before() throws Exception {
-        clientMode = true;
-
         NodeJoinInterceptingDiscoverySpi clientDiscoSpi = new NodeJoinInterceptingDiscoverySpi();
 
         clientDiscoSpiBlock = new CountDownLatch(1);
@@ -385,14 +383,14 @@
 
         discoverySpiSupplier = () -> clientDiscoSpi;
 
-        clnt = startGrid(1);
+        clnt = startClientGrid(1);
 
         for (int k = 0; k < 64; k++)
             clnt.cache(CACHE_NAME).put(k, 0);
 
         discoverySpiSupplier = TcpDiscoverySpi::new;
 
-        startGrid(2);
+        startClientGrid(2);
     }
 
     /** */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CrossCacheLockTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CrossCacheLockTest.java
index b83408c..c9f7a97 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CrossCacheLockTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CrossCacheLockTest.java
@@ -52,9 +52,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (igniteInstanceName.equals(getTestIgniteInstanceName(GRID_CNT - 1)))
-            cfg.setClientMode(true);
-
         CacheConfiguration ccfg1 = new CacheConfiguration(DEFAULT_CACHE_NAME);
         ccfg1.setName(CACHE1);
         ccfg1.setBackups(1);
@@ -75,7 +72,7 @@
 
         startGridsMultiThreaded(GRID_CNT - 1);
 
-        startGrid(GRID_CNT - 1);
+        startClientGrid(GRID_CNT - 1);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CrossCacheTxRandomOperationsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CrossCacheTxRandomOperationsTest.java
index 48250e7..0df1743 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CrossCacheTxRandomOperationsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CrossCacheTxRandomOperationsTest.java
@@ -32,7 +32,6 @@
 import org.apache.ignite.cache.CacheWriteSynchronizationMode;
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.testframework.MvccFeatureChecker;
@@ -71,16 +70,6 @@
     private static final int KEY_RANGE = 1000;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        if (igniteInstanceName.equals(getTestIgniteInstanceName(GRID_CNT - 1)))
-            cfg.setClientMode(true);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected long getTestTimeout() {
         return 6 * 60 * 1000;
     }
@@ -98,7 +87,7 @@
 
         startGridsMultiThreaded(GRID_CNT - 1);
 
-        startGrid(GRID_CNT - 1);
+        startClientGrid(GRID_CNT - 1);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/EntryVersionConsistencyReadThroughTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/EntryVersionConsistencyReadThroughTest.java
index 3876eff..dfdb96d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/EntryVersionConsistencyReadThroughTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/EntryVersionConsistencyReadThroughTest.java
@@ -35,7 +35,6 @@
 import org.apache.ignite.cache.store.CacheStoreAdapter;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
 import org.apache.ignite.testframework.MvccFeatureChecker;
@@ -56,18 +55,6 @@
     /** */
     private static final int NODES_CNT = 5;
 
-    /** */
-    private boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /**
      * @param atomicityMode Atomicity mode.
      * @return Cache configuration.
@@ -98,9 +85,7 @@
 
         startGridsMultiThreaded(NODES_CNT - 1);
 
-        client = true;
-
-        startGrid(NODES_CNT - 1);
+        startClientGrid(NODES_CNT - 1);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicEntryProcessorDeploymentSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicEntryProcessorDeploymentSelfTest.java
index 807727c..b286596 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicEntryProcessorDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicEntryProcessorDeploymentSelfTest.java
@@ -46,22 +46,15 @@
     /** */
     protected DeploymentMode depMode;
 
-    /** */
-    protected boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(clientMode);
-
-        if (clientMode)
+        if (cfg.isClientMode())
             cfg.setClassLoader(getExternalClassLoader());
 
         cfg.setDeploymentMode(depMode);
-
         cfg.setCacheConfiguration(cacheConfiguration());
-
         cfg.setConnectorConfiguration(null);
 
         return cfg;
@@ -149,11 +142,8 @@
      */
     private void doTestInvoke() throws Exception {
         try {
-            clientMode = false;
             startGrid(0);
-
-            clientMode = true;
-            startGrid(1);
+            startClientGrid(1);
 
             Class procCls = grid(1).configuration().getClassLoader().loadClass(getEntryProcessor());
             Class valCls = grid(1).configuration().getClassLoader().loadClass(TEST_VALUE);
@@ -182,11 +172,8 @@
      */
     private void doTestInvokeAll() throws Exception {
         try {
-            clientMode = false;
             startGrid(0);
-
-            clientMode = true;
-            startGrid(1);
+            startClientGrid(1);
 
             Class procCls = grid(1).configuration().getClassLoader().loadClass(getEntryProcessor());
             Class valCls = grid(1).configuration().getClassLoader().loadClass(TEST_VALUE);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicMessageCountSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
index f60a6ae..b6598a7 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicMessageCountSelfTest.java
@@ -96,7 +96,6 @@
      * @throws Exception If failed.
      */
     protected void checkMessages(boolean clientMode) throws Exception {
-
         client = clientMode;
 
         startGrids(4);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearSelfTest.java
index 469d28a..53210eb 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearSelfTest.java
@@ -21,7 +21,6 @@
 import java.util.Set;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.CachePeekMode;
 import org.apache.ignite.configuration.CacheConfiguration;
@@ -40,16 +39,8 @@
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         startGridsMultiThreaded(3);
-
-        Ignition.setClientMode(true);
-
-        try {
-            startGrid("client1");
-            startGrid("client2");
-        }
-        finally {
-            Ignition.setClientMode(false);
-        }
+        startClientGrid("client1");
+        startClientGrid("client2");
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClientTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClientTest.java
index eb1352c..4fc155b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClientTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentGetCacheOnClientTest.java
@@ -43,14 +43,8 @@
         Ignite node1 = startGrid("node1", node1cfg);
         Ignite node2 = startGrid("node2", node2cfg);
 
-        IgniteConfiguration clientCfg1 = getConfiguration("client");
-        clientCfg1.setClientMode(true);
-
-        IgniteConfiguration clientCfg2 = getConfiguration("client");
-        clientCfg2.setClientMode(true);
-
-        final IgniteEx client1 = (IgniteEx)startGrid("client1", clientCfg1);
-        final IgniteEx client2 = (IgniteEx)startGrid("client2", clientCfg2);
+        final IgniteEx client1 = startClientGrid("client1", getConfiguration("client"));
+        final IgniteEx client2 = startClientGrid("client2", getConfiguration("client"));
 
         final CountDownLatch startLatch = new CountDownLatch(1);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConfigurationValidationSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConfigurationValidationSelfTest.java
index eca9b45..b57c208 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConfigurationValidationSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConfigurationValidationSelfTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.processors.cache;
 
+import java.util.Collection;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
 import org.apache.ignite.configuration.CacheConfiguration;
@@ -25,9 +26,9 @@
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
 
-import java.util.Collection;
-
-import static org.apache.ignite.cache.CacheMode.*;
+import static org.apache.ignite.cache.CacheMode.LOCAL;
+import static org.apache.ignite.cache.CacheMode.PARTITIONED;
+import static org.apache.ignite.cache.CacheMode.REPLICATED;
 import static org.apache.ignite.cache.CacheRebalanceMode.ASYNC;
 import static org.apache.ignite.cache.CacheRebalanceMode.SYNC;
 import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
@@ -37,9 +38,6 @@
  */
 public class GridCacheConfigurationValidationSelfTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private static final String WRONG_PRELOAD_MODE_IGNITE_INSTANCE_NAME = "preloadModeCheckFails";
 
     /** */
@@ -123,9 +121,7 @@
             cfg.setCacheConfiguration(dfltCacheCfg, dfltCacheCfg);
         else {
             // Normal configuration.
-            if (client)
-                cfg.setClientMode(true);
-            else
+            if (!cfg.isClientMode())
                 cfg.setCacheConfiguration(dfltCacheCfg, namedCacheCfg, localCacheCfg);
         }
 
@@ -207,9 +203,7 @@
                         || name.equals(CACHE_NAME_WITH_SPECIAL_CHARACTERS_REPLICATED)
                         || DEFAULT_CACHE_NAME.equals(name));
 
-            client = true;
-
-            Ignite client = startGrid(2);
+            Ignite client = startClientGrid(2);
 
             names = client.cacheNames();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLongRunningTransactionDiagnosticsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLongRunningTransactionDiagnosticsTest.java
index 196a6ad..79c70f2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLongRunningTransactionDiagnosticsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheLongRunningTransactionDiagnosticsTest.java
@@ -64,9 +64,6 @@
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
 
         boolean isClient = "client".equals(igniteInstanceName);
-
-        cfg.setClientMode(isClient);
-
         if (!isClient) {
             CacheConfiguration ccfg = new CacheConfiguration(CACHE_NAME);
 
@@ -164,7 +161,7 @@
 
         final int val = 0;
 
-        final IgniteEx client = startGrid("client");
+        final IgniteEx client = startClientGrid("client");
 
         assertTrue(client.configuration().isClientMode());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMixedPartitionExchangeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMixedPartitionExchangeSelfTest.java
index 4e3f988..d0f4717 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMixedPartitionExchangeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMixedPartitionExchangeSelfTest.java
@@ -58,8 +58,6 @@
 
         if (cache)
             cfg.setCacheConfiguration(cacheConfiguration());
-        else
-            cfg.setClientMode(true);
 
         return cfg;
     }
@@ -130,7 +128,7 @@
 
             for (int r = 0; r < 3; r++) {
                 for (int i = 4; i < 8; i++)
-                    startGrid(i);
+                    startClientGrid(i);
 
                 for (int i = 4; i < 8; i++)
                     stopGrid(i);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
index d90509f..43c2dba 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
@@ -231,7 +231,7 @@
 
         Collection<Integer> testKeys = generateTestKeys();
 
-        final Ignite master = startGrid(MASTER);
+        final Ignite master = startClientGrid(MASTER);
 
         List<Ignite> workers = new ArrayList<>(workerCnt);
 
@@ -430,7 +430,7 @@
 
         Collection<Integer> testKeys = generateTestKeys();
 
-        final Ignite master = startGrid(MASTER);
+        final Ignite master = startClientGrid(MASTER);
 
         List<Ignite> workers = new ArrayList<>(workerCnt);
 
@@ -672,8 +672,6 @@
         cfg.setDiscoverySpi(discoverySpi);
 
         if (igniteInstanceName.startsWith("master")) {
-            cfg.setClientMode(true);
-
             cfg.setUserAttributes(ImmutableMap.of("segment", "master"));
 
             // For sure.
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheReturnValueTransferSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheReturnValueTransferSelfTest.java
index 6a4c102..1a4a55e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheReturnValueTransferSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheReturnValueTransferSelfTest.java
@@ -42,9 +42,6 @@
  * Tests transform for extra traffic.
  */
 public class GridCacheReturnValueTransferSelfTest extends GridCommonAbstractTest {
-    /** Distribution mode. */
-    private boolean cache;
-
     /** Atomicity mode. */
     private CacheAtomicityMode atomicityMode;
 
@@ -68,9 +65,6 @@
 
         ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
 
-        if (!cache)
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -108,13 +102,8 @@
 
             backups = b;
 
-            cache = true;
-
             startGrids(2);
-
-            cache = false;
-
-            startGrid(2);
+            startClientGrid(2);
 
             failDeserialization = false;
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTcpClientDiscoveryMultiThreadedTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTcpClientDiscoveryMultiThreadedTest.java
index 639332b..2f2042b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTcpClientDiscoveryMultiThreadedTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTcpClientDiscoveryMultiThreadedTest.java
@@ -83,8 +83,6 @@
             clientFinder.setAddresses(addrs);
 
             cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(clientFinder));
-
-            cfg.setClientMode(true);
         }
 
         cfg.setLocalHost("127.0.0.1");
@@ -115,7 +113,7 @@
         client = true;
 
         for (int n = 0; n < 2; n++) {
-            startGridsMultiThreaded(srvNodesCnt, clientNodesCnt);
+            startClientGridsMultiThreaded(srvNodesCnt, clientNodesCnt);
 
             checkTopology(gridCount());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridTransactionsSystemUserTimeMetricsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridTransactionsSystemUserTimeMetricsTest.java
index f6d03d5c..8a15a93 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridTransactionsSystemUserTimeMetricsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridTransactionsSystemUserTimeMetricsTest.java
@@ -156,8 +156,6 @@
 
         boolean isClient = igniteInstanceName.contains(CLIENT);
 
-        cfg.setClientMode(isClient);
-
         if (!isClient) {
             CacheConfiguration ccfg = new CacheConfiguration(CACHE_NAME);
 
@@ -213,7 +211,7 @@
             gridStarted = true;
         }
 
-        client = startGrid(CLIENT);
+        client = startClientGrid(CLIENT);
 
         cache = client.getOrCreateCache(CACHE_NAME);
 
@@ -492,7 +490,7 @@
      */
     @Test
     public void testJmxParametersSpreading() throws Exception {
-        startGrid(CLIENT_2);
+        startClientGrid(CLIENT_2);
 
         try {
             TransactionsMXBean tmMxBean = getMxBean(
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteAbstractDynamicCacheStartFailTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteAbstractDynamicCacheStartFailTest.java
index de8e506..e096d1c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteAbstractDynamicCacheStartFailTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteAbstractDynamicCacheStartFailTest.java
@@ -112,16 +112,11 @@
     public void testBrokenAffinityFunStartOnServerFailedOnClient() throws Exception {
         final String clientName = CLIENT_GRID_NAME + "testBrokenAffinityFunStartOnServerFailedOnClient";
 
-        IgniteConfiguration clientCfg = getConfiguration(clientName);
-
-        clientCfg.setClientMode(true);
-
-        Ignite client = startGrid(clientName, clientCfg);
+        Ignite client = startClientGrid(clientName, getConfiguration(clientName));
 
         CacheConfiguration cfg = new CacheConfiguration();
 
         cfg.setName(DYNAMIC_CACHE_NAME + "-server-1");
-
         cfg.setAffinity(new BrokenAffinityFunction(false, clientName));
 
         try {
@@ -141,16 +136,11 @@
     public void testBrokenAffinityFunStartOnServerFailedOnServer() throws Exception {
         final String clientName = CLIENT_GRID_NAME + "testBrokenAffinityFunStartOnServerFailedOnServer";
 
-        IgniteConfiguration clientCfg = getConfiguration(clientName);
-
-        clientCfg.setClientMode(true);
-
-        Ignite client = startGrid(clientName, clientCfg);
+        Ignite client = startClientGrid(clientName, getConfiguration(clientName));
 
         CacheConfiguration cfg = new CacheConfiguration();
 
         cfg.setName(DYNAMIC_CACHE_NAME + "-server-2");
-
         cfg.setAffinity(new BrokenAffinityFunction(false, getTestIgniteInstanceName(0)));
 
         try {
@@ -171,16 +161,11 @@
     public void testBrokenAffinityFunStartOnClientFailOnServer() throws Exception {
         final String clientName = CLIENT_GRID_NAME + "testBrokenAffinityFunStartOnClientFailOnServer";
 
-        IgniteConfiguration clientCfg = getConfiguration(clientName);
-
-        clientCfg.setClientMode(true);
-
-        Ignite client = startGrid(clientName, clientCfg);
+        Ignite client = startClientGrid(clientName, getConfiguration(clientName));
 
         CacheConfiguration cfg = new CacheConfiguration();
 
         cfg.setName(DYNAMIC_CACHE_NAME + "-client-2");
-
         cfg.setAffinity(new BrokenAffinityFunction(false, getTestIgniteInstanceName(0)));
 
         try {
@@ -547,11 +532,7 @@
             // Sometimes problem with caches configuration deserialization from test thread arises.
             final String clientName1 = "baseline-changer";
 
-            IgniteConfiguration clientCfg = getConfiguration(clientName1);
-
-            clientCfg.setClientMode(true);
-
-            Ignite clientNode = startGrid(clientName1, clientCfg);
+            Ignite clientNode = startClientGrid(clientName1, getConfiguration(clientName1));
 
             clientNode.cluster().baselineAutoAdjustEnabled(false);
 
@@ -567,11 +548,7 @@
         checkCacheOperations(serverNode.cache(EXISTING_CACHE_NAME));
 
         // Start a new client node and check cache operations.
-        IgniteConfiguration clientCfg = getConfiguration(clientName);
-
-        clientCfg.setClientMode(true);
-
-        Ignite clientNode = startGrid(clientName, clientCfg);
+        Ignite clientNode = startClientGrid(clientName, getConfiguration(clientName));
 
         checkCacheOperations(clientNode.cache(EXISTING_CACHE_NAME));
     }
@@ -594,11 +571,7 @@
                     for (int i = 0; i < numberOfAttempts; ++i) {
                         int uniqueCnt = attemptCnt.getAndIncrement();
 
-                        IgniteConfiguration clientCfg = getConfiguration(clientName + uniqueCnt);
-
-                        clientCfg.setClientMode(true);
-
-                        final Ignite clientNode = startGrid(clientName, clientCfg);
+                        final Ignite clientNode = startClientGrid(clientName, getConfiguration(clientName + uniqueCnt));
 
                         CacheConfiguration cfg = new CacheConfiguration();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractStopBusySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractStopBusySelfTest.java
index 663fc19..54f6cda 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractStopBusySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractStopBusySelfTest.java
@@ -60,10 +60,10 @@
  */
 public abstract class IgniteCacheAbstractStopBusySelfTest extends GridCommonAbstractTest {
     /** */
-    public static final int CLN_GRD = 0;
+    private static final int CLN_GRD = 0;
 
     /** */
-    public static final int SRV_GRD = 1;
+    private static final int SRV_GRD = 1;
 
     /** */
     public static final String CACHE_NAME = "StopTest";
@@ -103,13 +103,8 @@
 
         commSpi.setTcpNoDelay(true);
 
-        if (igniteInstanceName.endsWith(String.valueOf(CLN_GRD)))
-            cfg.setClientMode(true);
-
         cacheCfg.setRebalanceMode(SYNC);
-
         cacheCfg.setWriteSynchronizationMode(FULL_SYNC);
-
         cacheCfg.setBackups(1);
 
         cfg.setCommunicationSpi(commSpi);
@@ -127,7 +122,7 @@
 
         startGrid(SRV_GRD);
 
-        startGrid(CLN_GRD);
+        startClientGrid(CLN_GRD);
 
         blocked = new CountDownLatch(1);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryEntryProcessorSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryEntryProcessorSelfTest.java
index 5e28eb7..6c5e7c1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryEntryProcessorSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryEntryProcessorSelfTest.java
@@ -47,9 +47,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (getTestIgniteInstanceName(SRV_CNT).equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         cfg.setMarshaller(null);
 
         return cfg;
@@ -59,7 +56,8 @@
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        startGridsMultiThreaded(NODES);
+        startGridsMultiThreaded(NODES - 1);
+        startClientGrid(SRV_CNT);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java
index 343aeb2..e6d5286 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java
@@ -48,7 +48,7 @@
 
         startGrids(3);
 
-        startGrid("client");
+        startClientGrid("client");
 
         populateCache(ldr);
     }
@@ -67,11 +67,8 @@
         cfg.setMarshaller(null);
         cfg.setPeerClassLoadingEnabled(false);
 
-        if ("client".equals(igniteInstanceName)) {
-            cfg.setClientMode(true);
-
+        if ("client".equals(igniteInstanceName))
             cfg.setClassLoader(ldr);
-        }
 
         return cfg;
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigurationTemplateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigurationTemplateTest.java
index c0f6bbd..c26f04e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigurationTemplateTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigurationTemplateTest.java
@@ -51,9 +51,6 @@
     private static final String TEMPLATE3 = "org.apache.ignite.test2.*";
 
     /** */
-    private boolean clientMode;
-
-    /** */
     private boolean addTemplate;
 
     /** {@inheritDoc} */
@@ -81,8 +78,6 @@
             cfg.setCacheConfiguration(dfltCfg, templateCfg1, templateCfg2);
         }
 
-        cfg.setClientMode(clientMode);
-
         cfg.setIncludeEventTypes(EventType.EVT_CACHE_REBALANCE_STARTED, EventType.EVT_CACHE_REBALANCE_STOPPED);
 
         return cfg;
@@ -122,9 +117,8 @@
         checkCreated(ignite1, "org.apache1");
 
         addTemplate = false;
-        clientMode = true;
 
-        Ignite ignite2 = startGrid(2);
+        Ignite ignite2 = startClientGrid(2);
 
         assertNotNull(ignite2.cache("org.apache.ignite.test.cache1"));
         assertNotNull(ignite2.cache("org.apache.ignite1"));
@@ -143,7 +137,7 @@
         checkCreated(ignite1, "org.apache.ignite.test2.cache1");
         checkCreated(ignite2, "org.apache.ignite.test2.cache1");
 
-        Ignite ignite3 = startGrid(3);
+        Ignite ignite3 = startClientGrid(3);
 
         checkCreate(ignite3, "org.apache.ignite.test2.cache2", 5);
 
@@ -181,9 +175,8 @@
         checkNoTemplateCaches(2);
 
         addTemplate = false;
-        clientMode = true;
 
-        Ignite ignite2 = startGrid(2);
+        Ignite ignite2 = startClientGrid(2);
 
         assertNotNull(ignite2.cache("org.apache.ignite.test.cache1"));
         assertNotNull(ignite2.cache("org.apache.ignite1"));
@@ -208,7 +201,7 @@
         checkGetOrCreate(ignite1, "org.apache.ignite.test2.cache1", 5);
         checkGetOrCreate(ignite2, "org.apache.ignite.test2.cache1", 5);
 
-        Ignite ignite3 = startGrid(3);
+        Ignite ignite3 = startClientGrid(3);
 
         checkGetOrCreate(ignite3, "org.apache.ignite.test2.cache1", 5);
 
@@ -234,14 +227,12 @@
     @Test
     public void testStartClientNodeFirst() throws Exception {
         addTemplate = true;
-        clientMode = true;
 
-        Ignite ignite0 = startGrid(0);
+        Ignite ignite0 = startClientGrid(0);
 
         checkNoTemplateCaches(0);
 
         addTemplate = false;
-        clientMode = false;
 
         Ignite ignite1 = startGrid(1);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryProcessorCallTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryProcessorCallTest.java
index 3879d85..fc58906 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryProcessorCallTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryProcessorCallTest.java
@@ -24,7 +24,6 @@
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.transactions.Transaction;
@@ -57,9 +56,6 @@
     private static final int NODES = 5;
 
     /** */
-    private boolean client;
-
-    /** */
     private static final int OP_UPDATE = 1;
 
     /** */
@@ -69,23 +65,12 @@
     private static final int OP_GET = 3;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
         startGridsMultiThreaded(SRV_CNT);
 
-        client = true;
-
-        Ignite client = startGrid(SRV_CNT);
+        Ignite client = startClientGrid(SRV_CNT);
 
         assertTrue(client.configuration().isClientMode());
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheExpireAndUpdateConsistencyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheExpireAndUpdateConsistencyTest.java
index de620b5..8ee51e70 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheExpireAndUpdateConsistencyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheExpireAndUpdateConsistencyTest.java
@@ -35,7 +35,6 @@
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.query.ContinuousQuery;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.PA;
 import org.apache.ignite.internal.util.typedef.T2;
@@ -60,29 +59,15 @@
  */
 public class IgniteCacheExpireAndUpdateConsistencyTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private static final int NODES = 5;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
         startGridsMultiThreaded(4);
 
-        client = true;
-
-        Ignite client = startGrid(4);
+        Ignite client = startClientGrid(4);
 
         assertTrue(client.configuration().isClientMode());
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheGroupsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheGroupsTest.java
index 1e7f580..316ed48 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheGroupsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheGroupsTest.java
@@ -139,17 +139,12 @@
     private static final int ASYNC_TIMEOUT = 5000;
 
     /** */
-    private boolean client;
-
-    /** */
     private CacheConfiguration[] ccfgs;
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setClientMode(client);
-
         if (ccfgs != null) {
             cfg.setCacheConfiguration(ccfgs);
 
@@ -178,9 +173,7 @@
     public void testCloseCache1() throws Exception {
         startGrid(0);
 
-        client = true;
-
-        Ignite client = startGrid(1);
+        Ignite client = startClientGrid(1);
 
         IgniteCache c1 = client.createCache(cacheConfiguration(GROUP1, "c1", PARTITIONED, ATOMIC, 0, false));
 
@@ -1466,9 +1459,13 @@
         for (int i = 0; i < NODES; i++) {
             ccfgs = cacheConfigurations(CACHES, GROUP1, "testCache1-");
 
-            client = i == NODES - 1;
+            boolean client = i == NODES - 1;
 
-            startGrid(i);
+            if (client)
+                startClientGrid(i);
+            else
+                startGrid(i);
+
         }
 
         Ignite client = ignite(NODES - 1);
@@ -2085,9 +2082,7 @@
     private void cacheApiTest(CacheMode cacheMode, CacheAtomicityMode atomicityMode) throws Exception {
         startGridsMultiThreaded(4);
 
-        client = true;
-
-        startGrid(4);
+        startClientGrid(4);
 
         int[] backups = cacheMode == REPLICATED ? new int[]{Integer.MAX_VALUE} : new int[]{0, 1, 2, 3};
 
@@ -2989,9 +2984,7 @@
 
         Ignite srv0 = startGridsMultiThreaded(1, SRVS - 1);
 
-        client = true;
-
-        startGridsMultiThreaded(SRVS, CLIENTS);
+        startClientGridsMultiThreaded(SRVS, CLIENTS);
 
         srv0.createCache(cacheConfiguration(GROUP1, "a0", PARTITIONED, ATOMIC, 1, false));
         srv0.createCache(cacheConfiguration(GROUP1, "a1", PARTITIONED, ATOMIC, 1, false));
@@ -3094,9 +3087,7 @@
 
         Ignite srv0 = startGridsMultiThreaded(1, SRVS - 1);
 
-        client = true;
-
-        startGridsMultiThreaded(SRVS, CLIENTS);
+        startClientGridsMultiThreaded(SRVS, CLIENTS);
 
         final int CACHES = 8;
 
@@ -3546,9 +3537,7 @@
     public void testConfigurationConsistencyValidation() throws Exception {
         startGrids(2);
 
-        client = true;
-
-        startGrid(2);
+        startClientGrid(2);
 
         ignite(0).createCache(cacheConfiguration(GROUP1, "c1", PARTITIONED, ATOMIC, 1, false));
 
@@ -3758,9 +3747,7 @@
         for (int i = 0; i < 4; i++)
             checkAffinityMappers(ignite(i));
 
-        client = true;
-
-        startGrid(4);
+        startClientGrid(4);
 
         checkAffinityMappers(ignite(4));
 
@@ -3830,9 +3817,7 @@
     private void continuousQueriesMultipleGroups(int srvs) throws Exception {
         Ignite srv0 = startGrids(srvs);
 
-        client = true;
-
-        Ignite client = startGrid(srvs);
+        Ignite client = startClientGrid(srvs);
 
         client.createCache(cacheConfiguration(GROUP1, "c1", PARTITIONED, ATOMIC, 1, false));
         client.createCache(cacheConfiguration(GROUP1, "c2", PARTITIONED, TRANSACTIONAL, 1, false));
@@ -4007,11 +3992,7 @@
 
         startGrids(SRVS);
 
-        client = true;
-
-        final Ignite clientNode = startGrid(SRVS);
-
-        client = false;
+        final Ignite clientNode = startClientGrid(SRVS);
 
         final int CACHES = SF.applyLB(10, 2);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheIncrementTxTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheIncrementTxTest.java
index 76e7dad..f8875b6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheIncrementTxTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheIncrementTxTest.java
@@ -55,9 +55,6 @@
 
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
-        if (getTestIgniteInstanceName(SRVS).equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -67,7 +64,7 @@
 
         startGridsMultiThreaded(SRVS);
 
-        startGrid(SRVS);
+        startClientGrid(SRVS);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeReadThroughAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeReadThroughAbstractTest.java
index 5efa2ee..4676c43 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeReadThroughAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeReadThroughAbstractTest.java
@@ -32,7 +32,6 @@
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
 import org.apache.ignite.cache.store.CacheStore;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.internal.util.typedef.G;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -53,18 +52,6 @@
     /** */
     private static volatile boolean failed;
 
-    /** */
-    protected boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeReadThroughTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeReadThroughTest.java
index 4fac5a8..aa77ca6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeReadThroughTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeReadThroughTest.java
@@ -42,9 +42,7 @@
     @Override protected void startNodes() throws Exception {
         startGridsMultiThreaded(4);
 
-        client = true;
-
-        startGrid(4);
+        startClientGrid(4);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheManyAsyncOperationsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheManyAsyncOperationsTest.java
index c915778..6981063 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheManyAsyncOperationsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheManyAsyncOperationsTest.java
@@ -26,7 +26,6 @@
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.lang.IgniteFuture;
 import org.junit.Test;
@@ -58,22 +57,12 @@
         return null;
     }
 
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        if (igniteInstanceName.equals(getTestIgniteInstanceName(2)))
-            cfg.setClientMode(true);
-
-        return cfg;
-    }
-
     /**
      * @throws Exception If failed.
      */
     @Test
     public void testManyAsyncOperations() throws Exception {
-        try (Ignite client = startGrid(gridCount())) {
+        try (Ignite client = startClientGrid(gridCount())) {
             assertTrue(client.configuration().isClientMode());
 
             IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java
index 6be7d57..5297de5 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java
@@ -46,7 +46,7 @@
 
         startGrid(1);
 
-        startGrid(0);
+        startClientGrid(0);
     }
 
     /** {@inheritDoc} */
@@ -57,9 +57,6 @@
 
         ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
 
-        if (getTestIgniteInstanceName(0).equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         TestRecordingCommunicationSpi commSpi = new TestRecordingCommunicationSpi();
 
         commSpi.record(GridNearLockRequest.class);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNoSyncForGetTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNoSyncForGetTest.java
index 32ffa70..fd41d07 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNoSyncForGetTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNoSyncForGetTest.java
@@ -34,7 +34,6 @@
 import org.apache.ignite.cache.CacheEntry;
 import org.apache.ignite.cache.CacheEntryProcessor;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteCallable;
@@ -59,27 +58,13 @@
     /** */
     private static volatile CountDownLatch hangLatch;
 
-    /** */
-    private boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
         startGrid(0);
 
-        client = true;
-
-        startGrid(1);
+        startClientGrid(1);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTest.java
index c97b121..eacd937 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTest.java
@@ -75,18 +75,15 @@
 
         startGridsMultiThreaded(1, cnt - 1);
 
-        startGrid(0);
+        startClientGrid(0);
     }
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (getTestIgniteInstanceName(0).equals(igniteInstanceName)) {
-            cfg.setClientMode(true);
-
+        if (getTestIgniteInstanceName(0).equals(igniteInstanceName))
             cfg.setCacheConfiguration();
-        }
 
         if (getTestIgniteInstanceName(10).equals(igniteInstanceName)) {
             CacheConfiguration cc = cfg.getCacheConfiguration()[0];
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheReadThroughStoreCallTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheReadThroughStoreCallTest.java
index fe0ef97..ce954b6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheReadThroughStoreCallTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheReadThroughStoreCallTest.java
@@ -32,7 +32,6 @@
 import org.apache.ignite.cache.store.CacheStore;
 import org.apache.ignite.cache.store.CacheStoreAdapter;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.util.typedef.G;
 import org.apache.ignite.lang.IgniteBiInClosure;
 import org.apache.ignite.lang.IgniteRunnable;
@@ -59,24 +58,12 @@
     private static final Map<Object, Object> storeMap = new ConcurrentHashMap<>();
 
     /** */
-    protected boolean client;
-
-    /** */
     @Before
     public void beforeIgniteCacheReadThroughStoreCallTest() {
         MvccFeatureChecker.skipIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
     }
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
 
@@ -92,9 +79,7 @@
     public void testMultiNode() throws Exception {
         startGridsMultiThreaded(4);
 
-        client = true;
-
-        startGrid(4);
+        startClientGrid(4);
 
         checkLoadCount(cacheConfiguration(PARTITIONED, ATOMIC, 0));
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheSerializationSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheSerializationSelfTest.java
index edeb514..c242e16 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheSerializationSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheSerializationSelfTest.java
@@ -22,7 +22,6 @@
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.lang.IgniteCallable;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -41,20 +40,11 @@
     private static final int CLIENT = NODES - 1;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        if (getTestIgniteInstanceName(CLIENT).equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        startGrids(NODES);
+        startGrids(NODES - 1);
+        startClientGrid(CLIENT);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStartTest.java
index 40ebbef4..8472d9a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStartTest.java
@@ -36,17 +36,12 @@
     private static final String CACHE_NAME = "c1";
 
     /** */
-    private boolean client;
-
-    /** */
     private CacheConfiguration ccfg;
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setClientMode(client);
-
         if (ccfg != null)
             cfg.setCacheConfiguration(ccfg);
 
@@ -79,9 +74,7 @@
         checkCache(0, CACHE_NAME, true);
         checkCache(1, CACHE_NAME, true);
 
-        client = true;
-
-        startGrid(2);
+        startClientGrid(2);
 
         checkCache(0, CACHE_NAME, true);
         checkCache(1, CACHE_NAME, true);
@@ -118,21 +111,20 @@
         startGrid(0);
         startGrid(1);
 
-        client = true;
-
-        startGrid(2);
+        startClientGrid(2);
 
         ccfg = cacheConfiguration(CACHE_NAME);
-        client = joinClient;
 
-        startGrid(3);
+        if (joinClient)
+            startClientGrid(3);
+        else
+            startGrid(3);
 
         checkCache(0, CACHE_NAME, true);
         checkCache(1, CACHE_NAME, true);
         checkCache(2, CACHE_NAME, false);
         checkCache(3, CACHE_NAME, true);
 
-        client = false;
         ccfg = null;
 
         startGrid(4);
@@ -143,9 +135,7 @@
         checkCache(3, CACHE_NAME, true);
         checkCache(4, CACHE_NAME, true);
 
-        client = true;
-
-        startGrid(5);
+        startClientGrid(5);
 
         checkCache(0, CACHE_NAME, true);
         checkCache(1, CACHE_NAME, true);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientAffinityAssignmentSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientAffinityAssignmentSelfTest.java
index a53ed1b..1918b5b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientAffinityAssignmentSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientAffinityAssignmentSelfTest.java
@@ -39,14 +39,11 @@
     /** */
     public static final int PARTS = 256;
 
-    /** */
-    private boolean cache;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (cache) {
+        if (!cfg.isClientMode()) {
             CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
 
             ccfg.setCacheMode(CacheMode.PARTITIONED);
@@ -59,8 +56,6 @@
 
             cfg.setCacheConfiguration(ccfg);
         }
-        else
-            cfg.setClientMode(true);
 
         return cfg;
     }
@@ -77,8 +72,6 @@
      * @throws Exception If failed.
      */
     private void checkAffinityFunction() throws Exception {
-        cache = true;
-
         startGridsMultiThreaded(3, true);
 
         long topVer = 3;
@@ -86,9 +79,7 @@
         try {
             checkAffinity(topVer++);
 
-            cache = false;
-
-            final Ignite ignite3 = startGrid(3);
+            final Ignite ignite3 = startClientGrid(3);
 
             GridTestUtils.assertThrows(log, new Callable<Object>() {
                 @Override public Object call() throws Exception {
@@ -104,7 +95,7 @@
 
             checkAffinity(topVer++);
 
-            final Ignite ignite4 = startGrid(4);
+            final Ignite ignite4 = startClientGrid(4);
 
             GridTestUtils.assertThrows(log, new Callable<Object>() {
                 @Override public Object call() throws Exception {
@@ -120,7 +111,7 @@
 
             checkAffinity(topVer++);
 
-            final Ignite ignite5 = startGrid(5); // Node without cache.
+            final Ignite ignite5 = startClientGrid(5); // Node without cache.
 
             GridTestUtils.assertThrows(log, new Callable<Object>() {
                 @Override public Object call() throws Exception {
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheInitializationFailTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheInitializationFailTest.java
index e1768d1..98cdcc5 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheInitializationFailTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheInitializationFailTest.java
@@ -86,7 +86,7 @@
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         startGrid("server");
-        startGrid("client");
+        startClientGrid("client");
     }
 
     /** {@inheritDoc} */
@@ -114,12 +114,9 @@
 
             cfg.setCacheConfiguration(ccfg1, ccfg2, ccfg3);
         }
-        else {
+        else
             GridQueryProcessor.idxCls = FailedIndexing.class;
 
-            cfg.setClientMode(true);
-        }
-
         return cfg;
     }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheStartFailoverTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheStartFailoverTest.java
index 22b6ad3..72f2155 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheStartFailoverTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClientCacheStartFailoverTest.java
@@ -62,28 +62,16 @@
  *
  */
 public class IgniteClientCacheStartFailoverTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(client);
-
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
 
         return cfg;
     }
 
     /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        super.beforeTest();
-
-        client = false;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
 
@@ -128,9 +116,7 @@
         for (int i = 0; i < KEYS; i++)
             cache.put(i, i);
 
-        client = true;
-
-        final Ignite c = startGrid(3);
+        final Ignite c = startClientGrid(3);
 
         TestRecordingCommunicationSpi.spi(srv0).blockMessages(GridDhtAffinityAssignmentResponse.class, c.name());
 
@@ -200,11 +186,7 @@
 
         srv1.createCache(cfg);
 
-        client = true;
-
-        final Ignite c = startGrid(3);
-
-        client = false;
+        final Ignite c = startClientGrid(3);
 
         TestRecordingCommunicationSpi.spi(srv1).blockMessages(GridDhtAffinityAssignmentResponse.class, c.name());
 
@@ -278,16 +260,12 @@
 
         List<String> cacheNames = startCaches(ignite(0), 100);
 
-        client = true;
-
-        Ignite c = startGrid(SRVS);
+        Ignite c = startClientGrid(SRVS);
 
         assertTrue(c.configuration().isClientMode());
 
         awaitPartitionMapExchange();
 
-        client = false;
-
         TestRecordingCommunicationSpi.spi(ignite(0)).blockMessages(new IgniteBiPredicate<ClusterNode, Message>() {
             @Override public boolean apply(ClusterNode clusterNode, Message msg) {
                 return msg instanceof GridDhtPartitionsFullMessage &&
@@ -356,14 +334,10 @@
 
         final List<String> cacheNames = startCaches(srv0, KEYS);
 
-        client = true;
-
         final List<Ignite> clients = new ArrayList<>();
 
         for (int i = 0; i < CLIENTS; i++)
-            clients.add(startGrid(SRVS1 + i));
-
-        client = false;
+            clients.add(startClientGrid(SRVS1 + i));
 
         final CyclicBarrier barrier = new CyclicBarrier(clients.size() + SRVS2);
 
@@ -447,14 +421,10 @@
 
         final List<String> cacheNames = startCaches(ignite(0), 1000);
 
-        client = true;
-
         final List<Ignite> clients = new ArrayList<>();
 
         for (int i = 0; i < CLIENTS; i++)
-            clients.add(startGrid(SRVS + i));
-
-        client = false;
+            clients.add(startClientGrid(SRVS + i));
 
         final AtomicBoolean stop = new AtomicBoolean();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java
index 05b7ddf..ae619f1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java
@@ -28,6 +28,7 @@
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.cluster.ClusterState;
@@ -85,9 +86,6 @@
     private static final int DEFAULT_CACHES_COUNT = 2;
 
     /** */
-    boolean client;
-
-    /** */
     private ClusterState stateOnStart;
 
     /** */
@@ -118,8 +116,6 @@
 
         cfg.setConsistentId(igniteInstanceName);
 
-        cfg.setClientMode(client);
-
         if (stateOnStart != null)
             cfg.setClusterStateOnStart(stateOnStart);
 
@@ -1750,18 +1746,24 @@
         if (cacheConfigs != null)
             this.ccfgs = cacheConfigs;
 
-        this.client = client;
-
-        startGrid(nodeNumber);
+        if (client)
+            startClientGrid(nodeNumber);
+        else
+            startGrid(nodeNumber);
     }
 
     /** */
     private IgniteInternalFuture<?> startNodeAsync(int nodeNumber, boolean client) {
-        this.client = client;
-
-        return runAsync(
-            () -> startGrid(nodeNumber),
-            "start" + "-" + (client ? "client" : "server") + "-node" + nodeNumber
-        );
+        return runAsync(() -> {
+            try {
+                if (client)
+                    startClientGrid(nodeNumber);
+                else
+                    startGrid(nodeNumber);
+            }
+            catch (Exception e) {
+                throw new IgniteException(e);
+            }
+        }, "start" + "-" + (client ? "client" : "server") + "-node" + nodeNumber);
     }
 }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTestWithPersistence.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTestWithPersistence.java
index e267eae..7b30ed2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTestWithPersistence.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTestWithPersistence.java
@@ -340,9 +340,7 @@
 
                     Thread.sleep(10);
 
-                    client = true;
-
-                    Ignite cl = startGrid("client0");
+                    Ignite cl = startClientGrid("client0");
 
                     IgniteCache<Object, Object> atomicCache = cl.cache(CACHE_NAME_PREFIX + '0');
                     IgniteCache<Object, Object> txCache = cl.cache(CACHE_NAME_PREFIX + '1');
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDiscoDataHandlingInNewClusterTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDiscoDataHandlingInNewClusterTest.java
index 3348554..74bd1c6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDiscoDataHandlingInNewClusterTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDiscoDataHandlingInNewClusterTest.java
@@ -116,9 +116,7 @@
 
         cfg.setConsistentId(igniteInstanceName);
 
-        if (igniteInstanceName.contains("client"))
-            cfg.setClientMode(true);
-        else {
+        if (!igniteInstanceName.contains("client")) {
             cfg.setDataStorageConfiguration(
                 new DataStorageConfiguration()
                     .setDefaultDataRegionConfiguration(
@@ -174,7 +172,7 @@
 
         verifyCachesAndGroups(ig2, Arrays.asList(new String[] {STATIC_CACHE_NAME_1, STATIC_CACHE_NAME_3}));
 
-        IgniteEx client = startGrid("client01");
+        IgniteEx client = startClientGrid("client01");
 
         verifyCachesAndGroups(client, Arrays.asList(new String[] {STATIC_CACHE_NAME_1, STATIC_CACHE_NAME_3}));
     }
@@ -193,7 +191,7 @@
 
         verifyCachesAndGroups(ig1, Arrays.asList(new String[] {STATIC_CACHE_NAME_1, STATIC_CACHE_NAME_2}));
 
-        IgniteEx client = startGrid(CLIENT_WITH_DIFF_CONFIG);
+        IgniteEx client = startClientGrid(CLIENT_WITH_DIFF_CONFIG);
 
         verifyCachesAndGroups(client, Arrays.asList(new String[] {STATIC_CACHE_NAME_1, STATIC_CACHE_NAME_2}));
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheMultinodeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheMultinodeTest.java
index a943b8c..9a008b7 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheMultinodeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheMultinodeTest.java
@@ -25,7 +25,6 @@
 import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -40,27 +39,13 @@
     /** */
     private static final int NODES = 6;
 
-    /** */
-    private boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
         startGridsMultiThreaded(NODES - 2);
 
-        client = true;
-
-        startGridsMultiThreaded(NODES - 2, 2);
+        startClientGridsMultiThreaded(NODES - 2, 2);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartNoExchangeTimeoutTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartNoExchangeTimeoutTest.java
index 55ca9fc..6dac1e4 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartNoExchangeTimeoutTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartNoExchangeTimeoutTest.java
@@ -61,9 +61,6 @@
 
         cfg.setCommunicationSpi(new TestCommunicationSpi());
 
-        if (igniteInstanceName.equals(getTestIgniteInstanceName(NODES - 1)))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -78,7 +75,8 @@
     @Override protected void beforeTest() throws Exception {
         super.beforeTest();
 
-        startGrids(NODES);
+        startGrids(NODES - 1);
+        startClientGrid(NODES - 1);
 
         awaitPartitionMapExchange();
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java
index 86e95bd..dcb6d2b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java
@@ -86,9 +86,6 @@
     private boolean testAttribute = true;
 
     /** */
-    private boolean client;
-
-    /** */
     private boolean daemon;
 
     /**
@@ -104,11 +101,8 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (client) {
-            cfg.setClientMode(true);
-
+        if (cfg.isClientMode())
             ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
-        }
 
         cfg.setUserAttributes(F.asMap(TEST_ATTRIBUTE_NAME, testAttribute));
 
@@ -1288,8 +1282,6 @@
 
         IgniteInternalFuture<?> fut = GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
             @Override public Object call() throws Exception {
-                client = true;
-
                 int iter = 0;
 
                 while (!stop.get()) {
@@ -1298,7 +1290,7 @@
 
                     iter++;
 
-                    try (Ignite ignite = startGrid(nodeCount())) {
+                    try (Ignite ignite = startClientGrid(nodeCount())) {
                         assertTrue(ignite.configuration().isClientMode());
                     }
                 }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheWithConfigStartSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheWithConfigStartSelfTest.java
index d573dbc..4d1d9ff 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheWithConfigStartSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheWithConfigStartSelfTest.java
@@ -19,7 +19,6 @@
 
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -31,21 +30,6 @@
     /** */
     private static final String CACHE_NAME = "partitioned";
 
-    /** */
-    private boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        if (client)
-            cfg.setCacheConfiguration(cacheConfiguration());
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /**
      * @return Cache configuration.
      */
@@ -68,9 +52,8 @@
         startGrids(srvCnt);
 
         try {
-            client = true;
-
-            IgniteEx client = startGrid(srvCnt);
+            IgniteEx client = startClientGrid(getConfiguration("client").
+                setCacheConfiguration(cacheConfiguration()));
 
             for (int i = 0; i < 100; i++)
                 client.cache(CACHE_NAME).put(i, i);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicClientCacheStartSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicClientCacheStartSelfTest.java
index 0b72550..726cf11 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicClientCacheStartSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicClientCacheStartSelfTest.java
@@ -57,15 +57,10 @@
     /** */
     private CacheConfiguration ccfg;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(client);
-
         if (ccfg != null)
             cfg.setCacheConfiguration(ccfg);
 
@@ -94,9 +89,7 @@
 
         checkCache(ignite0, cacheName, true, false);
 
-        client = true;
-
-        Ignite ignite1 = startGrid(1);
+        Ignite ignite1 = startClientGrid(1);
 
         checkCache(ignite1, cacheName, false, false);
 
@@ -104,13 +97,13 @@
 
         ccfg.setNearConfiguration(new NearCacheConfiguration());
 
-        Ignite ignite2 = startGrid(2);
+        Ignite ignite2 = startClientGrid(2);
 
         checkCache(ignite2, cacheName, false, true);
 
         ccfg = null;
 
-        Ignite ignite3 = startGrid(3);
+        Ignite ignite3 = startClientGrid(3);
 
         checkNoCache(ignite3, cacheName);
 
@@ -118,7 +111,7 @@
 
         checkCache(ignite3, cacheName, false, false);
 
-        Ignite ignite4 = startGrid(4);
+        Ignite ignite4 = startClientGrid(4);
 
         checkNoCache(ignite4, cacheName);
 
@@ -140,9 +133,7 @@
 
         checkCache(ignite0, cacheName, true, false);
 
-        client = true;
-
-        final Ignite ignite1 = startGrid(1);
+        final Ignite ignite1 = startClientGrid(1);
 
         checkCache(ignite1, cacheName, false, false);
 
@@ -182,21 +173,19 @@
 
         checkCache(ignite0, cacheName, true, false);
 
-        client = true;
-
-        final Ignite ignite1 = startGrid(1);
+        final Ignite ignite1 = startClientGrid(1);
 
         checkCache(ignite1, cacheName, false, false);
 
         ccfg.setNearConfiguration(new NearCacheConfiguration());
 
-        Ignite ignite2 = startGrid(2);
+        Ignite ignite2 = startClientGrid(2);
 
         checkCache(ignite2, cacheName, false, true);
 
         ccfg = null;
 
-        Ignite ignite3 = startGrid(3);
+        Ignite ignite3 = startClientGrid(3);
 
         checkNoCache(ignite3, cacheName);
     }
@@ -218,21 +207,19 @@
 
         checkCache(ignite0, cacheName, true, false);
 
-        client = true;
-
-        final Ignite ignite1 = startGrid(1);
+        final Ignite ignite1 = startClientGrid(1);
 
         checkCache(ignite1, cacheName, false, true);
 
         ccfg.setNearConfiguration(null);
 
-        Ignite ignite2 = startGrid(2);
+        Ignite ignite2 = startClientGrid(2);
 
         checkCache(ignite2, cacheName, false, false);
 
         ccfg = null;
 
-        Ignite ignite3 = startGrid(3);
+        Ignite ignite3 = startClientGrid(3);
 
         checkNoCache(ignite3, cacheName);
     }
@@ -244,11 +231,7 @@
     public void testCreateCloseClientCache1() throws Exception {
         Ignite ignite0 = startGrid(0);
 
-        client = true;
-
-        Ignite clientNode = startGrid(1);
-
-        client = false;
+        Ignite clientNode = startClientGrid(1);
 
         ignite0.createCache(new CacheConfiguration<>(DEFAULT_CACHE_NAME));
 
@@ -303,10 +286,7 @@
         final int SRVS = 1;
 
         Ignite srv = startGrids(SRVS);
-
-        client = true;
-
-        Ignite client = startGrid(SRVS);
+        Ignite client = startClientGrid(SRVS);
 
         for (CacheAtomicityMode atomicityMode : values()) {
             for (boolean batch : new boolean[]{false, true})
@@ -392,9 +372,7 @@
 
         ccfg = null;
 
-        client = true;
-
-        Ignite client = startGrid(SRVS);
+        Ignite client = startClientGrid(SRVS);
 
         List<CacheConfiguration> cfgs = new ArrayList<>();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingOnMissTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingOnMissTest.java
index cd66dd6..eff6d29 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingOnMissTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteMarshallerCacheClientRequestsMappingOnMissTest.java
@@ -63,16 +63,11 @@
     /** */
     private TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
-    /** */
-    private boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setClientMode(clientMode);
-
-        if (clientMode)
+        if (cfg.isClientMode())
             cfg.setWorkDirectory(TMP_DIR);
 
         TcpDiscoverySpi disco = new TestTcpDiscoverySpi();
@@ -123,9 +118,7 @@
 
         srv1.cache(DEFAULT_CACHE_NAME).put(1, org);
 
-        clientMode = true;
-
-        Ignite cl1 = startGrid(1);
+        Ignite cl1 = startClientGrid(1);
 
         cl1.cache(DEFAULT_CACHE_NAME).get(1);
 
@@ -170,9 +163,7 @@
         srv3.cache(DEFAULT_CACHE_NAME).put(
             1, new Organization(1, "Microsoft", "One Microsoft Way Redmond, WA 98052-6399, USA"));
 
-        clientMode = true;
-
-        Ignite cl1 = startGrid(4);
+        Ignite cl1 = startClientGrid(4);
 
         cl1.cache(DEFAULT_CACHE_NAME).get(1);
 
@@ -204,9 +195,7 @@
         srv3.cache(DEFAULT_CACHE_NAME).put(
             1, new Organization(1, "Microsoft", "One Microsoft Way Redmond, WA 98052-6399, USA"));
 
-        clientMode = true;
-
-        Ignite cl1 = startGrid(4);
+        Ignite cl1 = startClientGrid(4);
 
         cl1.cache(DEFAULT_CACHE_NAME).get(1);
 
@@ -241,9 +230,7 @@
         srv3.cache(DEFAULT_CACHE_NAME).put(
             1, new Organization(1, "Microsoft", "One Microsoft Way Redmond, WA 98052-6399, USA"));
 
-        clientMode = true;
-
-        Ignite cl1 = startGrid(4);
+        Ignite cl1 = startClientGrid(4);
 
         cl1.cache(DEFAULT_CACHE_NAME).get(1);
 
@@ -279,9 +266,7 @@
         srv3.cache(DEFAULT_CACHE_NAME).put(
             1, new Organization(1, "Microsoft", "One Microsoft Way Redmond, WA 98052-6399, USA"));
 
-        clientMode = true;
-
-        Ignite cl1 = startGrid(4);
+        Ignite cl1 = startClientGrid(4);
 
         try {
             cl1.cache(DEFAULT_CACHE_NAME).get(1);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteNearClientCacheCloseTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteNearClientCacheCloseTest.java
index 8aa5e6c..222f427 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteNearClientCacheCloseTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteNearClientCacheCloseTest.java
@@ -29,7 +29,6 @@
 import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -47,18 +46,6 @@
  *
  */
 public class IgniteNearClientCacheCloseTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
@@ -140,9 +127,7 @@
         if (Ignition.allGrids().isEmpty()) {
             srv = startGrids(srvs);
 
-            client = true;
-
-            startGrid(srvs);
+            startClientGrid(srvs);
         }
         else
             srv = grid(0);
@@ -189,11 +174,8 @@
 
         startGrids(SRVS);
 
-        client = true;
-
-        startGrid(SRVS);
-
-        startGrid(SRVS + 1);
+        startClientGrid(SRVS);
+        startClientGrid(SRVS + 1);
 
         concurrentUpdateAndNearCacheClose(ATOMIC, SRVS + 1);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitInvokeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitInvokeTest.java
index a30c395..a2d9ad3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitInvokeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitInvokeTest.java
@@ -45,9 +45,6 @@
  */
 public class IgniteOnePhaseCommitInvokeTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private static final String CACHE_NAME = "testCache";
 
     /** {@inheritDoc} */
@@ -58,8 +55,6 @@
 
         cfg.setCommunicationSpi(commSpi);
 
-        cfg.setClientMode(client);
-
         CacheConfiguration ccfg = new CacheConfiguration();
 
         ccfg.setName(CACHE_NAME);
@@ -116,9 +111,7 @@
         if (withOldVal)
             srv0.cache(CACHE_NAME).put(1, 1);
 
-        client = true;
-
-        final Ignite clientNode = startGrid(1);
+        final Ignite clientNode = startClientGrid(1);
 
         final int grpId = groupIdForCache(srv0, CACHE_NAME);
 
@@ -129,8 +122,6 @@
             }
         });
 
-        client = false;
-
         Ignite srv1 = startGrid(2);
 
         TestRecordingCommunicationSpi.spi(srv1).blockMessages(GridDhtTxPrepareResponse.class, srv0.name());
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearReadersTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearReadersTest.java
index fa005b0..2b06ca2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearReadersTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOnePhaseCommitNearReadersTest.java
@@ -43,17 +43,12 @@
  */
 public class IgniteOnePhaseCommitNearReadersTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private boolean testSpi;
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setClientMode(client);
-
         if (testSpi) {
             TestRecordingCommunicationSpi commSpi = new TestRecordingCommunicationSpi();
 
@@ -97,20 +92,18 @@
 
         awaitPartitionMapExchange();
 
-        client = true;
-
         Ignite srv = ignite(0);
 
         srv.createCache(cacheConfiguration(backups));
 
-        Ignite client1 = startGrid(SRVS);
+        Ignite client1 = startClientGrid(SRVS);
 
         IgniteCache<Object, Object> cache1 = client1.createNearCache(DEFAULT_CACHE_NAME,
             new NearCacheConfiguration<>());
 
         Integer key = primaryKey(srv.cache(DEFAULT_CACHE_NAME));
 
-        Ignite client2 = startGrid(SRVS + 1);
+        Ignite client2 = startClientGrid(SRVS + 1);
 
         IgniteCache<Object, Object> cache2 = client2.cache(DEFAULT_CACHE_NAME);
 
@@ -166,20 +159,16 @@
 
         awaitPartitionMapExchange();
 
-        client = true;
-
         Ignite srv = ignite(0);
 
         srv.createCache(cacheConfiguration(backups));
 
-        Ignite client1 = startGrid(SRVS);
+        Ignite client1 = startClientGrid(SRVS);
 
         IgniteCache<Object, Object> cache1 = client1.createNearCache(DEFAULT_CACHE_NAME,
             new NearCacheConfiguration<>());
 
-        Ignite client2 = startGrid(SRVS + 1);
-
-        client= false;
+        Ignite client2 = startClientGrid(SRVS + 1);
 
         IgniteCache<Object, Object> cache2 = client2.cache(DEFAULT_CACHE_NAME);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOutOfMemoryPropagationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOutOfMemoryPropagationTest.java
index 225a668..8a13ddc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOutOfMemoryPropagationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteOutOfMemoryPropagationTest.java
@@ -161,14 +161,10 @@
         this.backupsCnt = backupsCnt;
         this.writeSyncMode = writeSyncMode;
 
-        Ignition.setClientMode(false);
-
         for (int i = 0; i < NODES; i++)
             startGrid(i);
 
-        Ignition.setClientMode(true);
-
-        client = startGrid(NODES + 1);
+        client = startClientGrid(NODES + 1);
 
         // it is required to start first node in test jvm, but we can not start client node,
         // because client will fail to connect and test will fail too.
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteSystemCacheOnClientTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteSystemCacheOnClientTest.java
index c478166..a962f6a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteSystemCacheOnClientTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteSystemCacheOnClientTest.java
@@ -19,7 +19,6 @@
 
 import java.util.Collection;
 import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -29,22 +28,13 @@
  *
  */
 public class IgniteSystemCacheOnClientTest extends GridCommonAbstractTest {
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        if (igniteInstanceName.equals(getTestIgniteInstanceName(1)))
-            cfg.setClientMode(true);
-
-        return cfg;
-    }
-
     /**
      * @throws Exception If failed.
      */
     @Test
     public void testSystemCacheOnClientNode() throws Exception {
-        startGrids(2);
+        startGrid(0);
+        startClientGrid(1);
 
         final IgniteKernal ignite = (IgniteKernal)ignite(1);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTopologyValidatorAbstractCacheTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTopologyValidatorAbstractCacheTest.java
index f6ca2c7..ee59493 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTopologyValidatorAbstractCacheTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTopologyValidatorAbstractCacheTest.java
@@ -46,9 +46,6 @@
     /** cache name 2. */
     protected static String CACHE_NAME_2 = "cache2";
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected final int gridCount() {
         return 1;
@@ -58,7 +55,7 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (!client) {
+        if (!cfg.isClientMode()) {
             CacheConfiguration cCfg0 = cacheConfiguration(igniteInstanceName);
 
             CacheConfiguration cCfg1 = cacheConfiguration(igniteInstanceName);
@@ -85,8 +82,6 @@
             }
         }
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -274,9 +269,7 @@
         putValid(CACHE_NAME_2);
         remove(CACHE_NAME_2);
 
-        client = true;
-
-        startGrid(3);
+        startClientGrid(3);
 
         putValid(DEFAULT_CACHE_NAME);
         remove(DEFAULT_CACHE_NAME);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTopologyValidatorGridSplitCacheTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTopologyValidatorGridSplitCacheTest.java
index 300fc8b..196e9b8 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTopologyValidatorGridSplitCacheTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTopologyValidatorGridSplitCacheTest.java
@@ -153,8 +153,6 @@
 
         if (idx != CONFIGLESS_GRID_IDX) {
             if (idx == RESOLVER_GRID_IDX) {
-                cfg.setClientMode(true);
-
                 userAttrs.put(ACTIVATOR_NODE_ATTR, "true");
             }
             else
@@ -377,7 +375,7 @@
      * @throws Exception If failed.
      */
     private void resolveSplit() throws Exception {
-        startGrid(RESOLVER_GRID_IDX);
+        startClientGrid(RESOLVER_GRID_IDX);
 
         stopGrid(RESOLVER_GRID_IDX);
     }
@@ -389,7 +387,7 @@
      * @throws Exception If failed.
      */
     private void resolveSplitWithRace(int srvNode) throws Exception {
-        startGrid(RESOLVER_GRID_IDX);
+        startClientGrid(RESOLVER_GRID_IDX);
 
         startGrid(srvNode);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/MarshallerCacheJobRunNodeRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/MarshallerCacheJobRunNodeRestartTest.java
index 176f29d..3b15239 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/MarshallerCacheJobRunNodeRestartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/MarshallerCacheJobRunNodeRestartTest.java
@@ -20,7 +20,6 @@
 import java.io.Serializable;
 import java.util.concurrent.Callable;
 import org.apache.ignite.Ignite;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteCallable;
@@ -33,18 +32,6 @@
  *
  */
 public class MarshallerCacheJobRunNodeRestartTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /**
      * @throws Exception If failed.
      */
@@ -59,11 +46,7 @@
 
             startGridsMultiThreaded(NODES);
 
-            client = true;
-
-            startGrid(NODES);
-
-            client = false;
+            startClientGrid(NODES);
 
             final IgniteInternalFuture fut = GridTestUtils.runAsync(new Callable<Void>() {
                 @Override public Void call() throws Exception {
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/NonAffinityCoordinatorDynamicStartStopTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/NonAffinityCoordinatorDynamicStartStopTest.java
index 2df81fd..2e5ba8c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/NonAffinityCoordinatorDynamicStartStopTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/NonAffinityCoordinatorDynamicStartStopTest.java
@@ -63,9 +63,6 @@
 
         cfg.setConsistentId(gridName);
 
-        if (gridName.contains("client"))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -79,7 +76,7 @@
 
         crd.active(true);
 
-        startGrid("client");
+        startClientGrid("client");
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheMetricsForClusterGroupSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheMetricsForClusterGroupSelfTest.java
index 01dbfd7..a709af6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheMetricsForClusterGroupSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheMetricsForClusterGroupSelfTest.java
@@ -20,7 +20,6 @@
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
 
@@ -34,29 +33,15 @@
     /** Client count */
     private static final int CLIENT_CNT = 3;
 
-    /** Grid client mode */
-    private boolean clientMode;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(clientMode);
-
-        return cfg;
-    }
-
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         // start grids
-        clientMode = false;
         for (int i = 0; i < GRID_CNT; i++)
             startGrid("server-" + i);
 
         // start clients
-        clientMode = true;
         for (int i = 0; i < CLIENT_CNT; i++)
-            startGrid("client-" + i);
+            startClientGrid("client-" + i);
     }
 
     @Test
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/PartitionsExchangeCoordinatorFailoverTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/PartitionsExchangeCoordinatorFailoverTest.java
index 38fb088..540f343 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/PartitionsExchangeCoordinatorFailoverTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/PartitionsExchangeCoordinatorFailoverTest.java
@@ -69,9 +69,6 @@
     /** */
     private boolean newCaches = true;
 
-    /** Node client mode. */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -98,8 +95,6 @@
             );
         }
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -422,12 +417,8 @@
 
         IgniteEx crd = startGrid(CRD_NONE);
 
-        client = true;
-
         // Start several clients.
-        IgniteEx clientNode = (IgniteEx) startGridsMultiThreaded(2, 2);
-
-        client = false;
+        IgniteEx clientNode = (IgniteEx)startClientGridsMultiThreaded(2, 2);
 
         awaitPartitionMapExchange();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/SetTxTimeoutOnPartitionMapExchangeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/SetTxTimeoutOnPartitionMapExchangeTest.java
index b848edd..8a485e0 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/SetTxTimeoutOnPartitionMapExchangeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/SetTxTimeoutOnPartitionMapExchangeTest.java
@@ -142,8 +142,8 @@
      */
     @Test
     public void testSetTxTimeoutOnClientDuringPartitionMapExchange() throws Exception {
-        IgniteEx ig = (IgniteEx) startGrids(2);
-        IgniteEx client = startGrid(getConfiguration("client").setClientMode(true));
+        IgniteEx ig = startGrids(2);
+        IgniteEx client = startClientGrid(getConfiguration("client"));
 
         checkSetTxTimeoutDuringPartitionMapExchange(client);
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryAtomicEntryProcessorDeploymentSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryAtomicEntryProcessorDeploymentSelfTest.java
index 781008d..4368e2c8 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryAtomicEntryProcessorDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryAtomicEntryProcessorDeploymentSelfTest.java
@@ -86,11 +86,9 @@
      */
     private void doTestGet(boolean withKeepBinary) throws Exception {
         try {
-            clientMode = false;
             startGrid(0);
 
-            clientMode = true;
-            startGrid(1);
+            startClientGrid(1);
 
             Class valCls = grid(1).configuration().getClassLoader().loadClass(TEST_VALUE);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectMetadataExchangeMultinodeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectMetadataExchangeMultinodeTest.java
index 4f39918..861d69b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectMetadataExchangeMultinodeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectMetadataExchangeMultinodeTest.java
@@ -58,9 +58,6 @@
  */
 public class GridCacheBinaryObjectMetadataExchangeMultinodeTest extends GridCommonAbstractTest {
     /** */
-    private boolean clientMode;
-
-    /** */
     private boolean applyDiscoveryHook;
 
     /** */
@@ -96,8 +93,6 @@
 
         cfg.setMarshaller(new BinaryMarshaller());
 
-        cfg.setClientMode(clientMode);
-
         CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
 
         ccfg.setCacheMode(CacheMode.REPLICATED);
@@ -326,7 +321,6 @@
      * @param clientName name of client node.
      */
     private Ignite startDeafClient(String clientName) throws Exception {
-        clientMode = true;
         applyDiscoveryHook = true;
         discoveryHook = new DiscoveryHook() {
             @Override public void handleDiscoveryMessage(DiscoverySpiCustomMessage msg) {
@@ -344,9 +338,8 @@
             }
         };
 
-        Ignite client = startGrid(clientName);
+        Ignite client = startClientGrid(clientName);
 
-        clientMode = false;
         applyDiscoveryHook = false;
 
         return client;
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheClientNodeBinaryObjectMetadataMultinodeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheClientNodeBinaryObjectMetadataMultinodeTest.java
index c6dfa58..f318efd 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheClientNodeBinaryObjectMetadataMultinodeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheClientNodeBinaryObjectMetadataMultinodeTest.java
@@ -48,9 +48,6 @@
  *
  */
 public class GridCacheClientNodeBinaryObjectMetadataMultinodeTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -67,8 +64,6 @@
 
         cfg.setCacheConfiguration(ccfg);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -134,9 +129,7 @@
             stop.set(true);
         }
 
-        client = true;
-
-        startGridsMultiThreaded(2, 5);
+        startClientGridsMultiThreaded(2, 5);
 
         fut.get();
 
@@ -194,8 +187,6 @@
             cache.put(i, builder.build());
         }
 
-        client = true;
-
         final CyclicBarrier barrier = new CyclicBarrier(6);
 
         final AtomicInteger startIdx = new AtomicInteger(4);
@@ -204,7 +195,7 @@
             @Override public Object call() throws Exception {
                 barrier.await();
 
-                Ignite ignite = startGrid(startIdx.getAndIncrement());
+                Ignite ignite = startClientGrid(startIdx.getAndIncrement());
 
                 assertTrue(ignite.configuration().isClientMode());
 
@@ -267,14 +258,10 @@
      */
     @Test
     public void testClientStartsFirst() throws Exception {
-        client = true;
-
-        final Ignite ignite0 = startGrid(0);
+        final Ignite ignite0 = startClientGrid(0);
 
         assertTrue(ignite0.configuration().isClientMode());
 
-        client = false;
-
         Ignite ignite1 = startGrid(1);
 
         assertFalse(ignite1.configuration().isClientMode());
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/AbstractReadRepairTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/AbstractReadRepairTest.java
index aca5a75..e40329d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/AbstractReadRepairTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/consistency/AbstractReadRepairTest.java
@@ -64,9 +64,6 @@
     /** Key. */
     protected static int iterableKey;
 
-    /** Is client flag. */
-    protected boolean client;
-
     /** Backups count. */
     protected Integer backupsCount() {
         return 3;
@@ -90,10 +87,8 @@
 
         grid(0).getOrCreateCache(cacheConfiguration());
 
-        client = true;
-
-        startGrid(G.allGrids().size() + 1); // Client node 1.
-        startGrid(G.allGrids().size() + 1); // Client node 2.
+        startClientGrid(G.allGrids().size() + 1); // Client node 1.
+        startClientGrid(G.allGrids().size() + 1); // Client node 2.
 
         final IgniteEvents evts = ignite.events();
 
@@ -145,8 +140,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(client);
-
         cfg.setIncludeEventTypes(EventType.EVTS_ALL);
 
         return cfg;
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAbstractDataStructuresFailoverSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAbstractDataStructuresFailoverSelfTest.java
index 54ca862..a7c0bb6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAbstractDataStructuresFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAbstractDataStructuresFailoverSelfTest.java
@@ -71,6 +71,7 @@
 import org.apache.ignite.testframework.GridTestUtils;
 import org.junit.Test;
 
+import static java.lang.Boolean.TRUE;
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.testframework.GridTestUtils.waitForCondition;
 
@@ -99,9 +100,6 @@
     /** */
     private static final int TOP_CHANGE_THREAD_CNT = 2;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected long getTestTimeout() {
         return TEST_TIMEOUT;
@@ -151,10 +149,8 @@
 
         cfg.setCacheConfiguration(ccfg);
 
-        if (client) {
-            cfg.setClientMode(client);
+        if (cfg.isClientMode() == TRUE)
             ((TcpDiscoverySpi)(cfg.getDiscoverySpi())).setForceServerMode(true);
-        }
 
         return cfg;
     }
@@ -166,7 +162,7 @@
      * @throws Exception If failed.
      */
     protected IgniteEx startClient() throws Exception {
-        return startGrid(getConfiguration(CLIENT_INSTANCE_NAME).setClientMode(true));
+        return startClientGrid(getConfiguration(CLIENT_INSTANCE_NAME));
     }
 
     /**
@@ -174,9 +170,7 @@
      */
     @Test
     public void testAtomicLongFailsWhenServersLeft() throws Exception {
-        client = true;
-
-        Ignite ignite = startGrid(gridCount());
+        Ignite ignite = startClientGrid(gridCount());
 
         new Timer().schedule(new TimerTask() {
             @Override public void run() {
@@ -748,9 +742,7 @@
      * @throws Exception If failed.
      */
     public void testReentrantLockFailsWhenServersLeft(final boolean fair) throws Exception {
-        client = true;
-
-        Ignite client = startGrid(gridCount());
+        Ignite client = startClientGrid(gridCount());
 
         Ignite server = grid(0);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheQueueClientDisconnectTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheQueueClientDisconnectTest.java
index a76c3b0..d8131fb 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheQueueClientDisconnectTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheQueueClientDisconnectTest.java
@@ -41,9 +41,6 @@
     /** */
     private static final int FAILURE_DETECTION_TIMEOUT = 10_000;
 
-    /** */
-    private boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -53,9 +50,6 @@
         cfg.setFailureDetectionTimeout(FAILURE_DETECTION_TIMEOUT);
         cfg.setClientFailureDetectionTimeout(FAILURE_DETECTION_TIMEOUT);
 
-        if (clientMode)
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -78,10 +72,7 @@
     public void testClientDisconnect() throws Exception {
         try {
             Ignite server = startGrid(0);
-
-            clientMode = true;
-
-            Ignite client = startGrid(1);
+            Ignite client = startClientGrid(1);
 
             awaitPartitionMapExchange();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteClientDataStructuresAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteClientDataStructuresAbstractTest.java
index 8c86ab7..3114f62 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteClientDataStructuresAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteClientDataStructuresAbstractTest.java
@@ -55,8 +55,6 @@
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         if (igniteInstanceName.equals(getTestIgniteInstanceName(NODE_CNT - 1))) {
-            cfg.setClientMode(true);
-
             if (!clientDiscovery())
                 ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
         }
@@ -70,7 +68,8 @@
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        startGrids(NODE_CNT);
+        startGrids(NODE_CNT - 1);
+        startClientGrid(NODE_CNT - 1);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteSequenceInternalCleanupTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteSequenceInternalCleanupTest.java
index 8b9d731..fceceff 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteSequenceInternalCleanupTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/IgniteSequenceInternalCleanupTest.java
@@ -48,10 +48,7 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode("client".equals(igniteInstanceName));
-
         cfg.setMetricsUpdateFrequency(10);
-
         cfg.setActiveOnStart(false);
 
         AtomicConfiguration atomicCfg = atomicConfiguration();
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheAsyncOperationsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheAsyncOperationsTest.java
index 6f7ade3..e08d745 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheAsyncOperationsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheAsyncOperationsTest.java
@@ -27,7 +27,6 @@
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.store.CacheStoreAdapter;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteFuture;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -47,20 +46,11 @@
     private static volatile CountDownLatch latch;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        if (igniteInstanceName.equals(getTestIgniteInstanceName(1)))
-            cfg.setClientMode(true);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        startGrids(2);
+        startGrid(0);
+        startClientGrid(1);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheAtomicPrimarySyncBackPressureTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheAtomicPrimarySyncBackPressureTest.java
index 492167f..5522803 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheAtomicPrimarySyncBackPressureTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheAtomicPrimarySyncBackPressureTest.java
@@ -60,7 +60,6 @@
         spi.setMessageQueueLimit(100);
 
         cfg.setCommunicationSpi(spi);
-        cfg.setClientMode(gridName.contains("client"));
         cfg.setCacheConfiguration(ccfg);
 
         return cfg;
@@ -79,7 +78,7 @@
         Ignite srv1 = startGrid("server1");
         Ignite srv2 = startGrid("server2");
 
-        final Ignite client = startGrid("client");
+        final Ignite client = startClientGrid("client");
 
         checkBackPressure(client, srv1, srv2);
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBaselineTopologyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBaselineTopologyTest.java
index c7e4d04..3039c63 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBaselineTopologyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBaselineTopologyTest.java
@@ -74,9 +74,6 @@
     private static final String CACHE_NAME = "cache";
 
     /** */
-    private boolean client;
-
-    /** */
     private static final int NODE_COUNT = 4;
 
     /** */
@@ -103,8 +100,6 @@
 
         cleanPersistenceDir();
 
-        client = false;
-
         disableAutoActivation = false;
 
         System.clearProperty(IGNITE_WAL_LOG_TX_RECORDS);
@@ -139,9 +134,6 @@
         if (userAttrs != null)
             cfg.setUserAttributes(userAttrs);
 
-        if (client)
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -429,13 +421,8 @@
 
         IgniteEx ignite;
 
-        if (fromClient) {
-            client = true;
-
-            ignite = startGrid(NODE_COUNT + 10);
-
-            client = false;
-        }
+        if (fromClient)
+            ignite = startClientGrid(NODE_COUNT + 10);
         else
             ignite = grid(0);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheClientsConcurrentStartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheClientsConcurrentStartTest.java
index 4e021da..b03b0e1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheClientsConcurrentStartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheClientsConcurrentStartTest.java
@@ -94,9 +94,7 @@
 
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
 
-        if (getTestIgniteInstanceIndex(gridName) >= SRV_CNT)
-            cfg.setClientMode(true);
-        else {
+        if (getTestIgniteInstanceIndex(gridName) < SRV_CNT) {
             CacheConfiguration ccfgs[] = new CacheConfiguration[CACHES / 2];
 
             for (int i = 0; i < ccfgs.length; i++)
@@ -165,7 +163,7 @@
                     Random rnd = new Random();
 
                     try {
-                        Ignite ignite = startGrid(SRV_CNT + idx);
+                        Ignite ignite = startClientGrid(SRV_CNT + idx);
 
                         assertTrue(ignite.configuration().isClientMode());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheDiscoveryDataConcurrentJoinTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheDiscoveryDataConcurrentJoinTest.java
index f060d46..d84dab0 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheDiscoveryDataConcurrentJoinTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheDiscoveryDataConcurrentJoinTest.java
@@ -47,9 +47,6 @@
     private static final int ITERATIONS = 3;
 
     /** */
-    private boolean client;
-
-    /** */
     private ThreadLocal<Integer> staticCaches = new ThreadLocal<>();
 
     /** */
@@ -87,8 +84,6 @@
 
         cfg.setDiscoverySpi(testSpi);
 
-        cfg.setClientMode(client);
-
         Integer caches = staticCaches.get();
 
         if (caches != null) {
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java
index d08305e..909325c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java
@@ -94,9 +94,6 @@
     private static final long WAIT_SECONDS = 45;
 
     /** */
-    private ThreadLocal<Boolean> client = new ThreadLocal<>();
-
-    /** */
     private boolean testSpi;
 
     /** */
@@ -123,16 +120,8 @@
         else if (testDelaySpi)
             cfg.setCommunicationSpi(new TestDelayExchangeMessagesSpi());
 
-        Boolean clientMode = client.get();
-
-        if (clientMode == null && clientC != null)
-            clientMode = clientC.apply(igniteInstanceName);
-
-        if (clientMode != null) {
-            cfg.setClientMode(clientMode);
-
-            client.set(null);
-        }
+        if (clientC != null)
+            cfg.setClientMode(clientC.apply(igniteInstanceName));
 
         if (cfgCache) {
             cfg.setCacheConfiguration(
@@ -216,11 +205,8 @@
 
             startGridsMultiThreaded(srvs);
 
-            for (int i = 0; i < clients; i++) {
-                client.set(true);
-
-                startGrid(srvs + i);
-            }
+            for (int i = 0; i < clients; i++)
+                startClientGrid(srvs + i);
 
             final int initNodes = srvs + clients;
 
@@ -247,12 +233,13 @@
                     if (rnd.nextInt(3) == 0) {
                         log.info("Start client: " + nodeIdx);
 
-                        client.set(true);
+                        startClientGrid(nodeIdx);
                     }
-                    else
+                    else {
                         log.info("Start server: " + nodeIdx);
 
-                    startGrid(nodeIdx);
+                        startGrid(nodeIdx);
+                    }
 
                     if (rnd.nextBoolean()) {
                         log.info("Stop started node: " + nodeIdx);
@@ -289,11 +276,8 @@
 
             Ignite srv0 = startGrids(srvs);
 
-            for (int i = 0; i < clients; i++) {
-                client.set(true);
-
-                startGrid(srvs + i);
-            }
+            for (int i = 0; i < clients; i++)
+                startClientGrid(srvs + i);
 
             final int threads = 8;
 
@@ -312,12 +296,13 @@
                     if (rnd.nextInt(3) == 0) {
                         log.info("Start client: " + nodeIdx);
 
-                        client.set(true);
+                        startClientGrid(nodeIdx);
                     }
-                    else
+                    else {
                         log.info("Start server: " + nodeIdx);
 
-                    startGrid(nodeIdx);
+                        startGrid(nodeIdx);
+                    }
 
                     return null;
                 }
@@ -344,11 +329,8 @@
 
             Ignite srv0 = startGrids(srvs);
 
-            for (int i = 0; i < clients; i++) {
-                client.set(true);
-
-                startGrid(srvs + i);
-            }
+            for (int i = 0; i < clients; i++)
+                startClientGrid(srvs + i);
 
             final int threads = 8;
 
@@ -384,12 +366,13 @@
                         if (rnd.nextInt(5) == 0) {
                             log.info("Start client: " + nodeIdx);
 
-                            client.set(true);
+                            startClientGrid(nodeIdx);
                         }
-                        else
+                        else {
                             log.info("Start server: " + nodeIdx);
 
-                        startGrid(nodeIdx);
+                            startGrid(nodeIdx);
+                        }
                     }
 
                     return null;
@@ -436,12 +419,14 @@
 
             IgniteInternalFuture fut = GridTestUtils.runMultiThreadedAsync(new Callable<Void>() {
                 @Override public Void call() throws Exception {
-                    if (withClients)
-                        client.set(ThreadLocalRandom.current().nextBoolean());
-
                     int nodeIdx = idx.getAndIncrement();
 
-                    Ignite node = startGrid(nodeIdx);
+                    Ignite node;
+
+                    if (withClients && ThreadLocalRandom.current().nextBoolean())
+                        node = startClientGrid(nodeIdx);
+                    else
+                        node = startGrid(nodeIdx);
 
                     checkNodeCaches(node, nodeIdx * 1000, 1000);
 
@@ -483,9 +468,7 @@
 
         IgniteInternalFuture<?> fut2 = GridTestUtils.runMultiThreadedAsync(new Callable<Void>() {
             @Override public Void call() throws Exception {
-                client.set(true);
-
-                startGrid(2);
+                startClientGrid(2);
 
                 return null;
             }
@@ -724,13 +707,8 @@
     public void testMergeServerJoin1ClientsInTopology() throws Exception {
         IgniteEx srv0 = startGrid(0);
 
-        client.set(true);
-
-        startGrid(1);
-
-        client.set(true);
-
-        startGrid(2);
+        startClientGrid(1);
+        startClientGrid(2);
 
         mergeExchangeWaitVersion(srv0, 5);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheGetInsideLockChangingTopologyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheGetInsideLockChangingTopologyTest.java
index 0e97aa3..a02565d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheGetInsideLockChangingTopologyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheGetInsideLockChangingTopologyTest.java
@@ -55,10 +55,6 @@
  *
  */
 public class CacheGetInsideLockChangingTopologyTest extends GridCommonAbstractTest {
-
-    /** */
-    private static ThreadLocal<Boolean> client = new ThreadLocal<>();
-
     /** */
     private static final int SRVS = 3;
 
@@ -80,13 +76,7 @@
 
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
-        Boolean clientMode = client.get();
-
-        client.set(null);
-
-        if (clientMode != null && clientMode)
-            cfg.setClientMode(true);
-        else {
+        if (!cfg.isClientMode()) {
             cfg.setCacheConfiguration(cacheConfiguration(TX_CACHE1, TRANSACTIONAL),
                 cacheConfiguration(TX_CACHE2, TRANSACTIONAL),
                 cacheConfiguration(ATOMIC_CACHE, ATOMIC));
@@ -117,15 +107,11 @@
 
         startGridsMultiThreaded(SRVS);
 
-        client.set(true);
-
-        Ignite client1 = startGrid(SRVS);
+        Ignite client1 = startClientGrid(SRVS);
 
         assertTrue(client1.configuration().isClientMode());
 
-        client.set(true);
-
-        Ignite client2 = startGrid(SRVS + 1);
+        Ignite client2 = startClientGrid(SRVS + 1);
 
         assertTrue(client2.configuration().isClientMode());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentNodeJoinValidationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentNodeJoinValidationTest.java
index 9612d6c..fd487f2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentNodeJoinValidationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentNodeJoinValidationTest.java
@@ -29,17 +29,12 @@
     /** */
     private boolean lateAff;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setLateAffinityAssignment(lateAff);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -82,9 +77,7 @@
 
         startGrid(1);
 
-        client = true;
-
-        startGrid(2);
+        startClientGrid(2);
 
         assertEquals(3, ignite.cluster().nodes().size());
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
index e50d20b..93380cc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
@@ -112,9 +112,6 @@
  */
 public class CacheLateAffinityAssignmentTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private boolean forceSrvMode;
 
     /** */
@@ -174,7 +171,7 @@
             cfg.setCacheConfiguration(ccfg);
 
         if (clientC != null) {
-            client = clientC.apply(igniteInstanceName);
+            cfg.setClientMode(clientC.apply(igniteInstanceName));
 
             discoSpi.setJoinTimeout(30_000);
         }
@@ -185,8 +182,6 @@
 
         cfg.setDataStorageConfiguration(cfg1);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -2249,11 +2244,7 @@
         for (int i = 0; i < SRVS; i++)
             startGrid(i);
 
-        client = true;
-
-        startGrid(SRVS);
-
-        client = false;
+        startClientGrid(SRVS);
 
         final List<CacheConfiguration> ccfgs = new ArrayList<>();
 
@@ -2873,14 +2864,10 @@
      * @throws Exception If failed.
      */
     private Ignite startClient(int idx, long topVer) throws Exception {
-        client = true;
-
-        Ignite ignite = startGrid(idx);
+        Ignite ignite = startClientGrid(idx);
 
         assertTrue(ignite.configuration().isClientMode());
 
-        client = false;
-
         calculateAffinity(topVer);
 
         return ignite;
@@ -2909,9 +2896,10 @@
      * @throws Exception If failed.
      */
     private void startNode(String name, long topVer, boolean client) throws Exception {
-        this.client = client;
-
-        startGrid(name);
+        if (client)
+            startClientGrid(name);
+        else
+            startGrid(name);
 
         calculateAffinity(topVer);
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CachePartitionStateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CachePartitionStateTest.java
index 439967b..adec60d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CachePartitionStateTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CachePartitionStateTest.java
@@ -50,9 +50,6 @@
  */
 public class CachePartitionStateTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private CacheConfiguration ccfg;
 
     /** {@inheritDoc} */
@@ -61,8 +58,6 @@
 
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
 
-        cfg.setClientMode(client);
-
         if (ccfg != null) {
             cfg.setCacheConfiguration(ccfg);
 
@@ -170,9 +165,7 @@
 
         checkRebalance(DEFAULT_CACHE_NAME, true);
 
-        client = true;
-
-        Ignite clientNode = startGrid(4);
+        Ignite clientNode = startClientGrid(4);
 
         checkPartitionsState(assign0, DEFAULT_CACHE_NAME, OWNING);
 
@@ -182,8 +175,6 @@
 
         checkRebalance(DEFAULT_CACHE_NAME, true);
 
-        client = false;
-
         startGrid(5);
 
         checkRebalance(DEFAULT_CACHE_NAME, false);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheRentingStateRepairTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheRentingStateRepairTest.java
index 69beba8..0595b9f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheRentingStateRepairTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheRentingStateRepairTest.java
@@ -56,8 +56,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(CLIENT.equals(igniteInstanceName));
-
         CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
 
         ccfg.setAffinity(new RendezvousAffinityFunction(false, PARTS).setPartitions(64));
@@ -303,7 +301,7 @@
 
                         // Trigger partition clear on next topology version.
                         if (client)
-                            startGrid(CLIENT);
+                            startClientGrid(CLIENT);
                         else
                             startGrid(2);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheResultIsNotNullOnPartitionLossTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheResultIsNotNullOnPartitionLossTest.java
index f43f49c..2e6a495 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheResultIsNotNullOnPartitionLossTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheResultIsNotNullOnPartitionLossTest.java
@@ -58,9 +58,6 @@
     /** Number of cache entries to insert into the test cache. */
     private static final int CACHE_ENTRIES_CNT = 60;
 
-    /** True if {@link #getConfiguration(String)} is expected to configure client node on next invocations. */
-    private boolean isClient;
-
     /** Client Ignite instance. */
     private IgniteEx client;
 
@@ -79,9 +76,6 @@
                 .setPartitionLossPolicy(PartitionLossPolicy.READ_WRITE_SAFE)
         );
 
-        if (isClient)
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -98,9 +92,7 @@
         for (Integer i : list)
             startGrid(i);
 
-        isClient = true;
-
-        client = startGrid(CLIENT_IDX);
+        client = startClientGrid(CLIENT_IDX);
 
         try (IgniteDataStreamer<Integer, Integer> dataStreamer = client.dataStreamer(DEFAULT_CACHE_NAME)) {
             dataStreamer.allowOverwrite(true);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheStartOnJoinTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheStartOnJoinTest.java
index 433c859..37faf5b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheStartOnJoinTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheStartOnJoinTest.java
@@ -55,9 +55,6 @@
     /** Iteration. */
     private static final int ITERATIONS = 3;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
@@ -100,8 +97,6 @@
 
         cfg.setDataStorageConfiguration(memCfg);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -160,8 +155,6 @@
      * @throws Exception If failed.
      */
     private void doTest(final boolean createCache) throws Exception {
-        client = false;
-
         final int CLIENTS = 5;
         final int SRVS = 4;
 
@@ -171,14 +164,12 @@
 
         final CyclicBarrier b = new CyclicBarrier(CLIENTS);
 
-        client = true;
-
         GridTestUtils.runMultiThreaded(new IgniteInClosure<Integer>() {
             @Override public void apply(Integer idx) {
                 try {
                     b.await();
 
-                    Ignite node = startGrid(idx + SRVS);
+                    Ignite node = startClientGrid(idx + SRVS);
 
                     if (createCache) {
                         for (int c = 0; c < 5; c++) {
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheTryLockMultithreadedTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheTryLockMultithreadedTest.java
index 8659fc4..6231c1f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheTryLockMultithreadedTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheTryLockMultithreadedTest.java
@@ -40,15 +40,10 @@
     /** */
     private static final int SRVS = 2;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(client);
-
         CacheConfiguration<Integer, Integer> ccfg = new CacheConfiguration<>(DEFAULT_CACHE_NAME);
 
         ccfg.setAtomicityMode(TRANSACTIONAL);
@@ -66,9 +61,7 @@
 
         startGridsMultiThreaded(SRVS);
 
-        client = true;
-
-        startGrid(SRVS);
+        startClientGrid(SRVS);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/FailBackupOnAtomicOperationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/FailBackupOnAtomicOperationTest.java
index b835033..934b0ae 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/FailBackupOnAtomicOperationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/FailBackupOnAtomicOperationTest.java
@@ -42,13 +42,9 @@
     /** Persistence. */
     private boolean persistence = false;
 
-    /** Client. */
-    private static boolean client = false;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         return super.getConfiguration(igniteInstanceName)
-            .setClientMode(client)
             .setConsistentId(igniteInstanceName)
             .setCommunicationSpi(new TestRecordingCommunicationSpi())
             .setDataStorageConfiguration(new DataStorageConfiguration()
@@ -66,7 +62,6 @@
         stopAllGrids();
 
         persistence = false;
-        client = false;
 
         cleanPersistenceDir();
 
@@ -98,11 +93,7 @@
 
         ignite0.cluster().active(true);
 
-        client = true;
-
-        Ignite igniteClient = startGrid("client");
-
-        client = false;
+        Ignite igniteClient = startClientGrid("client");
 
         awaitPartitionMapExchange();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheMixedModeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheMixedModeSelfTest.java
index 8e966e0..cbde225 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheMixedModeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheMixedModeSelfTest.java
@@ -21,7 +21,6 @@
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -40,9 +39,6 @@
 
         cfg.setCacheConfiguration(cacheConfiguration(igniteInstanceName));
 
-        if (F.eq(igniteInstanceName, getTestIgniteInstanceName(0)))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -60,7 +56,9 @@
 
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
-        startGrids(4);
+        startGrids(3);
+
+        startClientGrid(3);
     }
 
     /**
@@ -68,7 +66,7 @@
      */
     @Test
     public void testBasicOps() throws Exception {
-        IgniteCache<Object, Object> cache = grid(0).cache(DEFAULT_CACHE_NAME);
+        IgniteCache<Object, Object> cache = grid(3).cache(DEFAULT_CACHE_NAME);
 
         for (int i = 0; i < 1000; i++)
             cache.put(i, i);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteBinaryMetadataUpdateNodeRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteBinaryMetadataUpdateNodeRestartTest.java
index af3f2c5..9b17d87 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteBinaryMetadataUpdateNodeRestartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteBinaryMetadataUpdateNodeRestartTest.java
@@ -60,9 +60,6 @@
     /** */
     private static final int CLIENTS = 1;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -76,8 +73,6 @@
 
         cfg.setCacheConfiguration(ccfg1, ccfg2);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -113,13 +108,9 @@
         for (int i = 0; i < 10; i++) {
             log.info("Iteration: " + i);
 
-            client = false;
-
             startGridsMultiThreaded(SRVS);
 
-            client = true;
-
-            startGrid(SRVS);
+            startClientGrid(SRVS);
 
             final AtomicBoolean stop = new AtomicBoolean();
 
@@ -129,7 +120,7 @@
                         while (!stop.get()) {
                             log.info("Start node.");
 
-                            startGrid(SRVS + CLIENTS);
+                            startClientGrid(SRVS + CLIENTS);
 
                             log.info("Stop node.");
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java
index 423359b..6ba6481 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java
@@ -67,8 +67,6 @@
         ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setJoinTimeout(0);
 
         cfg.setClientFailureDetectionTimeout(200000);
-        cfg.setClientMode(!igniteInstanceName.equals(getTestIgniteInstanceName(0)));
-
         cfg.setClientConnectorConfiguration(new ClientConnectorConfiguration().setPortRange(1000));
 
         CacheConfiguration[] ccfgs = new CacheConfiguration[CACHES];
@@ -126,7 +124,7 @@
                 boolean cnt = false;
 
                 try {
-                    Ignite ignite = startGrid(idx.getAndIncrement());
+                    Ignite ignite = startClientGrid(idx.getAndIncrement());
 
                     assertTrue(ignite.configuration().isClientMode());
                     assertTrue(ignite.cluster().localNode().isClient());
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientMultiNodeUpdateTopologyLockTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientMultiNodeUpdateTopologyLockTest.java
index 7939f2c..50751df 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientMultiNodeUpdateTopologyLockTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientMultiNodeUpdateTopologyLockTest.java
@@ -50,20 +50,12 @@
     /** */
     private static final String TEST_CACHE = "testCache";
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
         cfg.setConsistentId(gridName);
-
-        TestRecordingCommunicationSpi commSpi = new TestRecordingCommunicationSpi();
-
-        cfg.setCommunicationSpi(commSpi);
-
-        cfg.setClientMode(client);
+        cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
 
         return cfg;
     }
@@ -75,11 +67,7 @@
     public void testPessimisticTx() throws Exception {
         startGrids(3);
 
-        client = true;
-
-        Ignite clientNode = startGrid(3);
-
-        client = false;
+        Ignite clientNode = startClientGrid(3);
 
         IgniteCache<Integer, Integer> cache = clientNode.createCache(cacheConfiguration(0, FULL_SYNC));
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
index c4dc8be..3911b53 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
@@ -110,9 +110,6 @@
     private CacheConfiguration ccfg;
 
     /** */
-    private boolean client;
-
-    /** */
     private volatile CyclicBarrier updateBarrier;
 
     /** {@inheritDoc} */
@@ -123,14 +120,11 @@
 
         ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
 
-        cfg.setClientMode(client);
-
         TestCommunicationSpi commSpi = new TestCommunicationSpi();
 
         commSpi.setSharedMemoryPort(-1);
 
         cfg.setCommunicationSpi(commSpi);
-
         cfg.setCacheConfiguration(ccfg);
 
         return cfg;
@@ -192,11 +186,9 @@
 
         ccfg.setNearConfiguration(nearCfg);
 
-        client = true;
-
         ccfg.setNearConfiguration(null);
 
-        Ignite ignite2 = startGrid(2);
+        Ignite ignite2 = startClientGrid(2);
 
         assertTrue(ignite2.configuration().isClientMode());
 
@@ -230,8 +222,6 @@
 
         assertFalse(putFut.isDone());
 
-        client = false;
-
         IgniteEx ignite3 = startGrid(3);
 
         log.info("Stop block1.");
@@ -267,8 +257,6 @@
 
         assertFalse(putFut.isDone());
 
-        client = false;
-
         startGrid(3);
 
         log.info("Stop block2.");
@@ -314,9 +302,7 @@
         IgniteEx ignite1 = startGrid(1);
         IgniteEx ignite2 = startGrid(2);
 
-        client = true;
-
-        Ignite ignite3 = startGrid(3);
+        Ignite ignite3 = startClientGrid(3);
 
         awaitPartitionMapExchange();
 
@@ -349,7 +335,7 @@
             }
         });
 
-        IgniteEx ignite4 = startGrid(4);
+        IgniteEx ignite4 = startClientGrid(4);
 
         assertTrue(ignite4.configuration().isClientMode());
 
@@ -401,11 +387,9 @@
         IgniteEx ignite0 = startGrid(0);
         IgniteEx ignite1 = startGrid(1);
 
-        client = true;
-
         ignite0.cache(DEFAULT_CACHE_NAME).put(0, 0);
 
-        Ignite ignite2 = startGrid(2);
+        Ignite ignite2 = startClientGrid(2);
 
         assertTrue(ignite2.configuration().isClientMode());
 
@@ -431,8 +415,6 @@
 
         assertFalse(putFut.isDone());
 
-        client = false;
-
         startGrid(3);
 
         log.info("Stop block.");
@@ -462,9 +444,7 @@
         IgniteEx ignite0 = startGrid(0);
         IgniteEx ignite1 = startGrid(1);
 
-        client = true;
-
-        Ignite ignite2 = startGrid(2);
+        Ignite ignite2 = startClientGrid(2);
 
         assertTrue(ignite2.configuration().isClientMode());
 
@@ -492,8 +472,6 @@
 
         assertFalse(putFut.isDone());
 
-        client = false;
-
         startGrid(3);
 
         log.info("Stop block.");
@@ -549,9 +527,7 @@
 
         awaitPartitionMapExchange();
 
-        client = true;
-
-        final Ignite ignite2 = startGrid(2);
+        final Ignite ignite2 = startClientGrid(2);
 
         assertTrue(ignite2.configuration().isClientMode());
 
@@ -585,8 +561,6 @@
 
         assertFalse(putFut.isDone());
 
-        client = false;
-
         IgniteEx ignite3 = startGrid(3);
 
         log.info("Stop block1.");
@@ -760,9 +734,7 @@
 
         awaitPartitionMapExchange();
 
-        client = true;
-
-        final Ignite ignite3 = startGrid(3);
+        final Ignite ignite3 = startClientGrid(3);
 
         assertTrue(ignite3.configuration().isClientMode());
 
@@ -800,8 +772,6 @@
             }
         });
 
-        client = false;
-
         IgniteEx ignite4 = startGrid(4);
 
         int minorVer = ignite4.configuration().isLateAffinityAssignment() ? 1 : 0;
@@ -869,9 +839,7 @@
         IgniteEx ignite1 = startGrid(1);
         IgniteEx ignite2 = startGrid(2);
 
-        client = true;
-
-        final Ignite ignite3 = startGrid(3);
+        final Ignite ignite3 = startClientGrid(3);
 
         assertTrue(ignite3.configuration().isClientMode());
 
@@ -910,7 +878,7 @@
             }
         });
 
-        IgniteEx ignite4 = startGrid(4);
+        IgniteEx ignite4 = startClientGrid(4);
 
         assertTrue(ignite4.configuration().isClientMode());
 
@@ -979,11 +947,9 @@
                 map.put(i, i + 1);
             }
 
-            client = true;
-
             ccfg = testPessimisticTx3Cfg();
 
-            final Ignite ignite3 = startGrid(3);
+            final Ignite ignite3 = startClientGrid(3);
 
             final IgniteCache<Integer, Integer> cache = ignite3.cache(DEFAULT_CACHE_NAME);
 
@@ -1006,8 +972,6 @@
 
             spi.waitForBlocked();
 
-            client = false;
-
             ccfg = testPessimisticTx3Cfg();
 
             startGrid(1);
@@ -1059,9 +1023,7 @@
 
         awaitPartitionMapExchange();
 
-        client = true;
-
-        final Ignite ignite2 = startGrid(2);
+        final Ignite ignite2 = startClientGrid(2);
 
         assertTrue(ignite2.configuration().isClientMode());
 
@@ -1095,8 +1057,6 @@
 
         assertFalse(putFut.isDone());
 
-        client = false;
-
         IgniteEx ignite3 = startGrid(3);
 
         awaitPartitionMapExchange();
@@ -1213,9 +1173,7 @@
 
         awaitPartitionMapExchange();
 
-        client = true;
-
-        final Ignite ignite2 = startGrid(2);
+        final Ignite ignite2 = startClientGrid(2);
 
         assertTrue(ignite2.configuration().isClientMode());
 
@@ -1255,8 +1213,6 @@
             }
         });
 
-        client = false;
-
         startGrid(3);
 
         log.info("Stop block.");
@@ -1336,9 +1292,7 @@
 
         awaitPartitionMapExchange();
 
-        client = true;
-
-        Ignite ignite3 = startGrid(3);
+        Ignite ignite3 = startClientGrid(3);
 
         assertTrue(ignite3.configuration().isClientMode());
 
@@ -1437,9 +1391,7 @@
 
         awaitPartitionMapExchange();
 
-        client = true;
-
-        Ignite ignite3 = startGrid(3);
+        Ignite ignite3 = startClientGrid(3);
 
         assertTrue(ignite3.configuration().isClientMode());
 
@@ -1530,9 +1482,7 @@
         IgniteEx ignite0 = startGrid(0);
         IgniteEx ignite1 = startGrid(1);
 
-        client = true;
-
-        Ignite ignite2 = startGrid(2);
+        Ignite ignite2 = startClientGrid(2);
 
         assertTrue(ignite2.configuration().isClientMode());
 
@@ -1560,7 +1510,7 @@
 
         lock1.unlock();
 
-        ignite2 = startGrid(2);
+        ignite2 = startClientGrid(2);
 
         assertTrue(ignite2.configuration().isClientMode());
 
@@ -1589,9 +1539,7 @@
         startGrid(0);
         startGrid(1);
 
-        client = true;
-
-        Ignite ignite2 = startGrid(2);
+        Ignite ignite2 = startClientGrid(2);
 
         IgniteCache<Integer, Integer> cache = ignite2.cache(DEFAULT_CACHE_NAME);
 
@@ -1601,8 +1549,6 @@
 
         IgniteInternalFuture<?> startFut = GridTestUtils.runAsync(new Callable<Object>() {
             @Override public Object call() throws Exception {
-                client = false;
-
                 startGrid(3);
 
                 return null;
@@ -1813,10 +1759,8 @@
 
         final List<Ignite> clients = new ArrayList<>();
 
-        client = true;
-
         for (int i = 0; i < CLIENT_CNT; i++) {
-            Ignite ignite = startGrid(SRV_CNT + i);
+            Ignite ignite = startClientGrid(SRV_CNT + i);
 
             assertTrue(ignite.configuration().isClientMode());
 
@@ -1923,9 +1867,7 @@
                 if (restartClient) {
                     log.info("Start client node.");
 
-                    client = true;
-
-                    IgniteEx ignite = startGrid(SRV_CNT + CLIENT_CNT);
+                    IgniteEx ignite = startClientGrid(SRV_CNT + CLIENT_CNT);
 
                     IgniteCache<Integer, Integer> cache = ignite.cache(DEFAULT_CACHE_NAME);
 
@@ -1974,8 +1916,6 @@
                 else {
                     log.info("Start server node: " + idx);
 
-                    client = false;
-
                     startGrid(idx);
                 }
 
@@ -2032,8 +1972,6 @@
 
         Ignite ignite0 = startGrid(0);
 
-        client = true;
-
         final AtomicInteger nodeIdx = new AtomicInteger(2);
 
         final int CLIENTS = 10;
@@ -2042,7 +1980,7 @@
             @Override public Void call() throws Exception {
                 int idx = nodeIdx.getAndIncrement();
 
-                startGrid(idx);
+                startClientGrid(idx);
 
                 return null;
             }
@@ -2058,8 +1996,6 @@
             assertEquals(CLIENTS, ignite.cluster().nodes().size());
         }
 
-        client = false;
-
         startGrid(0);
         startGrid(1);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodePartitionsExchangeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodePartitionsExchangeTest.java
index baf2d41..a8c185c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodePartitionsExchangeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodePartitionsExchangeTest.java
@@ -63,17 +63,12 @@
  *
  */
 public class IgniteCacheClientNodePartitionsExchangeTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
 
-        cfg.setClientMode(client);
-
         CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
 
         cfg.setCacheConfiguration(ccfg);
@@ -99,13 +94,11 @@
     public void testServerNodeLeave() throws Exception {
         Ignite ignite0 = startGrid(0);
 
-        client = true;
-
-        final Ignite ignite1 = startGrid(1);
+        final Ignite ignite1 = startClientGrid(1);
 
         waitForTopologyUpdate(2, 2);
 
-        final Ignite ignite2 = startGrid(2);
+        final Ignite ignite2 = startClientGrid(2);
 
         waitForTopologyUpdate(3, 3);
 
@@ -161,9 +154,7 @@
             }
         }, EventType.EVT_CACHE_REBALANCE_STARTED, EventType.EVT_CACHE_REBALANCE_STOPPED);
 
-        client = true;
-
-        Ignite ignite1 = startGrid(1);
+        Ignite ignite1 = startClientGrid(1);
 
         assertTrue(evtLatch0.await(1000, TimeUnit.MILLISECONDS));
 
@@ -171,7 +162,7 @@
 
         assertTrue(evtLatch0.await(1000, TimeUnit.MILLISECONDS));
 
-        ignite1 = startGrid(1);
+        ignite1 = startClientGrid(1);
 
         final CountDownLatch evtLatch1 = new CountDownLatch(1);
 
@@ -187,8 +178,6 @@
 
         assertTrue(evtLatch0.await(1000, TimeUnit.MILLISECONDS));
 
-        client = false;
-
         startGrid(2);
 
         assertTrue(evtLatch0.await(1000, TimeUnit.MILLISECONDS));
@@ -242,11 +231,9 @@
         spi0.reset();
         spi1.reset();
 
-        client = true;
-
         log.info("Start client node1.");
 
-        Ignite ignite2 = startGrid(2);
+        Ignite ignite2 = startClientGrid(2);
 
         waitForTopologyUpdate(3, 3);
 
@@ -267,7 +254,7 @@
 
         log.info("Start client node2.");
 
-        Ignite ignite3 = startGrid(3);
+        Ignite ignite3 = startClientGrid(3);
 
         waitForTopologyUpdate(4, 4);
 
@@ -292,8 +279,6 @@
 
         log.info("Start one more server node.");
 
-        client = false;
-
         Ignite ignite4 = startGrid(4);
 
         waitForTopologyUpdate(5, new AffinityTopologyVersion(5, 1));
@@ -529,11 +514,11 @@
 
         ignite0.createCache(ccfg);
 
-        client = !srvNode;
+        Ignite ignite2;
 
-        Ignite ignite2 = startGrid(2);
+        ignite2 = !srvNode ? startClientGrid(2) : startGrid(2);
 
-        int minorVer = !client && lateAff ? 1 : 0;
+        int minorVer = srvNode && lateAff ? 1 : 0;
 
         waitForTopologyUpdate(3, new AffinityTopologyVersion(3, minorVer));
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientReconnectTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientReconnectTest.java
index ec7baf2..c37fa4d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientReconnectTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientReconnectTest.java
@@ -66,9 +66,6 @@
     private static final long TEST_TIME = 60_000;
 
     /** */
-    private boolean client;
-
-    /** */
     private boolean forceServerMode;
 
     /** {@inheritDoc} */
@@ -77,7 +74,7 @@
 
         cfg.setPeerClassLoadingEnabled(false);
 
-        if (!client) {
+        if (!cfg.isClientMode()) {
             CacheConfiguration[] ccfgs = new CacheConfiguration[CACHES];
 
             for (int i = 0; i < CACHES; i++) {
@@ -98,8 +95,6 @@
         else
             ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(forceServerMode);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -129,9 +124,7 @@
     public void testClientReconnectOnExchangeHistoryExhaustion() throws Exception {
         startGrids(SRV_CNT);
 
-        client = true;
-
-        startGridsMultiThreaded(SRV_CNT, CLIENTS_CNT);
+        startClientGridsMultiThreaded(SRV_CNT, CLIENTS_CNT);
 
         waitForTopology(SRV_CNT + CLIENTS_CNT);
 
@@ -156,14 +149,12 @@
     public void testClientInForceServerModeStopsOnExchangeHistoryExhaustion() throws Exception {
         startGrids(SRV_CNT);
 
-        client = true;
-
         forceServerMode = true;
 
         int clientNodes = 24;
 
         try {
-            startGridsMultiThreaded(SRV_CNT, clientNodes);
+            startClientGridsMultiThreaded(SRV_CNT, clientNodes);
         }
         catch (IgniteCheckedException e) {
             //Ignored: it is expected to get exception here
@@ -256,8 +247,6 @@
     public void testClientReconnect() throws Exception {
         startGrids(SRV_CNT);
 
-        client = true;
-
         final AtomicBoolean stop = new AtomicBoolean(false);
 
         final AtomicInteger idx = new AtomicInteger(SRV_CNT);
@@ -266,7 +255,7 @@
 
         IgniteInternalFuture<?> fut = GridTestUtils.runMultiThreadedAsync(new Callable<Void>() {
             @Override public Void call() throws Exception {
-                Ignite ignite = startGrid(idx.getAndIncrement());
+                Ignite ignite = startClientGrid(idx.getAndIncrement());
 
                 latch.countDown();
 
@@ -291,7 +280,7 @@
             while (System.currentTimeMillis() < end) {
                 log.info("Iteration: " + cnt++);
 
-                try (Ignite ignite = startGrid(clientIdx)) {
+                try (Ignite ignite = startClientGrid(clientIdx)) {
                     assertTrue(ignite.cluster().localNode().isClient());
 
                     assertEquals(6, ignite.cluster().nodes().size());
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheConnectionRecoveryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheConnectionRecoveryTest.java
index 18a847b..d9bf3ff 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheConnectionRecoveryTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheConnectionRecoveryTest.java
@@ -52,9 +52,6 @@
  */
 public class IgniteCacheConnectionRecoveryTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private static final int SRVS = 5;
 
     /** */
@@ -66,8 +63,6 @@
 
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
-        cfg.setClientMode(client);
-
         cfg.setCacheConfiguration(
             cacheConfiguration("cache1", TRANSACTIONAL),
             cacheConfiguration("cache2", TRANSACTIONAL_SNAPSHOT),
@@ -82,9 +77,7 @@
 
         startGridsMultiThreaded(SRVS);
 
-        client = true;
-
-        startGridsMultiThreaded(SRVS, CLIENTS);
+        startClientGridsMultiThreaded(SRVS, CLIENTS);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheCreatePutTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheCreatePutTest.java
index d4ae1ad..2449eb2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheCreatePutTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheCreatePutTest.java
@@ -48,9 +48,6 @@
     /** Grid count. */
     private static final int GRID_CNT = 3;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -70,8 +67,6 @@
 
         cfg.setCacheConfiguration(ccfg);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -217,14 +212,10 @@
         }, NODES, "cache-thread");
 
         while (!fut.isDone()) {
-            client = true;
-
-            startGrid(NODES);
+            startClientGrid(NODES);
 
             stopGrid(NODES);
 
-            client = false;
-
             startGrid(NODES);
 
             stopGrid(NODES);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheFailedUpdateResponseTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheFailedUpdateResponseTest.java
index a212968..3bd0019 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheFailedUpdateResponseTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheFailedUpdateResponseTest.java
@@ -92,8 +92,6 @@
 
         cfg.setCacheConfiguration(atomicCfg, txCfg, mvccTxCfg);
 
-        cfg.setClientMode(igniteInstanceName.contains("client"));
-
         ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(LOCAL_IP_FINDER);
 
         return cfg;
@@ -103,7 +101,7 @@
     @Override protected void beforeTestsStarted() throws Exception {
         startGrid("server-1");
         startGrid("server-2");
-        startGrid("client");
+        startClientGrid("client");
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheGroupsPartitionLossPolicySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheGroupsPartitionLossPolicySelfTest.java
index 15f8038..a0040b7 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheGroupsPartitionLossPolicySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheGroupsPartitionLossPolicySelfTest.java
@@ -49,9 +49,6 @@
  */
 public class IgniteCacheGroupsPartitionLossPolicySelfTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private PartitionLossPolicy partLossPlc;
 
     /** */
@@ -68,8 +65,6 @@
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setClientMode(client);
-
         CacheConfiguration ccfg1 = new CacheConfiguration(CACHE_1)
             .setGroupName(GROUP_NAME)
             .setCacheMode(PARTITIONED)
@@ -292,11 +287,7 @@
             ignite(0).cache(CACHE_2).put(i, i);
         }
 
-        client = true;
-
-        startGrid(4);
-
-        client = false;
+        startClientGrid(4);
 
         for (int i = 0; i < 5; i++)
             info(">>> Node [idx=" + i + ", nodeId=" + ignite(i).cluster().localNode().id() + ']');
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java
index 88cc0df..e6dd119 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheManyClientsTest.java
@@ -52,9 +52,6 @@
     private static final int SRVS = 4;
 
     /** */
-    private boolean client;
-
-    /** */
     private boolean clientDiscovery;
 
     /** {@inheritDoc} */
@@ -81,8 +78,6 @@
         if (!clientDiscovery)
             ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
 
-        cfg.setClientMode(client);
-
         CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
 
         ccfg.setCacheMode(PARTITIONED);
@@ -137,8 +132,6 @@
      * @throws Exception If failed.
      */
     private void manyClientsSequentially() throws Exception {
-        client = true;
-
         List<Ignite> clients = new ArrayList<>();
 
         final int CLIENTS = 50;
@@ -148,7 +141,7 @@
         ThreadLocalRandom rnd = ThreadLocalRandom.current();
 
         for (int i = 0; i < CLIENTS; i++) {
-            Ignite ignite = startGrid(idx++);
+            Ignite ignite = startClientGrid(idx++);
 
             log.info("Started node: " + ignite.name());
 
@@ -228,8 +221,6 @@
      * @throws Exception If failed.
      */
     private void manyClientsPutGet() throws Throwable {
-        client = true;
-
         final AtomicInteger idx = new AtomicInteger(SRVS);
 
         final AtomicBoolean stop = new AtomicBoolean();
@@ -250,7 +241,7 @@
 
                         Thread.currentThread().setName("client-thread-node-" + nodeIdx);
 
-                        try (Ignite ignite = startGrid(nodeIdx)) {
+                        try (Ignite ignite = startClientGrid(nodeIdx)) {
                             log.info("Started node: " + ignite.name());
 
                             assertTrue(ignite.configuration().isClientMode());
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNearRestartRollbackSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNearRestartRollbackSelfTest.java
index 6ed7251..529e15d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNearRestartRollbackSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheNearRestartRollbackSelfTest.java
@@ -65,14 +65,10 @@
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setClientFailureDetectionTimeout(50000);
-
         cfg.setCacheConfiguration(cacheConfiguration(igniteInstanceName));
 
-        if (getTestIgniteInstanceName(3).equals(igniteInstanceName)) {
-            cfg.setClientMode(true);
-
-            ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
-        }
+        ((TcpDiscoverySpi)cfg.getDiscoverySpi())
+            .setForceServerMode(getTestIgniteInstanceName(3).equals(igniteInstanceName));
 
         TcpCommunicationSpi commSpi = new TcpCommunicationSpi();
 
@@ -108,9 +104,9 @@
      */
     @Test
     public void testRestarts() throws Exception {
-        startGrids(4);
+        startGrids(3);
 
-        Ignite tester = ignite(3);
+        Ignite tester = startClientGrid(3);
 
         final AtomicLong lastUpdateTs = new AtomicLong(System.currentTimeMillis());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java
index 001a337..4352c85 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java
@@ -91,9 +91,6 @@
     }
 
     /** */
-    private static boolean client;
-
-    /** */
     private static PartitionLossPolicy partLossPlc;
 
     /** */
@@ -126,12 +123,8 @@
 
         });
 
-        cfg.setClientMode(client);
-
         cfg.setCacheConfiguration(cacheConfiguration());
-
         cfg.setConsistentId(gridName);
-
         cfg.setDataStorageConfiguration(
             new DataStorageConfiguration()
                 .setDefaultDataRegionConfiguration(
@@ -639,10 +632,8 @@
         boolean canWrite,
         boolean safe
     ) throws Exception {
-        this.client = client;
-
         try {
-            IgniteEx cl = (IgniteEx)startGrid("newNode");
+            IgniteEx cl = client ? startClientGrid("newNode") : startGrid("newNode");
 
             CacheGroupContext grpCtx = cl.context().cache().cacheGroup(CU.cacheId(DEFAULT_CACHE_NAME));
 
@@ -654,8 +645,6 @@
         }
         finally {
             stopGrid("newNode", false);
-
-            this.client = false;
         }
     }
 
@@ -933,11 +922,7 @@
             for (int i = 0; i < aff.partitions(); i++)
                 ignite(0).cache(DEFAULT_CACHE_NAME).put(i, i);
 
-            client = true;
-
-            startGrid(4);
-
-            client = false;
+            startClientGrid(4);
 
             for (int i = 0; i < 5; i++)
                 info(">>> Node [idx=" + i + ", nodeId=" + ignite(i).cluster().localNode().id() + ']');
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePrimarySyncTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePrimarySyncTest.java
index 3c274e4..7937f85 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePrimarySyncTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePrimarySyncTest.java
@@ -57,9 +57,6 @@
     /** */
     private static final String MVCC_CACHE = "mvccCache";
 
-    /** */
-    private boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -81,8 +78,6 @@
 
         cfg.setCacheConfiguration(ccfg1, ccfg2, ccfg3);
 
-        cfg.setClientMode(clientMode);
-
         return cfg;
     }
 
@@ -92,9 +87,7 @@
 
         startGrids(SRVS);
 
-        clientMode = true;
-
-        Ignite client = startGrid(SRVS);
+        Ignite client = startClientGrid(SRVS);
 
         assertTrue(client.configuration().isClientMode());
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
index 6745013..59b2570 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
@@ -50,15 +50,10 @@
     /** */
     private static final int SRVS = 4;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(client);
-
         TestRecordingCommunicationSpi commSpi = new TestRecordingCommunicationSpi();
 
         cfg.setCommunicationSpi(commSpi);
@@ -72,11 +67,7 @@
 
         startGridsMultiThreaded(SRVS);
 
-        client = true;
-
-        startGridsMultiThreaded(SRVS, 1);
-
-        client = false;
+        startClientGridsMultiThreaded(SRVS, 1);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheThreadLocalTxTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheThreadLocalTxTest.java
index 84d63b3..5942067 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheThreadLocalTxTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheThreadLocalTxTest.java
@@ -22,7 +22,6 @@
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteTransactions;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.util.typedef.G;
 import org.apache.ignite.lang.IgniteFuture;
@@ -39,18 +38,6 @@
  *
  */
 public class IgniteCacheThreadLocalTxTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
@@ -73,9 +60,7 @@
     public void testMultiNode() throws Exception {
         startGridsMultiThreaded(4);
 
-        client = true;
-
-        startGrid(4);
+        startClientGrid(4);
 
         for (Ignite node : G.allGrids())
             threadLocalTx(node);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteRejectConnectOnNodeStopTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteRejectConnectOnNodeStopTest.java
index 0db6c7a..f36ee2a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteRejectConnectOnNodeStopTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteRejectConnectOnNodeStopTest.java
@@ -42,9 +42,6 @@
  */
 public class IgniteRejectConnectOnNodeStopTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private static CountDownLatch stopLatch = new CountDownLatch(1);
 
     /** {@inheritDoc} */
@@ -68,8 +65,6 @@
         commSpi.setSocketWriteTimeout(600000);
         commSpi.setAckSendThreshold(100);
 
-        cfg.setClientMode(client);
-
         CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
 
         cfg.setCacheConfiguration(ccfg);
@@ -89,9 +84,7 @@
     public void testNodeStop() throws Exception {
         Ignite srv = startGrid(0);
 
-        client = true;
-
-        final Ignite c = startGrid(1);
+        final Ignite c = startClientGrid(1);
 
         ClusterGroup grp = srv.cluster().forClients();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxCachePrimarySyncTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxCachePrimarySyncTest.java
index 79ab623..06cb0f3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxCachePrimarySyncTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxCachePrimarySyncTest.java
@@ -83,15 +83,10 @@
     /** */
     private static final int NODES = SRVS + CLIENTS;
 
-    /** */
-    private boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(clientMode);
-
         TestRecordingCommunicationSpi commSpi = new TestRecordingCommunicationSpi();
 
         commSpi.setSharedMemoryPort(-1);
@@ -112,17 +107,10 @@
 
         startGrids(SRVS);
 
-        try {
-            for (int i = 0; i < CLIENTS; i++) {
-                clientMode = true;
+        for (int i = 0; i < CLIENTS; i++) {
+            Ignite client = startClientGrid(SRVS + i);
 
-                Ignite client = startGrid(SRVS + i);
-
-                assertTrue(client.configuration().isClientMode());
-            }
-        }
-        finally {
-            clientMode = false;
+            assertTrue(client.configuration().isClientMode());
         }
     }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxCacheWriteSynchronizationModesMultithreadedTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxCacheWriteSynchronizationModesMultithreadedTest.java
index ecec29a..6d0004e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxCacheWriteSynchronizationModesMultithreadedTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxCacheWriteSynchronizationModesMultithreadedTest.java
@@ -75,17 +75,12 @@
     private static final int NODES = SRVS + CLIENTS;
 
     /** */
-    private boolean clientMode;
-
-    /** */
     private static final int MULTITHREADED_TEST_KEYS = 100;
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(clientMode);
-
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
         return cfg;
@@ -102,9 +97,7 @@
 
         startGridsMultiThreaded(SRVS);
 
-        clientMode = true;
-
-        startGridsMultiThreaded(SRVS, CLIENTS);
+        startClientGridsMultiThreaded(SRVS, CLIENTS);
 
         for (int i = 0; i < CLIENTS; i++)
             assertTrue(grid(SRVS + i).configuration().isClientMode());
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxConcurrentRemoveObjectsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxConcurrentRemoveObjectsTest.java
index b04c580..8485f4b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxConcurrentRemoveObjectsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxConcurrentRemoveObjectsTest.java
@@ -123,11 +123,8 @@
                 dataStreamer.addData(i, UUID.randomUUID().toString());
         }
 
-        IgniteEx client = startGrid(
-            getConfiguration()
-                .setClientMode(true)
-                .setIgniteInstanceName(UUID.randomUUID().toString())
-        );
+        IgniteEx client = startClientGrid(getConfiguration()
+                .setIgniteInstanceName(UUID.randomUUID().toString()));
 
         awaitPartitionMapExchange();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionsStateValidationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionsStateValidationTest.java
index 0db44d9..de88bb2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionsStateValidationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionsStateValidationTest.java
@@ -64,9 +64,6 @@
     /** Cache name. */
     private static final String CACHE_NAME = "cache";
 
-    /** */
-    private boolean clientMode;
-
     /** {@inheritDoc */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -80,9 +77,6 @@
 
         cfg.setCommunicationSpi(new SingleMessageInterceptorCommunicationSpi(2));
 
-        if (clientMode)
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -94,8 +88,6 @@
     /** {@inheritDoc */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
-
-        clientMode = false;
     }
 
     /**
@@ -140,7 +132,7 @@
     public void testPartitionCountersConsistencyOnExchange() throws Exception {
         // Reopen https://issues.apache.org/jira/browse/IGNITE-10766 if starts failing with forced MVCC
 
-        IgniteEx ignite = (IgniteEx) startGrids(4);
+        IgniteEx ignite = startGrids(4);
         ignite.cluster().active(true);
 
         awaitPartitionMapExchange();
@@ -148,11 +140,7 @@
         final String atomicCacheName = "atomic-cache";
         final String txCacheName = "tx-cache";
 
-        clientMode = true;
-
-        Ignite client = startGrid(4);
-
-        clientMode = false;
+        Ignite client = startClientGrid(4);
 
         IgniteCache atomicCache = client.getOrCreateCache(new CacheConfiguration<>(atomicCacheName)
             .setAtomicityMode(CacheAtomicityMode.ATOMIC)
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteAtomicLongChangingTopologySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteAtomicLongChangingTopologySelfTest.java
index 89f195c..4583b21 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteAtomicLongChangingTopologySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteAtomicLongChangingTopologySelfTest.java
@@ -67,9 +67,6 @@
     /** Queue. */
     private final Queue<Long> queue = new ConcurrentLinkedQueue<>();
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -84,8 +81,6 @@
 
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
-        cfg.setClientMode(client);
-
         cfg.setPeerClassLoadingEnabled(false);
 
         return cfg;
@@ -212,14 +207,10 @@
     private void testFailoverWithClient(IgniteInClosure<Ignite> c) throws Exception {
         startGridsMultiThreaded(GRID_CNT, false);
 
-        client = true;
-
-        Ignite ignite = startGrid(GRID_CNT);
+        Ignite ignite = startClientGrid(GRID_CNT);
 
         assertTrue(ignite.configuration().isClientMode());
 
-        client = false;
-
         final AtomicBoolean finished = new AtomicBoolean();
 
         IgniteInternalFuture<?> fut = restartThread(finished);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheCommitDelayTxRecoveryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheCommitDelayTxRecoveryTest.java
index b67e8dd..b4df949 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheCommitDelayTxRecoveryTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheCommitDelayTxRecoveryTest.java
@@ -66,17 +66,12 @@
     /** */
     private static volatile CountDownLatch commitFinishLatch;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -127,14 +122,10 @@
     private void checkRecovery(int backups, boolean useStore) throws Exception {
         startGridsMultiThreaded(SRVS, false);
 
-        client = true;
-
-        Ignite clientNode = startGrid(SRVS);
+        Ignite clientNode = startClientGrid(SRVS);
 
         assertTrue(clientNode.configuration().isClientMode());
 
-        client = false;
-
         clientNode.createCache(cacheConfiguration(backups, useStore));
 
         awaitPartitionMapExchange();
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheCrossCacheTxFailoverTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheCrossCacheTxFailoverTest.java
index fb16989..a335c16 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheCrossCacheTxFailoverTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheCrossCacheTxFailoverTest.java
@@ -82,9 +82,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (igniteInstanceName.equals(getTestIgniteInstanceName(GRID_CNT - 1)))
-            cfg.setClientMode(true);
-
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
         return cfg;
@@ -94,7 +91,8 @@
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        startGrids(4);
+        startGrids(GRID_CNT - 1);
+        startClientGrid(GRID_CNT - 1);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheMultiTxLockSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheMultiTxLockSelfTest.java
index bcd7b2f..7a15c2c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheMultiTxLockSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheMultiTxLockSelfTest.java
@@ -50,9 +50,6 @@
     /** */
     private volatile boolean run = true;
 
-    /** */
-    private boolean client;
-
     /** Unexpected lock error. */
     private volatile Throwable err;
 
@@ -82,8 +79,6 @@
 
         c.setCacheConfiguration(ccfg);
 
-        c.setClientMode(client);
-
         return c;
     }
 
@@ -136,15 +131,11 @@
 
             TimeUnit.SECONDS.sleep(3L);
 
-            client = testClient; // If test client start on node in client mode.
-
             // Start grid 2.
-            IgniteEx grid2 = startGrid(2);
+            IgniteEx grid2 = testClient ? startClientGrid(2) : startGrid(2);
 
             assertEquals((Object)testClient, grid2.configuration().isClientMode());
 
-            client = false;
-
             threads.add(runCacheOperations(grid2.cachex(CACHE_NAME), keys));
 
             TimeUnit.SECONDS.sleep(3L);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheTxRecoveryRollbackTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheTxRecoveryRollbackTest.java
index ff5ca9c..937b51c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheTxRecoveryRollbackTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheTxRecoveryRollbackTest.java
@@ -69,9 +69,6 @@
     /** */
     private static ConcurrentHashMap<Object, Object> storeMap = new ConcurrentHashMap<>();
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
@@ -82,8 +79,6 @@
 
         cfg.setCommunicationSpi(commSpi);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -145,10 +140,8 @@
 
         awaitPartitionMapExchange();
 
-        client = true;
-
-        Ignite client1 = startGrid(4);
-        final Ignite client2 = startGrid(5);
+        final Ignite client1 = startClientGrid(4);
+        final Ignite client2 = startClientGrid(5);
 
         final Integer key = primaryKey(srv0.cache(DEFAULT_CACHE_NAME));
 
@@ -245,10 +238,8 @@
 
         awaitPartitionMapExchange();
 
-        client = true;
-
-        Ignite client1 = startGrid(4);
-        final Ignite client2 = startGrid(5);
+        final Ignite client1 = startClientGrid(4);
+        final Ignite client2 = startClientGrid(5);
 
         final Integer key = primaryKey(srv0.cache(DEFAULT_CACHE_NAME));
 
@@ -381,9 +372,7 @@
 
         srv0Cache.put(key, 1);
 
-        client = true;
-
-        Ignite client = startGrid(4);
+        Ignite client = startClientGrid(4);
 
         testSpi(srv0).blockMessages(GridNearTxPrepareResponse.class, client.name());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/NotMappedPartitionInTxTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/NotMappedPartitionInTxTest.java
index b2bc828..8406713 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/NotMappedPartitionInTxTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/NotMappedPartitionInTxTest.java
@@ -60,9 +60,6 @@
     /** Test key. */
     private static final String TEST_KEY = "key";
 
-    /** Is client. */
-    private boolean isClient;
-
     /** Atomicity mode. */
     private CacheAtomicityMode atomicityMode = CacheAtomicityMode.TRANSACTIONAL;
 
@@ -76,7 +73,6 @@
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         return super.getConfiguration(gridName)
-            .setClientMode(isClient)
             .setCacheConfiguration(
                 new CacheConfiguration(CACHE)
                     .setAtomicityMode(atomicityMode)
@@ -92,11 +88,9 @@
     @Test
     public void testOneServerTx() throws Exception {
         try {
-            isClient = false;
             startGrid(0);
 
-            isClient = true;
-            final IgniteEx client = startGrid(1);
+            final IgniteEx client = startClientGrid(1);
 
             checkNotMapped(client, OPTIMISTIC, REPEATABLE_READ);
 
@@ -117,11 +111,9 @@
         try {
             atomicityMode = CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT;
 
-            isClient = false;
             startGrid(0);
 
-            isClient = true;
-            final IgniteEx client = startGrid(1);
+            final IgniteEx client = startClientGrid(1);
 
             checkNotMapped(client, PESSIMISTIC, REPEATABLE_READ);
         }
@@ -136,11 +128,9 @@
     @Test
     public void testFourServersTx() throws Exception {
         try {
-            isClient = false;
             startGridsMultiThreaded(4);
 
-            isClient = true;
-            final IgniteEx client = startGrid(4);
+            final IgniteEx client = startClientGrid(4);
 
             checkNotMapped(client, OPTIMISTIC, REPEATABLE_READ);
 
@@ -161,11 +151,9 @@
         try {
             atomicityMode = CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT;
 
-            isClient = false;
             startGridsMultiThreaded(4);
 
-            isClient = true;
-            final IgniteEx client = startGrid(4);
+            final IgniteEx client = startClientGrid(4);
 
             checkNotMapped(client, PESSIMISTIC, REPEATABLE_READ);
         }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCacheAtomicProtocolTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCacheAtomicProtocolTest.java
index 431649d..31e5aea 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCacheAtomicProtocolTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCacheAtomicProtocolTest.java
@@ -62,9 +62,6 @@
     private static final String TEST_CACHE = "testCache";
 
     /** */
-    private boolean client;
-
-    /** */
     private CacheConfiguration ccfg;
 
     /** */
@@ -82,8 +79,6 @@
 
         cfg.setCommunicationSpi(commSpi);
 
-        cfg.setClientMode(client);
-
         if (ccfg != null)
             cfg.setCacheConfiguration(ccfg);
 
@@ -159,9 +154,7 @@
 
         startServers(4);
 
-        client = true;
-
-        Ignite client = startGrid(4);
+        Ignite client = startClientGrid(4);
 
         IgniteCache<Integer, Integer> nearCache = client.cache(TEST_CACHE);
 
@@ -235,9 +228,7 @@
 
         startServers(4);
 
-        client = true;
-
-        Ignite client = startGrid(4);
+        Ignite client = startClientGrid(4);
 
         IgniteCache<Integer, Integer> nearCache = client.cache(TEST_CACHE);
 
@@ -298,9 +289,7 @@
 
         startServers(4);
 
-        client = true;
-
-        Ignite client = startGrid(4);
+        Ignite client = startClientGrid(4);
 
         IgniteCache<Integer, Integer> nearCache = client.cache(TEST_CACHE);
 
@@ -353,11 +342,7 @@
     private void fullAsyncRemap(boolean putAll) throws Exception {
         Ignite srv0 = startGrid(0);
 
-        client = true;
-
-        Ignite clientNode = startGrid(1);
-
-        client = false;
+        Ignite clientNode = startClientGrid(1);
 
         final IgniteCache<Integer, Integer> nearCache = clientNode.createCache(cacheConfiguration(1, FULL_ASYNC));
 
@@ -414,11 +399,7 @@
     public void testPutPrimarySync() throws Exception {
         startGrids(2);
 
-        client = true;
-
-        Ignite clientNode = startGrid(2);
-
-        client = false;
+        Ignite clientNode = startClientGrid(2);
 
         final IgniteCache<Integer, Integer> nearCache = clientNode.createCache(cacheConfiguration(1, PRIMARY_SYNC));
 
@@ -457,9 +438,7 @@
     public void testPutNearNodeFailure() throws Exception {
         startGrids(2);
 
-        client = true;
-
-        Ignite clientNode = startGrid(2);
+        Ignite clientNode = startClientGrid(2);
 
         final IgniteCache<Integer, Integer> nearCache = clientNode.createCache(cacheConfiguration(1, FULL_SYNC));
 
@@ -497,9 +476,7 @@
 
         startGrids(SRVS);
 
-        client = true;
-
-        Ignite clientNode = startGrid(SRVS);
+        Ignite clientNode = startClientGrid(SRVS);
 
         final IgniteCache<Integer, Integer> nearCache = clientNode.createCache(cacheConfiguration(1, FULL_SYNC));
 
@@ -614,9 +591,7 @@
 
         startServers(SRVS);
 
-        client = true;
-
-        Ignite clientNode = startGrid(SRVS);
+        Ignite clientNode = startClientGrid(SRVS);
 
         final IgniteCache<Integer, Integer> nearCache = clientNode.cache(TEST_CACHE);
 
@@ -660,9 +635,7 @@
 
         startServers(4);
 
-        client = true;
-
-        Ignite client = startGrid(4);
+        Ignite client = startClientGrid(4);
 
         IgniteCache<Integer, Integer> nearCache = client.cache(TEST_CACHE);
 
@@ -717,9 +690,7 @@
 
         startServers(4);
 
-        client = true;
-
-        Ignite client = startGrid(4);
+        Ignite client = startClientGrid(4);
 
         IgniteCache<Integer, Integer> nearCache = client.cache(TEST_CACHE);
 
@@ -822,8 +793,6 @@
         boolean putAll) throws Exception {
         ccfg = cacheConfiguration(1, FULL_SYNC);
 
-        client = false;
-
         startServers(2);
 
         Ignite srv0 = ignite(0);
@@ -838,13 +807,11 @@
 
         ccfg = null;
 
-        client = true;
-
-        Ignite client1 = startGrid(2);
+        Ignite client1 = startClientGrid(2);
 
         IgniteCache<Object, Object> cache1 = client1.createNearCache(TEST_CACHE, new NearCacheConfiguration<>());
 
-        Ignite client2 = startGrid(3);
+        Ignite client2 = startClientGrid(3);
 
         IgniteCache<Object, Object> cache2 = updateNearEnabled ?
             client2.createNearCache(TEST_CACHE, new NearCacheConfiguration<>()) : client2.cache(TEST_CACHE);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearClientHitTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearClientHitTest.java
index 77d40c1..128d348 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearClientHitTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearClientHitTest.java
@@ -24,7 +24,6 @@
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.eviction.lru.LruEvictionPolicy;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -39,19 +38,6 @@
     private static final String CACHE_NAME = "test-near-cache";
 
     /**
-     * @param igniteInstanceName Node name.
-     * @return Configuration.
-     * @throws Exception If failed.
-     */
-    private IgniteConfiguration getClientConfiguration(final String igniteInstanceName) throws Exception {
-        final IgniteConfiguration cfg = getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(true);
-
-        return cfg;
-    }
-
-    /**
      * @return Cache configuration.
      */
     private CacheConfiguration<Object, Object> cacheConfiguration() {
@@ -86,7 +72,7 @@
         try {
             Ignite crd = startGrid("coordinator", getConfiguration("coordinator"));
 
-            Ignite client = startGrid("client", getClientConfiguration("client"));
+            Ignite client = startClientGrid("client", getConfiguration("client"));
 
             Ignite srvNode = startGrid("server", getConfiguration("server"));
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
index 7b6ec73..8be46ca 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java
@@ -44,9 +44,6 @@
  * Near-only cache node startup test.
  */
 public class GridCacheNearOnlyTopologySelfTest extends GridCommonAbstractTest {
-    /** Near only flag. */
-    private boolean cilent;
-
     /** Use cache flag. */
     private boolean cache = true;
 
@@ -59,9 +56,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (cilent)
-            cfg.setClientMode(true);
-
         if (cache) {
             CacheConfiguration cacheCfg = defaultCacheConfiguration();
 
@@ -115,11 +109,11 @@
             cache = true;
 
             for (int i = 0; i < 4; i++) {
-                cilent = i == 0;
+                boolean client = i == 0;
 
-                Ignite ignite = startGrid(i);
+                Ignite ignite = client ? startClientGrid(i) : startGrid(i);
 
-                if (cilent)
+                if (client)
                     ignite.createNearCache(DEFAULT_CACHE_NAME, new NearCacheConfiguration());
             }
 
@@ -138,18 +132,17 @@
             cache = true;
 
             for (int i = 0; i < 4; i++) {
-                cilent = i == 0;
+                boolean client = i == 0;
 
-                Ignite ignite = startGrid(i);
+                Ignite ignite = client ? startClientGrid(i) : startGrid(i);
 
-                if (cilent)
+                if (client)
                     ignite.createNearCache(DEFAULT_CACHE_NAME, new NearCacheConfiguration());
             }
 
             cache = false;
-            cilent = true;
 
-            Ignite compute = startGrid(4);
+            Ignite compute = startClientGrid(4);
 
             for (int i = 0; i < 100; i++) {
                 ClusterNode node = compute.affinity(DEFAULT_CACHE_NAME).mapKeyToNode(i);
@@ -170,11 +163,11 @@
             cache = true;
 
             for (int i = 0; i < 2; i++) {
-                cilent = i == 0;
+                boolean client = i == 0;
 
-                Ignite ignite = startGrid(i);
+                Ignite ignite = client ? startClientGrid(i) : startGrid(i);
 
-                if (cilent)
+                if (client)
                     ignite.createNearCache(DEFAULT_CACHE_NAME, new NearCacheConfiguration<>());
             }
 
@@ -245,11 +238,11 @@
             cache = true;
 
             for (int i = 0; i < totalNodeCnt; i++) {
-                cilent = nearNodeIdx == i;
+                boolean client = nearNodeIdx == i;
 
-                Ignite ignite = startGrid(i);
+                Ignite ignite = client ? startClientGrid(i) : startGrid(i);
 
-                if (cilent)
+                if (client)
                     ignite.createNearCache(DEFAULT_CACHE_NAME, new NearCacheConfiguration());
             }
         }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheRendezvousAffinityClientSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheRendezvousAffinityClientSelfTest.java
index 0b8336c..55c2e85 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheRendezvousAffinityClientSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheRendezvousAffinityClientSelfTest.java
@@ -38,9 +38,6 @@
  * Tests rendezvous affinity function with CLIENT_ONLY node (GG-8768).
  */
 public class GridCacheRendezvousAffinityClientSelfTest extends GridCommonAbstractTest {
-    /** Client node. */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -52,10 +49,6 @@
         ccfg.setCacheMode(CacheMode.PARTITIONED);
         ccfg.setBackups(1);
         ccfg.setAffinity(new RendezvousAffinityFunction());
-
-        if (client)
-            cfg.setClientMode(true);
-
         cfg.setCacheConfiguration(ccfg);
 
         return cfg;
@@ -67,11 +60,7 @@
     @Test
     public void testClientNode() throws Exception {
         try {
-            client = true;
-
-            startGrid(0);
-
-            client = false;
+            startClientGrid(0);
 
             startGrid(1);
             startGrid(2);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheStoreUpdateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheStoreUpdateTest.java
index 9a3523f..51a48c9 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheStoreUpdateTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheStoreUpdateTest.java
@@ -35,7 +35,6 @@
 import org.apache.ignite.cache.store.CacheStore;
 import org.apache.ignite.cache.store.CacheStoreAdapter;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.testframework.GridTestUtils;
@@ -62,22 +61,12 @@
     private IgniteCache<String, String> cache;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(final String gridName) throws Exception {
-        final IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        if (gridName.contains("client"))
-            cfg.setClientMode(true);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
         MvccFeatureChecker.skipIfNotSupported(MvccFeatureChecker.Feature.NEAR_CACHE);
         MvccFeatureChecker.skipIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
 
         srv = startGrid("server");
-        client = startGrid("client");
+        client = startClientGrid("client");
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NearCacheMultithreadedUpdateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NearCacheMultithreadedUpdateTest.java
index 87cbe93..b714a95 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NearCacheMultithreadedUpdateTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NearCacheMultithreadedUpdateTest.java
@@ -24,7 +24,6 @@
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.testframework.GridTestUtils;
@@ -40,31 +39,15 @@
  */
 public class NearCacheMultithreadedUpdateTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private static final int SRV_CNT = 3;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
         startGridsMultiThreaded(SRV_CNT);
 
-        client = true;
-
-        startGrid(SRV_CNT);
-
-        client = false;
+        startClientGrid(SRV_CNT);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NearCachePutAllMultinodeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NearCachePutAllMultinodeTest.java
index 03d4c87..6980ddf 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NearCachePutAllMultinodeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NearCachePutAllMultinodeTest.java
@@ -50,9 +50,6 @@
     /** Number of transactions. */
     private static final int TX_CNT = 10_000;
 
-    /** Client flag. */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected long getTestTimeout() {
         return 30_000;
@@ -63,7 +60,7 @@
     @Override protected final IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration c = super.getConfiguration(igniteInstanceName);
 
-        if (!client) {
+        if (!c.isClientMode()) {
             CacheConfiguration cc = defaultCacheConfiguration();
 
             cc.setCacheMode(PARTITIONED);
@@ -76,8 +73,6 @@
 
             c.setCacheConfiguration(cc);
         }
-        else
-            c.setClientMode(true);
 
         return c;
     }
@@ -86,13 +81,11 @@
     @Override protected void beforeTest() throws Exception {
         startGridsMultiThreaded(GRID_CNT - 2);
 
-        client = true;
-
-        Ignite grid = startGrid(GRID_CNT - 2);
+        Ignite grid = startClientGrid(GRID_CNT - 2);
 
         grid.createNearCache(DEFAULT_CACHE_NAME, new NearCacheConfiguration());
 
-        grid = startGrid(GRID_CNT - 1);
+        grid = startClientGrid(GRID_CNT - 1);
 
         grid.cache(DEFAULT_CACHE_NAME);
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingCancelTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingCancelTest.java
index 301205a..60494e35 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingCancelTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingCancelTest.java
@@ -89,7 +89,7 @@
 
         String igniteClntName = getTestIgniteInstanceName(2);
 
-        startGrid(igniteClntName, optimize(getConfiguration(igniteClntName).setClientMode(true)));
+        startClientGrid(igniteClntName, optimize(getConfiguration(igniteClntName)));
 
         // Resend delayed rebalance messages.
         TestRecordingCommunicationSpi.spi(ignite0).stopBlock(true);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingOrderingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingOrderingTest.java
index f5e6a90..64ff911 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingOrderingTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/rebalancing/GridCacheRebalancingOrderingTest.java
@@ -118,8 +118,6 @@
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         if (isFirstGrid(igniteInstanceName)) {
-            cfg.setClientMode(true);
-
             assert cfg.getDiscoverySpi() instanceof TcpDiscoverySpi : cfg.getDiscoverySpi();
 
             ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
@@ -271,7 +269,7 @@
      */
     @Test
     public void testEvents() throws Exception {
-        Ignite ignite = startGrid(0);
+        Ignite ignite = startClientGrid(0);
 
         ServerStarter srvStarter = startServers();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
index 81690b0..5659290 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/preloader/GridCacheReplicatedPreloadSelfTest.java
@@ -84,9 +84,6 @@
     private volatile boolean extClassloadingAtCfg = false;
 
     /** */
-    private volatile boolean isClient = false;
-
-    /** */
     private volatile boolean useExtClassLoader = false;
 
     /** Disable p2p. */
@@ -130,9 +127,6 @@
             cfg.getMarshaller() instanceof BinaryMarshaller)
             cfg.setClassLoader(getExternalClassLoader());
 
-        if (isClient)
-            cfg.setClientMode(true);
-
         if (cutromEvt) {
             int[] evts = new int[EVTS_ALL.length + 1];
 
@@ -387,9 +381,7 @@
 
             Ignite g2 = startGrid(2);  // Checks deserialization at node join.
 
-            isClient = true;
-
-            Ignite g3 = startGrid(3);
+            Ignite g3 = startClientGrid(3);
 
             IgniteCache<Integer, Object> cache1 = g1.cache(DEFAULT_CACHE_NAME);
             IgniteCache<Integer, Object> cache2 = g2.cache(DEFAULT_CACHE_NAME);
@@ -425,7 +417,6 @@
         }
         finally {
             extClassloadingAtCfg = false;
-            isClient = false;
             useExtClassLoader = false;
         }
     }
@@ -442,9 +433,7 @@
             Ignite g1 = startGrid(1);
             Ignite g2 = startGrid(2);
 
-            isClient = true;
-
-            Ignite g3 = startGrid(3);
+            Ignite g3 = startClientGrid(3);
 
             CacheConfiguration cfg = defaultCacheConfiguration();
 
@@ -464,7 +453,6 @@
         }
         finally {
             extClassloadingAtCfg = false;
-            isClient = false;
             useExtClassLoader = false;
         }
     }
@@ -481,9 +469,7 @@
             Ignite g1 = startGrid(1);
             Ignite g2 = startGrid(2);
 
-            isClient = true;
-
-            Ignite g3 = startGrid(3);
+            Ignite g3 = startClientGrid(3);
 
             CacheConfiguration cfg = defaultCacheConfiguration();
 
@@ -503,7 +489,6 @@
         }
         finally {
             extClassloadingAtCfg = false;
-            isClient = false;
             useExtClassLoader = false;
         }
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/lru/LruNearOnlyNearEvictionPolicySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/lru/LruNearOnlyNearEvictionPolicySelfTest.java
index 36df533..6aa9fd4 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/lru/LruNearOnlyNearEvictionPolicySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/lru/LruNearOnlyNearEvictionPolicySelfTest.java
@@ -48,9 +48,6 @@
     /** Maximum size for near eviction policy. */
     private static final int EVICTION_MAX_SIZE = 10;
 
-    /** Node count. */
-    private int cnt;
-
     /** Caching mode specified by test. */
     private CacheMode cacheMode;
 
@@ -58,19 +55,10 @@
     private CacheAtomicityMode atomicityMode;
 
     /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        super.beforeTest();
-
-        cnt = 0;
-    }
-
-    /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration c = super.getConfiguration(igniteInstanceName);
 
-        if (cnt == 0)
-            c.setClientMode(true);
-        else {
+        if (getTestIgniteInstanceIndex(igniteInstanceName) != 0) {
             CacheConfiguration cc = new CacheConfiguration(DEFAULT_CACHE_NAME);
 
             cc.setCacheMode(cacheMode);
@@ -84,8 +72,6 @@
 
         ((TcpDiscoverySpi)c.getDiscoverySpi()).setForceServerMode(true);
 
-        cnt++;
-
         return c;
     }
 
@@ -161,7 +147,8 @@
      * @throws Exception If failed.
      */
     private void checkNearEvictionMaxSize() throws Exception {
-        startGrids(GRID_COUNT);
+        startClientGrid(0);
+        startGridsMultiThreaded(1, GRID_COUNT - 1);
 
         try {
             NearCacheConfiguration nearCfg = new NearCacheConfiguration();
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionMultinodeAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionMultinodeAbstractTest.java
index 6f215ac..c282994 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionMultinodeAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionMultinodeAbstractTest.java
@@ -24,7 +24,6 @@
 import org.apache.ignite.cache.CachePeekMode;
 import org.apache.ignite.cache.CacheWriteSynchronizationMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -47,7 +46,7 @@
     @Override protected void beforeTestsStarted() throws Exception {
         startGridsMultiThreaded(4, false);
 
-        startGrid("client");
+        startClientGrid("client");
     }
 
     /**
@@ -58,16 +57,6 @@
     }
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration configuration = super.getConfiguration(gridName);
-
-        if (gridName.startsWith("client"))
-            configuration.setClientMode(true);
-
-        return configuration;
-    }
-
-    /** {@inheritDoc} */
     @Override protected long getTestTimeout() {
         return 10 * 60 * 1000;
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyAbstractTest.java
index 55435e9..e0760f4 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyAbstractTest.java
@@ -1028,11 +1028,11 @@
 
         startGrids();
 
-        IgniteConfiguration clientCfg = getConfiguration("client").setClientMode(true);
+        IgniteConfiguration clientCfg = getConfiguration("client");
 
         ((TcpDiscoverySpi)clientCfg.getDiscoverySpi()).setForceServerMode(false);
 
-        Ignite client = startGrid("client", clientCfg);
+        Ignite client = startClientGrid("client", clientCfg);
 
         IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
 
@@ -1066,11 +1066,11 @@
 
         startGridsMultiThreaded(gridCount());
 
-        IgniteConfiguration clientCfg = getConfiguration("client").setClientMode(true);
+        IgniteConfiguration clientCfg = getConfiguration("client");
 
         ((TcpDiscoverySpi)clientCfg.getDiscoverySpi()).setForceServerMode(false);
 
-        Ignite client = startGrid("client", clientCfg);
+        Ignite client = startClientGrid("client", clientCfg);
 
         CacheConfiguration ccfg = cacheConfiguration("testCache");
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/GridCacheFastNodeLeftForTransactionTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/GridCacheFastNodeLeftForTransactionTest.java
index 6bccbd2..7100683 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/GridCacheFastNodeLeftForTransactionTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/GridCacheFastNodeLeftForTransactionTest.java
@@ -79,9 +79,6 @@
     /** Logger for listen log messages. */
     private static ListeningTestLogger listeningLog;
 
-    /** Creating a client node. */
-    private boolean clientNode;
-
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
@@ -111,7 +108,6 @@
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         return super.getConfiguration(igniteInstanceName)
-            .setClientMode(clientNode)
             .setCacheConfiguration(createCacheConfigs())
             .setGridLogger(listeningLog)
             .setConnectorConfiguration(new ConnectorConfiguration());
@@ -248,8 +244,6 @@
 
         assertTrue(logLsnr.check());
 
-        clientNode = false;
-
         startGrid(stoppedNodeId);
 
         awaitPartitionMapExchange();
@@ -304,13 +298,9 @@
      * @throws Exception If failed.
      */
     private IgniteEx createCluster(int nodes) throws Exception {
-        clientNode = false;
-
         IgniteEx crd = startGrids(nodes);
 
-        clientNode = true;
-
-        startGrid(nodes);
+        startClientGrid(nodes);
 
         awaitPartitionMapExchange();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccClientReconnectTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccClientReconnectTest.java
index 9329814..de40d4c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccClientReconnectTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccClientReconnectTest.java
@@ -44,8 +44,6 @@
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         if (igniteInstanceName.contains("client")) {
-            cfg.setClientMode(true);
-
             Map<IgnitePredicate<? extends Event>, int[]> lsnrs = new HashMap<>();
 
             lsnrs.put(new IgnitePredicate<Event>() {
@@ -79,7 +77,7 @@
     public void testClientReconnect() throws Exception {
         startGrid(0);
 
-        IgniteEx client = startGrid("client");
+        IgniteEx client = startClientGrid("client");
 
         MvccProcessor coordProc = client.context().coordinators();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsBinaryMetadataOnClusterRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsBinaryMetadataOnClusterRestartTest.java
index c7c3942..69601b9 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsBinaryMetadataOnClusterRestartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsBinaryMetadataOnClusterRestartTest.java
@@ -65,9 +65,6 @@
     private static final String CUSTOM_WORK_DIR_NAME_PATTERN = "node%s_workDir";
 
     /** */
-    private boolean clientMode;
-
-    /** */
     private String customWorkSubDir;
 
     /** {@inheritDoc} */
@@ -79,8 +76,6 @@
         if (customWorkSubDir != null)
             cfg.setWorkDirectory(Paths.get(U.defaultWorkDirectory(), customWorkSubDir).toString());
 
-        cfg.setClientMode(clientMode);
-
         cfg.setDataStorageConfiguration(
             new DataStorageConfiguration()
                 .setWalMode(WALMode.LOG_ONLY)
@@ -381,8 +376,6 @@
      */
     @Test
     public void testStaticMetadataIsRestoredOnRestart() throws Exception {
-        clientMode = false;
-
         startGrids(2);
 
         Ignite ignite0 = grid(0);
@@ -457,7 +450,6 @@
      */
     @Test
     public void testDynamicMetadataIsRestoredOnRestart() throws Exception {
-        clientMode = false;
         //1: start two nodes, add single BinaryObject
         startGrids(2);
 
@@ -524,8 +516,6 @@
      */
     @Test
     public void testBinaryEnumMetadataIsRestoredOnRestart() throws Exception {
-        clientMode = false;
-
         Ignite ignite0 = startGrids(2);
 
         ignite0.active(true);
@@ -552,9 +542,7 @@
 
         ignite0.active(true);
 
-        clientMode = true;
-
-        startGrid(3);
+        startClientGrid(3);
 
         awaitPartitionMapExchange();
 
@@ -566,8 +554,6 @@
      */
     @Test
     public void testMixedMetadataIsRestoredOnRestart() throws Exception {
-        clientMode = false;
-
         //1: starts 4 nodes one by one and adds java classes and classless BinaryObjects
         // to the same replicated cache from different nodes.
         // Examines all objects in cache (field values and metadata).
@@ -617,9 +603,7 @@
         examineDynamicMetadata(4, contentExaminer0, contentExaminer1, structureExaminer1);
 
         //2: starts up client node and performs the same set of checks from all nodes including client
-        clientMode = true;
-
-        startGrid(4);
+        startClientGrid(4);
 
         examineStaticMetadata(5);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheObjectBinaryProcessorOnDiscoveryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheObjectBinaryProcessorOnDiscoveryTest.java
index 310ef57..4e205ed 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheObjectBinaryProcessorOnDiscoveryTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheObjectBinaryProcessorOnDiscoveryTest.java
@@ -39,7 +39,7 @@
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         if ("client".equals(igniteInstanceName))
-            cfg.setClientMode(true).setFailureHandler(new StopNodeFailureHandler());
+            cfg.setFailureHandler(new StopNodeFailureHandler());
 
         return cfg.setDataStorageConfiguration(new DataStorageConfiguration()
                         .setDefaultDataRegionConfiguration(new DataRegionConfiguration()
@@ -86,7 +86,7 @@
 
         startGrid(0);
 
-        IgniteEx client = startGrid(getConfiguration("client"));
+        IgniteEx client = startClientGrid(getConfiguration("client"));
 
         startGrid(1);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsDiscoDataHandlingInNewClusterTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsDiscoDataHandlingInNewClusterTest.java
index 1663952..f5ce76d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsDiscoDataHandlingInNewClusterTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsDiscoDataHandlingInNewClusterTest.java
@@ -50,9 +50,6 @@
     private static final String NODE_CONS_ID_1 = "node1";
 
     /** */
-    private static final String CLIENT_CONS_ID = "client0";
-
-    /** */
     private static final String STATIC_CACHE_NAME_0 = "staticCache0";
 
     /** */
@@ -102,24 +99,20 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (igniteInstanceName.equals(CLIENT_CONS_ID))
-            cfg.setClientMode(true);
-        else {
-            cfg.setDataStorageConfiguration(
-                new DataStorageConfiguration()
-                    .setDefaultDataRegionConfiguration(
-                        new DataRegionConfiguration()
-                            .setPersistenceEnabled(true)
-                    )
-            );
+        cfg.setDataStorageConfiguration(
+            new DataStorageConfiguration()
+                .setDefaultDataRegionConfiguration(
+                    new DataRegionConfiguration()
+                        .setPersistenceEnabled(true)
+                )
+        );
 
-            cfg.setCacheConfiguration(
-                new CacheConfiguration(STATIC_CACHE_NAME_0)
-                    .setGroupName(MIXED_CACHES_GROUP_NAME_0)
-                    .setAffinity(AFFINITY)
-                    .setNodeFilter(nodeFilter)
-            );
-        }
+        cfg.setCacheConfiguration(
+            new CacheConfiguration(STATIC_CACHE_NAME_0)
+                .setGroupName(MIXED_CACHES_GROUP_NAME_0)
+                .setAffinity(AFFINITY)
+                .setNodeFilter(nodeFilter)
+        );
 
         if (igniteInstanceName.equals(NODE_CONS_ID_0)) {
             failingOnNodeJoinSpi.setIpFinder(sharedStaticIpFinder);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsDynamicCacheTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsDynamicCacheTest.java
index 993f372..e008516 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsDynamicCacheTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsDynamicCacheTest.java
@@ -51,9 +51,6 @@
 
         cfg.setDataStorageConfiguration(memCfg);
 
-        if ("client".equals(gridName))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/ClientAffinityAssignmentWithBaselineTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/ClientAffinityAssignmentWithBaselineTest.java
index 47937d3..c654550 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/ClientAffinityAssignmentWithBaselineTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/ClientAffinityAssignmentWithBaselineTest.java
@@ -107,11 +107,7 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (igniteInstanceName.startsWith(CLIENT_GRID_NAME)) {
-            // Intentionally skipping data storage in client configuration.
-            cfg.setClientMode(true);
-        }
-        else {
+        if (!igniteInstanceName.startsWith(CLIENT_GRID_NAME)) {
             cfg.setDataStorageConfiguration(
                 new DataStorageConfiguration()
                     .setDefaultDataRegionConfiguration(
@@ -277,8 +273,8 @@
         IgniteEx client2 = null;
 
         if (lateActivation) {
-            client1 = (IgniteEx)startGrid("client1");
-            client2 = (IgniteEx)startGrid("client2");
+            client1 = startClientGrid("client1");
+            client2 = startClientGrid("client2");
         }
         else
             ig0.cluster().active(true);
@@ -305,8 +301,8 @@
         System.out.println("### Preloading is finished");
 
         if (!lateActivation) {
-            client1 = (IgniteEx)startGrid("client1");
-            client2 = (IgniteEx)startGrid("client2");
+            client1 = startClientGrid("client1");
+            client2 = startClientGrid("client2");
         }
 
         ConcurrentMap<Long, Long> threadProgressTracker = new ConcurrentHashMap<>();
@@ -367,8 +363,8 @@
 
         System.out.println("### Preloading is finished");
 
-        IgniteEx client1 = (IgniteEx)startGrid("client1");
-        IgniteEx client2 = (IgniteEx)startGrid("client2");
+        IgniteEx client1 = startClientGrid("client1");
+        IgniteEx client2 = startClientGrid("client2");
 
         ConcurrentMap<Long, Long> threadProgressTracker = new ConcurrentHashMap<>();
 
@@ -436,8 +432,8 @@
 
         System.out.println("### Preloading is finished");
 
-        IgniteEx client1 = (IgniteEx)startGrid("client1");
-        IgniteEx client2 = (IgniteEx)startGrid("client2");
+        IgniteEx client1 = startClientGrid("client1");
+        IgniteEx client2 = startClientGrid("client2");
 
         ConcurrentMap<Long, Long> threadProgressTracker = new ConcurrentHashMap<>();
 
@@ -474,7 +470,7 @@
 
         ig0.cluster().active(true);
 
-        IgniteEx client = (IgniteEx)startGrid("client");
+        IgniteEx client = startClientGrid("client");
 
         CacheConfiguration<Integer, String> dynamicCacheCfg = cacheConfig(REPLICATED_TX_CACHE_NAME);
         dynamicCacheCfg.setName("dyn");
@@ -547,7 +543,7 @@
 
         ig0.cluster().active(true);
 
-        IgniteEx client = (IgniteEx)startGrid("client");
+        IgniteEx client = startClientGrid("client");
 
         CacheConfiguration<Integer, String> dynamicCacheCfg = new CacheConfiguration<Integer, String>()
             .setName("dyn")
@@ -628,7 +624,7 @@
 
         ig0.cluster().active(true);
 
-        IgniteEx client = (IgniteEx)startGrid("client");
+        IgniteEx client = startClientGrid("client");
 
         IgniteCache<Integer, String> clientJoinCache = client.cache(PARTITIONED_TX_CLIENT_CACHE_NAME);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsCacheWalDisabledOnRebalancingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsCacheWalDisabledOnRebalancingTest.java
index 7183e65..500539d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsCacheWalDisabledOnRebalancingTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsCacheWalDisabledOnRebalancingTest.java
@@ -133,9 +133,7 @@
 
         cfg.setCacheConfiguration(ccfg1, ccfg2, ccfg3);
 
-        if ("client".equals(igniteInstanceName))
-            cfg.setClientMode(true);
-        else {
+        if (!"client".equals(igniteInstanceName)) {
             DataStorageConfiguration dsCfg = new DataStorageConfiguration()
                 .setConcurrencyLevel(Runtime.getRuntime().availableProcessors() * 4)
                 .setWalMode(WALMode.LOG_ONLY)
@@ -188,7 +186,7 @@
 
         IgniteEx ig1 = startGrid(1);
 
-        startGrid("client");
+        startClientGrid("client");
 
         stopGrid("client");
 
@@ -369,7 +367,7 @@
         // Wait for rebalance (all partitions will be in MOVING state until cp is finished).
         startGrid(1).cachex(CACHE3_NAME).context().group().preloader().rebalanceFuture().get();
 
-        startGrid("client");
+        startClientGrid("client");
 
         fileIoBlockingSemaphore.release(Integer.MAX_VALUE);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsPartitionPreloadTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsPartitionPreloadTest.java
index e8a0cc0..b42eb8a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsPartitionPreloadTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsPartitionPreloadTest.java
@@ -87,8 +87,6 @@
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setClientMode(CLIENT_GRID_NAME.equals(gridName));
-
         if (!cfg.isClientMode()) {
             String val = "node" + getTestIgniteInstanceIndex(gridName);
             cfg.setUserAttributes(Collections.singletonMap(TEST_ATTR, val));
@@ -153,7 +151,7 @@
 
         startGridsMultiThreaded(GRIDS_CNT);
 
-        IgniteEx client = startGrid("client");
+        IgniteEx client = startClientGrid(CLIENT_GRID_NAME);
 
         assertNotNull(client.cache(DEFAULT_CACHE_NAME));
 
@@ -168,7 +166,7 @@
 
         startGridsMultiThreaded(GRIDS_CNT);
 
-        IgniteEx client = startGrid("client");
+        IgniteEx client = startClientGrid(CLIENT_GRID_NAME);
 
         assertNotNull(client.cache(DEFAULT_CACHE_NAME));
 
@@ -220,7 +218,7 @@
 
         startGridsMultiThreaded(GRIDS_CNT);
 
-        IgniteEx client = startGrid("client");
+        IgniteEx client = startClientGrid(CLIENT_GRID_NAME);
 
         assertNotNull(client.cache(DEFAULT_CACHE_NAME));
 
@@ -241,7 +239,7 @@
 
         startGridsMultiThreaded(GRIDS_CNT);
 
-        IgniteEx client = startGrid("client");
+        IgniteEx client = startClientGrid(CLIENT_GRID_NAME);
 
         assertNotNull(client.cache(DEFAULT_CACHE_NAME));
 
@@ -308,7 +306,7 @@
 
         preloadPartition(() -> {
             try {
-                return startGrid(CLIENT_GRID_NAME);
+                return startClientGrid(CLIENT_GRID_NAME);
             }
             catch (Exception e) {
                 throw new RuntimeException(e);
@@ -323,7 +321,7 @@
 
         preloadPartition(() -> {
             try {
-                return startGrid(CLIENT_GRID_NAME);
+                return startClientGrid(CLIENT_GRID_NAME);
             }
             catch (Exception e) {
                 throw new RuntimeException(e);
@@ -338,7 +336,7 @@
 
         preloadPartition(() -> {
             try {
-                return startGrid(CLIENT_GRID_NAME);
+                return startClientGrid(CLIENT_GRID_NAME);
             }
             catch (Exception e) {
                 throw new RuntimeException(e);
@@ -353,7 +351,7 @@
 
         preloadPartition(() -> {
             try {
-                return startGrid(CLIENT_GRID_NAME);
+                return startClientGrid(CLIENT_GRID_NAME);
             }
             catch (Exception e) {
                 throw new RuntimeException(e);
@@ -472,7 +470,7 @@
 
         preloadPartition(() -> {
             try {
-                return startGrid(CLIENT_GRID_NAME);
+                return startClientGrid(CLIENT_GRID_NAME);
             }
             catch (Exception e) {
                 throw new RuntimeException(e);
@@ -487,7 +485,7 @@
 
         preloadPartition(() -> {
             try {
-                return startGrid(CLIENT_GRID_NAME);
+                return startClientGrid(CLIENT_GRID_NAME);
             }
             catch (Exception e) {
                 throw new RuntimeException(e);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/checkpoint/CheckpointFreeListTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/checkpoint/CheckpointFreeListTest.java
index f3d3842..a0c2903 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/checkpoint/CheckpointFreeListTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/checkpoint/CheckpointFreeListTest.java
@@ -145,7 +145,6 @@
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setPeerClassLoadingEnabled(true);
-        cfg.setClientMode(true);
         cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(IP_FINDER));
 
         return cfg;
@@ -160,7 +159,7 @@
 
         ignite0.cluster().active(true);
 
-        IgniteEx igniteClient = startGrid(getClientConfiguration("client"));
+        IgniteEx igniteClient = startClientGrid(getClientConfiguration("client"));
 
         Random random = new Random();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCacheDestroyDuringCheckpointTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCacheDestroyDuringCheckpointTest.java
index 27f4171..e2bc4b1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCacheDestroyDuringCheckpointTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCacheDestroyDuringCheckpointTest.java
@@ -53,9 +53,6 @@
 
         cfg.setDataStorageConfiguration(createDbConfig());
 
-        if (getTestIgniteInstanceIndex(gridName) == 1)
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -98,7 +95,7 @@
         ig.active(true);
 
         for (int j = 0; j < NUM_ITERATIONS; j++) {
-            Ignite client = startGrid(1);
+            Ignite client = startClientGrid(1);
 
             for (int i = 0; i < NUM_CACHES; i++) {
                 IgniteCache<?, ?> cache = ig.cache(NAME_PREFIX + i);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalHistoryReservationsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalHistoryReservationsTest.java
index 0553559..575b31b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalHistoryReservationsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalHistoryReservationsTest.java
@@ -50,15 +50,10 @@
  *
  */
 public class IgniteWalHistoryReservationsTest extends GridCommonAbstractTest {
-    /** */
-    private volatile boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setClientMode(client);
-
         cfg.setConsistentId("NODE$" + gridName.charAt(gridName.length() - 1));
 
         cfg.setFailureHandler(new StopNodeFailureHandler());
@@ -99,8 +94,6 @@
     @Override protected void afterTest() throws Exception {
         System.clearProperty(IGNITE_PDS_WAL_REBALANCE_THRESHOLD);
 
-        client = false;
-
         stopAllGrids();
 
         cleanPersistenceDir();
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryLazyAllocationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryLazyAllocationTest.java
index c7478ec..32874c6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryLazyAllocationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryLazyAllocationTest.java
@@ -43,17 +43,12 @@
     public static final String EAGER_REGION = "eagerRegion";
 
     /** */
-    protected boolean client = false;
-
-    /** */
     protected boolean lazyAllocation = true;
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(client);
-
         cfg.setDataStorageConfiguration(new DataStorageConfiguration()
             .setDataRegionConfigurations(
                 new DataRegionConfiguration()
@@ -77,7 +72,6 @@
     @Test
     public void testLazyMemoryAllocationOnServer() throws Exception {
         lazyAllocation = true;
-        client = false;
 
         IgniteEx srv = startSrv()[0];
 
@@ -95,7 +89,6 @@
     @Test
     public void testLazyMemoryAllocationOnClient() throws Exception {
         lazyAllocation = true;
-        client = false;
 
         IgniteEx srv = startSrv()[0];
 
@@ -104,9 +97,7 @@
         checkMemoryAllocated(srvDb.dataRegion(EAGER_REGION).pageMemory());
         checkMemoryNotAllocated(srvDb.dataRegion(LAZY_REGION).pageMemory());
 
-        client = true;
-
-        IgniteEx clnt = startGrid(2);
+        IgniteEx clnt = startClientGrid(2);
 
         IgniteCacheDatabaseSharedManager clntDb = clnt.context().cache().context().database();
 
@@ -125,7 +116,6 @@
     @Test
     public void testEagerMemoryAllocationOnServer() throws Exception {
         lazyAllocation = false;
-        client = false;
 
         IgniteEx g = startSrv()[0];
 
@@ -141,7 +131,6 @@
     @Test
     public void testEagerMemoryAllocationOnClient() throws Exception {
         lazyAllocation = false;
-        client = false;
 
         IgniteEx srv = startSrv()[0];
 
@@ -150,9 +139,7 @@
         checkMemoryAllocated(srvDb.dataRegion(EAGER_REGION).pageMemory());
         checkMemoryAllocated(srvDb.dataRegion(LAZY_REGION).pageMemory());
 
-        client = true;
-
-        IgniteEx clnt = startGrid(2);
+        IgniteEx clnt = startClientGrid(2);
 
         IgniteCacheDatabaseSharedManager clntDb = clnt.context().cache().context().database();
 
@@ -169,7 +156,6 @@
     @Test
     public void testLocalCacheOnClientNodeWithLazyAllocation() throws Exception {
         lazyAllocation = true;
-        client = false;
 
         IgniteEx srv = startSrv()[0];
 
@@ -178,9 +164,7 @@
         checkMemoryAllocated(srvDb.dataRegion(EAGER_REGION).pageMemory());
         checkMemoryNotAllocated(srvDb.dataRegion(LAZY_REGION).pageMemory());
 
-        client = true;
-
-        IgniteEx clnt = startGrid(2);
+        IgniteEx clnt = startClientGrid(2);
 
         IgniteCacheDatabaseSharedManager clntDb = clnt.context().cache().context().database();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryLazyAllocationWithPDSTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryLazyAllocationWithPDSTest.java
index 6763bdc..93a7898 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryLazyAllocationWithPDSTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryLazyAllocationWithPDSTest.java
@@ -43,7 +43,6 @@
     @Test
     public void testNodeRestart() throws Exception {
         lazyAllocation = true;
-        client = false;
 
         IgniteEx srv = startSrv()[0];
 
@@ -60,25 +59,18 @@
     @Test
     public void testClientNodeRestart() throws Exception {
         lazyAllocation = true;
-        client = false;
 
         IgniteEx srv = startSrv()[0];
 
-        client = true;
-
-        IgniteEx clnt = startGrid(2);
+        IgniteEx clnt = startClientGrid(2);
 
         createCacheAndPut(clnt);
 
         stopAllGrids(false);
 
-        client = false;
-
         srv = startSrv()[0];
 
-        client = true;
-
-        IgniteCache<Integer, String> cache = startGrid(2).cache("my-cache-2");
+        IgniteCache<Integer, String> cache = startClientGrid(2).cache("my-cache-2");
 
         assertEquals("test", cache.get(1));
     }
@@ -87,7 +79,6 @@
     @Test
     public void testHugeNotUsedMemoryRegion() throws Exception {
         lazyAllocation = true;
-        client = false;
 
         IgniteEx srv = startGrid(cfgWithHugeRegion("test-server"));
 
@@ -110,7 +101,6 @@
     @Test
     public void testCreateCacheFailsInHugeMemoryRegion() throws Exception {
         lazyAllocation = true;
-        client = false;
 
         IgniteEx srv = startGrid(cfgWithHugeRegion("test-server")
             .setFailureHandler(new StopNodeFailureHandler()));
@@ -124,14 +114,11 @@
     @Test
     public void testCreateCacheFromClientFailsInHugeMemoryRegion() throws Exception {
         lazyAllocation = true;
-        client = false;
 
         IgniteEx srv = startGrid(cfgWithHugeRegion("test-server")
             .setFailureHandler(new StopNodeFailureHandler()));
 
-        client = true;
-
-        IgniteEx clnt = startGrid(cfgWithHugeRegion("test-client")
+        IgniteEx clnt = startClientGrid(cfgWithHugeRegion("test-client")
             .setFailureHandler(new StopNodeFailureHandler()));
 
         srv.cluster().active(true);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteChangeGlobalStateAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteChangeGlobalStateAbstractTest.java
index fcbe62f..1cbcfb1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteChangeGlobalStateAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteChangeGlobalStateAbstractTest.java
@@ -220,11 +220,10 @@
             IgniteConfiguration cfg = getConfiguration(name);
 
             cfg.setConsistentId(node);
-            cfg.setClientMode(true);
 
             ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(primaryIpFinder);
 
-            Ignite ig = startGrid(name, cfg);
+            Ignite ig = startClientGrid(name, cfg);
 
             nodes.put(name, ig);
         }
@@ -243,10 +242,9 @@
             IgniteConfiguration cfg = getConfiguration(name);
             cfg.setConsistentId(node);
             cfg.setActiveOnStart(false);
-            cfg.setClientMode(true);
             ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(backUpIpFinder);
 
-            Ignite ig = startGrid(name, cfg);
+            Ignite ig = startClientGrid(name, cfg);
 
             nodes.put(name, ig);
         }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java
index 2dd6561..f395c26 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java
@@ -77,11 +77,9 @@
         IgniteConfiguration cfg3 = getConfiguration("client");
         cfg3.setCacheConfiguration(new CacheConfiguration(cacheName0));
 
-        cfg3.setClientMode(true);
-
         IgniteEx ig1 = startGrid(cfg1);
         IgniteEx ig2 = startGrid(cfg2);
-        IgniteEx ig3 = startGrid(cfg3);
+        IgniteEx ig3 = startClientGrid(cfg3);
 
         assertTrue(!ig1.active());
         assertTrue(!ig2.active());
@@ -230,10 +228,9 @@
     public void testJoinDaemonAndDaemonStop() throws Exception {
         IgniteEx ig = startGrid(0);
 
-        IgniteEx daemon = startGrid(
+        IgniteEx daemon = startClientGrid(
             getConfiguration("daemon")
                 .setDaemon(true)
-                .setClientMode(true)
         );
 
         Collection<ClusterNode> daemons = ig.cluster().forDaemons().nodes();
@@ -255,10 +252,9 @@
 
         ignite0.cluster().active(true);
 
-        startGrid(
+        startClientGrid(
             getConfiguration("daemon")
                 .setDaemon(true)
-                .setClientMode(true)
         );
 
         stopGrid(1);
@@ -277,10 +273,9 @@
 
         ig.active(true);
 
-        IgniteEx daemon = startGrid(
+        IgniteEx daemon = startClientGrid(
             getConfiguration("daemon")
                 .setDaemon(true)
-                .setClientMode(true)
         );
 
         assertTrue(ig.active());
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/reconnect/IgniteAbstractStandByClientReconnectTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/reconnect/IgniteAbstractStandByClientReconnectTest.java
index 176d34e..44d7ed8 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/reconnect/IgniteAbstractStandByClientReconnectTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/reconnect/IgniteAbstractStandByClientReconnectTest.java
@@ -221,11 +221,9 @@
                     .setIpFinder(clientIpFinder)
             );
 
-        cfg3.setClientMode(true);
-
         startGrid(cfg1);
         startGrid(cfg2);
-        startGrid(cfg3);
+        startClientGrid(cfg3);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/CacheScanQueryFailoverTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/CacheScanQueryFailoverTest.java
index bd63e85..c6eeb24 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/CacheScanQueryFailoverTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/CacheScanQueryFailoverTest.java
@@ -62,9 +62,6 @@
     @Override protected IgniteConfiguration getConfiguration(String name) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(name);
 
-        if (name.equals("client"))
-            cfg.setClientMode(true);
-
         cfg.setFailureHandler(new StopNodeOrHaltFailureHandler());
 
         return cfg;
@@ -76,7 +73,7 @@
     @Test
     public void testScanQueryWithFailedClosures() throws Exception {
         Ignite srv = startGridsMultiThreaded(4);
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         CacheConfiguration cfg = new CacheConfiguration(DEFAULT_CACHE_NAME).setCacheMode(PARTITIONED);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryTransformerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryTransformerSelfTest.java
index 7f7a93b..07261e1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryTransformerSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryTransformerSelfTest.java
@@ -25,7 +25,6 @@
 import javax.cache.Cache;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.binary.BinaryObject;
 import org.apache.ignite.cache.affinity.Affinity;
 import org.apache.ignite.cache.query.ContinuousQuery;
@@ -60,15 +59,7 @@
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         startGridsMultiThreaded(3);
-
-        try {
-            Ignition.setClientMode(true);
-
-            startGrid();
-        }
-        finally {
-            Ignition.setClientMode(false);
-        }
+        startClientGrid();
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQueryTxSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQueryTxSelfTest.java
index 687a5e9..1aef920 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQueryTxSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/IndexingSpiQueryTxSelfTest.java
@@ -57,7 +57,6 @@
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
         ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
 
-        cfg.setClientMode("client".equals(igniteInstanceName));
         cfg.setIndexingSpi(new MyBrokenIndexingSpi());
 
         CacheConfiguration ccfg = cacheConfiguration(igniteInstanceName);
@@ -74,7 +73,7 @@
     /** */
     @Test
     public void testIndexingSpiWithTxClient() throws Exception {
-        IgniteEx client = startGrid("client");
+        IgniteEx client = startClientGrid("client");
 
         assertNotNull(client.cache(DEFAULT_CACHE_NAME));
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryAsyncFilterListenerTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryAsyncFilterListenerTest.java
index 1d88a05..33d1a12 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryAsyncFilterListenerTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryAsyncFilterListenerTest.java
@@ -74,15 +74,10 @@
     /** */
     public static final int ITERATION_CNT = 100;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(client);
-
         MemoryEventStorageSpi storeSpi = new MemoryEventStorageSpi();
         storeSpi.setExpireCount(1000);
 
@@ -97,9 +92,7 @@
 
         startGridsMultiThreaded(NODES - 1);
 
-        client = true;
-
-        startGrid(NODES - 1);
+        startClientGrid(NODES - 1);
     }
 
     ///
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryConcurrentPartitionUpdateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryConcurrentPartitionUpdateTest.java
index 24a73cc..e26bdbe 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryConcurrentPartitionUpdateTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryConcurrentPartitionUpdateTest.java
@@ -34,7 +34,6 @@
 import org.apache.ignite.cache.query.ContinuousQuery;
 import org.apache.ignite.cache.query.QueryCursor;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.util.lang.GridAbsPredicate;
 import org.apache.ignite.internal.util.typedef.T2;
@@ -57,18 +56,6 @@
  *
  */
 public class CacheContinuousQueryConcurrentPartitionUpdateTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
@@ -131,10 +118,7 @@
      */
     private void concurrentUpdatePartition(CacheAtomicityMode atomicityMode, boolean cacheGrp) throws Exception {
         Ignite srv = startGrid(0);
-
-        client = true;
-
-        Ignite client = startGrid(1);
+        Ignite client = startClientGrid(1);
 
         List<AtomicInteger> cntrs = new ArrayList<>();
         List<String> caches = new ArrayList<>();
@@ -327,10 +311,7 @@
      */
     private void concurrentUpdatesAndQueryStart(CacheAtomicityMode atomicityMode, boolean cacheGrp) throws Exception {
         Ignite srv = startGrid(0);
-
-        client = true;
-
-        Ignite client = startGrid(1);
+        Ignite client = startClientGrid(1);
 
         List<String> caches = new ArrayList<>();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryCounterAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryCounterAbstractTest.java
index d73b6ae..457d1cc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryCounterAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryCounterAbstractTest.java
@@ -70,18 +70,12 @@
     /** Latch timeout. */
     protected static final long LATCH_TIMEOUT = 5000;
 
-    /** */
-    private static final String NO_CACHE_IGNITE_INSTANCE_NAME = "noCacheGrid";
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setPeerClassLoadingEnabled(peerClassLoadingEnabled());
 
-        if (igniteInstanceName.equals(NO_CACHE_IGNITE_INSTANCE_NAME))
-            cfg.setClientMode(true);
-
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
         return cfg;
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
index 2d44d6e..3d6a99e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
@@ -127,9 +127,6 @@
     private static volatile boolean err;
 
     /** */
-    private boolean client;
-
-    /** */
     private int backups = 1;
 
     /** {@inheritDoc} */
@@ -160,8 +157,6 @@
 
         cfg.setCacheConfiguration(ccfg);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -219,11 +214,7 @@
 
         startGridsMultiThreaded(SRV_NODES);
 
-        client = true;
-
-        Ignite qryClient = startGrid(SRV_NODES);
-
-        client = false;
+        Ignite qryClient = startClientGrid(SRV_NODES);
 
         IgniteCache<Object, Object> qryClnCache = qryClient.cache(DEFAULT_CACHE_NAME);
 
@@ -289,9 +280,7 @@
         assertFalse(top1.rebalanceFinished(new AffinityTopologyVersion(4)));
         assertFalse(top2.rebalanceFinished(new AffinityTopologyVersion(4)));
 
-        client = true;
-
-        Ignite ignite3 = startGrid(3);
+        Ignite ignite3 = startClientGrid(3);
         GridDhtPartitionTopology top3 = ((IgniteKernal)ignite3).context().cache().context().cacheContext(CU.cacheId(DEFAULT_CACHE_NAME)).topology();
 
         assertTrue(top0.rebalanceFinished(new AffinityTopologyVersion(4)));
@@ -451,11 +440,7 @@
 
         startGridsMultiThreaded(SRV_NODES);
 
-        client = true;
-
-        final Ignite qryClient = startGrid(SRV_NODES);
-
-        client = false;
+        final Ignite qryClient = startClientGrid(SRV_NODES);
 
         Map<Integer, Long> updateCntrs = new HashMap<>();
 
@@ -552,11 +537,7 @@
 
         startGridsMultiThreaded(SRV_NODES);
 
-        client = true;
-
-        final Ignite qryClient = startGrid(SRV_NODES);
-
-        client = false;
+        final Ignite qryClient = startClientGrid(SRV_NODES);
 
         IgniteCache<Object, Object> clnCache = qryClient.cache(DEFAULT_CACHE_NAME);
 
@@ -660,11 +641,7 @@
 
         startGridsMultiThreaded(SRV_NODES);
 
-        client = true;
-
-        final Ignite qryClient = startGrid(SRV_NODES);
-
-        client = false;
+        final Ignite qryClient = startClientGrid(SRV_NODES);
 
         ContinuousQuery<Object, Object> qry = new ContinuousQuery<>();
 
@@ -828,11 +805,7 @@
 
         startGridsMultiThreaded(SRV_NODES);
 
-        client = true;
-
-        Ignite qryClient = startGrid(SRV_NODES);
-
-        client = false;
+        Ignite qryClient = startClientGrid(SRV_NODES);
 
         IgniteCache<Object, Object> qryClientCache = qryClient.cache(DEFAULT_CACHE_NAME);
 
@@ -954,11 +927,7 @@
 
         startGridsMultiThreaded(SRV_NODES);
 
-        client = true;
-
-        Ignite qryClient = startGrid(SRV_NODES);
-
-        client = false;
+        Ignite qryClient = startClientGrid(SRV_NODES);
 
         IgniteCache<Object, Object> qryClientCache = qryClient.cache(DEFAULT_CACHE_NAME);
 
@@ -1364,9 +1333,7 @@
     public void testBackupQueueCleanupClientQuery() throws Exception {
         startGridsMultiThreaded(2);
 
-        client = true;
-
-        Ignite qryClient = startGrid(2);
+        Ignite qryClient = startClientGrid(2);
 
         CacheEventListener1 lsnr = new CacheEventListener1(false);
 
@@ -1438,9 +1405,7 @@
     public void testBackupQueueEvict() throws Exception {
         startGridsMultiThreaded(2);
 
-        client = true;
-
-        Ignite qryClient = startGrid(2);
+        Ignite qryClient = startClientGrid(2);
 
         CacheEventListener1 lsnr = new CacheEventListener1(false);
 
@@ -1600,11 +1565,7 @@
 
         startGridsMultiThreaded(SRV_NODES);
 
-        client = true;
-
-        Ignite qryClient = startGrid(SRV_NODES);
-
-        client = false;
+        Ignite qryClient = startClientGrid(SRV_NODES);
 
         IgniteCache<Object, Object> qryClnCache = qryClient.cache(DEFAULT_CACHE_NAME);
 
@@ -1660,11 +1621,7 @@
 
         startGridsMultiThreaded(SRV_NODES);
 
-        client = true;
-
-        Ignite qryClient = startGrid(SRV_NODES);
-
-        client = false;
+        Ignite qryClient = startClientGrid(SRV_NODES);
 
         IgniteCache<Object, Object> qryClnCache = qryClient.cache(DEFAULT_CACHE_NAME);
 
@@ -1931,11 +1888,7 @@
 
         startGridsMultiThreaded(SRV_NODES);
 
-        client = true;
-
-        final Ignite qryCln = startGrid(SRV_NODES);
-
-        client = false;
+        final Ignite qryCln = startClientGrid(SRV_NODES);
 
         final IgniteCache<Object, Object> qryClnCache = qryCln.cache(DEFAULT_CACHE_NAME);
 
@@ -2140,9 +2093,7 @@
 
         startGridsMultiThreaded(SRV_NODES);
 
-        client = true;
-
-        Ignite qryClient = startGrid(SRV_NODES);
+        Ignite qryClient = startClientGrid(SRV_NODES);
 
         final IgniteCache<Object, Object> cache = qryClient.cache(DEFAULT_CACHE_NAME);
 
@@ -2154,8 +2105,6 @@
 
         QueryCursor<?> cur = cache.query(qry);
 
-        client = false;
-
         final int SRV_IDX = SRV_NODES - 1;
 
         List<Integer> keys = primaryKeys(ignite(SRV_IDX).cache(DEFAULT_CACHE_NAME), 10);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryLostPartitionTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryLostPartitionTest.java
index 361f7bd..d08875e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryLostPartitionTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryLostPartitionTest.java
@@ -140,7 +140,7 @@
         AllEventListener<Integer, String> lsnr20;
 
         if (client) {
-            IgniteCache<Integer, String> clnCache = startGrid(3).getOrCreateCache(cacheName);
+            IgniteCache<Integer, String> clnCache = startClientGrid(3).getOrCreateCache(cacheName);
 
             lsnr20 = registerCacheListener(clnCache);
         }
@@ -218,9 +218,6 @@
 
         cfg.setCacheConfiguration(cache(TX_CACHE_NAME), cache(CACHE_NAME), cache(MVCC_TX_CACHE_NAME));
 
-        if (igniteInstanceName.endsWith("3"))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOperationFromCallbackTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOperationFromCallbackTest.java
index 5b3565f..e546492 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOperationFromCallbackTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOperationFromCallbackTest.java
@@ -93,9 +93,6 @@
     public static final int SYSTEM_POOL_SIZE = 10;
 
     /** */
-    private boolean client;
-
-    /** */
     private static AtomicInteger filterCbCntr = new AtomicInteger(0);
 
     /** {@inheritDoc} */
@@ -106,8 +103,6 @@
 
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
-        cfg.setClientMode(client);
-
         MemoryEventStorageSpi storeSpi = new MemoryEventStorageSpi();
         storeSpi.setExpireCount(100);
 
@@ -122,9 +117,7 @@
 
         startGridsMultiThreaded(NODES - 1);
 
-        client = true;
-
-        startGrid(NODES - 1);
+        startClientGrid(NODES - 1);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOperationP2PTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOperationP2PTest.java
index 9a53315..2ef33cb 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOperationP2PTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOperationP2PTest.java
@@ -60,16 +60,12 @@
     /** */
     private static final int UPDATES = 100;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setCommunicationSpi(communicationSpi());
 
-        cfg.setClientMode(client);
         cfg.setPeerClassLoadingEnabled(true);
 
         return cfg;
@@ -86,11 +82,7 @@
     @Override protected void beforeTest() throws Exception {
         startGridsMultiThreaded(NODES - 1);
 
-        client = true;
-
-        startGrid(NODES - 1);
-
-        client = false;
+        startClientGrid(NODES - 1);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOrderingEventTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOrderingEventTest.java
index 95f99f8..b5ffe8f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOrderingEventTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOrderingEventTest.java
@@ -90,9 +90,6 @@
     public static final int ITERATION_CNT = 100;
 
     /** */
-    private boolean client;
-
-    /** */
     private static volatile boolean fail;
 
     /** {@inheritDoc} */
@@ -101,8 +98,6 @@
 
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
-        cfg.setClientMode(client);
-
         MemoryEventStorageSpi storeSpi = new MemoryEventStorageSpi();
         storeSpi.setExpireCount(100);
 
@@ -117,9 +112,7 @@
 
         startGridsMultiThreaded(NODES - 1);
 
-        client = true;
-
-        startGrid(NODES - 1);
+        startClientGrid(NODES - 1);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryRandomOperationsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryRandomOperationsTest.java
index 40af9db..aa6cb63 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryRandomOperationsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryRandomOperationsTest.java
@@ -112,17 +112,12 @@
     /** */
     public static final int ITERATION_CNT = SF.applyLB(100, 5);
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -132,9 +127,7 @@
 
         startGridsMultiThreaded(getServerNodeCount());
 
-        client = true;
-
-        startGrid(getServerNodeCount());
+        startClientGrid(getServerNodeCount());
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousWithTransformerFailoverTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousWithTransformerFailoverTest.java
index d837d1a..b174f24 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousWithTransformerFailoverTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousWithTransformerFailoverTest.java
@@ -47,9 +47,6 @@
 /**
  */
 public class CacheContinuousWithTransformerFailoverTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -61,7 +58,6 @@
         ccfg.setWriteSynchronizationMode(FULL_SYNC);
 
         cfg.setCacheConfiguration(ccfg);
-        cfg.setClientMode(client);
 
         return cfg;
     }
@@ -80,13 +76,9 @@
     public void testServerNodeLeft() throws Exception {
         startGrids(3);
 
-        client = true;
-
         final int CLIENT_ID = 3;
 
-        Ignite clnNode = startGrid(CLIENT_ID);
-
-        client = false;
+        Ignite clnNode = startClientGrid(CLIENT_ID);
 
         IgniteOutClosure<IgniteCache<Integer, Integer>> cache =
             new IgniteOutClosure<IgniteCache<Integer, Integer>>() {
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheEntryProcessorExternalizableFailedTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheEntryProcessorExternalizableFailedTest.java
index f40eb9a..93fc66f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheEntryProcessorExternalizableFailedTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheEntryProcessorExternalizableFailedTest.java
@@ -73,9 +73,6 @@
     public static final int KEY = 10;
 
     /** */
-    private boolean client;
-
-    /** */
     private boolean failOnWrite;
 
     /** {@inheritDoc} */
@@ -84,8 +81,6 @@
 
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -95,9 +90,7 @@
 
         startGridsMultiThreaded(getServerNodeCount());
 
-        client = true;
-
-        startGrid(getServerNodeCount());
+        startClientGrid(getServerNodeCount());
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheEntryProcessorNonSerializableTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheEntryProcessorNonSerializableTest.java
index 0b64a2f..30734e6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheEntryProcessorNonSerializableTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheEntryProcessorNonSerializableTest.java
@@ -70,16 +70,12 @@
     /** */
     private static final int KEY = 10;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
 
-        cfg.setClientMode(client);
         //set custom marshaller to get expected exception
         cfg.setMarshaller(new JdkMarshaller());
 
@@ -92,9 +88,7 @@
 
         startGridsMultiThreaded(getServerNodeCount());
 
-        client = true;
-
-        startGrid(getServerNodeCount());
+        startClientGrid(getServerNodeCount());
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ClientReconnectContinuousQueryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ClientReconnectContinuousQueryTest.java
index 0cef440..f5071c1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ClientReconnectContinuousQueryTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ClientReconnectContinuousQueryTest.java
@@ -74,9 +74,7 @@
         commSpi.setSlowClientQueueLimit(50);
         commSpi.setIdleConnectionTimeout(300_000);
 
-        if (getTestIgniteInstanceName(CLIENT_IDX).equals(gridName))
-            cfg.setClientMode(true);
-        else {
+        if (!getTestIgniteInstanceName(CLIENT_IDX).equals(gridName)) {
             CacheConfiguration ccfg = defaultCacheConfiguration();
 
             ccfg.setAtomicityMode(atomicityMode());
@@ -106,9 +104,9 @@
     @Test
     public void testClientReconnect() throws Exception {
         try {
-            startGrids(2);
+            startGrid(0);
 
-            final IgniteEx client = grid(CLIENT_IDX);
+            final IgniteEx client = startClientGrid(CLIENT_IDX);
 
             client.events().localListen(new DisconnectListener(), EventType.EVT_CLIENT_NODE_DISCONNECTED);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryMarshallerTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryMarshallerTest.java
index 291a202..dab32bb 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryMarshallerTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryMarshallerTest.java
@@ -36,7 +36,6 @@
 import org.apache.ignite.binary.Binarylizable;
 import org.apache.ignite.cache.query.ContinuousQuery;
 import org.apache.ignite.cache.query.ScanQuery;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.custom.DummyEventFilterFactory;
 import org.apache.ignite.lang.IgniteBiPredicate;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -50,15 +49,6 @@
     public static final String CACHE_NAME = "test-cache";
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(final String gridName) throws Exception {
-        final IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        cfg.setClientMode(gridName.contains("client"));
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
     }
@@ -91,7 +81,7 @@
         for (int i = 0; i < 10; i++)
             cache.put(i, new MarshallerCheckingEntry(String.valueOf(i)));
 
-        final Ignite node2 = startGrid(node2Name);
+        final Ignite node2 = "client".equals(node2Name) ? startClientGrid(node2Name) : startGrid(node2Name);
 
         final ContinuousQuery<Integer, MarshallerCheckingEntry> qry = new ContinuousQuery<>();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryPeerClassLoadingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryPeerClassLoadingTest.java
index 8fd8a23..3caf053 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryPeerClassLoadingTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryPeerClassLoadingTest.java
@@ -42,7 +42,6 @@
         final IgniteConfiguration cfg = super.getConfiguration(gridName);
 
         cfg.setPeerClassLoadingEnabled(true);
-        cfg.setClientMode(gridName.contains("client"));
 
         return cfg;
     }
@@ -96,7 +95,7 @@
         for (int i = 0; i < 10; i++)
             cache.put(i, String.valueOf(i));
 
-        final Ignite node2 = startGrid(node2Name);
+        final Ignite node2 = node2Name.contains("client") ? startClientGrid(node2Name) : startGrid(node2Name);
 
         final ContinuousQuery<Integer, String> qry1 = new ContinuousQuery<>();
         final ContinuousQuery<Integer, String> qry2 = new ContinuousQuery<>();
@@ -133,7 +132,7 @@
             cache.put(i, String.valueOf(i));
 
         // Fail on start second client.
-        final Ignite node3 = startGrid(node3Name);
+        final Ignite node3 = node3Name.contains("client") ? startClientGrid(node3Name) : startGrid(node3Name);
 
         final IgniteCache<Integer, String> cache2 = node3.cache(CACHE_NAME);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryRemoteFilterMissingInClassPathSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryRemoteFilterMissingInClassPathSelfTest.java
index 6d8ddfd..b0b21b4 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryRemoteFilterMissingInClassPathSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/ContinuousQueryRemoteFilterMissingInClassPathSelfTest.java
@@ -67,9 +67,6 @@
     private IgniteLogger log;
 
     /** */
-    private boolean clientMode;
-
-    /** */
     private boolean setExternalLoader;
 
     /** */
@@ -89,8 +86,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(clientMode);
-
         CacheConfiguration<Object, Object> cacheCfg = new CacheConfiguration<>(DEFAULT_CACHE_NAME);
 
         cacheCfg.setCacheMode(CacheMode.PARTITIONED);
@@ -116,17 +111,15 @@
      */
     @Test
     public void testClientJoinsMissingClassWarning() throws Exception {
-        clientMode = false;
         setExternalLoader = true;
         Ignite ignite0 = startGrid(1);
 
         executeContinuousQuery(ignite0.cache(DEFAULT_CACHE_NAME));
 
         log = new GridStringLogger();
-        clientMode = true;
         setExternalLoader = false;
 
-        startGrid(2);
+        startClientGrid(2);
 
         String logStr = log.toString();
 
@@ -141,15 +134,13 @@
     public void testClientJoinsExtClassLoaderNoWarning() throws Exception {
         setExternalLoader = true;
 
-        clientMode = false;
         Ignite ignite0 = startGrid(1);
 
         executeContinuousQuery(ignite0.cache(DEFAULT_CACHE_NAME));
 
         log = new GridStringLogger();
-        clientMode = true;
 
-        startGrid(2);
+        startClientGrid(2);
 
         assertTrue(!log.toString().contains("Failed to unmarshal continuous query remote filter on client node. " +
             "Can be ignored."));
@@ -160,8 +151,6 @@
      */
     @Test
     public void testServerJoinsMissingClassException() throws Exception {
-        clientMode = false;
-
         setExternalLoader = true;
         Ignite ignite0 = startGrid(1);
 
@@ -191,8 +180,6 @@
      */
     @Test
     public void testServerJoinsExtClassLoaderNoException() throws Exception {
-        clientMode = false;
-
         setExternalLoader = true;
         Ignite ignite0 = startGrid(1);
 
@@ -211,8 +198,6 @@
      */
     @Test
     public void testServerMissingClassFailsRegistration() throws Exception {
-        clientMode = false;
-
         setExternalLoader = true;
 
         Ignite ign1 = startGrid(1);
@@ -236,17 +221,13 @@
      */
     @Test
     public void testClientMissingClassDoesNotFailRegistration() throws Exception {
-        clientMode = false;
-
         setExternalLoader = true;
 
         Ignite ign1 = startGrid(1);
 
         setExternalLoader = false;
 
-        clientMode = true;
-
-        startGrid(2);
+        startClientGrid(2);
 
         executeContinuousQuery(ign1.cache(DEFAULT_CACHE_NAME));
     }
@@ -256,8 +237,6 @@
      */
     @Test
     public void testNodeFilterServerMissingClassDoesNotFailRegistration() throws Exception {
-        clientMode = false;
-
         setExternalLoader = true;
 
         Ignite ign1 = startGrid(1);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
index 7f35ffc..a80eb5e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryAbstractSelfTest.java
@@ -133,8 +133,6 @@
 
             cfg.setCacheConfiguration(cacheCfg);
         }
-        else
-            cfg.setClientMode(true);
 
         cfg.setIncludeEventTypes(EVTS_ALL);
 
@@ -1051,7 +1049,7 @@
         QueryCursor<Cache.Entry<Integer, Integer>> cur = cache.query(qry);
 
         try {
-            try (Ignite ignite = startGrid(NO_CACHE_IGNITE_INSTANCE_NAME)) {
+            try (Ignite ignite = startClientGrid(NO_CACHE_IGNITE_INSTANCE_NAME)) {
                 log.info("Started node without cache: " + ignite);
             }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryMultiNodesFilteringTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryMultiNodesFilteringTest.java
index 8ef4f727..e6634c3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryMultiNodesFilteringTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryMultiNodesFilteringTest.java
@@ -71,15 +71,10 @@
     /** Cache entry operations' counts. */
     private static final ConcurrentMap<String, AtomicInteger> opCounts = new ConcurrentHashMap<>();
 
-    /** Client. */
-    private static boolean client = false;
-
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
 
-        client = false;
-
         super.afterTest();
     }
 
@@ -200,9 +195,7 @@
             log.info("CQ started on node: " + ignite.cluster().localNode().id());
         }
 
-        client = true;
-
-        startGrid(nodesCnt);
+        startClientGrid(nodesCnt);
 
         awaitPartitionMapExchange();
 
@@ -297,15 +290,6 @@
         return node;
     }
 
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /**
      * @param filter Node filter.
      * @return Cache configuration.
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryBackupQueueTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryBackupQueueTest.java
index 090291d..af36d117 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryBackupQueueTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryBackupQueueTest.java
@@ -61,9 +61,6 @@
     private static final int GRID_COUNT = 2;
 
     /** */
-    private static boolean client = false;
-
-    /** */
     private static String CACHE_NAME = "test-cache";
 
     /** */
@@ -82,8 +79,6 @@
 
         cfg.setCacheConfiguration(ccfg);
 
-        cfg.setClientMode(client);
-
         DataStorageConfiguration memCfg = new DataStorageConfiguration();
         memCfg.setPageSize(16 * 1024);
 
@@ -111,8 +106,6 @@
         super.afterTest();
 
         stopAllGrids();
-
-        client = false;
     }
 
     /** {@inheritDoc} */
@@ -185,11 +178,7 @@
      */
     @Test
     public void testBackupQueueAutoUnsubscribeFalse() throws Exception {
-        try {
-            client = true;
-
-            Ignite client = startGrid(GRID_COUNT);
-
+        try (Ignite client = startClientGrid(GRID_COUNT)) {
             awaitPartitionMapExchange();
 
             List<QueryCursor> qryCursors = new ArrayList<>();
@@ -229,9 +218,6 @@
 
             assertEquals(-1, size);
         }
-        finally {
-            stopGrid(GRID_COUNT);
-        }
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryClientTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryClientTest.java
index 4cad1b6..9c9ea57 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryClientTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryClientTest.java
@@ -45,9 +45,6 @@
  *
  */
 public class IgniteCacheContinuousQueryClientTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -60,8 +57,6 @@
 
         cfg.setCacheConfiguration(ccfg);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -86,13 +81,9 @@
     public void testNodeJoins() throws Exception {
         startGrids(2);
 
-        client = true;
-
         final int CLIENT_ID = 3;
 
-        Ignite clientNode = startGrid(CLIENT_ID);
-
-        client = false;
+        Ignite clientNode = startClientGrid(CLIENT_ID);
 
         final CacheEventListener lsnr = new CacheEventListener();
 
@@ -144,13 +135,9 @@
     public void testNodeJoinsRestartQuery() throws Exception {
         startGrids(2);
 
-        client = true;
-
         final int CLIENT_ID = 3;
 
-        Ignite clientNode = startGrid(CLIENT_ID);
-
-        client = false;
+        Ignite clientNode = startClientGrid(CLIENT_ID);
 
         for (int i = 0; i < 10; i++) {
             log.info("Start iteration: " + i);
@@ -204,13 +191,9 @@
     public void testServerNodeLeft() throws Exception {
         startGrids(3);
 
-        client = true;
-
         final int CLIENT_ID = 3;
 
-        Ignite clnNode = startGrid(CLIENT_ID);
-
-        client = false;
+        Ignite clnNode = startClientGrid(CLIENT_ID);
 
         IgniteOutClosure<IgniteCache<Integer, Integer>> rndCache =
             new IgniteOutClosure<IgniteCache<Integer, Integer>>() {
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryNoUnsubscribeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryNoUnsubscribeTest.java
index ae29bb4..c8c86a6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryNoUnsubscribeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryNoUnsubscribeTest.java
@@ -37,15 +37,11 @@
     /** */
     private static AtomicInteger cntr = new AtomicInteger();
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setPeerClassLoadingEnabled(false);
-        cfg.setClientMode(client);
 
         CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
 
@@ -91,9 +87,7 @@
     private void checkNoUnsubscribe(boolean client) throws Exception {
         cntr.set(0);
 
-        this.client = client;
-
-        try (Ignite ignite = startGrid(3)) {
+        try (Ignite ignite = client ? startClientGrid(3) : startGrid(3)) {
             ContinuousQuery qry = new ContinuousQuery();
 
             qry.setLocalListener(new CacheEntryUpdatedListener() {
@@ -113,8 +107,6 @@
             assertEquals(1, cntr.get());
         }
 
-        this.client = false;
-
         try (Ignite newSrv = startGrid(3)) {
             awaitPartitionMapExchange();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryReconnectTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryReconnectTest.java
index c71ff89..1d679a3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryReconnectTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/IgniteCacheContinuousQueryReconnectTest.java
@@ -45,9 +45,6 @@
     /** */
     private static final AtomicInteger cnt = new AtomicInteger();
 
-    /** */
-    private volatile boolean isClient = false;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -61,9 +58,6 @@
 
         cfg.setCacheConfiguration(ccfg);
 
-        if (isClient)
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -131,11 +125,7 @@
             }
         });
 
-        isClient = true;
-
-        Ignite client = startGrid(1);
-
-        isClient = false;
+        Ignite client = startClientGrid(1);
 
         IgniteCache<Object, Object> cache1 = srv1.cache(DEFAULT_CACHE_NAME);
         IgniteCache<Object, Object> clCache = client.cache(DEFAULT_CACHE_NAME);
@@ -176,11 +166,7 @@
 
         stopGrid(1); // Client node.
 
-        isClient = true;
-
-        client = startGrid(4);
-
-        isClient = false;
+        client = startClientGrid(4);
 
         clCache = client.cache(DEFAULT_CACHE_NAME);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/AbstractTransactionIntergrityTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/AbstractTransactionIntergrityTest.java
index dfa4f4b..9083581 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/AbstractTransactionIntergrityTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/AbstractTransactionIntergrityTest.java
@@ -193,17 +193,6 @@
     }
 
     /**
-     * Ignite configuration for client.
-     */
-    @NotNull private IgniteConfiguration getClientConfiguration(int nodesPrefix) throws Exception {
-        IgniteConfiguration clientConf = getConfiguration(getTestIgniteInstanceName(nodesPrefix));
-
-        clientConf.setClientMode(true);
-
-        return clientConf;
-    }
-
-    /**
      * Test transfer amount.
      *
      * @param failoverScenario Scenario.
@@ -215,7 +204,7 @@
         //given: started some nodes with client.
         startGrids(nodesCount());
 
-        IgniteEx igniteClient = startGrid(getClientConfiguration(nodesCount()));
+        IgniteEx igniteClient = startClientGrid(getConfiguration(getTestIgniteInstanceName(nodesCount())));
 
         igniteClient.cluster().active(true);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxCrossCacheMapOnInvalidTopologyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxCrossCacheMapOnInvalidTopologyTest.java
index 65f5542..a2e63cb 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxCrossCacheMapOnInvalidTopologyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxCrossCacheMapOnInvalidTopologyTest.java
@@ -81,7 +81,6 @@
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
-        cfg.setClientMode("client".equals(igniteInstanceName));
         cfg.setCacheConfiguration(cacheConfiguration(CACHE1), cacheConfiguration(CACHE2).setRebalanceOrder(10));
 
         cfg.setDataStorageConfiguration(new DataStorageConfiguration().setPageSize(1024).
@@ -151,7 +150,7 @@
 
             awaitPartitionMapExchange();
 
-            IgniteEx client = startGrid("client");
+            IgniteEx client = startClientGrid("client");
             assertNotNull(client.cache(CACHE1));
             assertNotNull(client.cache(CACHE2));
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxCrossCachePartitionConsistencyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxCrossCachePartitionConsistencyTest.java
index d3c67a2..785ebc7 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxCrossCachePartitionConsistencyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxCrossCachePartitionConsistencyTest.java
@@ -80,7 +80,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode("client".equals(igniteInstanceName));
         cfg.setCacheConfiguration(cacheConfiguration(CACHE1, 2), cacheConfiguration(CACHE2, 1));
 
         cfg.setDataStorageConfiguration(new DataStorageConfiguration().
@@ -147,7 +146,7 @@
 
             awaitPartitionMapExchange();
 
-            Ignite client = startGrid("client");
+            Ignite client = startClientGrid("client");
 
             AtomicBoolean stop = new AtomicBoolean();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxCrossCacheRemoteMultiplePartitionReservationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxCrossCacheRemoteMultiplePartitionReservationTest.java
index c6c269f..b5a5e0a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxCrossCacheRemoteMultiplePartitionReservationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxCrossCacheRemoteMultiplePartitionReservationTest.java
@@ -60,7 +60,6 @@
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
-        cfg.setClientMode("client".equals(igniteInstanceName));
         cfg.setCacheConfiguration(cacheConfiguration(CACHE1), cacheConfiguration(CACHE2));
 
         cfg.setDataStorageConfiguration(new DataStorageConfiguration().setPageSize(1024).
@@ -91,7 +90,7 @@
 
             awaitPartitionMapExchange();
 
-            IgniteEx client = startGrid("client");
+            IgniteEx client = startClientGrid("client");
             IgniteCache<Object, Object> cache1 = client.cache(CACHE1);
             IgniteCache<Object, Object> cache2 = client.cache(CACHE2);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxDataConsistencyOnCommitFailureTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxDataConsistencyOnCommitFailureTest.java
index a4eace8..8199cb1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxDataConsistencyOnCommitFailureTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxDataConsistencyOnCommitFailureTest.java
@@ -63,8 +63,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(igniteInstanceName.startsWith(CLIENT));
-
         cfg.setCacheConfiguration(new CacheConfiguration(DEFAULT_CACHE_NAME).
             setCacheMode(CacheMode.PARTITIONED).
             setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL).
@@ -90,7 +88,7 @@
 
         doTestCommitError(() -> {
             try {
-                return startGrid("client");
+                return startClientGrid(CLIENT);
             }
             catch (Exception e) {
                 throw new RuntimeException(e);
@@ -107,7 +105,7 @@
 
         doTestCommitError(() -> {
             try {
-                return startGrid("client");
+                return startClientGrid(CLIENT);
             }
             catch (Exception e) {
                 throw new RuntimeException(e);
@@ -137,7 +135,7 @@
         Ignite ignite = factory.get();
 
         if (ignite == null)
-            ignite = startGrid("client");
+            ignite = startClientGrid(CLIENT);
 
         assertNotNull(ignite.cache(DEFAULT_CACHE_NAME));
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlockDetectionMessageMarshallingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlockDetectionMessageMarshallingTest.java
index e9d989d..a6d6375 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlockDetectionMessageMarshallingTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlockDetectionMessageMarshallingTest.java
@@ -24,7 +24,6 @@
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.managers.communication.GridIoPolicy;
 import org.apache.ignite.internal.managers.communication.GridMessageListener;
@@ -42,18 +41,6 @@
     /** Topic. */
     private static final String TOPIC = "mytopic";
 
-    /** Client mode. */
-    private static boolean clientMode;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        cfg.setClientMode(clientMode);
-
-        return cfg;
-    }
-
     /**
      * @throws Exception If failed.
      */
@@ -66,9 +53,7 @@
 
             IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache(ccfg);
 
-            clientMode = true;
-
-            Ignite client = startGrid(1);
+            Ignite client = startClientGrid(1);
 
             final GridCacheSharedContext<Object, Object> clientCtx = ((IgniteKernal)client).context().cache().context();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlockDetectionUnmasrhalErrorsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlockDetectionUnmasrhalErrorsTest.java
index d1ae774..6ed721a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlockDetectionUnmasrhalErrorsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlockDetectionUnmasrhalErrorsTest.java
@@ -52,15 +52,10 @@
     /** Nodes count. */
     private static final int NODES_CNT = 2;
 
-    /** Client. */
-    private static boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setClientMode(client);
-
         if (isDebug()) {
             TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
@@ -78,9 +73,7 @@
 
         startGrid(0);
 
-        client = true;
-
-        startGrid(1);
+        startClientGrid(1);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOnCachesStartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOnCachesStartTest.java
index e76264b..618cd3d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOnCachesStartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOnCachesStartTest.java
@@ -62,7 +62,7 @@
     public void testTransactionCloseOnCachesStartAndStop() throws Exception {
         Ignite srv =  startGrids(5);
 
-        IgniteEx client1 = startGrid(getConfiguration("client-1").setClientMode(true));
+        IgniteEx client1 = startClientGrid(getConfiguration("client-1"));
 
         srv.cluster().active(true);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOnCachesStopTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOnCachesStopTest.java
index 948d8c1..e926984 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOnCachesStopTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOnCachesStopTest.java
@@ -29,7 +29,6 @@
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheWriteSynchronizationMode;
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
@@ -168,9 +167,7 @@
     private void runTxOnCacheStop(boolean block) throws Exception {
         startGridsMultiThreaded(2);
 
-        Ignition.setClientMode(true);
-
-        IgniteEx ig = startGrid("client");
+        IgniteEx ig = startClientGrid("client");
 
         ig.cluster().active(true);
 
@@ -187,9 +184,7 @@
     public void testTxOnCacheStopInMid() throws Exception {
         startGridsMultiThreaded(2);
 
-        Ignition.setClientMode(true);
-
-        IgniteEx ig = startGrid("client");
+        IgniteEx ig = startClientGrid("client");
 
         ig.cluster().active(true);
 
@@ -208,9 +203,7 @@
 
         startGridsMultiThreaded(1);
 
-        Ignition.setClientMode(true);
-
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         client.cluster().active(true);
 
@@ -353,11 +346,9 @@
 
         startGridsMultiThreaded(3);
 
-        Ignition.setClientMode(true);
-
         ArrayList<Ignite> clients = new ArrayList<>();
         for (int ci = 0; ci < 2; ++ci)
-            clients.add(startGrid("client-" + ci));
+            clients.add(startClientGrid("client-" + ci));
 
         clients.get(0).cluster().active(true);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOptimisticDeadlockDetectionTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOptimisticDeadlockDetectionTest.java
index da33fd8..4486201 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOptimisticDeadlockDetectionTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOptimisticDeadlockDetectionTest.java
@@ -82,9 +82,6 @@
     /** Custom start key. */
     private static final IncrementalTestObject CUSTOM_START_KEY = new KeyObject(1);
 
-    /** Client mode flag. */
-    private static boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -96,8 +93,6 @@
 
         cfg.setCommunicationSpi(commSpi);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -105,14 +100,10 @@
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        client = false;
-
         startGrids(NODES_CNT);
 
-        client = true;
-
         for (int i = 0; i < NODES_CNT; i++)
-            startGrid(i + NODES_CNT);
+            startClientGrid(i + NODES_CNT);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOptimisticPrepareOnUnstableTopologyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOptimisticPrepareOnUnstableTopologyTest.java
index 7e0c368..a1080c6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOptimisticPrepareOnUnstableTopologyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxOptimisticPrepareOnUnstableTopologyTest.java
@@ -54,9 +54,6 @@
     /** */
     private static final int GRID_CNT = 4;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration c = super.getConfiguration(igniteInstanceName);
@@ -71,8 +68,6 @@
 
         c.setCacheConfiguration(ccfg);
 
-        c.setClientMode(client);
-
         return c;
     }
 
@@ -106,13 +101,14 @@
 
             try {
                 for (int i = 0; i < GRID_CNT; i++) {
-                    client = (clientIdx == i);
+                    IgniteEx grid;
 
-                    IgniteEx grid = startGrid(i);
+                    if (clientIdx == i)
+                        grid = startClientGrid(i);
+                    else
+                        grid = startGrid(i);
 
-                    assertEquals(client, grid.configuration().isClientMode().booleanValue());
-
-                    client = false;
+                    assertEquals(clientIdx == i, grid.configuration().isClientMode().booleanValue());
 
                     IgniteInternalFuture<Void> fut = runCacheOperationsAsync(grid, stopFlag, isolation, timeout, keys);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateAbstractTest.java
index a3f6021..640b578 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateAbstractTest.java
@@ -131,10 +131,6 @@
         // TODO set this only for historical rebalance tests.
         cfg.setCommunicationSpi(new IgniteWalRebalanceTest.WalRebalanceCheckingCommunicationSpi());
 
-        boolean client = igniteInstanceName.startsWith(CLIENT_GRID_NAME);
-
-        cfg.setClientMode(client);
-
         cfg.setDataStorageConfiguration(new DataStorageConfiguration().
             setWalHistorySize(1000).
             setWalSegmentSize(8 * MB).setWalMode(LOG_ONLY).setPageSize(1024).
@@ -142,7 +138,7 @@
             setDefaultDataRegionConfiguration(new DataRegionConfiguration().setPersistenceEnabled(persistenceEnabled()).
                 setInitialSize(100 * MB).setMaxSize(100 * MB)));
 
-        if (!client)
+        if (!igniteInstanceName.startsWith(CLIENT_GRID_NAME))
             cfg.setCacheConfiguration(cacheConfiguration(DEFAULT_CACHE_NAME));
 
         return cfg;
@@ -235,7 +231,7 @@
             totalKeys += size;
         }
 
-        IgniteEx client = startGrid("client");
+        IgniteEx client = startClientGrid(CLIENT_GRID_NAME);
 
         // Preload one key to partition to enable historical rebalance.
         List<Integer> preloadKeys = loadDataToPartition(partId, "client", DEFAULT_CACHE_NAME, PRELOAD_KEYS_CNT, 0);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateConsistencyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateConsistencyTest.java
index 4c9521e..3a3a77e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateConsistencyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateConsistencyTest.java
@@ -116,7 +116,7 @@
 
         startGridsMultiThreaded(SERVER_NODES);
 
-        IgniteEx client = startGrid("client");
+        IgniteEx client = startClientGrid(CLIENT_GRID_NAME);
 
         IgniteCache<Object, Object> cache = client.getOrCreateCache(DEFAULT_CACHE_NAME);
 
@@ -166,7 +166,7 @@
 
         Ignite prim = startGridsMultiThreaded(SERVER_NODES);
 
-        IgniteEx client = startGrid("client");
+        IgniteEx client = startClientGrid(CLIENT_GRID_NAME);
 
         IgniteCache<Object, Object> cache = client.getOrCreateCache(DEFAULT_CACHE_NAME);
 
@@ -621,7 +621,7 @@
 
         crd.cluster().active(true);
 
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid(CLIENT_GRID_NAME);
 
         IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
 
@@ -704,7 +704,7 @@
 
         crd.cluster().active(true);
 
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid(CLIENT_GRID_NAME);
 
         IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
 
@@ -844,7 +844,7 @@
 
         stopGrid(3);
 
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid(CLIENT_GRID_NAME);
 
         IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
         IgniteCache<Object, Object> cache2 = client.getOrCreateCache(cacheConfiguration(DEFAULT_CACHE_NAME + "2"));
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateOnePrimaryTwoBackupsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateOnePrimaryTwoBackupsTest.java
index 96d6379..234e218 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateOnePrimaryTwoBackupsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateOnePrimaryTwoBackupsTest.java
@@ -438,7 +438,7 @@
 
         assertTrue(cntr.sequential());
 
-        assertPartitionsSame(idleVerify(grid("client"), DEFAULT_CACHE_NAME));
+        assertPartitionsSame(idleVerify(grid(CLIENT_GRID_NAME), DEFAULT_CACHE_NAME));
 
         assertCountersSame(PARTITION_ID, true);
     }
@@ -745,18 +745,18 @@
 
         awaitPartitionMapExchange();
 
-        assertPartitionsSame(idleVerify(grid("client"), DEFAULT_CACHE_NAME));
+        assertPartitionsSame(idleVerify(grid(CLIENT_GRID_NAME), DEFAULT_CACHE_NAME));
 
         assertCountersSame(PARTITION_ID, true);
 
-        assertEquals(PRELOAD_KEYS_CNT + expCommittedSize, grid("client").cache(DEFAULT_CACHE_NAME).size());
+        assertEquals(PRELOAD_KEYS_CNT + expCommittedSize, grid(CLIENT_GRID_NAME).cache(DEFAULT_CACHE_NAME).size());
 
         // Start primary.
         startGrid(txTops.get(PARTITION_ID).get1().name());
 
         awaitPartitionMapExchange();
 
-        assertPartitionsSame(idleVerify(grid("client"), DEFAULT_CACHE_NAME));
+        assertPartitionsSame(idleVerify(grid(CLIENT_GRID_NAME), DEFAULT_CACHE_NAME));
 
         assertCountersSame(PARTITION_ID, true);
     }
@@ -844,7 +844,7 @@
 
         awaitPartitionMapExchange();
 
-        assertPartitionsSame(idleVerify(grid("client"), DEFAULT_CACHE_NAME));
+        assertPartitionsSame(idleVerify(grid(CLIENT_GRID_NAME), DEFAULT_CACHE_NAME));
 
         assertCountersSame(PARTITION_ID, true);
     }
@@ -895,7 +895,7 @@
 
         awaitPartitionMapExchange();
 
-        IgniteEx client = grid("client");
+        IgniteEx client = grid(CLIENT_GRID_NAME);
 
         assertPartitionsSame(idleVerify(client, DEFAULT_CACHE_NAME));
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateWithFilterTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateWithFilterTest.java
index dfc6ca6..4811dca 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateWithFilterTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPartitionCounterStateWithFilterTest.java
@@ -25,7 +25,6 @@
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.processors.cache.PartitionUpdateCounter;
 import org.apache.ignite.internal.util.typedef.G;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -49,9 +48,6 @@
     private static final int NODES = 4;
 
     /** */
-    private boolean client;
-
-    /** */
     @Parameterized.Parameter(0)
     public CacheMode cacheMode;
 
@@ -79,23 +75,12 @@
     }
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
         startGridsMultiThreaded(NODES - 1);
 
-        client = true;
-
-        startGrid(NODES - 1);
+        startClientGrid(NODES - 1);
     }
 
     /** */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPessimisticDeadlockDetectionTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPessimisticDeadlockDetectionTest.java
index 1d0cfdf..8b9d65a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPessimisticDeadlockDetectionTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxPessimisticDeadlockDetectionTest.java
@@ -75,9 +75,6 @@
     /** Custom start key. */
     private static final IncrementalTestObject CUSTOM_START_KEY = new KeyObject(1);
 
-    /** Client mode flag. */
-    private static boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -97,8 +94,6 @@
 
         cfg.setDataStorageConfiguration(memCfg);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -106,14 +101,10 @@
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        client = false;
-
         startGridsMultiThreaded(NODES_CNT);
 
-        client = true;
-
         for (int i = 0; i < NODES_CNT; i++)
-            startGrid(i + NODES_CNT);
+            startClientGrid(i + NODES_CNT);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackAsyncTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackAsyncTest.java
index d12b626..9b4a319 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackAsyncTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackAsyncTest.java
@@ -126,16 +126,12 @@
 
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
 
-        boolean client = igniteInstanceName.startsWith("client");
-
-        cfg.setClientMode(client);
-
         if (persistenceEnabled())
             cfg.setDataStorageConfiguration(new DataStorageConfiguration().setWalMode(LOG_ONLY).setPageSize(1024).
                 setDefaultDataRegionConfiguration(new DataRegionConfiguration().setPersistenceEnabled(true).
                     setInitialSize(100 * MB).setMaxSize(100 * MB)));
 
-        if (!client) {
+        if (!igniteInstanceName.startsWith("client")) {
             CacheConfiguration ccfg = new CacheConfiguration(CACHE_NAME);
 
             if (nearCacheEnabled())
@@ -191,7 +187,7 @@
      * @throws Exception If f nodeailed.
      */
     private Ignite startClient() throws Exception {
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         assertTrue(client.configuration().isClientMode());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnMapOnInvalidTopologyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnMapOnInvalidTopologyTest.java
index b8bc99d..4d0e4cc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnMapOnInvalidTopologyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnMapOnInvalidTopologyTest.java
@@ -50,11 +50,8 @@
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setConsistentId(igniteInstanceName);
-
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
 
-        cfg.setClientMode(igniteInstanceName.equals("client"));
-
         CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
 
         ccfg.setAtomicityMode(TRANSACTIONAL);
@@ -72,7 +69,7 @@
 
         startGridsMultiThreaded(GRIDS);
 
-        startGrid("client");
+        startClientGrid("client");
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutOnePhaseCommitTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutOnePhaseCommitTest.java
index 28516e9..c7a125a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutOnePhaseCommitTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutOnePhaseCommitTest.java
@@ -57,11 +57,7 @@
 
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
 
-        boolean client = igniteInstanceName.startsWith("client");
-
-        cfg.setClientMode(client);
-
-        if (!client) {
+        if (!igniteInstanceName.startsWith("client")) {
             CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
 
             ccfg.setAtomicityMode(TRANSACTIONAL);
@@ -81,7 +77,7 @@
 
         startGridsMultiThreaded(GRID_CNT);
 
-        startGrid("client");
+        startClientGrid("client");
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index b3445ca..0cc072a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
@@ -96,14 +96,9 @@
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setConsistentId(igniteInstanceName);
-
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
 
-        boolean client = "client".equals(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        if (!client) {
+        if (!"client".equals(igniteInstanceName)) {
             CacheConfiguration ccfg = new CacheConfiguration(CACHE_NAME);
 
             if (nearCacheEnabled())
@@ -147,7 +142,7 @@
      * @return Started client.
      */
     private Ignite startClient() throws Exception {
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         assertTrue(client.configuration().isClientMode());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTopologyChangeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTopologyChangeTest.java
index 18bf54a..6b3c32a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTopologyChangeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTopologyChangeTest.java
@@ -75,8 +75,6 @@
 
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
 
-        cfg.setClientMode(getTestIgniteInstanceIndex(igniteInstanceName) >= SRV_CNT);
-
         CacheConfiguration ccfg = new CacheConfiguration(CACHE_NAME);
 
         ccfg.setAtomicityMode(TRANSACTIONAL);
@@ -95,7 +93,8 @@
 
         super.beforeTest();
 
-        startGridsMultiThreaded(TOTAL_CNT);
+        startGridsMultiThreaded(SRV_CNT);
+        startClientGridsMultiThreaded(SRV_CNT, CLNT_CNT);
     }
 
     /** {@inheritDoc} */
@@ -188,7 +187,10 @@
 
                     doSleep(500 + r.nextInt(1000));
 
-                    startGrid(nodeId);
+                    if (nodeId >= SRV_CNT)
+                        startClientGrid(nodeId);
+                    else
+                        startGrid(nodeId);
 
                     reservedIdx.set(nodeId, 0);
                 }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxWithSmallTimeoutAndContentionOneKeyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxWithSmallTimeoutAndContentionOneKeyTest.java
index 5afa564..be0aae6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxWithSmallTimeoutAndContentionOneKeyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxWithSmallTimeoutAndContentionOneKeyTest.java
@@ -60,9 +60,6 @@
     /** */
     private static final int TIME_TO_EXECUTE = 30 * 1000;
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String name) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(name);
@@ -85,12 +82,6 @@
                 .setBackups(3)
         );
 
-        if (client){
-            cfg.setConsistentId("Client");
-
-            cfg.setClientMode(client);
-        }
-
         return cfg;
     }
 
@@ -156,9 +147,7 @@
 
         startGrids(4);
 
-        client = true;
-
-        IgniteEx igClient = startGrid(4);
+        IgniteEx igClient = startClientGrid(getConfiguration("client").setConsistentId("Client"));
 
         igClient.cluster().active(true);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cluster/BaselineAutoAdjustInMemoryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cluster/BaselineAutoAdjustInMemoryTest.java
index a9584c4..da8f9d6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cluster/BaselineAutoAdjustInMemoryTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cluster/BaselineAutoAdjustInMemoryTest.java
@@ -35,7 +35,7 @@
     public void testWithZeroTimeout() throws Exception {
         startGrids(3);
 
-        startGrid(getConfiguration(UUID.randomUUID().toString()).setClientMode(true));
+        startClientGrid(getConfiguration(UUID.randomUUID().toString()));
 
         stopGrid(2);
 
@@ -53,7 +53,7 @@
 
         assertEquals(3, grid(0).cluster().currentBaselineTopology().size());
 
-        IgniteEx client = startGrid(getConfiguration(UUID.randomUUID().toString()).setClientMode(true));
+        IgniteEx client = startClientGrid(getConfiguration(UUID.randomUUID().toString()));
 
         assertEquals(3, grid(0).cluster().currentBaselineTopology().size());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cluster/BaselineAutoAdjustTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cluster/BaselineAutoAdjustTest.java
index 60291df..b63377a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cluster/BaselineAutoAdjustTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cluster/BaselineAutoAdjustTest.java
@@ -378,7 +378,7 @@
 
         doSleep(autoAdjustTimeout / 2);
 
-        IgniteEx igniteClient = startGrid(getConfiguration(getTestIgniteInstanceName(2)).setClientMode(true));
+        IgniteEx igniteClient = startClientGrid(getConfiguration(getTestIgniteInstanceName(2)));
 
         doSleep(autoAdjustTimeout / 2);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cluster/ClusterReadOnlyModeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cluster/ClusterReadOnlyModeSelfTest.java
index 2f38be3..29220e6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cluster/ClusterReadOnlyModeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cluster/ClusterReadOnlyModeSelfTest.java
@@ -64,7 +64,6 @@
         return super.getConfiguration(igniteInstanceName)
             .setConsistentId(igniteInstanceName)
             .setFailureHandler(new StopNodeFailureHandler())
-            .setClientMode("client".equals(igniteInstanceName))
             .setCacheConfiguration(cacheConfigurations())
             .setDataStorageConfiguration(
                 new DataStorageConfiguration()
@@ -226,7 +225,7 @@
     @Test
     public void testReadOnlyFromClient() throws Exception {
         startGrids(1);
-        startGrid("client");
+        startClientGrid("client");
 
         grid(0).cluster().state(ACTIVE);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/IgniteNoCustomEventsOnNodeStart.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/IgniteNoCustomEventsOnNodeStart.java
index ce09cd1..96e2b46 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/IgniteNoCustomEventsOnNodeStart.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/continuous/IgniteNoCustomEventsOnNodeStart.java
@@ -17,7 +17,6 @@
 
 package org.apache.ignite.internal.processors.continuous;
 
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.processors.cache.CacheAffinityChangeMessage;
 import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
@@ -30,20 +29,8 @@
  */
 public class IgniteNoCustomEventsOnNodeStart extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private static volatile boolean failed;
 
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /**
      * @throws Exception If failed.
      */
@@ -52,9 +39,10 @@
         failed = false;
 
         for (int i = 0; i < 5; i++) {
-            client = i % 2 == 1;
-
-            startGrid(i);
+            if (i % 2 == 1)
+                startClientGrid(i);
+            else
+                startGrid(i);
         }
 
         assertFalse(failed);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbDynamicCacheSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbDynamicCacheSelfTest.java
index b418dd2..f08bab0 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbDynamicCacheSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbDynamicCacheSelfTest.java
@@ -46,9 +46,6 @@
 
         cfg.setDataStorageConfiguration(memCfg);
 
-        if (gridName.equals("client"))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerClientReconnectAfterClusterRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerClientReconnectAfterClusterRestartTest.java
index 6005d0d..723b0dc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerClientReconnectAfterClusterRestartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerClientReconnectAfterClusterRestartTest.java
@@ -32,17 +32,12 @@
  * Tests DataStreamer reconnect behaviour when client nodes arrives at the same or different topVer than it left.
  */
 public class DataStreamerClientReconnectAfterClusterRestartTest extends GridCommonAbstractTest {
-    /** */
-    private boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setCacheConfiguration(new CacheConfiguration<>("test"));
 
-        cfg.setClientMode(clientMode);
-
         return cfg;
     }
 
@@ -78,19 +73,15 @@
         try {
             startGrid(0);
 
-            clientMode = true;
-
-            Ignite client = startGrid(1);
+            Ignite client = startClientGrid(1);
 
             if (withAnotherClient) {
                 // Force increase of topVer
-                startGrid(2);
+                startClientGrid(2);
 
                 stopGrid(2);
             }
 
-            clientMode = false;
-
             try (IgniteDataStreamer<String, String> streamer = client.dataStreamer("test")) {
                 streamer.allowOverwrite(allowOverwrite);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImplSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImplSelfTest.java
index 3882573..ec3e4ff 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImplSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImplSelfTest.java
@@ -476,7 +476,7 @@
         streamer.addData(1, 1);
 
         for (int topChanges = 0; topChanges < 30; topChanges++) {
-            IgniteEx node = startGrid(getConfiguration("flapping-client").setClientMode(true));
+            IgniteEx node = startClientGrid(getConfiguration("flapping-client"));
 
             streamer.addData(1, 1);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerUpdateAfterLoadTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerUpdateAfterLoadTest.java
index 1e0722d..af64277 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerUpdateAfterLoadTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerUpdateAfterLoadTest.java
@@ -24,7 +24,6 @@
 import org.apache.ignite.IgniteDataStreamer;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.jetbrains.annotations.NotNull;
 import org.junit.Test;
@@ -36,29 +35,15 @@
  */
 public class DataStreamerUpdateAfterLoadTest extends GridCommonAbstractTest {
     /** */
-    private boolean client;
-
-    /** */
     private static final int NODES = 4;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
         startGridsMultiThreaded(NODES - 1);
 
-        client = true;
-
-        startGrid(NODES - 1);
+        startClientGrid(NODES - 1);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsOneClientNodeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsOneClientNodeTest.java
index 11c632b..6d0f397 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsOneClientNodeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsOneClientNodeTest.java
@@ -48,8 +48,6 @@
 
         cfg.setCacheConfiguration(cacheConfiguration(CACHE_NAME));
 
-        cfg.setClientMode(true);
-
         cfg.setDiscoverySpi(new TcpDiscoverySpi()
             .setForceServerMode(true)
             .setIpFinder(new TcpDiscoveryVmIpFinder(true)));
@@ -84,7 +82,7 @@
 
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
-        startGrids(1);
+        startClientGrid(0);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/metastorage/DistributedMetaStorageTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/metastorage/DistributedMetaStorageTest.java
index 97616fb..395f5b5 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/metastorage/DistributedMetaStorageTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/metastorage/DistributedMetaStorageTest.java
@@ -354,7 +354,7 @@
 
         metastorage(0).write("key0", "value0");
 
-        startClient(1);
+        startClientGrid(1);
 
         AtomicInteger clientLsnrUpdatesCnt = new AtomicInteger();
 
@@ -380,7 +380,7 @@
 
         igniteEx.cluster().active(true);
 
-        startClient(1);
+        startClientGrid(1);
 
         metastorage(0).write("key0", "value0");
 
@@ -473,11 +473,6 @@
             assertDistributedMetastoragesAreEqual(grid(0), grid(i));
     }
 
-    /** */
-    protected IgniteEx startClient(int idx) throws Exception {
-        return startGrid(getConfiguration(getTestIgniteInstanceName(idx)).setClientMode(true));
-    }
-
     /**
      * @return {@link DistributedMetaStorage} instance for i'th node.
      */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceClientNodeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceClientNodeTest.java
index 3f0e765..a992e12 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceClientNodeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceClientNodeTest.java
@@ -29,16 +29,11 @@
  *
  */
 public class GridServiceClientNodeTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setClientFailureDetectionTimeout(30000);
-
-        cfg.setClientMode(client);
         cfg.setMetricsUpdateFrequency(1000);
 
         return cfg;
@@ -58,9 +53,7 @@
     public void testDeployFromClient() throws Exception {
         startGrids(3);
 
-        client = true;
-
-        Ignite ignite = startGrid(3);
+        Ignite ignite = startClientGrid(3);
 
         checkDeploy(ignite, "service1");
     }
@@ -72,11 +65,7 @@
     public void testDeployFromClientAfterRouterStop1() throws Exception {
         startGrid(0);
 
-        client = true;
-
-        Ignite ignite = startGrid(1);
-
-        client = false;
+        Ignite ignite = startClientGrid(1);
 
         startGrid(2);
 
@@ -101,19 +90,11 @@
     public void testDeployFromClientAfterRouterStop2() throws Exception {
         startGrid(0);
 
-        client = true;
-
-        Ignite ignite = startGrid(1);
-
-        client = false;
+        Ignite ignite = startClientGrid(1);
 
         startGrid(2);
 
-        client = true;
-
-        startGrid(3);
-
-        client = false;
+        startClientGrid(3);
 
         startGrid(4);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceDeploymentExceptionPropagationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceDeploymentExceptionPropagationTest.java
index 0d98cca..c5484ea 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceDeploymentExceptionPropagationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceDeploymentExceptionPropagationTest.java
@@ -39,7 +39,7 @@
     @Test
     public void testExceptionPropagation() throws Exception {
         try (IgniteEx srv = startGrid("server")) {
-            try (Ignite client = startGrid("client", getConfiguration("client").setClientMode(true))) {
+            try (Ignite client = startClientGrid("client", getConfiguration("client"))) {
                 final String srvcName = "my-service";
 
                 try {
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServicePackagePrivateSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServicePackagePrivateSelfTest.java
index d134a75..8309e79 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServicePackagePrivateSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServicePackagePrivateSelfTest.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal.processors.service;
 
 import org.apache.ignite.Ignite;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.internal.processors.service.inner.MyService;
 import org.apache.ignite.internal.processors.service.inner.MyServiceFactory;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -38,9 +37,7 @@
 
             server.services().deployClusterSingleton("my-service", MyServiceFactory.create());
 
-            Ignition.setClientMode(true);
-
-            Ignite client = startGrid("client");
+            Ignite client = startClientGrid("client");
 
             MyService svc = client.services().serviceProxy("my-service", MyService.class, true);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorAbstractSelfTest.java
index f67414c..d3d12f7 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorAbstractSelfTest.java
@@ -123,7 +123,7 @@
         for (int i = 0; i < clients; i++) {
             final String nodeName = getTestIgniteInstanceName(nodeCount() + servers + i);
 
-            startGrid(nodeName, getConfiguration(nodeName).setClientMode(true));
+            startClientGrid(nodeName, getConfiguration(nodeName));
         }
     }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorBatchDeploySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorBatchDeploySelfTest.java
index 9fec0e0..d821b8f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorBatchDeploySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorBatchDeploySelfTest.java
@@ -61,7 +61,7 @@
         for (int i = 0; i < NUM_NODES; i++)
             startGrid(i);
 
-        startGrid(CLIENT_NODE_NAME, getConfiguration(CLIENT_NODE_NAME).setClientMode(true));
+        startClientGrid(CLIENT_NODE_NAME, getConfiguration(CLIENT_NODE_NAME));
 
         DummyService.reset();
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorMultiNodeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorMultiNodeSelfTest.java
index c31eb1a..573c2f7 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorMultiNodeSelfTest.java
@@ -127,7 +127,7 @@
     @Test
     public void testDeployOnEachNodeButClientUpdateTopology() throws Exception {
         // Prestart client node.
-        Ignite client = startGrid("client", getConfiguration("client").setClientMode(true));
+        Ignite client = startClientGrid("client", getConfiguration("client"));
 
         try {
             final String name = "serviceOnEachNodeButClientUpdateTopology";
@@ -193,7 +193,7 @@
     @Test
     public void testDeployOnEachProjectionNodeUpdateTopology() throws Exception {
         // Prestart client node.
-        Ignite client = startGrid("client", getConfiguration("client").setClientMode(true));
+        Ignite client = startClientGrid("client", getConfiguration("client"));
 
         try {
             final String name = "serviceOnEachProjectionNodeUpdateTopology";
@@ -261,7 +261,7 @@
     @Test
     public void testDeployOnEachNodeUpdateTopology() throws Exception {
         // Prestart client node.
-        Ignite client = startGrid("client", getConfiguration("client").setClientMode(true));
+        Ignite client = startClientGrid("client", getConfiguration("client"));
 
         try {
             final String name = "serviceOnEachNodeUpdateTopology";
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProxyClientReconnectSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProxyClientReconnectSelfTest.java
index 1d88acd..be24ed3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProxyClientReconnectSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProxyClientReconnectSelfTest.java
@@ -20,7 +20,6 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import org.apache.ignite.Ignite;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.events.Event;
 import org.apache.ignite.events.EventType;
 import org.apache.ignite.lang.IgnitePredicate;
@@ -34,15 +33,6 @@
  */
 public class GridServiceProxyClientReconnectSelfTest extends GridCommonAbstractTest {
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(igniteInstanceName.contains("client"));
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
     }
@@ -54,7 +44,7 @@
     public void testClientReconnect() throws Exception {
         startGrid("server");
 
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         client.services().deployClusterSingleton("my-service", new MyServiceImpl());
 
@@ -91,7 +81,7 @@
     public void testClientReconnectLongServiceInit() throws Exception {
         startGrid("server");
 
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         client.services().deployClusterSingleton("my-service", new MyLongInitServiceImpl());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProxyNodeStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProxyNodeStopSelfTest.java
index c14c32a..617f645 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProxyNodeStopSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProxyNodeStopSelfTest.java
@@ -19,7 +19,6 @@
 
 import java.util.concurrent.Callable;
 import org.apache.ignite.Ignite;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.internal.processors.service.inner.MyService;
 import org.apache.ignite.internal.processors.service.inner.MyServiceFactory;
 import org.apache.ignite.testframework.GridTestUtils;
@@ -44,9 +43,7 @@
 
         server.services().deployClusterSingleton("my-service", MyServiceFactory.create());
 
-        Ignition.setClientMode(true);
-
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         final MyService proxy = client.services().serviceProxy("my-service", MyService.class, false);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceSerializationSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceSerializationSelfTest.java
index 8537abc..d7aeef0 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceSerializationSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceSerializationSelfTest.java
@@ -25,7 +25,6 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.ignite.Ignite;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.services.Service;
 import org.apache.ignite.services.ServiceContext;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -44,9 +43,7 @@
         try {
             Ignite server = startGridsMultiThreaded(3);
 
-            Ignition.setClientMode(true);
-
-            Ignite client = startGrid("client");
+            Ignite client = startClientGrid("client");
 
             server.services(server.cluster().forServers())
                 .deployClusterSingleton("my-service", new MyServiceImpl());
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/IgniteServiceDeployment2ClassLoadersDefaultMarshallerTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/IgniteServiceDeployment2ClassLoadersDefaultMarshallerTest.java
index 6d63e45..a966b56 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/IgniteServiceDeployment2ClassLoadersDefaultMarshallerTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/IgniteServiceDeployment2ClassLoadersDefaultMarshallerTest.java
@@ -63,9 +63,6 @@
     /** */
     private Set<String> grp2 = new HashSet<>();
 
-    /** */
-    private boolean client;
-
     /**
      * Initialize URLs.
      */
@@ -95,8 +92,6 @@
         if (grp2.contains(igniteInstanceName))
             cfg.setClassLoader(extClsLdr2);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -146,11 +141,9 @@
 
         startGrid(1).services().deploy(serviceConfig(false));
 
-        client = true;
+        startClientGrid(2).services().deploy(serviceConfig(true));
 
-        startGrid(2).services().deploy(serviceConfig(true));
-
-        startGrid(3).services().deploy(serviceConfig(false));
+        startClientGrid(3).services().deploy(serviceConfig(false));
 
         for (int i = 0; i < 4; i++)
             ignite(i).services().serviceDescriptors();
@@ -168,10 +161,8 @@
         for (int i = 0 ; i < 4; i++)
             startGrid(i);
 
-        client = true;
-
         for (int i = 4 ; i < 6; i++)
-            startGrid(i);
+            startClientGrid(i);
 
         ignite(4).services().deploy(serviceConfig(true));
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/IgniteServiceDeploymentClassLoadingDefaultMarshallerTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/IgniteServiceDeploymentClassLoadingDefaultMarshallerTest.java
index 710e5bc..5ea781a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/IgniteServiceDeploymentClassLoadingDefaultMarshallerTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/IgniteServiceDeploymentClassLoadingDefaultMarshallerTest.java
@@ -66,10 +66,6 @@
 
         cfg.setUserAttributes(Collections.singletonMap(NODE_NAME_ATTR, igniteInstanceName));
 
-        if (getTestIgniteInstanceName(CLIENT_NODE_WITH_EXT_CLASS_LOADER).equals(igniteInstanceName)
-            || getTestIgniteInstanceName(CLIENT_NODE).equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         if (extClsLdrGrids.contains(igniteInstanceName))
             cfg.setClassLoader(extClsLdr);
 
@@ -119,9 +115,9 @@
 
         startGrid(SERVER_NODE_WITH_EXT_CLASS_LOADER).services().deploy(serviceConfig());
 
-        startGrid(CLIENT_NODE);
+        startClientGrid(CLIENT_NODE);
 
-        startGrid(CLIENT_NODE_WITH_EXT_CLASS_LOADER).services().deploy(serviceConfig());
+        startClientGrid(CLIENT_NODE_WITH_EXT_CLASS_LOADER).services().deploy(serviceConfig());
 
         ignite(SERVER_NODE).services().serviceDescriptors();
 
@@ -135,9 +131,9 @@
     public void testServiceDeployment2() throws Exception {
         startGrid(SERVER_NODE);
 
-        startGrid(CLIENT_NODE_WITH_EXT_CLASS_LOADER).services().deploy(serviceConfig());
+        startClientGrid(CLIENT_NODE_WITH_EXT_CLASS_LOADER).services().deploy(serviceConfig());
 
-        startGrid(CLIENT_NODE);
+        startClientGrid(CLIENT_NODE);
 
         startGrid(SERVER_NODE_WITH_EXT_CLASS_LOADER).services().deploy(serviceConfig());
     }
@@ -151,9 +147,9 @@
 
         startGrid(SERVER_NODE);
 
-        startGrid(CLIENT_NODE);
+        startClientGrid(CLIENT_NODE);
 
-        startGrid(CLIENT_NODE_WITH_EXT_CLASS_LOADER).services().deploy(serviceConfig());
+        startClientGrid(CLIENT_NODE_WITH_EXT_CLASS_LOADER).services().deploy(serviceConfig());
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentOnActivationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentOnActivationTest.java
index 1591686..0bb3804 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentOnActivationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentOnActivationTest.java
@@ -45,17 +45,12 @@
     private static final IgnitePredicate<ClusterNode> CLIENT_FILTER = (IgnitePredicate<ClusterNode>)ClusterNode::isClient;
 
     /** */
-    private static boolean client;
-
-    /** */
     private static ServiceConfiguration srvcCfg;
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(client);
-
         if (srvcCfg != null)
             cfg.setServiceConfiguration(srvcCfg);
 
@@ -70,7 +65,6 @@
 
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
-        client = false;
         srvcCfg = null;
 
         cleanPersistenceDir();
@@ -152,10 +146,8 @@
         for (int i = 0; i < srvsNum; i++)
             startGrid(i);
 
-        client = true;
-
         for (int i = 0; i < clientsNum; i++)
-            startGrid(srvsNum + i);
+            startClientGrid(srvsNum + i);
 
         Ignite ignite = grid(0);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentOnClientDisconnectTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentOnClientDisconnectTest.java
index ba61cd1..f4c147c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentOnClientDisconnectTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentOnClientDisconnectTest.java
@@ -75,7 +75,7 @@
 
         startGrid(0);
 
-        startGrid(getConfiguration("client").setClientMode(true));
+        startClientGrid(getConfiguration("client"));
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentProcessingOnNodesLeftTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentProcessingOnNodesLeftTest.java
index 18fe0ab..2582c54 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentProcessingOnNodesLeftTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceDeploymentProcessingOnNodesLeftTest.java
@@ -40,7 +40,7 @@
         try {
             startGrids(4);
 
-            IgniteEx client = startGrid(getConfiguration("client").setClientMode(true));
+            IgniteEx client = startClientGrid(getConfiguration("client"));
 
             IgniteEx ignite1 = grid(1);
             IgniteEx ignite2 = grid(2);
@@ -77,8 +77,8 @@
         try {
             Ignite ignite0 = startGrids(4);
 
-            IgniteEx client1 = startGrid(getConfiguration("client1").setClientMode(true));
-            IgniteEx client2 = startGrid(getConfiguration("client2").setClientMode(true));
+            IgniteEx client1 = startClientGrid(getConfiguration("client1"));
+            IgniteEx client2 = startClientGrid(getConfiguration("client2"));
 
             IgniteEx ignite1 = grid(1);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/SystemCacheNotConfiguredTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/SystemCacheNotConfiguredTest.java
index 36337f8..1720f8a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/SystemCacheNotConfiguredTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/SystemCacheNotConfiguredTest.java
@@ -62,7 +62,7 @@
 
         new Thread(this::startServer).start();
 
-        Ignite client = startGrid(getConfiguration("client").setClientMode(true));
+        Ignite client = startClientGrid(getConfiguration("client"));
 
         IgniteServices services = client.services();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/tostring/TransactionSensitiveDataTest.java b/modules/core/src/test/java/org/apache/ignite/internal/util/tostring/TransactionSensitiveDataTest.java
index 993821b..e76ec9b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/util/tostring/TransactionSensitiveDataTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/util/tostring/TransactionSensitiveDataTest.java
@@ -59,9 +59,6 @@
     /** Node count. */
     private static final int NODE_COUNT = 2;
 
-    /** Create a client node. */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
@@ -90,7 +87,6 @@
         return super.getConfiguration(igniteInstanceName)
             .setConsistentId(igniteInstanceName)
             .setGridLogger(testLog)
-            .setClientMode(client)
             .setCommunicationSpi(new TestRecordingCommunicationSpi())
             .setCacheConfiguration(
                 new CacheConfiguration<>(DEFAULT_CACHE_NAME)
@@ -215,13 +211,9 @@
     private void checkSensitiveDataDuringNodeLeft(BiConsumer<String, String> check) throws Exception {
         assert nonNull(check);
 
-        client = false;
-
         startGrids(NODE_COUNT);
 
-        client = true;
-
-        IgniteEx clientNode = startGrid(NODE_COUNT);
+        IgniteEx clientNode = startClientGrid(NODE_COUNT);
 
         awaitPartitionMapExchange();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingWithClientTest.java b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingWithClientTest.java
index d86d2b0..83dd482 100644
--- a/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingWithClientTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/messaging/IgniteMessagingWithClientTest.java
@@ -52,11 +52,8 @@
 
         cfg.setMarshaller(new BinaryMarshaller());
 
-        if (igniteInstanceName.equals(getTestIgniteInstanceName(2))) {
-            cfg.setClientMode(true);
-
+        if (igniteInstanceName.equals(getTestIgniteInstanceName(2)))
             ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
-        }
 
         return cfg;
     }
@@ -97,7 +94,7 @@
 
                     iter++;
 
-                    try (Ignite ignite = startGrid(2)) {
+                    try (Ignite ignite = startClientGrid(2)) {
                         assertTrue(ignite.configuration().isClientMode());
                     }
                 }
diff --git a/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PComputeWithNestedEntryProcessorTest.java b/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PComputeWithNestedEntryProcessorTest.java
index 382328b..f3b1731 100644
--- a/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PComputeWithNestedEntryProcessorTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PComputeWithNestedEntryProcessorTest.java
@@ -87,9 +87,6 @@
             .setCacheConfiguration(new CacheConfiguration(DEFAULT_CACHE_NAME))
             .setDeploymentMode(depMode);
 
-        if (igniteInstanceName.startsWith("client"))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -129,7 +126,7 @@
             awaitPartitionMapExchange();
 
             for (int i = 0; i < 10; i++) {
-                try (Ignite client = startGrid("client")) {
+                try (Ignite client = startClientGrid("client")) {
 
                     IgniteCache cache = client.cache(DEFAULT_CACHE_NAME).withKeepBinary();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PContinuousDeploymentSelfTest.java b/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PContinuousDeploymentSelfTest.java
index a0c218c..79fd6c8 100644
--- a/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PContinuousDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/p2p/GridP2PContinuousDeploymentSelfTest.java
@@ -52,9 +52,6 @@
     /** Test predicate. */
     private static final String TEST_PREDICATE = "org.apache.ignite.tests.p2p.GridEventConsumeFilter";
 
-    /** Client mode. */
-    private boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -68,9 +65,6 @@
 
         cfg.setPeerClassLoadingEnabled(true);
 
-        if (clientMode)
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -135,9 +129,7 @@
 
         ClassLoader extLdr = getExternalClassLoader();
 
-        clientMode = true;
-
-        Ignite client = startGrid(2);
+        Ignite client = startClientGrid(2);
 
         Class<?> cls = extLdr.loadClass(TEST_PREDICATE);
 
@@ -151,8 +143,6 @@
             EventType.EVT_CACHE_OBJECT_PUT
         );
 
-        clientMode = false;
-
         Ignite srv = startGrid(3);
 
         srv.events().remoteListen(
diff --git a/modules/core/src/test/java/org/apache/ignite/p2p/P2PScanQueryUndeployTest.java b/modules/core/src/test/java/org/apache/ignite/p2p/P2PScanQueryUndeployTest.java
index 2cea7d1..e954e47 100644
--- a/modules/core/src/test/java/org/apache/ignite/p2p/P2PScanQueryUndeployTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/p2p/P2PScanQueryUndeployTest.java
@@ -82,9 +82,6 @@
 
         cfg.setCommunicationSpi(new MessageCountingCommunicationSpi());
 
-        if (igniteInstanceName.equals(CLIENT_INSTANCE_NAME))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -119,7 +116,7 @@
 
         startGrid(0);
 
-        Ignite client = startGrid(CLIENT_INSTANCE_NAME);
+        Ignite client = startClientGrid(CLIENT_INSTANCE_NAME);
 
         client.cluster().active(true);
 
@@ -133,7 +130,7 @@
 
         MessageCountingCommunicationSpi.resetDeploymentRequestCounter();
 
-        client = startGrid(CLIENT_INSTANCE_NAME);
+        client = startClientGrid(CLIENT_INSTANCE_NAME);
 
         invokeScanQueryAndStopClient(client, predCls);
     }
diff --git a/modules/core/src/test/java/org/apache/ignite/p2p/P2PStreamingClassLoaderTest.java b/modules/core/src/test/java/org/apache/ignite/p2p/P2PStreamingClassLoaderTest.java
index f9ae7a2..f02b3fa 100644
--- a/modules/core/src/test/java/org/apache/ignite/p2p/P2PStreamingClassLoaderTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/p2p/P2PStreamingClassLoaderTest.java
@@ -47,9 +47,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (igniteInstanceName.startsWith("client"))
-            cfg.setClientMode(true);
-
         cfg.setDeploymentMode(depMode);
 
         return cfg;
@@ -62,7 +59,7 @@
     private void processTest() throws Exception {
         try {
             startGrid("server");
-            Ignite client = startGrid("client");
+            Ignite client = startClientGrid("client");
 
             ClassLoader ldr = getExternalClassLoader();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/services/ServiceThreadPoolSelfTest.java b/modules/core/src/test/java/org/apache/ignite/services/ServiceThreadPoolSelfTest.java
index 961e799..d80137d 100644
--- a/modules/core/src/test/java/org/apache/ignite/services/ServiceThreadPoolSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/services/ServiceThreadPoolSelfTest.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.services;
 
 import org.apache.ignite.Ignite;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -78,9 +77,7 @@
     public void testExecution() throws Exception {
         startGrid(0); // Server.
 
-        Ignition.setClientMode(true);
-
-        Ignite ignite = startGrid(); // Client.
+        Ignite ignite = startClientGrid(); // Client.
 
         ignite.services().deployClusterSingleton("my-service", new MyServiceImpl());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiSkipWaitHandshakeOnClientTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiSkipWaitHandshakeOnClientTest.java
index 93ce801..f1d5dd2 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiSkipWaitHandshakeOnClientTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiSkipWaitHandshakeOnClientTest.java
@@ -56,17 +56,12 @@
     /** Fetched tcp port. */
     private volatile int fetchedTcpPort = -1;
 
-    /** Client. */
-    private boolean client = true;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
         cfg.setGridLogger(log);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -94,8 +89,6 @@
             }
         }
 
-        client = false;
-
         startGrid(1); //This is hack because, stopAllGrids can't interrupt the client node:(
     }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiFaultyClientTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiFaultyClientTest.java
index cdbe038..07e03df 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiFaultyClientTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiFaultyClientTest.java
@@ -64,9 +64,6 @@
     /** Server port for {@link FakeServer}. */
     private static int serverPort = 47200;
 
-    /** Client mode. */
-    private static boolean clientMode;
-
     /** Block. */
     private static volatile boolean block;
 
@@ -87,7 +84,6 @@
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
         cfg.setFailureDetectionTimeout(failureDetectionTimeout);
-        cfg.setClientMode(clientMode);
 
         TestCommunicationSpi spi = new TestCommunicationSpi();
 
@@ -220,14 +216,10 @@
             if (srv != null)
                 fut = GridTestUtils.runMultiThreadedAsync(srv, 1, "fake-server");
 
-            clientMode = false;
-
             startGrids(2);
 
-            clientMode = true;
-
-            startGrid(2);
-            startGrid(3);
+            startClientGrid(2);
+            startClientGrid(3);
 
             // Need to wait for PME to avoid opening new connections during closing idle connections.
             awaitPartitionMapExchange();
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiFreezingClientTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiFreezingClientTest.java
index 2fef5b7..a98127e 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiFreezingClientTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiFreezingClientTest.java
@@ -55,7 +55,6 @@
 
         cfg.setFailureDetectionTimeout(120000);
         cfg.setClientFailureDetectionTimeout(120000);
-        cfg.setClientMode("client".equals(gridName));
 
         TcpCommunicationSpi spi = new TcpCommunicationSpi();
 
@@ -105,7 +104,7 @@
         try {
             final IgniteEx srv = startGrids(2);
 
-            final IgniteEx client = startGrid("client");
+            final IgniteEx client = startClientGrid("client");
 
             final int keysCnt = 100_000;
 
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiHalfOpenedConnectionTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiHalfOpenedConnectionTest.java
index 3b40c89..d547fbd 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiHalfOpenedConnectionTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiHalfOpenedConnectionTest.java
@@ -48,11 +48,8 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (igniteInstanceName.contains("client")) {
-            cfg.setClientMode(true);
-
+        if (igniteInstanceName.contains("client"))
             clientSpi = (TcpCommunicationSpi)cfg.getCommunicationSpi();
-        }
 
         ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setUsePairedConnections(pairedConnections);
 
@@ -89,7 +86,7 @@
      */
     private void checkReconnect() throws Exception {
         Ignite srv = startGrid("server");
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         UUID nodeId = srv.cluster().localNode().id();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiSkipMessageSendTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiSkipMessageSendTest.java
index 0d4e685..2ac5abf 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiSkipMessageSendTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpiSkipMessageSendTest.java
@@ -75,9 +75,7 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (igniteInstanceName.contains("client"))
-            cfg.setClientMode(true);
-        else {
+        if (!igniteInstanceName.contains("client")) {
             FifoQueueCollisionSpi collisionSpi = new FifoQueueCollisionSpi();
 
             collisionSpi.setParallelJobsNumber(1);
@@ -110,7 +108,7 @@
     public void testClientSegmented() throws Exception {
         startGrid("server");
 
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         CountDownLatch clientDisconnected = new CountDownLatch(1);
         CountDownLatch clientSegmented = new CountDownLatch(1);
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AuthenticationRestartTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AuthenticationRestartTest.java
index f1c3684..71b5424 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AuthenticationRestartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AuthenticationRestartTest.java
@@ -36,8 +36,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(igniteInstanceName.contains("client"));
-
         ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setJoinTimeout(1120_000);
 
         cfg.setPluginProviders(new TestReconnectSecurityPluginProvider());
@@ -48,7 +46,7 @@
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         startGrid("server");
-        startGrid("client");
+        startClientGrid("client");
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/ClusterMetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/ClusterMetricsSelfTest.java
index ea11dac..7b5f3a3 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/ClusterMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/ClusterMetricsSelfTest.java
@@ -50,8 +50,6 @@
 
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
 
-        cfg.setClientMode(igniteInstanceName.startsWith("client"));
-
         return cfg;
     }
 
@@ -112,7 +110,7 @@
 
         spi.blockMessages((node, message) -> message instanceof GridDhtPartitionsFullMessage);
 
-        GridTestUtils.runAsync(() -> client ? startGrid("client") : startGrid(1));
+        GridTestUtils.runAsync(() -> client ? startClientGrid("client") : startGrid(1));
 
         assertTrue(waitForCondition(() ->
             ignite.context().cache().context().exchange().lastTopologyFuture().initialVersion().topologyVersion() == 2,
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/FilterDataForClientNodeDiscoveryTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/FilterDataForClientNodeDiscoveryTest.java
index 023a711..f559134 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/FilterDataForClientNodeDiscoveryTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/FilterDataForClientNodeDiscoveryTest.java
@@ -54,14 +54,14 @@
      */
     @Test
     public void testDataBag() throws Exception {
-        startGrid(configuration(0, false));
-        startGrid(configuration(1, false));
+        startGrid(configuration(0));
+        startGrid(configuration(1));
 
         assertEquals(3, joinSrvCnt);
         assertEquals(0, joinCliCnt);
 
-        startGrid(configuration(2, true));
-        startGrid(configuration(3, true));
+        startClientGrid(configuration(2));
+        startClientGrid(configuration(3));
 
         assertEquals(5, joinSrvCnt);
         assertEquals(4, joinCliCnt);
@@ -72,10 +72,10 @@
      */
     @Test
     public void testDiscoveryServerOnlyCustomMessage() throws Exception {
-        startGrid(configuration(0, false));
-        startGrid(configuration(1, false));
-        startGrid(configuration(2, true));
-        startGrid(configuration(3, true));
+        startGrid(configuration(0));
+        startGrid(configuration(1));
+        startClientGrid(configuration(2));
+        startClientGrid(configuration(3));
 
         final boolean [] recvMsg = new boolean[4];
 
@@ -108,11 +108,10 @@
 
     /**
      * @param nodeIdx Node index.
-     * @param client Client flag.
      * @return Ignite configuration.
      * @throws Exception On error.
      */
-    private IgniteConfiguration configuration(int nodeIdx, boolean client) throws Exception {
+    private IgniteConfiguration configuration(int nodeIdx) throws Exception {
         IgniteConfiguration cfg = getConfiguration(getTestIgniteInstanceName(nodeIdx));
 
         TcpDiscoverySpi testSpi = new TestDiscoverySpi();
@@ -121,8 +120,6 @@
 
         cfg.setDiscoverySpi(testSpi);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/IgniteClientReconnectEventHandlingTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/IgniteClientReconnectEventHandlingTest.java
index 705de58..ab0a54b 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/IgniteClientReconnectEventHandlingTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/IgniteClientReconnectEventHandlingTest.java
@@ -65,8 +65,6 @@
             ((TcpDiscoverySpi)discoSpi).setReconnectDelay(RECONNECT_DELAY);
 
         if (igniteInstanceName.contains("client")) {
-            cfg.setClientMode(true);
-
             Map<IgnitePredicate<? extends Event>, int[]> lsnrs = new HashMap<>();
 
             lsnrs.put(new IgnitePredicate<Event>() {
@@ -112,7 +110,7 @@
     public void testClientReconnect() throws Exception {
         startGrid(0);
 
-        IgniteEx client = startGrid("client");
+        IgniteEx client = startClientGrid("client");
 
         // Creates the join event and hold up it on the client.
         startGrid(1);
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/LongClientConnectToClusterTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/LongClientConnectToClusterTest.java
index 319bcad..ca4a894 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/LongClientConnectToClusterTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/LongClientConnectToClusterTest.java
@@ -58,7 +58,6 @@
             : new TcpDiscoverySpi();
 
         return super.getConfiguration(igniteInstanceName)
-            .setClientMode(igniteInstanceName.startsWith(CLIENT_INSTANCE_NAME))
             .setClientFailureDetectionTimeout(1_000)
             .setMetricsUpdateFrequency(500)
             .setDiscoverySpi(discoSpi
@@ -89,7 +88,7 @@
     public void testClientConnectToCluster() throws Exception {
         clientMetricsUpdateCnt = 0;
 
-        IgniteEx client = startGrid(CLIENT_INSTANCE_NAME);
+        IgniteEx client = startClientGrid(CLIENT_INSTANCE_NAME);
 
         assertTrue(clientMetricsUpdateCnt > 0);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/IgniteClientConnectTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/IgniteClientConnectTest.java
index 2576a9a..2e0cab2 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/IgniteClientConnectTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/IgniteClientConnectTest.java
@@ -191,11 +191,9 @@
 
         IgniteConfiguration clientCfg = getConfiguration("client");
 
-        clientCfg.setClientMode(true);
-
         clientJustStarted.set(true);
 
-        IgniteEx client = startGrid(clientCfg);
+        IgniteEx client = startClientGrid(clientCfg);
 
         latch.countDown();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/IgniteClientReconnectMassiveShutdownTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/IgniteClientReconnectMassiveShutdownTest.java
index 5fbc30f..22f681d 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/IgniteClientReconnectMassiveShutdownTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/IgniteClientReconnectMassiveShutdownTest.java
@@ -64,14 +64,10 @@
     /** */
     private static final int CLIENT_GRID_CNT = 14;
 
-    /** */
-    private static volatile boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(clientMode);
         cfg.setFailureDetectionTimeout(5_000);
 
         return cfg;
@@ -111,13 +107,9 @@
      * @throws Exception If any error occurs.
      */
     private void massiveServersShutdown(final StopType stopType) throws Exception {
-        clientMode = false;
-
         startGridsMultiThreaded(GRID_CNT);
 
-        clientMode = true;
-
-        startGridsMultiThreaded(GRID_CNT, CLIENT_GRID_CNT);
+        startClientGridsMultiThreaded(GRID_CNT, CLIENT_GRID_CNT);
 
         final AtomicBoolean done = new AtomicBoolean();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java
index 39dc7f1..c46f22b 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java
@@ -178,8 +178,6 @@
         if (igniteInstanceName.startsWith("server"))
             disco.setIpFinder(IP_FINDER);
         else if (igniteInstanceName.startsWith("client")) {
-            cfg.setClientMode(true);
-
             TcpDiscoveryVmIpFinder ipFinder;
 
             if (clientIpFinder != null)
@@ -335,10 +333,10 @@
     @Test
     public void testClientToClientPing() throws Exception {
         startGrid("server-p1");
-        Ignite c1 = startGrid("client-p1");
+        Ignite c1 = startClientGrid("client-p1");
 
         startGrid("server-p2");
-        Ignite c2 = startGrid("client-p2");
+        Ignite c2 = startClientGrid("client-p2");
 
         boolean res = ((IgniteEx)c1).context().discovery().pingNode(c2.cluster().localNode().id());
 
@@ -1304,7 +1302,7 @@
         nodeId = G.ignite("server-1").cluster().localNode().id();
 
         try {
-            startGrid("client-0");
+            startClientGrid("client-0");
 
             assert false;
         }
@@ -1346,7 +1344,7 @@
         try {
             netTimeout = 500;
 
-            startGrid("client-0");
+            startClientGrid("client-0");
 
             assert false;
         }
@@ -1555,7 +1553,7 @@
 
                 clientIpFinder.setAddresses(Collections.singleton("localhost:" + srvNode.discoveryPort()));
 
-                Ignite client = startGrid(client0);
+                Ignite client = startClientGrid(client0);
 
                 clientIpFinder = null;
 
@@ -1576,7 +1574,7 @@
         final String client1 = "client-" + clientIdx.getAndIncrement();
 
         while (!fut.isDone()) {
-            startGrid(client1);
+            startClientGrid(client1);
 
             stopGrid(client1);
         }
@@ -1599,7 +1597,7 @@
 
         GridTestUtils.runMultiThreaded(new Callable<Void>() {
             @Override public Void call() throws Exception {
-                Ignite g = startGrid("client-" + clientIdx.getAndIncrement());
+                Ignite g = startClientGrid("client-" + clientIdx.getAndIncrement());
 
                 clientNodeIds.add(g.cluster().localNode().id());
 
@@ -1791,7 +1789,7 @@
             @Override public Void call() throws Exception {
                 latch.await();
 
-                Ignite g = startGrid("client-" + clientIdx.getAndIncrement());
+                Ignite g = startClientGrid("client-" + clientIdx.getAndIncrement());
 
                 clientNodeIds.add(g.cluster().localNode().id());
 
@@ -2218,7 +2216,7 @@
      */
     protected void startClientNodes(int cnt) throws Exception {
         for (int i = 0; i < cnt; i++) {
-            Ignite g = startGrid("client-" + clientIdx.getAndIncrement());
+            Ignite g = startClientGrid("client-" + clientIdx.getAndIncrement());
 
             clientNodeIds.add(g.cluster().localNode().id());
         }
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoveryUnresolvedHostTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoveryUnresolvedHostTest.java
index 90db9e3..1e24d5b 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoveryUnresolvedHostTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoveryUnresolvedHostTest.java
@@ -49,8 +49,6 @@
 
         cfg.setCacheConfiguration();
 
-        cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -62,7 +60,7 @@
     @Test
     public void test() throws Exception {
         try {
-            startGrid(0);
+            startClientGrid(0);
         } catch (IgniteCheckedException e) {
             //Ignore.
         }
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryClientSuspensionSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryClientSuspensionSelfTest.java
index 2cefd12..0ec7f4f 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryClientSuspensionSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryClientSuspensionSelfTest.java
@@ -20,7 +20,6 @@
 import java.util.Timer;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteSystemProperties;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -91,9 +90,7 @@
     private void doTestClientSuspension(int serverCnt) throws Exception {
         startGrids(serverCnt);
 
-        Ignition.setClientMode(true);
-
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         for (int i = 0; i < serverCnt; i++)
             assertEquals(1, grid(i).cluster().forClients().nodes().size());
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryConcurrentStartTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryConcurrentStartTest.java
index a3a11f2..27a8730 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryConcurrentStartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryConcurrentStartTest.java
@@ -32,17 +32,12 @@
     /** */
     private static final int TOP_SIZE = 3;
 
-    /** */
-    private static volatile boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg =  super.getConfiguration(igniteInstanceName);
 
         cfg.setCacheConfiguration();
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -51,11 +46,6 @@
         return Long.MAX_VALUE;
     }
 
-    /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        client = false;
-    }
-
     /**
      * @throws Exception If failed.
      */
@@ -78,17 +68,13 @@
     public void testConcurrentStartClients() throws Exception {
         for (int i = 0; i < 20; i++) {
             try {
-                client = false;
-
                 startGrid(0);
 
-                client = true;
-
                 final AtomicInteger gridIdx = new AtomicInteger(1);
 
                 GridTestUtils.runMultiThreaded(new Callable<Object>() {
                         @Nullable @Override public Object call() throws Exception {
-                            startGrid(gridIdx.getAndIncrement());
+                            startClientGrid(gridIdx.getAndIncrement());
 
                             return null;
                         }
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryFailedJoinTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryFailedJoinTest.java
index 1c59b51..87bf368 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryFailedJoinTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryFailedJoinTest.java
@@ -72,15 +72,10 @@
 
         discoSpi.setIpFinder(finder);
         discoSpi.setNetworkTimeout(2_000);
+        discoSpi.setForceServerMode(gridName.contains("client") && gridName.contains("server"));
 
         cfg.setDiscoverySpi(discoSpi);
 
-        if (gridName.contains("client")) {
-            cfg.setClientMode(true);
-
-            discoSpi.setForceServerMode(gridName.contains("server"));
-        }
-
         if (gridName.contains("failingNode")) {
             GridQueryProcessor.idxCls = FailingIndexing.class;
 
@@ -139,7 +134,7 @@
         assertStartFailed("client_server-47503");
 
         // Regular client starts normally.
-        startGrid("client-47503");
+        startClientGrid("client-47503");
     }
 
     /**
@@ -159,7 +154,7 @@
         assertStartFailed("client_server-47503");
 
         // Regular client starts normally.
-        startGrid("client-47503");
+        startClientGrid("client-47503");
     }
 
     /**
@@ -168,7 +163,10 @@
     private void assertStartFailed(final String name) {
         //noinspection ThrowableNotThrown
         GridTestUtils.assertThrows(log, () -> {
-            startGrid(name);
+            if (name.contains("client"))
+                startClientGrid(name);
+            else
+                startGrid(name);
 
             return null;
         }, IgniteCheckedException.class, null);
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryNodeAttributesUpdateOnReconnectTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryNodeAttributesUpdateOnReconnectTest.java
index 6db7ff7..55319b9 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryNodeAttributesUpdateOnReconnectTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryNodeAttributesUpdateOnReconnectTest.java
@@ -58,7 +58,6 @@
             attrs.put("test", "1");
 
             cfg.setUserAttributes(attrs);
-            cfg.setClientMode(true);
         }
 
         IgniteClientReconnectAbstractTest.TestTcpDiscoverySpi spi = new IgniteClientReconnectAbstractTest.TestTcpDiscoverySpi();
@@ -99,7 +98,7 @@
             }
         }, EventType.EVT_NODE_JOINED);
 
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         reconnectClientNode(log, client, srv, null);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryReconnectUnstableTopologyTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryReconnectUnstableTopologyTest.java
index 8428f41..474ef6c 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryReconnectUnstableTopologyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryReconnectUnstableTopologyTest.java
@@ -62,9 +62,6 @@
         rndAddrsField.set(spi, true);
 
         cfg.setDiscoverySpi(spi.setIpFinder(ipFinder));
-
-        cfg.setClientMode(igniteInstanceName.startsWith("client"));
-
         cfg.setCacheConfiguration(new CacheConfiguration(DEFAULT_CACHE_NAME));
 
         return cfg;
@@ -82,7 +79,7 @@
 
             nodes.add(startGrid(1));
 
-            nodes.add(startGrid("client"));
+            nodes.add(startClientGrid("client"));
 
             nodes.add(startGrid(2));
 
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java
index 03fcdc1..25e2700 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java
@@ -132,9 +132,6 @@
     private CacheConfiguration[] ccfgs;
 
     /** */
-    private boolean client;
-
-    /** */
     private SegmentationPolicy segPlc;
 
     /**
@@ -240,8 +237,6 @@
             strLog.logLength(300_000);
         }
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -2177,9 +2172,7 @@
                 startGrid(i + 1);
             }
 
-            client = true;
-
-            Ignite clientNode = startGrid(6);
+            Ignite clientNode = startClientGrid(6);
 
             assertTrue(clientNode.configuration().isClientMode());
 
@@ -2188,8 +2181,6 @@
 
             clientNode.createCache(ccfg);
 
-            client = false;
-
             nodeSpi.set(new TestDiscoveryDataDuplicateSpi());
 
             startGrid(7);
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiMBeanTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiMBeanTest.java
index 8b8d8de..a163e48 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiMBeanTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiMBeanTest.java
@@ -58,9 +58,6 @@
         tcpSpi.setIpFinder(IP_FINDER);
         cfg.setDiscoverySpi(tcpSpi);
 
-        if ("client".equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         cfg.setGridLogger(strLog);
 
         return cfg;
@@ -112,7 +109,7 @@
 
             IgniteEx client;
 
-            client = startGrid("client");
+            client = startClientGrid("client");
 
             MBeanServer srv = ManagementFactory.getPlatformMBeanServer();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryWithWrongServerTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryWithWrongServerTest.java
index cd9de5a..d07ca47 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryWithWrongServerTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryWithWrongServerTest.java
@@ -65,9 +65,6 @@
 
         cfg.setDiscoverySpi(new TcpDiscoverySpiWithOrderedIps().setIpFinder(ipFinder));
 
-        if (igniteInstanceName.startsWith("client"))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -179,7 +176,7 @@
     private void simpleTest() {
         try {
             Ignite srv = startGrid("server");
-            Ignite client = startGrid("client");
+            Ignite client = startClientGrid("client");
 
             awaitPartitionMapExchange();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
index 8023cec..ed542f4 100755
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
@@ -43,6 +43,7 @@
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Consumer;
 import javax.cache.configuration.Factory;
 import javax.cache.configuration.FactoryBuilder;
 import javax.management.DynamicMBean;
@@ -824,7 +825,36 @@
      * @return First started grid.
      * @throws Exception If failed.
      */
+    protected final Ignite startClientGridsMultiThreaded(int init, int cnt) throws Exception {
+        return startMultiThreaded(init, cnt, idx -> {
+            try {
+                startClientGrid(idx);
+            }
+            catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        });
+    }
+
+    /**
+     * @param init Start grid index.
+     * @param cnt Grid count.
+     * @return First started grid.
+     * @throws Exception If failed.
+     */
     protected final Ignite startGridsMultiThreaded(int init, int cnt) throws Exception {
+        return startMultiThreaded(init, cnt, idx -> {
+            try {
+                startGrid(idx);
+            }
+            catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        });
+    }
+
+    /** */
+    private final Ignite startMultiThreaded(int init, int cnt, Consumer<Integer> starter) throws Exception {
         assert init >= 0;
         assert cnt > 0;
 
@@ -835,7 +865,7 @@
         GridTestUtils.runMultiThreaded(
             new Callable<Object>() {
                 @Nullable @Override public Object call() throws Exception {
-                    startGrid(gridIdx.getAndIncrement());
+                    starter.accept(gridIdx.getAndIncrement());
 
                     return null;
                 }
@@ -892,7 +922,44 @@
      * @throws Exception If anything failed.
      */
     protected IgniteEx startGrid(int idx) throws Exception {
-        return (IgniteEx)startGrid(getTestIgniteInstanceName(idx));
+        return startGrid(getTestIgniteInstanceName(idx));
+    }
+
+    /**
+     * Starts new client grid.
+     *
+     * @return Started grid.
+     * @throws Exception If anything failed.
+     */
+    protected IgniteEx startClientGrid() throws Exception {
+        return startClientGrid(getTestIgniteInstanceName());
+    }
+
+    /**
+     * Starts new client grid with given configuration.
+     *
+     * @param cfg Ignite configuration.
+     * @return Started grid.
+     * @throws Exception If anything failed.
+     */
+    protected IgniteEx startClientGrid(IgniteConfiguration cfg) throws Exception {
+        cfg.setClientMode(true);
+
+        return (IgniteEx)startGrid(cfg.getIgniteInstanceName(), cfg, null);
+    }
+
+    /**
+     * Starts new client grid with given name and configuration.
+     *
+     * @param name Instance name.
+     * @param cfg Ignite configuration.
+     * @return Started grid.
+     * @throws Exception If anything failed.
+     */
+    protected IgniteEx startClientGrid(String name, IgniteConfiguration cfg) throws Exception {
+        cfg.setIgniteInstanceName(name);
+
+        return startClientGrid(cfg);
     }
 
     /**
@@ -903,13 +970,25 @@
      * @throws Exception If anything failed.
      */
     protected IgniteEx startClientGrid(int idx) throws Exception {
-        String igniteInstanceName = getTestIgniteInstanceName(idx);
+        return startClientGrid(getTestIgniteInstanceName(idx));
+    }
 
-        IgniteConfiguration cfg = optimize(getConfiguration(igniteInstanceName));
+    /**
+     * Starts new client grid with given name.
+     *
+     * @param igniteInstanceName Ignite instance name.
+     * @return Started grid.
+     * @throws Exception If anything failed.
+     */
+    protected IgniteEx startClientGrid(String igniteInstanceName) throws Exception {
+        IgnitionEx.setClientMode(true);
 
-        cfg.setClientMode(true);
-
-        return (IgniteEx)startGrid(igniteInstanceName, cfg, null);
+        try {
+            return (IgniteEx)startGrid(igniteInstanceName, (GridSpringResourceContext)null);
+        }
+        finally {
+            IgnitionEx.setClientMode(false);
+        }
     }
 
     /**
@@ -1743,6 +1822,7 @@
         cfg.setMBeanServer(rsrcs.getMBeanServer());
         cfg.setPeerClassLoadingEnabled(true);
         cfg.setMetricsLogFrequency(0);
+        cfg.setClientMode(IgnitionEx.isClientMode());
 
         cfg.setConnectorConfiguration(null);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/util/mbeans/GridMBeanBaselineTest.java b/modules/core/src/test/java/org/apache/ignite/util/mbeans/GridMBeanBaselineTest.java
index df76385..d4a47a5 100644
--- a/modules/core/src/test/java/org/apache/ignite/util/mbeans/GridMBeanBaselineTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/util/mbeans/GridMBeanBaselineTest.java
@@ -43,7 +43,6 @@
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         return super.getConfiguration(igniteInstanceName)
-            .setClientMode(igniteInstanceName.equals(getTestIgniteInstanceName(CLIENT_IDX)))
             .setDataStorageConfiguration(new DataStorageConfiguration()
                 .setCheckpointFrequency(2_000)
                 .setDefaultDataRegionConfiguration(
@@ -75,9 +74,9 @@
     @Test
     public void testIgniteKernalNodeInBaselineTest() throws Exception {
         try {
-            IgniteEx ignite0 = (IgniteEx)startGrids(NODES);
+            IgniteEx ignite0 = startGrids(NODES);
 
-            startGrid(CLIENT_IDX);
+            startClientGrid(CLIENT_IDX);
 
             ignite0.cluster().active(true);
 
diff --git a/modules/geospatial/src/test/java/org/apache/ignite/internal/processors/query/h2/H2IndexesSystemViewTest.java b/modules/geospatial/src/test/java/org/apache/ignite/internal/processors/query/h2/H2IndexesSystemViewTest.java
index 05d3fb7..b1dab6e 100644
--- a/modules/geospatial/src/test/java/org/apache/ignite/internal/processors/query/h2/H2IndexesSystemViewTest.java
+++ b/modules/geospatial/src/test/java/org/apache/ignite/internal/processors/query/h2/H2IndexesSystemViewTest.java
@@ -46,7 +46,7 @@
     public void testIndexesView() throws Exception {
         IgniteEx srv = startGrid(getConfiguration());
 
-        IgniteEx client = startGrid(getConfiguration().setClientMode(true).setIgniteInstanceName("CLIENT"));
+        IgniteEx client = startClientGrid(getConfiguration().setIgniteInstanceName("CLIENT"));
 
         execSql("CREATE TABLE PUBLIC.AFF_CACHE (ID1 INT, ID2 INT, GEOM GEOMETRY, PRIMARY KEY (ID1))");
 
diff --git a/modules/hibernate-4.2/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java b/modules/hibernate-4.2/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
index 146c93e..6128477 100644
--- a/modules/hibernate-4.2/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
+++ b/modules/hibernate-4.2/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
@@ -56,9 +56,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (!getTestIgniteInstanceName(0).equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         cfg.setCacheConfiguration(
             cacheConfiguration(TIMESTAMP_CACHE),
             cacheConfiguration(Entity1.class.getName()),
@@ -93,8 +90,8 @@
 
         startGrid(0);
 
-        startGrid(1);
-        startGrid(2);
+        startClientGrid(1);
+        startClientGrid(2);
     }
 
     /**
diff --git a/modules/hibernate-5.1/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java b/modules/hibernate-5.1/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
index 0e08793..7c944f1 100644
--- a/modules/hibernate-5.1/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
+++ b/modules/hibernate-5.1/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
@@ -56,9 +56,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (!getTestIgniteInstanceName(0).equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         cfg.setCacheConfiguration(
             cacheConfiguration(TIMESTAMP_CACHE),
             cacheConfiguration(Entity1.class.getName()),
@@ -93,8 +90,8 @@
 
         startGrid(0);
 
-        startGrid(1);
-        startGrid(2);
+        startClientGrid(1);
+        startClientGrid(2);
     }
 
     /**
diff --git a/modules/hibernate-5.3/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java b/modules/hibernate-5.3/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
index b2e98b4..e7b0c56 100644
--- a/modules/hibernate-5.3/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
+++ b/modules/hibernate-5.3/src/test/java/org/apache/ignite/cache/hibernate/HibernateL2CacheMultiJvmTest.java
@@ -54,9 +54,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (!getTestIgniteInstanceName(0).equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         cfg.setCacheConfiguration(
             cacheConfiguration(DEFAULT_UPDATE_TIMESTAMPS_REGION_UNQUALIFIED_NAME),
             cacheConfiguration(Entity1.class.getName()),
@@ -91,8 +88,8 @@
 
         startGrid(0);
 
-        startGrid(1);
-        startGrid(2);
+        startClientGrid(1);
+        startClientGrid(2);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BigEntryQueryTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BigEntryQueryTest.java
index d72ac48..7cf42b4 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BigEntryQueryTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BigEntryQueryTest.java
@@ -29,7 +29,6 @@
 import java.util.stream.LongStream;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.CacheWriteSynchronizationMode;
 import org.apache.ignite.cache.query.FieldsQueryCursor;
@@ -63,9 +62,7 @@
 
         Random random = new Random(1);
 
-        Ignition.setClientMode(true);
-
-        Ignite client = startGrid(2);
+        Ignite client = startClientGrid(2);
 
         int ctr = 0;
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataConcurrentUpdateWithIndexesTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataConcurrentUpdateWithIndexesTest.java
index dc74fe5..1bcb1bd 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataConcurrentUpdateWithIndexesTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataConcurrentUpdateWithIndexesTest.java
@@ -92,8 +92,6 @@
 
         cfg.setDiscoverySpi(spi.setIpFinder(sharedStaticIpFinder));
 
-        cfg.setClientMode(igniteInstanceName.startsWith("client"));
-
         QueryEntity qryEntity = new QueryEntity("java.lang.Integer", "Value");
 
         LinkedHashMap<String, String> fields = new LinkedHashMap<>();
@@ -145,7 +143,7 @@
 
         Ignite node1 = startGrid("node1");
 
-        IgniteEx client0 = startGrid("client0");
+        IgniteEx client0 = startClientGrid("client0");
 
         CacheObjectBinaryProcessorImpl.TestBinaryContext clientCtx =
             (CacheObjectBinaryProcessorImpl.TestBinaryContext)((CacheObjectBinaryProcessorImpl)client0.context().
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheIteratorScanQueryTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheIteratorScanQueryTest.java
index 8b8cab8..da13dbf 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheIteratorScanQueryTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheIteratorScanQueryTest.java
@@ -39,9 +39,6 @@
  * Node filter test.
  */
 public class CacheIteratorScanQueryTest extends GridCommonAbstractTest {
-    /** Client mode. */
-    private boolean client = false;
-
     /** Cache configurations. */
     private CacheConfiguration[] ccfgs = null;
 
@@ -56,17 +53,9 @@
     }
 
     /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        super.beforeTest();
-
-        client = false;
-    }
-
-    /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String name) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(name);
 
-        cfg.setClientMode(client);
         cfg.setCacheConfiguration(ccfgs);
 
         return cfg;
@@ -79,7 +68,6 @@
     public void testScanQuery() throws Exception {
         Ignite server = startGrid(0);
 
-        client = true;
         ccfgs = new CacheConfiguration[] {
             new CacheConfiguration("test-cache-replicated").setCacheMode(REPLICATED)
                 .setNodeFilter(new AlwaysFalseCacheFilter()),
@@ -87,7 +75,7 @@
                 .setNodeFilter(new AlwaysFalseCacheFilter())
         };
 
-        Ignite client = startGrid(1);
+        Ignite client = startClientGrid(1);
 
         assertEquals(2, server.cluster().nodes().size());
         assertEquals(1, server.cluster().forServers().nodes().size());
@@ -115,9 +103,7 @@
 
         IgniteCache<Integer, Integer> cache = server.getOrCreateCache(DEFAULT_CACHE_NAME);
 
-        client = true;
-
-        Ignite client = startGrid(1);
+        Ignite client = startClientGrid(1);
 
         IgniteCache<Integer, Integer> cliCache = client.cache(DEFAULT_CACHE_NAME);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheQueryAfterDynamicCacheStartFailureTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheQueryAfterDynamicCacheStartFailureTest.java
index 4201154..65c62c5 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheQueryAfterDynamicCacheStartFailureTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheQueryAfterDynamicCacheStartFailureTest.java
@@ -22,17 +22,9 @@
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.cache.query.SqlQuery;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 
 public class CacheQueryAfterDynamicCacheStartFailureTest extends IgniteAbstractDynamicCacheStartFailTest {
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         startGrids(gridCount());
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheQueryNewClientSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheQueryNewClientSelfTest.java
index fa2ea8e..1b9a293 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheQueryNewClientSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheQueryNewClientSelfTest.java
@@ -20,7 +20,6 @@
 import java.util.List;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -55,9 +54,7 @@
                 cache2.put(i, i);
             }
 
-            Ignition.setClientMode(true);
-
-            Ignite client = (iter == 0) ? startGrid("client") : grid("client");
+            Ignite client = (iter == 0) ? startClientGrid("client") : grid("client");
 
             IgniteCache<Integer, Integer> cache = client.cache("cache1");
 
@@ -88,9 +85,7 @@
             cache2.put(i, i);
         }
 
-        Ignition.setClientMode(true);
-
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         IgniteCache<Integer, Integer> cache = client.cache("cache1");
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheRandomOperationsMultithreadedTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheRandomOperationsMultithreadedTest.java
index 901d804..9ce74d6 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheRandomOperationsMultithreadedTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheRandomOperationsMultithreadedTest.java
@@ -35,7 +35,6 @@
 import org.apache.ignite.cache.query.SqlQuery;
 import org.apache.ignite.cache.query.annotations.QuerySqlField;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteBiPredicate;
@@ -60,25 +59,11 @@
     /** */
     private static final int NODES = 4;
 
-    /** */
-    private boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         startGridsMultiThreaded(NODES - 1);
 
-        client = true;
-
-        startGrid(NODES - 1);
+        startClientGrid(NODES - 1);
 
         super.beforeTestsStarted();
     }
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheRegisterMetadataLocallyTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheRegisterMetadataLocallyTest.java
index baa5e71..f254497 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheRegisterMetadataLocallyTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheRegisterMetadataLocallyTest.java
@@ -101,9 +101,6 @@
 
         ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
 
-        if (igniteInstanceName.equals("client"))
-            cfg.setClientMode(true);
-
         cfg.setCacheConfiguration(cacheConfiguration(STATIC_CACHE_NAME, StaticKey.class, StaticValue.class));
 
         return cfg;
@@ -195,7 +192,7 @@
 
         assertTrue(cache.containsKey(key));
 
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         IgniteCache<K, V> clientCache = client.cache(cache.getName());
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheScanPartitionQueryFallbackSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheScanPartitionQueryFallbackSelfTest.java
index 220639d..c18cf08 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheScanPartitionQueryFallbackSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheScanPartitionQueryFallbackSelfTest.java
@@ -77,9 +77,6 @@
     /** Cache mode. */
     private CacheMode cacheMode;
 
-    /** Client mode. */
-    private volatile boolean clientMode;
-
     /** Expected first node ID. */
     private static UUID expNodeId;
 
@@ -96,8 +93,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(clientMode);
-
         ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true);
 
         cfg.setCommunicationSpi(commSpiFactory.create());
@@ -253,7 +248,6 @@
      */
     private void scanFallbackOnRebalancing(final boolean cur) throws Exception {
         cacheMode = CacheMode.PARTITIONED;
-        clientMode = false;
         backups = 2;
         commSpiFactory = new TestFallbackOnRebalancingCommunicationSpiFactory();
         syncRebalance = true;
@@ -343,7 +337,6 @@
     @Test
     public void testScanFallbackOnRebalancingCursor1() throws Exception {
         cacheMode = CacheMode.PARTITIONED;
-        clientMode = false;
         backups = 1;
         commSpiFactory = new TestFallbackOnRebalancingCommunicationSpiFactory();
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheSqlQueryValueCopySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheSqlQueryValueCopySelfTest.java
index c87306b..e74ccd4 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheSqlQueryValueCopySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheSqlQueryValueCopySelfTest.java
@@ -48,9 +48,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if ("client".equals(cfg.getIgniteInstanceName()))
-            cfg.setClientMode(true);
-
         CacheConfiguration<Integer, Value> cc = new CacheConfiguration<>(DEFAULT_CACHE_NAME);
 
         cc.setCopyOnRead(true);
@@ -93,7 +90,7 @@
      */
     @Test
     public void testTwoStepSqlClientQuery() throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Integer, Value> cache = client.cache(DEFAULT_CACHE_NAME);
 
             List<Cache.Entry<Integer, Value>> all = cache.query(
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java
index 50d1170..22cf1c7 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java
@@ -65,8 +65,6 @@
         cfg.setIncludeEventTypes(EventType.EVTS_CACHE);
 
         if (getTestIgniteInstanceName(CLIENT_ID).equals(igniteInstanceName)) {
-            cfg.setClientMode(true);
-
             CacheConfiguration ccfg = getCacheConfiguration();
 
             cfg.setCacheConfiguration(ccfg);
@@ -153,7 +151,7 @@
         try {
             startGrid(SERVER_ID);
 
-            Ignite client = startGrid(CLIENT_ID);
+            Ignite client = startClientGrid(CLIENT_ID);
 
             checkTopology(2);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/DdlTransactionSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/DdlTransactionSelfTest.java
index 07cec1e..50c650b 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/DdlTransactionSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/DdlTransactionSelfTest.java
@@ -37,9 +37,6 @@
  *
  */
 public class DdlTransactionSelfTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
@@ -55,7 +52,6 @@
             .setDefaultTxTimeout(5000));
 
         cfg.setCacheConfiguration(getCacheConfiguration());
-        cfg.setClientMode(client);
 
         return cfg;
     }
@@ -78,9 +74,7 @@
     public void testTxIsCommittedOnDdlRequestMultinodeClient() throws Exception {
         startGridsMultiThreaded(4, false);
 
-        client = true;
-
-        Ignite node = startGrid(4);
+        Ignite node = startClientGrid(4);
 
         awaitPartitionMapExchange();
 
@@ -213,9 +207,7 @@
     public void testDdlRequestWithoutTxMultinodeClient() throws Exception {
         startGridsMultiThreaded(4, false);
 
-        client = true;
-
-        Ignite node = startGrid(4);
+        Ignite node = startClientGrid(4);
 
         awaitPartitionMapExchange();
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDynamicLoadOnClientTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDynamicLoadOnClientTest.java
index d43149c..8ff986d 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDynamicLoadOnClientTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDynamicLoadOnClientTest.java
@@ -32,7 +32,6 @@
 import org.apache.ignite.cache.query.SqlQuery;
 import org.apache.ignite.cache.query.annotations.QuerySqlField;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.processors.odbc.ClientListenerProcessor;
 import org.apache.ignite.internal.processors.port.GridPortRecord;
@@ -57,9 +56,6 @@
     /** Full table name. */
     private static final String FULL_TABLE_NAME = PERSON_SCHEMA + "." + PERSON_CACHE;
 
-    /** Client or server mode for configuration. */
-    protected boolean client;
-
     /** Instance of client node. */
     private static IgniteEx clientNode;
 
@@ -67,21 +63,12 @@
     private static IgniteEx srvNode;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        return super.getConfiguration(igniteInstanceName).setClientMode(client);
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        client = false;
-
         srvNode = (IgniteEx)startGridsMultiThreaded(1);
 
-        client = true;
-
-        clientNode = startGrid(1);
+        clientNode = startClientGrid(1);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteBinaryObjectFieldsQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteBinaryObjectFieldsQuerySelfTest.java
index 9c695fa..370e6e6 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteBinaryObjectFieldsQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteBinaryObjectFieldsQuerySelfTest.java
@@ -65,10 +65,8 @@
 
         cfg.setMarshaller(null);
 
-        if (getTestIgniteInstanceName(3).equals(igniteInstanceName)) {
-            cfg.setClientMode(true);
+        if (getTestIgniteInstanceName(3).equals(igniteInstanceName))
             cfg.setClassLoader(extClassLoader);
-        }
 
         return cfg;
     }
@@ -94,7 +92,8 @@
     @Override protected void beforeTestsStarted() throws Exception {
         initExtClassLoader();
 
-        startGrids(GRID_CNT);
+        startGrids(GRID_CNT - 1);
+        startClientGrid(GRID_CNT - 1);
     }
 
     /** */
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java
index 522b6ae..0f28f25 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java
@@ -141,11 +141,8 @@
 
         ((TcpDiscoverySpi)c.getDiscoverySpi()).setForceServerMode(true);
 
-        if (igniteInstanceName.startsWith("client")) {
-            c.setClientMode(true);
-
+        if (igniteInstanceName.startsWith("client"))
             c.setDataStorageConfiguration(new DataStorageConfiguration());
-        }
 
         c.setIncludeEventTypes(EventType.EVTS_ALL);
 
@@ -1817,9 +1814,7 @@
      */
     @Test
     public void testLocalSqlQueryFromClient() throws Exception {
-        try {
-            Ignite g = startGrid("client");
-
+        try (Ignite g = startClientGrid("client")) {
             IgniteCache<Integer, Integer> c = jcache(g, Integer.class, Integer.class);
 
             for (int i = 0; i < 10; i++)
@@ -1831,9 +1826,6 @@
 
             assertThrowsWithCause(() -> c.query(qry), CacheException.class);
         }
-        finally {
-            stopGrid("client");
-        }
     }
 
     /**
@@ -1841,9 +1833,7 @@
      */
     @Test
     public void testLocalSqlFieldsQueryFromClient() throws Exception {
-        try {
-            Ignite g = startGrid("client");
-
+        try(Ignite g = startClientGrid("client")) {
             IgniteCache<UUID, Person> c = jcache(g, UUID.class, Person.class);
 
             Person p = new Person("Jon", 1500);
@@ -1856,9 +1846,6 @@
 
             assertThrowsWithCause(() -> c.query(qry), CacheException.class);
         }
-        finally {
-            stopGrid("client");
-        }
     }
 
     /**
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheCrossCacheJoinRandomTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheCrossCacheJoinRandomTest.java
index 312c233..9cd355f 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheCrossCacheJoinRandomTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheCrossCacheJoinRandomTest.java
@@ -33,7 +33,6 @@
 import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cache.QueryIndex;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.processors.query.h2.sql.AbstractH2CompareQueryTest;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.T2;
@@ -51,9 +50,6 @@
  */
 public class IgniteCacheCrossCacheJoinRandomTest extends AbstractH2CompareQueryTest {
     /** */
-    private boolean client;
-
-    /** */
     private static final int OBJECTS = 200;
 
     /** */
@@ -99,21 +95,10 @@
     }
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        client = true;
-
-        startGrid(SRVS);
+        startClientGrid(SRVS);
 
         long seed = System.currentTimeMillis();
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinCollocatedAndNotTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinCollocatedAndNotTest.java
index 59b9ab4..403643f 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinCollocatedAndNotTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinCollocatedAndNotTest.java
@@ -56,9 +56,6 @@
     /** */
     private static final String ACCOUNT_CACHE = "acc";
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -117,8 +114,6 @@
 
         cfg.setCacheConfiguration(ccfgs.toArray(new CacheConfiguration[ccfgs.size()]));
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -128,9 +123,7 @@
 
         startGridsMultiThreaded(2);
 
-        client = true;
-
-        startGrid(2);
+        startClientGrid(2);
     }
 
     /**
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinNoIndexTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinNoIndexTest.java
index 760ea33..0feccdbc 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinNoIndexTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinNoIndexTest.java
@@ -51,9 +51,6 @@
     /** */
     private static final String ORG_CACHE = "org";
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -89,8 +86,6 @@
 
         cfg.setCacheConfiguration(ccfgs.toArray(new CacheConfiguration[ccfgs.size()]));
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -115,9 +110,7 @@
 
         startGridsMultiThreaded(2);
 
-        client = true;
-
-        startGrid(2);
+        startClientGrid(2);
     }
 
     /**
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinPartitionedAndReplicatedTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinPartitionedAndReplicatedTest.java
index c9b91cd..438a35c 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinPartitionedAndReplicatedTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinPartitionedAndReplicatedTest.java
@@ -31,7 +31,6 @@
 import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -56,18 +55,6 @@
     /** */
     private static final String ACCOUNT_CACHE = "acc";
 
-    /** */
-    private boolean client;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /**
      * @param name Cache name.
      * @param cacheMode Cache mode.
@@ -163,9 +150,7 @@
 
         startGridsMultiThreaded(2);
 
-        client = true;
-
-        startGrid(2);
+        startClientGrid(2);
     }
 
     /**
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinQueryConditionsTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinQueryConditionsTest.java
index 5a4aa05..0fb2c15 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinQueryConditionsTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheDistributedJoinQueryConditionsTest.java
@@ -30,7 +30,6 @@
 import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
@@ -49,29 +48,15 @@
     private static final String ORG_CACHE = "org";
 
     /** */
-    private boolean client;
-
-    /** */
     private int total;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
         startGridsMultiThreaded(2);
 
-        client = true;
-
-        startGrid(2);
+        startClientGrid(2);
     }
 
     /**
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheJoinPartitionedAndReplicatedCollocationTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheJoinPartitionedAndReplicatedCollocationTest.java
index 8202a57..409baf5 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheJoinPartitionedAndReplicatedCollocationTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheJoinPartitionedAndReplicatedCollocationTest.java
@@ -30,7 +30,6 @@
 import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.processors.query.h2.sql.AbstractH2CompareQueryTest;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.S;
@@ -51,9 +50,6 @@
     private static final String ACCOUNT_CACHE = "acc";
 
     /** */
-    private boolean client;
-
-    /** */
     private boolean h2DataInserted;
 
     /** {@inheritDoc} */
@@ -71,15 +67,6 @@
         // No-op.
     }
 
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
     /**
      * @return Cache configuration.
      */
@@ -138,9 +125,7 @@
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        client = true;
-
-        startGrid(SRVS);
+        startClientGrid(SRVS);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheJoinPartitionedAndReplicatedTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheJoinPartitionedAndReplicatedTest.java
index 6446c5f..410969f 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheJoinPartitionedAndReplicatedTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheJoinPartitionedAndReplicatedTest.java
@@ -56,9 +56,6 @@
     /** */
     private static final String ORG_CACHE_REPLICATED = "orgRepl";
 
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -115,8 +112,6 @@
 
         cfg.setCacheConfiguration(ccfgs.toArray(new CacheConfiguration[ccfgs.size()]));
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -141,9 +136,7 @@
 
         startGridsMultiThreaded(2);
 
-        client = true;
-
-        startGrid(2);
+        startClientGrid(2);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheJoinQueryWithAffinityKeyTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheJoinQueryWithAffinityKeyTest.java
index 65ee707..2a0b640 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheJoinQueryWithAffinityKeyTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheJoinQueryWithAffinityKeyTest.java
@@ -54,9 +54,6 @@
     private static final int NODES = 5;
 
     /** */
-    private boolean client;
-
-    /** */
     private boolean escape;
 
     /** {@inheritDoc} */
@@ -70,8 +67,6 @@
 
         cfg.setCacheKeyConfiguration(keyCfg);
 
-        cfg.setClientMode(client);
-
         return cfg;
     }
 
@@ -81,9 +76,7 @@
 
         startGridsMultiThreaded(NODES - 1);
 
-        client = true;
-
-        startGrid(NODES - 1);
+        startClientGrid(NODES - 1);
     }
 
     /**
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCrossCachesJoinsQueryTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCrossCachesJoinsQueryTest.java
index 55c0d34..2d22edf 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCrossCachesJoinsQueryTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCrossCachesJoinsQueryTest.java
@@ -42,7 +42,6 @@
 import org.apache.ignite.cache.query.SqlQuery;
 import org.apache.ignite.cache.query.annotations.QuerySqlField;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.processors.query.h2.sql.AbstractH2CompareQueryTest;
 import org.apache.ignite.internal.util.tostring.GridToStringInclude;
 import org.apache.ignite.internal.util.typedef.F;
@@ -72,9 +71,6 @@
     private static final int NODES = 5;
 
     /** */
-    private boolean client;
-
-    /** */
     private Data data;
 
     /** Tested qry. */
@@ -90,15 +86,6 @@
     private static Random rnd;
 
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        cfg.setClientMode(client);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void createCaches() {
         // No-op.
     }
@@ -113,9 +100,7 @@
 
         startGridsMultiThreaded(NODES - 1);
 
-        client = true;
-
-        startGrid(NODES - 1);
+        startClientGrid(NODES - 1);
 
         awaitPartitionMapExchange();
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicSqlRestoreTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicSqlRestoreTest.java
index 6ee3e53..7f5667f 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicSqlRestoreTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicSqlRestoreTest.java
@@ -31,7 +31,6 @@
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteDataStreamer;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.binary.BinaryObject;
 import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cache.query.SqlFieldsQuery;
@@ -175,16 +174,7 @@
         // Start topology.
         startGrid(0);
         Ignite srv2 = startGrid(1);
-        Ignite cli;
-
-        Ignition.setClientMode(true);
-
-        try {
-            cli = startGrid(2);
-        }
-        finally {
-            Ignition.setClientMode(false);
-        }
+        Ignite cli = startClientGrid(2);
 
         cli.cluster().active(true);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/QueryJoinWithDifferentNodeFiltersTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/QueryJoinWithDifferentNodeFiltersTest.java
index 8a5ae79..2813342 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/QueryJoinWithDifferentNodeFiltersTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/QueryJoinWithDifferentNodeFiltersTest.java
@@ -69,9 +69,6 @@
         if (getTestIgniteInstanceName(0).equals(igniteInstanceName) || getTestIgniteInstanceName(1).equals(igniteInstanceName))
             cfg.setUserAttributes(F.asMap("DATA", "true"));
 
-        if ("client".equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -95,7 +92,7 @@
     public void testSize() throws Exception {
         startGrids(NODE_COUNT);
 
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         client.cluster().active(true);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/authentication/SqlUserCommandSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/authentication/SqlUserCommandSelfTest.java
index 761a20d..24bcb55 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/authentication/SqlUserCommandSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/authentication/SqlUserCommandSelfTest.java
@@ -39,9 +39,6 @@
     /** Nodes count. */
     private static final int NODES_COUNT = 3;
 
-    /** Client node. */
-    private static final int CLI_NODE = NODES_COUNT - 1;
-
     /** Authorization context for default user. */
     private AuthorizationContext actxDflt;
 
@@ -49,9 +46,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        if (getTestIgniteInstanceIndex(igniteInstanceName) == CLI_NODE)
-            cfg.setClientMode(true);
-
         cfg.setAuthenticationEnabled(true);
 
         cfg.setDataStorageConfiguration(new DataStorageConfiguration()
@@ -71,7 +65,9 @@
 
         U.resolveWorkDirectory(U.defaultWorkDirectory(), "db", true);
 
-        startGrids(NODES_COUNT);
+        startGrids(NODES_COUNT - 1);
+
+        startClientGrid(NODES_COUNT - 1);
 
         grid(0).cluster().active(true);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedPartitionQueryAbstractSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedPartitionQueryAbstractSelfTest.java
index fde405f..2fa1d33 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedPartitionQueryAbstractSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedPartitionQueryAbstractSelfTest.java
@@ -168,9 +168,7 @@
 
         cfg.setCacheConfiguration(clientCfg, depoCfg, regionCfg);
 
-        if ("client".equals(gridName))
-            cfg.setClientMode(true);
-        else {
+        if (!"client".equals(gridName)) {
             Integer reg = regionForGrid(gridName);
 
             cfg.setUserAttributes(F.asMap(REGION_ATTR_NAME, reg));
@@ -313,7 +311,7 @@
 
         startGridsMultiThreaded(GRIDS_COUNT);
 
-        startGrid("client");
+        startClientGrid("client");
 
         // Fill caches.
         int clientId = 1;
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedQueryCancelSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedQueryCancelSelfTest.java
index 9f4ee29..61840f0 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedQueryCancelSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedQueryCancelSelfTest.java
@@ -65,9 +65,6 @@
 
         cfg.setCacheConfiguration(ccfg);
 
-        if ("client".equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -81,7 +78,7 @@
     /** */
     @Test
     public void testQueryCancelsOnGridShutdown() throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
 
             IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
 
@@ -135,7 +132,7 @@
     /** */
     @Test
     public void testQueryResponseFailCode() throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
 
             CacheConfiguration<Integer, Integer> cfg = new CacheConfiguration<>(DEFAULT_CACHE_NAME);
             cfg.setSqlFunctionClasses(Functions.class);
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedQueryDefaultTimeoutSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedQueryDefaultTimeoutSelfTest.java
index 82b8885..aaecda3 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedQueryDefaultTimeoutSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedQueryDefaultTimeoutSelfTest.java
@@ -80,10 +80,6 @@
         ccfg.setIndexedTypes(Integer.class, String.class);
 
         cfg.setCacheConfiguration(ccfg);
-
-        if ("client".equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         cfg.setDefaultQueryTimeout(DEFAULT_QUERY_TIMEOUT);
 
         return cfg;
@@ -117,7 +113,7 @@
     /** */
     private void testQueryCancel(int keyCnt, int valSize, String sql, int timeoutUnits, TimeUnit timeUnit,
         boolean timeout, boolean checkCanceled) throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
 
             assertEquals(0, cache.localSize());
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedQueryStopOnCancelOrTimeoutSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedQueryStopOnCancelOrTimeoutSelfTest.java
index f762416..054646a 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedQueryStopOnCancelOrTimeoutSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheDistributedQueryStopOnCancelOrTimeoutSelfTest.java
@@ -79,9 +79,6 @@
 
         cfg.setCacheConfiguration(ccfg);
 
-        if ("client".equals(igniteInstanceName))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -186,7 +183,7 @@
     /** */
     private void testQueryCancel(int keyCnt, int valSize, String sql, int timeoutUnits, TimeUnit timeUnit,
                                  boolean timeout, boolean checkCanceled) throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
 
             assertEquals(0, cache.localSize());
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryAbstractDistributedJoinSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryAbstractDistributedJoinSelfTest.java
index a8be418..3271c15 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryAbstractDistributedJoinSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryAbstractDistributedJoinSelfTest.java
@@ -88,9 +88,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration c = super.getConfiguration(igniteInstanceName);
 
-        if ("client".equals(igniteInstanceName))
-            c.setClientMode(true);
-
         int i = 0;
 
         CacheConfiguration<?, ?>[] ccs = new CacheConfiguration[4];
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeFailTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeFailTest.java
index 513fd34..f71b911 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeFailTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeFailTest.java
@@ -35,15 +35,10 @@
  * Test added to check for https://issues.apache.org/jira/browse/IGNITE-2542.
  */
 public class IgniteCacheQueryNodeFailTest extends GridCommonAbstractTest {
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(client);
-
         CacheConfiguration<Object, Object> ccfg = new CacheConfiguration<>(DEFAULT_CACHE_NAME);
         ccfg.setBackups(0);
         ccfg.setIndexedTypes(Integer.class, Integer.class);
@@ -59,11 +54,7 @@
 
         startGrid(0);
 
-        client = true;
-
-        startGrid(1);
-
-        client = false;
+        startClientGrid(1);
     }
 
     /**
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedFieldsQueryJoinNoPrimaryPartitionsSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedFieldsQueryJoinNoPrimaryPartitionsSelfTest.java
index 3107bbd..43941c2 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedFieldsQueryJoinNoPrimaryPartitionsSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedFieldsQueryJoinNoPrimaryPartitionsSelfTest.java
@@ -24,7 +24,6 @@
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.processors.query.QueryUtils;
-import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
 
@@ -57,8 +56,6 @@
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
-        cfg.setClientMode(F.eq(NODE_CLI, igniteInstanceName));
-
         CacheConfiguration<Integer, PartValue> ccfg1 = new CacheConfiguration<>(CACHE_PARTITIONED);
 
         ccfg1.setCacheMode(PARTITIONED);
@@ -85,7 +82,7 @@
     @Override protected void beforeTest() throws Exception {
         startGridsMultiThreaded(3);
 
-        Ignite cli = startGrid(NODE_CLI);
+        Ignite cli = startClientGrid(NODE_CLI);
 
         for (int i = 0; i < REP_CNT; i++)
             cli.cache(CACHE_REPLICATED).put(i, new RepValue(i));
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java
index 4d0cdc2..6d44221 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java
@@ -132,9 +132,7 @@
      */
     @Test
     public void testClientOnlyNode() throws Exception {
-        try {
-            Ignite g = startGrid("client");
-
+        try (Ignite g = startClientGrid("client")) {
             IgniteCache<Integer, Integer> c = jcache(g, Integer.class, Integer.class);
 
             for (int i = 0; i < 10; i++)
@@ -157,9 +155,6 @@
                 i++;
             }
         }
-        finally {
-            stopGrid("client");
-        }
     }
 
     /**
@@ -356,9 +351,7 @@
      */
     @Test
     public void testNodeLeft() throws Exception {
-        Ignite client = startGrid("client");
-
-        try {
+        try (Ignite client = startClientGrid("client")) {
             assertTrue(client.configuration().isClientMode());
 
             IgniteCache<Integer, Integer> cache = jcache(client, Integer.class, Integer.class);
@@ -405,9 +398,6 @@
             assertEquals(0, mapNode2.size());
             assertEquals(0, mapNode3.size());
         }
-        finally {
-            stopGrid("client");
-        }
     }
 
     /**
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/BasicIndexTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/BasicIndexTest.java
index 46210db..24741b6 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/BasicIndexTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/BasicIndexTest.java
@@ -96,16 +96,10 @@
 
         igniteCfg.setConsistentId(igniteInstanceName);
 
-        if (igniteInstanceName.startsWith(CLIENT_NAME)) {
-            igniteCfg.setClientMode(true);
-
-            if (clientLog != null)
+        if (igniteInstanceName.startsWith(CLIENT_NAME) && clientLog != null)
                 igniteCfg.setGridLogger(clientLog);
-        }
-        else {
-            if (srvLog != null)
+        else if (srvLog != null)
                 igniteCfg.setGridLogger(srvLog);
-        }
 
         LinkedHashMap<String, String> fields = new LinkedHashMap<>();
         fields.put("keyStr", String.class.getName());
@@ -415,7 +409,7 @@
 
         srvLog.unregisterListener(lsnr);
 
-        IgniteEx client = startGrid(CLIENT_NAME);
+        IgniteEx client = startClientGrid(CLIENT_NAME);
 
         cache = client.cache(DEFAULT_CACHE_NAME);
 
@@ -636,7 +630,7 @@
 
         IgniteEx ig0 = startGrid(0);
 
-        IgniteEx client = startGrid(CLIENT_NAME);
+        IgniteEx client = startClientGrid(CLIENT_NAME);
 
         GridQueryProcessor qryProc = ig0.context().query();
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/H2ConnectionLeaksSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/H2ConnectionLeaksSelfTest.java
index f7c3171..19f4481 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/H2ConnectionLeaksSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/H2ConnectionLeaksSelfTest.java
@@ -64,9 +64,6 @@
 
         cfg.setCacheConfiguration(ccfg);
 
-        if (getTestIgniteInstanceIndex(igniteInstanceName) != 0)
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
@@ -211,7 +208,8 @@
      * @throws Exception On error.
      */
     private void startGridAndPopulateCache(int nodes) throws Exception {
-        startGrids(NODE_CNT);
+        startGrid(0);
+        startClientGridsMultiThreaded(1, NODE_CNT - 1);
 
         IgniteCache<Long, String> cache = grid(0).cache(CACHE_NAME);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/local/IgniteCacheLocalQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/local/IgniteCacheLocalQuerySelfTest.java
index 0ca7307..3d777a3 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/local/IgniteCacheLocalQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/local/IgniteCacheLocalQuerySelfTest.java
@@ -102,9 +102,7 @@
     /** {@inheritDoc} */
     @Test
     @Override public void testLocalSqlQueryFromClient() throws Exception {
-        try {
-            Ignite g = startGrid("client");
-
+        try (Ignite g = startClientGrid("client")) {
             IgniteCache<Integer, Integer> c = jcache(g, Integer.class, Integer.class);
 
             for (int i = 0; i < 10; i++)
@@ -124,17 +122,12 @@
                 assertEquals(5, res.size());
             }
         }
-        finally {
-            stopGrid("client");
-        }
     }
 
     /** {@inheritDoc} */
     @Test
     @Override public void testLocalSqlFieldsQueryFromClient() throws Exception {
-        try {
-            Ignite g = startGrid("client");
-
+        try (Ignite g = startClientGrid("client")) {
             IgniteCache<UUID, Person> c = jcache(g, UUID.class, Person.class);
 
             Person p = new Person("Jon", 1500);
@@ -155,8 +148,5 @@
                 assertEquals(1, res.size());
             }
         }
-        finally {
-            stopGrid("client");
-        }
     }
 }
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
index 3a6652d..2dfe0e1 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
@@ -107,7 +107,6 @@
             sqlSpi.setExportFilter(mgrp -> !mgrp.name().startsWith(FILTERED_PREFIX));
 
         cfg.setMetricExporterSpi(sqlSpi);
-        cfg.setClientMode(igniteInstanceName.startsWith("client"));
 
         return cfg;
     }
@@ -678,8 +677,8 @@
     /** */
     @Test
     public void testScanQuery() throws Exception {
-        try(IgniteEx client1 = startGrid("client-1");
-            IgniteEx client2 = startGrid("client-2")) {
+        try(IgniteEx client1 = startClientGrid("client-1");
+            IgniteEx client2 = startClientGrid("client-2")) {
 
             IgniteCache<Integer, Integer> cache1 = client1.createCache(
                 new CacheConfiguration<Integer, Integer>("cache1")
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccSqlTxQueriesAbstractTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccSqlTxQueriesAbstractTest.java
index 2047d1c..3c0a28b 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccSqlTxQueriesAbstractTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccSqlTxQueriesAbstractTest.java
@@ -1895,7 +1895,7 @@
 
         startGrid(getConfiguration("grid").setMvccVacuumFrequency(Integer.MAX_VALUE));
 
-        Ignite client = startGrid(getConfiguration("client").setClientMode(true));
+        Ignite client = startClientGrid(getConfiguration("client"));
 
         IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
 
@@ -1970,7 +1970,7 @@
 
         node.cluster().active(true);
 
-        Ignite client = startGrid(getConfiguration("client").setClientMode(true));
+        Ignite client = startClientGrid(getConfiguration("client"));
 
         IgniteCache<Object, Object> cache = client.cache(DEFAULT_CACHE_NAME);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/MvccDeadlockDetectionTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/MvccDeadlockDetectionTest.java
index ee9470d..cd7e652 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/MvccDeadlockDetectionTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/MvccDeadlockDetectionTest.java
@@ -37,7 +37,6 @@
 import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal;
 import org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl;
 import org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException;
-import org.apache.ignite.internal.util.typedef.G;
 import org.apache.ignite.internal.util.typedef.X;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.GridTestUtils.SF;
@@ -75,9 +74,7 @@
 
         ign.getOrCreateCache(ccfg);
 
-        G.setClientMode(true);
-
-        client = startGrid(n);
+        client = startClientGrid(n);
     }
 
     /**
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/client/IgniteDataStreamerTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/client/IgniteDataStreamerTest.java
index 2ad2938..211664f 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/client/IgniteDataStreamerTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/client/IgniteDataStreamerTest.java
@@ -23,7 +23,6 @@
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteDataStreamer;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl;
 import org.apache.ignite.lang.IgniteFuture;
 import org.apache.ignite.lang.IgniteUuid;
@@ -41,27 +40,12 @@
 
     public static final long WAIT_TIMEOUT = 30_000L;
 
-    private boolean client = false;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        if (client)
-            cfg.setClientMode(true);
-
-        return cfg;
-    }
-
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
         startGrids(2);
-
-        client = true;
-
-        startGrid("client");
+        startClientGrid("client");
     }
 
     @Override protected void afterTest() throws Exception {
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/IgniteTwoRegionsRebuildIndexTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/IgniteTwoRegionsRebuildIndexTest.java
index d7a1dbf..5971ec0 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/IgniteTwoRegionsRebuildIndexTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/IgniteTwoRegionsRebuildIndexTest.java
@@ -69,7 +69,6 @@
             ccfg2.setDataRegionName("nopersistence");
 
             cfg.setCacheConfiguration(ccfg1, ccfg2);
-            cfg.setClientMode(true);
         }
 
         return cfg;
@@ -97,7 +96,7 @@
     @Test
     public void testRebuildIndexes() throws Exception {
         startGrid("server");
-        Ignite client = startGrid("client");
+        Ignite client = startClientGrid("client");
 
         client.cluster().active(true);
 
@@ -108,7 +107,7 @@
         startGrid("server");
 
         stopGrid("client");
-        startGrid("client");
+        startClientGrid("client");
     }
 
     /**
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/AbstractQueryTableLockAndConnectionPoolSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/AbstractQueryTableLockAndConnectionPoolSelfTest.java
index 91dc04a..a64cb5c 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/AbstractQueryTableLockAndConnectionPoolSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/AbstractQueryTableLockAndConnectionPoolSelfTest.java
@@ -24,7 +24,6 @@
 import java.util.concurrent.atomic.AtomicBoolean;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
 import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.cache.query.QueryRetryException;
@@ -143,16 +142,7 @@
         Ignite srv1 = startGrid(1);
         startGrid(2);
 
-        Ignite cli;
-
-        try {
-            Ignition.setClientMode(true);
-
-            cli = startGrid(3);
-        }
-        finally {
-            Ignition.setClientMode(false);
-        }
+        Ignite cli = startClientGrid(3);
 
         populateBaseQueryData(srv0, 1);
 
@@ -177,16 +167,7 @@
         Ignite srv1 = startGrid(1);
         startGrid(2);
 
-        Ignite cli;
-
-        try {
-            Ignition.setClientMode(true);
-
-            cli = startGrid(3);
-        }
-        finally {
-            Ignition.setClientMode(false);
-        }
+        Ignite cli = startClientGrid(3);
 
         populateBaseQueryData(srv0, 4);
 
@@ -409,17 +390,7 @@
     public void checkMultipleNodes(int parallelism) throws Exception {
         Ignite srv1 = startGrid(1);
         Ignite srv2 = startGrid(2);
-
-        Ignite cli;
-
-        try {
-            Ignition.setClientMode(true);
-
-            cli = startGrid(3);
-        }
-        finally {
-            Ignition.setClientMode(false);
-        }
+        Ignite cli = startClientGrid(3);
 
         populateBaseQueryData(cli, parallelism);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteQueryDedicatedPoolTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteQueryDedicatedPoolTest.java
index 15945b4..cbfa048 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteQueryDedicatedPoolTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteQueryDedicatedPoolTest.java
@@ -94,10 +94,6 @@
         ccfg.setName(CACHE_NAME);
 
         cfg.setCacheConfiguration(ccfg);
-
-        if ("client".equals(gridName))
-            cfg.setClientMode(true);
-
         cfg.setIndexingSpi(new TestIndexingSpi());
 
         if (nonNull(qryPoolSize))
@@ -123,7 +119,7 @@
     public void testSqlQueryUsesDedicatedThreadPool() throws Exception {
         startGrid("server");
 
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Integer, Integer> cache = client.cache(CACHE_NAME);
 
             // We do this in order to have 1 row in results of select - function is called once per each row of result.
@@ -154,7 +150,7 @@
     public void testScanQueryUsesDedicatedThreadPool() throws Exception {
         startGrid("server");
 
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Integer, Integer> cache = client.cache(CACHE_NAME);
 
             cache.put(0, 0);
@@ -180,7 +176,7 @@
     public void testSpiQueryUsesDedicatedThreadPool() throws Exception {
         startGrid("server");
 
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Byte, Byte> cache = client.cache(CACHE_NAME);
 
             for (byte b = 0; b < Byte.MAX_VALUE; ++b)
@@ -243,7 +239,7 @@
 
         startGrid("server");
 
-        IgniteEx clientNode = startGrid("client");
+        IgniteEx clientNode = startClientGrid("client");
 
         IgniteCache<Integer, Integer> cache = clientNode.cache(CACHE_NAME);
         cache.put(0, 0);
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDefaultValueTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDefaultValueTest.java
index 65e9283..90ba9bc 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDefaultValueTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlDefaultValueTest.java
@@ -48,9 +48,6 @@
 
         ((TcpDiscoverySpi)c.getDiscoverySpi()).setForceServerMode(true);
 
-        if (gridName.equals(NODE_CLIENT))
-            c.setClientMode(true);
-
         return c;
     }
 
@@ -60,7 +57,7 @@
 
         startGrids(NODE_COUNT);
 
-        startGrid(NODE_CLIENT);
+        startClientGrid(NODE_CLIENT);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlGroupConcatCollocatedTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlGroupConcatCollocatedTest.java
index 5384779..70d6b95 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlGroupConcatCollocatedTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlGroupConcatCollocatedTest.java
@@ -21,7 +21,6 @@
 import java.util.HashMap;
 import java.util.List;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.CacheKeyConfiguration;
 import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cache.affinity.AffinityKeyMapped;
@@ -63,14 +62,7 @@
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         startGridsMultiThreaded(3, false);
-
-        Ignition.setClientMode(true);
-        try {
-            startGrid(CLIENT);
-        }
-        finally {
-            Ignition.setClientMode(false);
-        }
+        startClientGrid(CLIENT);
 
         IgniteCache c = grid(CLIENT).cache(CACHE_NAME);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlGroupConcatNotCollocatedTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlGroupConcatNotCollocatedTest.java
index 8d53874..7740342 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlGroupConcatNotCollocatedTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlGroupConcatNotCollocatedTest.java
@@ -21,7 +21,6 @@
 import java.util.List;
 import java.util.concurrent.Callable;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
 import org.apache.ignite.cache.query.SqlFieldsQuery;
@@ -58,14 +57,7 @@
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         startGridsMultiThreaded(3, false);
-
-        Ignition.setClientMode(true);
-        try {
-            startGrid(CLIENT);
-        }
-        finally {
-            Ignition.setClientMode(false);
-        }
+        startClientGrid(CLIENT);
 
         IgniteCache c = grid(CLIENT).cache(CACHE_NAME);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlKeyValueFieldsTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlKeyValueFieldsTest.java
index 869afc9..13d45e4 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlKeyValueFieldsTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlKeyValueFieldsTest.java
@@ -95,8 +95,6 @@
         ccfgs.add(buildCacheConfiguration(CACHE_SQL));
 
         c.setCacheConfiguration(ccfgs.toArray(new CacheConfiguration[ccfgs.size()]));
-        if (gridName.equals(NODE_CLIENT))
-            c.setClientMode(true);
 
         return c;
     }
@@ -111,7 +109,7 @@
         GridTestUtils.setFieldValue(UpdatePlanBuilder.class, "ALLOW_KEY_VAL_UPDATES", true);
 
         startGrid(0);
-        startGrid(NODE_CLIENT);
+        startClientGrid(NODE_CLIENT);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlNotNullConstraintTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlNotNullConstraintTest.java
index 7ab15c4..1284fe6 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlNotNullConstraintTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlNotNullConstraintTest.java
@@ -61,42 +61,42 @@
 /** */
 public class IgniteSqlNotNullConstraintTest extends AbstractIndexingCommonTest {
     /** Name of client node. */
-    private static String NODE_CLIENT = "client";
+    private static final String NODE_CLIENT = "client";
 
     /** Number of server nodes. */
-    private static int NODE_COUNT = 2;
+    private static final int NODE_COUNT = 2;
 
     /** Cache prefix. */
-    private static String CACHE_PREFIX = "person";
+    private static final String CACHE_PREFIX = "person";
 
     /** Transactional person cache. */
-    private static String CACHE_PERSON = "person-PARTITIONED-TRANSACTIONAL";
+    private static final String CACHE_PERSON = "person-PARTITIONED-TRANSACTIONAL";
 
     /** Name of SQL table. */
-    private static String TABLE_PERSON = "\"" + CACHE_PERSON + "\".\"PERSON\"";
+    private static final String TABLE_PERSON = "\"" + CACHE_PERSON + "\".\"PERSON\"";
 
     /** Template of cache with read-through setting. */
-    private static String CACHE_READ_THROUGH = "cacheReadThrough";
+    private static final String CACHE_READ_THROUGH = "cacheReadThrough";
 
     /** Template of cache with interceptor setting. */
-    private static String CACHE_INTERCEPTOR = "cacheInterceptor";
+    private static final String CACHE_INTERCEPTOR = "cacheInterceptor";
 
     /** Expected error message. */
-    private static String ERR_MSG = "Null value is not allowed for column 'NAME'";
+    private static final String ERR_MSG = "Null value is not allowed for column 'NAME'";
 
     /** Expected error message for read-through restriction. */
-    private static String READ_THROUGH_ERR_MSG = "NOT NULL constraint is not supported when " +
+    private static final String READ_THROUGH_ERR_MSG = "NOT NULL constraint is not supported when " +
         "CacheConfiguration.readThrough is enabled.";
 
     /** Expected error message for cache interceptor restriction. */
-    private static String INTERCEPTOR_ERR_MSG = "NOT NULL constraint is not supported when " +
+    private static final String INTERCEPTOR_ERR_MSG = "NOT NULL constraint is not supported when " +
         "CacheConfiguration.interceptor is set.";
 
     /** Name of the node which configuration includes restricted cache config. */
-    private static String READ_THROUGH_CFG_NODE_NAME = "nodeCacheReadThrough";
+    private static final String READ_THROUGH_CFG_NODE_NAME = "nodeCacheReadThrough";
 
     /** Name of the node which configuration includes restricted cache config. */
-    private static String INTERCEPTOR_CFG_NODE_NAME = "nodeCacheInterceptor";
+    private static final String INTERCEPTOR_CFG_NODE_NAME = "nodeCacheInterceptor";
 
     /** OK value. */
     private final Person okValue = new Person("Name", 18);
@@ -112,23 +112,15 @@
 
         ccfgs.addAll(cacheConfigurations());
 
-        if (gridName.equals(READ_THROUGH_CFG_NODE_NAME)) {
+        if (gridName.equals(READ_THROUGH_CFG_NODE_NAME))
             ccfgs.add(buildCacheConfigurationRestricted("BadCfgTestCacheRT", true, false, true));
 
-            c.setClientMode(true);
-        }
-
-        if (gridName.equals(INTERCEPTOR_CFG_NODE_NAME)) {
+        if (gridName.equals(INTERCEPTOR_CFG_NODE_NAME))
             ccfgs.add(buildCacheConfigurationRestricted("BadCfgTestCacheINT", false, true, true));
 
-            c.setClientMode(true);
-        }
-
         c.setCacheConfiguration(ccfgs.toArray(new CacheConfiguration[ccfgs.size()]));
 
         if (gridName.equals(NODE_CLIENT)) {
-            c.setClientMode(true);
-
             // Not allowed to have local cache on client without memory config
             c.setDataStorageConfiguration(new DataStorageConfiguration());
         }
@@ -218,7 +210,7 @@
 
         startGrids(NODE_COUNT);
 
-        startGrid(NODE_CLIENT);
+        startClientGrid(NODE_CLIENT);
 
         // Add cache template with read-through cache store.
         grid(NODE_CLIENT).addCacheConfiguration(
@@ -939,7 +931,7 @@
         // Node start-up failure (read-through cache store).
         GridTestUtils.assertThrowsAnyCause(log, new Callable<Object>() {
             @Override public Object call() throws Exception {
-                return startGrid(READ_THROUGH_CFG_NODE_NAME);
+                return startClientGrid(READ_THROUGH_CFG_NODE_NAME);
             }
         }, IgniteCheckedException.class, READ_THROUGH_ERR_MSG);
 
@@ -958,7 +950,7 @@
         // Node start-up failure (interceptor).
         GridTestUtils.assertThrowsAnyCause(log, new Callable<Object>() {
             @Override public Object call() throws Exception {
-                return startGrid(INTERCEPTOR_CFG_NODE_NAME);
+                return startClientGrid(INTERCEPTOR_CFG_NODE_NAME);
             }
         }, IgniteCheckedException.class, INTERCEPTOR_ERR_MSG);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlParameterizedQueryTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlParameterizedQueryTest.java
index 3d8a068..1c09195 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlParameterizedQueryTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlParameterizedQueryTest.java
@@ -52,8 +52,6 @@
         IgniteConfiguration c = super.getConfiguration(gridName);
 
         c.setCacheConfiguration(buildCacheConfiguration(CACHE_BOOKMARK));
-        if (gridName.equals(NODE_CLIENT))
-            c.setClientMode(true);
 
         return c;
     }
@@ -76,7 +74,7 @@
         super.beforeTest();
 
         startGrid(0);
-        startGrid(NODE_CLIENT);
+        startClientGrid(NODE_CLIENT);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlQueryParallelismTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlQueryParallelismTest.java
index f7f8bb1..417741a 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlQueryParallelismTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlQueryParallelismTest.java
@@ -37,9 +37,6 @@
 @SuppressWarnings("unchecked")
 public class IgniteSqlQueryParallelismTest extends AbstractIndexingCommonTest {
     /** */
-    private boolean isClient = false;
-
-    /** */
     private int qryParallelism = 4;
 
     /** {@inheritDoc} */
@@ -48,8 +45,6 @@
 
         cfg.setPeerClassLoadingEnabled(false);
 
-        cfg.setClientMode(isClient);
-
         CacheConfiguration ccfg1 = cacheConfig("pers", Integer.class, Person2.class).setQueryParallelism(qryParallelism);
         CacheConfiguration ccfg2 = cacheConfig("org", Integer.class, Organization.class).setQueryParallelism(qryParallelism);
 
@@ -95,10 +90,9 @@
 
         GridTestUtils.assertThrows(log, new Callable<Object>() {
             @Override public Object call() throws Exception {
-                isClient = true;
                 qryParallelism = 2;
 
-                Ignite client = startGrid(4);
+                Ignite client = startClientGrid(4);
 
                 return null;
             }
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlRoutingTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlRoutingTest.java
index d1929aad..b34a496 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlRoutingTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlRoutingTest.java
@@ -54,22 +54,22 @@
 /** Tests for query partitions derivation. */
 public class IgniteSqlRoutingTest extends AbstractIndexingCommonTest {
     /** */
-    private static String NODE_CLIENT = "client";
+    private static final String NODE_CLIENT = "client";
 
     /** */
-    private static String CACHE_PERSON = "Person";
+    private static final String CACHE_PERSON = "Person";
 
     /** */
-    private static String CACHE_CALL = "Call";
+    private static final String CACHE_CALL = "Call";
 
     /** */
-    private static int NODE_COUNT = 4;
+    private static final int NODE_COUNT = 4;
 
     /** Broadcast query to ensure events came from all nodes. */
-    private static String FINAL_QRY = "select count(1) from {0} where name=?";
+    private static final String FINAL_QRY = "select count(1) from {0} where name=?";
 
     /** Param to distinguish the final query event. */
-    private static String FINAL_QRY_PARAM = "Abracadabra";
+    private static final String FINAL_QRY_PARAM = "Abracadabra";
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
@@ -88,12 +88,7 @@
         ccfgs.add(buildCacheConfiguration(CACHE_CALL));
 
         c.setCacheConfiguration(ccfgs.toArray(new CacheConfiguration[ccfgs.size()]));
-
-        if (gridName.equals(NODE_CLIENT))
-            c.setClientMode(true);
-
         c.setCacheKeyConfiguration(new CacheKeyConfiguration(CallKey.class));
-
         c.setIncludeEventTypes(EventType.EVTS_ALL);
 
         return c;
@@ -105,7 +100,7 @@
 
         startGrids(NODE_COUNT);
 
-        startGrid(NODE_CLIENT);
+        startClientGrid(NODE_CLIENT);
 
         awaitPartitionMapExchange();
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSkipReducerOnUpdateDmlFlagSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSkipReducerOnUpdateDmlFlagSelfTest.java
index 76eeca5..55e038a 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSkipReducerOnUpdateDmlFlagSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSkipReducerOnUpdateDmlFlagSelfTest.java
@@ -77,9 +77,6 @@
 
         c.setCacheConfiguration(ccfgs.toArray(new CacheConfiguration[ccfgs.size()]));
 
-        if (gridName.equals(NODE_CLIENT))
-            c.setClientMode(true);
-
         return c;
     }
 
@@ -157,7 +154,7 @@
 
         startGrids(NODE_COUNT);
 
-        client = startGrid(NODE_CLIENT);
+        client = startClientGrid(NODE_CLIENT);
 
         awaitPartitionMapExchange();
     }
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSkipReducerOnUpdateDmlSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSkipReducerOnUpdateDmlSelfTest.java
index e228e9c..44afe2f 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSkipReducerOnUpdateDmlSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSkipReducerOnUpdateDmlSelfTest.java
@@ -64,19 +64,19 @@
 @SuppressWarnings({"unchecked"})
 public class IgniteSqlSkipReducerOnUpdateDmlSelfTest extends AbstractIndexingCommonTest {
     /** */
-    private static int NODE_COUNT = 4;
+    private static final int NODE_COUNT = 4;
 
     /** */
-    private static String NODE_CLIENT = "client";
+    private static final String NODE_CLIENT = "client";
 
     /** */
-    private static String CACHE_ORG = "org";
+    private static final String CACHE_ORG = "org";
 
     /** */
-    private static String CACHE_PERSON = "person";
+    private static final String CACHE_PERSON = "person";
 
     /** */
-    private static String CACHE_POSITION = "pos";
+    private static final String CACHE_POSITION = "pos";
 
     /** */
     private static Ignite client;
@@ -95,12 +95,7 @@
         ccfgs.add(buildCacheConfiguration(CACHE_POSITION));
 
         c.setCacheConfiguration(ccfgs.toArray(new CacheConfiguration[ccfgs.size()]));
-
         c.setLongQueryWarningTimeout(10000);
-
-        if (gridName.equals(NODE_CLIENT))
-            c.setClientMode(true);
-
         c.setIncludeEventTypes(EventType.EVTS_ALL);
 
         return c;
@@ -166,7 +161,7 @@
 
         startGrids(NODE_COUNT);
 
-        client = startGrid(NODE_CLIENT);
+        client = startClientGrid(NODE_CLIENT);
 
         awaitPartitionMapExchange();
     }
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
index 0922b08..f577c59 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
@@ -32,7 +32,6 @@
 import javax.cache.CacheException;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheKeyConfiguration;
 import org.apache.ignite.cache.CacheMode;
@@ -81,13 +80,7 @@
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         startGridsMultiThreaded(3, false);
-        Ignition.setClientMode(true);
-        try {
-            startGrid(CLIENT);
-        }
-        finally {
-            Ignition.setClientMode(false);
-        }
+        startClientGrid(CLIENT);
     }
 
     /**
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/KillQueryOnClientDisconnectTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/KillQueryOnClientDisconnectTest.java
index 5384acd..55eb0ef 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/KillQueryOnClientDisconnectTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/KillQueryOnClientDisconnectTest.java
@@ -61,9 +61,6 @@
     /** IP finder. */
     private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
-    /** Node configration conter. */
-    private static int cntr;
-
     /** Statement. */
     protected Statement stmt;
 
@@ -74,9 +71,8 @@
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        cntr = 0;
-
-        startGrids(2);
+        startGrids(1);
+        startClientGrid(1);
 
         for (int i = 0; i < 1000; ++i)
             grid(0).cache(GridAbstractTest.DEFAULT_CACHE_NAME).put(i, i);
@@ -136,9 +132,6 @@
 
         cfg.setDiscoverySpi(disco);
 
-        if (++cntr == 2)
-            cfg.setClientMode(true);
-
         cfg.setCommunicationSpi(new TcpCommunicationSpi() {
             /** {@inheritDoc} */
             @Override public void sendMessage(ClusterNode node, Message msg,
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/KillQueryTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/KillQueryTest.java
index a96dafc..628758a 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/KillQueryTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/KillQueryTest.java
@@ -189,11 +189,8 @@
 
         cfg.setCommunicationSpi(commSpi);
 
-        if (++cntr == NODES_COUNT) {
-            cfg.setClientMode(true);
-
+        if (++cntr == NODES_COUNT)
             clientBlocker = commSpi;
-        }
 
         cfg.setDiscoverySpi(new TcpDiscoverySpi() {
             @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) throws IgniteException {
@@ -279,7 +276,8 @@
 
         GridQueryProcessor.idxCls = MockedIndexing.class;
 
-        startGrids(NODES_COUNT);
+        startGrids(NODES_COUNT - 1);
+        startClientGrid(NODES_COUNT - 1);
 
         // Let's set baseline topology manually. Doing so we are sure that partitions are distributed beetween our 2 srv
         // nodes, not belong only one node.
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlQueriesTopologyMappingTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlQueriesTopologyMappingTest.java
index 2b93e59..ff0b2ff 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlQueriesTopologyMappingTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlQueriesTopologyMappingTest.java
@@ -39,9 +39,6 @@
 
 /** */
 public class SqlQueriesTopologyMappingTest extends AbstractIndexingCommonTest {
-    /** */
-    private boolean client;
-
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
@@ -52,8 +49,7 @@
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         return super.getConfiguration(igniteInstanceName)
-            .setCommunicationSpi(new TestRecordingCommunicationSpi())
-            .setClientMode(client);
+            .setCommunicationSpi(new TestRecordingCommunicationSpi());
     }
 
     /** */
@@ -123,10 +119,7 @@
         blockRebalanceSupplyMessages(ign0, DEFAULT_CACHE_NAME, getTestIgniteInstanceName(1));
 
         startGrid(1);
-
-        client = true;
-
-        startGrid(10);
+        startClientGrid(10);
 
         for (Ignite ign : G.allGrids()) {
             List<List<?>> res = ign.cache(DEFAULT_CACHE_NAME)
@@ -150,10 +143,7 @@
         cache.put(1, 2);
 
         startGrid(1);
-
-        client = true;
-
-        startGrid(10);
+        startClientGrid(10);
 
         for (Ignite ign : G.allGrids()) {
             List<List<?>> res = ign.cache(DEFAULT_CACHE_NAME)
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlQueryHistoryFromClientSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlQueryHistoryFromClientSelfTest.java
index 35a5ab9..b3ec8f8 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlQueryHistoryFromClientSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlQueryHistoryFromClientSelfTest.java
@@ -18,26 +18,12 @@
 
 package org.apache.ignite.internal.processors.query;
 
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 
 /**
  * Check query history metrics from client node.
  */
 public class SqlQueryHistoryFromClientSelfTest extends SqlQueryHistorySelfTest {
-
-    private int idx;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        if (idx++ == 2)
-            cfg.setClientMode(true);
-
-        return cfg;
-    }
-
     /** {@inheritDoc} */
     @Override protected IgniteEx queryNode() {
         IgniteEx node = grid(2);
@@ -49,7 +35,8 @@
 
     /** {@inheritDoc} */
     @Override protected void startTestGrid() throws Exception {
-        startGrids(3);
+        startGrids(2);
+        startClientGrid(2);
     }
 
 }
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlSystemViewsSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlSystemViewsSelfTest.java
index 29b471c..e107a97 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlSystemViewsSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlSystemViewsSelfTest.java
@@ -197,7 +197,8 @@
     public void testSchemasView() throws Exception {
         IgniteEx srv = startGrid(getConfiguration().setSqlSchemas("PREDIFINED_SCHEMA_1"));
 
-        IgniteEx client = startGrid(getConfiguration().setClientMode(true).setIgniteInstanceName("CLIENT").setSqlSchemas("PREDIFINED_SCHEMA_2"));
+        IgniteEx client =
+            startClientGrid(getConfiguration().setIgniteInstanceName("CLIENT").setSqlSchemas("PREDIFINED_SCHEMA_2"));
 
         srv.createCache(cacheConfiguration("TST1"));
 
@@ -229,7 +230,7 @@
     public void testIndexesView() throws Exception {
         IgniteEx srv = startGrid(getConfiguration());
 
-        IgniteEx client = startGrid(getConfiguration().setClientMode(true).setIgniteInstanceName("CLIENT"));
+        IgniteEx client = startClientGrid(getConfiguration().setIgniteInstanceName("CLIENT"));
 
         srv.createCache(cacheConfiguration("TST1"));
 
@@ -674,8 +675,8 @@
     public void testNodesViews() throws Exception {
         Ignite igniteSrv = startGrid(getTestIgniteInstanceName(), getConfiguration().setMetricsUpdateFrequency(500L));
 
-        Ignite igniteCli = startGrid(getTestIgniteInstanceName(1), getConfiguration().setMetricsUpdateFrequency(500L)
-            .setClientMode(true));
+        Ignite igniteCli =
+            startClientGrid(getTestIgniteInstanceName(1), getConfiguration().setMetricsUpdateFrequency(500L));
 
         startGrid(getTestIgniteInstanceName(2), getConfiguration().setMetricsUpdateFrequency(500L).setDaemon(true));
 
@@ -1289,8 +1290,8 @@
 
         Ignite ignite2 = startGrid(getConfiguration().setDataStorageConfiguration(dsCfg).setIgniteInstanceName("node2"));
 
-        Ignite ignite3 = startGrid(getConfiguration().setDataStorageConfiguration(dsCfg).setIgniteInstanceName("node3")
-            .setClientMode(true));
+        Ignite ignite3 =
+            startClientGrid(getConfiguration().setDataStorageConfiguration(dsCfg).setIgniteInstanceName("node3"));
 
         ignite0.getOrCreateCache(new CacheConfiguration<>()
             .setName("cache_atomic_part")
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/IgniteSqlBigIntegerKeyTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/IgniteSqlBigIntegerKeyTest.java
index 04621ce..fe49d1c 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/IgniteSqlBigIntegerKeyTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/IgniteSqlBigIntegerKeyTest.java
@@ -50,7 +50,7 @@
 
         startGrid("server");
 
-        Ignite cli = startGrid(getConfiguration("client").setClientMode(true));
+        Ignite cli = startClientGrid("client");
 
         IgniteCache<Object, Object> cache = cli.getOrCreateCache(new CacheConfiguration<>()
             .setIndexedTypes(BigInteger.class, Student.class)
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/IgniteSqlQueryMinMaxTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/IgniteSqlQueryMinMaxTest.java
index f5f7711..f468096 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/IgniteSqlQueryMinMaxTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/IgniteSqlQueryMinMaxTest.java
@@ -66,16 +66,13 @@
 
         cfg.setCacheConfiguration(ccfg, ccfg2);
 
-        if ("client".equals(gridName))
-            cfg.setClientMode(true);
-
         return cfg;
     }
 
     /** Check min() and max() functions in queries */
     @Test
     public void testQueryMinMax() throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Integer, ValueObj> cache = client.cache(CACHE_NAME_2);
 
             int count = 1_000;
@@ -114,7 +111,7 @@
     /** Check min() and max() on empty cache */
     @Test
     public void testQueryMinMaxEmptyCache() throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Integer, ValueObj> cache = client.cache(CACHE_NAME_2);
 
             QueryCursor<List<?>> cursor = cache.query(new SqlFieldsQuery("select min(idxVal), max(idxVal) from ValueObj"));
@@ -132,7 +129,7 @@
      */
     @Test
     public void testMinMaxQueryPlanOnKey() throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Integer, ValueObj> cache = client.cache(CACHE_NAME_2);
 
             QueryCursor<List<?>> cursor = cache.query(new SqlFieldsQuery("explain select min(_key), max(_key) from ValueObj"));
@@ -149,7 +146,7 @@
      */
     @Test
     public void testMinMaxQueryPlanOnFields() throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Integer, ValueObj> cache = client.cache(CACHE_NAME_2);
 
             QueryCursor<List<?>> cursor = cache.query(new SqlFieldsQuery("explain select min(idxVal), max(idxVal) from ValueObj"));
@@ -166,7 +163,7 @@
      */
     @Test
     public void testSimpleMinMaxQueryPlanOnKey() throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Integer, Integer> cache = client.cache(CACHE_NAME);
 
             QueryCursor<List<?>> cursor = cache.query(new SqlFieldsQuery("explain select min(_key), max(_key) from Integer"));
@@ -183,7 +180,7 @@
      */
     @Test
     public void testSimpleMinMaxQueryPlanOnValue() throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Integer, Integer> cache = client.cache(CACHE_NAME);
 
             QueryCursor<List<?>> cursor = cache.query(new SqlFieldsQuery("explain select min(_val), max(_val) from Integer"));
@@ -197,7 +194,7 @@
     /** Check min() and max() over group */
     @Test
     public void testGroupMinMax() throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Integer, ValueObj> cache = client.cache(CACHE_NAME_2);
 
             int count = 1_000;
@@ -227,7 +224,7 @@
     /** Check min() and max() over group with having clause */
     @Test
     public void testGroupHavingMinMax() throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Integer, ValueObj> cache = client.cache(CACHE_NAME_2);
 
             int count = 1_000;
@@ -264,7 +261,7 @@
     /** Check min() and max() over group with joins */
     @Test
     public void testJoinGroupMinMax() throws Exception {
-        try (Ignite client = startGrid("client")) {
+        try (Ignite client = startClientGrid("client")) {
             IgniteCache<Integer, Integer> cache = client.cache(CACHE_NAME);
             IgniteCache<Integer, ValueObj> cache2 = client.cache(CACHE_NAME_2);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/QueryDataPageScanTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/QueryDataPageScanTest.java
index 203e5be..fb8e7b5 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/QueryDataPageScanTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/QueryDataPageScanTest.java
@@ -37,7 +37,6 @@
 import javax.cache.CacheException;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.Ignition;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
@@ -315,8 +314,7 @@
         IgniteEx server = startGrid(0);
         server.cluster().active(true);
 
-        Ignition.setClientMode(true);
-        IgniteEx client = startGrid(1);
+        IgniteEx client = startClientGrid(1);
 
         CacheConfiguration<Long,TestData> ccfg = new CacheConfiguration<>(cacheName);
         ccfg.setIndexedTypes(Long.class, TestData.class);
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/AbstractPartitionPruningBaseTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/AbstractPartitionPruningBaseTest.java
index 8b6c421..102e580 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/AbstractPartitionPruningBaseTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/AbstractPartitionPruningBaseTest.java
@@ -82,7 +82,7 @@
         startGrid(getConfiguration("srv2"));
         startGrid(getConfiguration("srv3"));
 
-        startGrid(getConfiguration(CLI_NAME).setClientMode(true));
+        startClientGrid(getConfiguration(CLI_NAME));
 
         client().cluster().active(true);
     }
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/BetweenOperationExtractPartitionSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/BetweenOperationExtractPartitionSelfTest.java
index e07b8f2..3b83881 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/BetweenOperationExtractPartitionSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/BetweenOperationExtractPartitionSelfTest.java
@@ -135,17 +135,12 @@
     /** Organizations cache. */
     private static IgniteCache<Integer, JoinSqlTestHelper.Organization> orgCache;
 
-    /** Client mode. */
-    private boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
         cfg.setCommunicationSpi(new BetweenOperationExtractPartitionSelfTest.TestCommunicationSpi());
 
-        cfg.setClientMode(clientMode);
-
         return cfg;
     }
 
@@ -165,9 +160,7 @@
     @Override protected void beforeTestsStarted() throws Exception {
         startGridsMultiThreaded(NODES_COUNT - 1, false);
 
-        clientMode = true;
-
-        startGrid(NODES_COUNT);
+        startClientGrid(NODES_COUNT);
 
         orgCache = ignite(NODES_COUNT).getOrCreateCache(new CacheConfiguration<Integer, JoinSqlTestHelper.Organization>(ORG_CACHE_NAME)
             .setCacheMode(CacheMode.PARTITIONED)
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/CacheQueryMemoryLeakTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/CacheQueryMemoryLeakTest.java
index 247f0c7..014f33b 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/CacheQueryMemoryLeakTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/CacheQueryMemoryLeakTest.java
@@ -29,7 +29,6 @@
 import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.cache.query.annotations.QuerySqlField;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.processors.cache.index.AbstractIndexingCommonTest;
 import org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing;
@@ -39,16 +38,6 @@
 /** */
 public class CacheQueryMemoryLeakTest extends AbstractIndexingCommonTest {
     /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
-        IgniteConfiguration igniteCfg = super.getConfiguration(igniteInstanceName);
-
-        if (igniteInstanceName.equals("client"))
-            igniteCfg.setClientMode(true);
-
-        return igniteCfg;
-    }
-
-    /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
     }
@@ -60,8 +49,8 @@
      */
     @Test
     public void testResultIsMultipleOfPage() throws Exception {
-        IgniteEx srv = (IgniteEx)startGrid("server");
-        Ignite client = startGrid("client");
+        IgniteEx srv = startGrid("server");
+        Ignite client = startClientGrid("client");
 
         IgniteCache<Integer, Person> cache = startPeopleCache(client);
 
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/NoneOrSinglePartitionsQueryOptimizationsTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/NoneOrSinglePartitionsQueryOptimizationsTest.java
index 68c3e09..940f8a8 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/NoneOrSinglePartitionsQueryOptimizationsTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/twostep/NoneOrSinglePartitionsQueryOptimizationsTest.java
@@ -75,17 +75,12 @@
     /** Persons cache. */
     private static IgniteCache<Integer, JoinSqlTestHelper.Person> persCache;
 
-    /** Client mode. */
-    private boolean clientMode;
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
         cfg.setCommunicationSpi(new TestCommunicationSpi());
 
-        cfg.setClientMode(clientMode);
-
         return cfg;
     }
 
@@ -116,10 +111,7 @@
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         startGridsMultiThreaded(NODES_COUNT - 1, false);
-
-        clientMode = true;
-
-        startGrid(NODES_COUNT);
+        startClientGrid(NODES_COUNT);
 
         orgCache = ignite(NODES_COUNT).getOrCreateCache(
             new CacheConfiguration<Integer, JoinSqlTestHelper.Organization>(ORG_CACHE_NAME)
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/oom/AbstractQueryOOMTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/oom/AbstractQueryOOMTest.java
index d3abff4..83db3c4 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/oom/AbstractQueryOOMTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/oom/AbstractQueryOOMTest.java
@@ -105,8 +105,7 @@
                     .addQueryField("VAL", Long.class.getName(), null)
                     .addQueryField("STR", String.class.getName(), null)
                     .setIndexes(Collections.singleton(new QueryIndex("INDEXED"))))))
-            .setUserAttributes(igniteInstanceName.startsWith("remote") ? F.asMap(HAS_CACHE, true) : null)
-            .setClientMode(igniteInstanceName.startsWith("client"));
+            .setUserAttributes(igniteInstanceName.startsWith("remote") ? F.asMap(HAS_CACHE, true) : null);
     }
 
     /**
diff --git a/modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java b/modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
index 0a7ab8d..b943b6a 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
@@ -47,7 +47,6 @@
 import org.apache.ignite.cache.query.ScanQuery;
 import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.processors.cache.index.AbstractIndexingCommonTest;
 import org.apache.ignite.internal.processors.query.IgniteSQLException;
@@ -119,17 +118,6 @@
     private Random rnd = new Random();
 
     /**
-     * Makes configuration for client node.
-     */
-    private IgniteConfiguration clientConfiguration() throws Exception {
-        IgniteConfiguration clCfg = getConfiguration(CLIENT_NODE_NAME);
-
-        clCfg.setClientMode(true);
-
-        return optimize(clCfg);
-    }
-
-    /**
      * Fills tables with data.
      */
     protected void fillCommonData() {
@@ -266,7 +254,7 @@
         startGrid(SRV1_NAME, getConfiguration(SRV1_NAME), null);
         startGrid(SRV2_NAME, getConfiguration(SRV2_NAME), null);
 
-        client = (IgniteEx)startGrid(CLIENT_NODE_NAME, clientConfiguration(), null);
+        client = startClientGrid(CLIENT_NODE_NAME);
 
         boolean locExp = explain;
         explain = false;
diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/environment/deploy/MLDeployingTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/environment/deploy/MLDeployingTest.java
index 409c578..731ab1a 100644
--- a/modules/ml/src/test/java/org/apache/ignite/ml/environment/deploy/MLDeployingTest.java
+++ b/modules/ml/src/test/java/org/apache/ignite/ml/environment/deploy/MLDeployingTest.java
@@ -80,7 +80,6 @@
             .setIpFinder(new TcpDiscoveryVmIpFinder()
                 .setAddresses(Arrays.asList("127.0.0.1:47500..47509"))));
 
-        cfg.setClientMode(false);
         cfg.setPeerClassLoadingEnabled(true);
 
         return cfg;
diff --git a/modules/spark/src/test/java/org/apache/ignite/spark/JavaEmbeddedIgniteRDDSelfTest.java b/modules/spark/src/test/java/org/apache/ignite/spark/JavaEmbeddedIgniteRDDSelfTest.java
index fbd4363..efa1d11 100644
--- a/modules/spark/src/test/java/org/apache/ignite/spark/JavaEmbeddedIgniteRDDSelfTest.java
+++ b/modules/spark/src/test/java/org/apache/ignite/spark/JavaEmbeddedIgniteRDDSelfTest.java
@@ -277,17 +277,14 @@
 
     /**
      * @param igniteInstanceName Ignite instance name.
-     * @param client Client.
      * @throws Exception If failed.
      * @return Confiuration.
      */
-    private static IgniteConfiguration getConfiguration(String igniteInstanceName, boolean client) throws Exception {
+    private static IgniteConfiguration igniteConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = new IgniteConfiguration();
 
         cfg.setCacheConfiguration(cacheConfiguration());
 
-        cfg.setClientMode(client);
-
         cfg.setIgniteInstanceName(igniteInstanceName);
 
         return cfg;
@@ -317,7 +314,7 @@
         /** {@inheritDoc} */
         @Override public IgniteConfiguration apply() {
             try {
-                return getConfiguration("worker-" + igniteInstanceNames.get(), false);
+                return igniteConfiguration("worker-" + igniteInstanceNames.get());
             }
             catch (Exception e) {
                 throw new RuntimeException(e);
diff --git a/modules/spark/src/test/java/org/apache/ignite/spark/JavaEmbeddedIgniteRDDWithLocalStoreSelfTest.java b/modules/spark/src/test/java/org/apache/ignite/spark/JavaEmbeddedIgniteRDDWithLocalStoreSelfTest.java
index 2f13d25..6309b48 100644
--- a/modules/spark/src/test/java/org/apache/ignite/spark/JavaEmbeddedIgniteRDDWithLocalStoreSelfTest.java
+++ b/modules/spark/src/test/java/org/apache/ignite/spark/JavaEmbeddedIgniteRDDWithLocalStoreSelfTest.java
@@ -146,17 +146,13 @@
 
     /**
      * @param igniteInstanceName Ignite instance name.
-     * @param client Client.
      * @throws Exception If failed.
      * @return Confiuration.
      */
-    private static IgniteConfiguration getConfiguration(String igniteInstanceName, boolean client) throws Exception {
+    private static IgniteConfiguration igniteConfiguration(String igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = new IgniteConfiguration();
 
         cfg.setCacheConfiguration(cacheConfiguration());
-
-        cfg.setClientMode(client);
-
         cfg.setIgniteInstanceName(igniteInstanceName);
 
         return cfg;
@@ -191,7 +187,7 @@
         /** {@inheritDoc} */
         @Override public IgniteConfiguration apply() {
             try {
-                return getConfiguration("worker-" + igniteInstanceNames.get(), false);
+                return igniteConfiguration("worker-" + igniteInstanceNames.get());
             }
             catch (Exception e) {
                 throw new RuntimeException(e);
diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryClientDisconnectTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryClientDisconnectTest.java
index 07305fc..7a8e3fd 100644
--- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryClientDisconnectTest.java
+++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryClientDisconnectTest.java
@@ -82,9 +82,7 @@
 
         Ignite srv1 = startGrid("server1-block");
 
-        helper.clientModeThreadLocal(true);
-
-        IgniteEx cli = startGrid("client-block");
+        IgniteEx cli = startClientGrid("client-block");
 
         IgniteCache<Object, Object> cache = cli.getOrCreateCache(DEFAULT_CACHE_NAME);
 
@@ -142,9 +140,8 @@
 
         sesTimeout = 3000;
         testSockNio = true;
-        helper.clientMode(true);
 
-        Ignite client = startGrid(1);
+        Ignite client = startClientGrid(1);
 
         final CountDownLatch latch = new CountDownLatch(1);
 
@@ -184,9 +181,7 @@
 
         joinTimeout = 3000;
 
-        helper.clientMode(true);
-
-        startGridsMultiThreaded(1, CLIENTS);
+        startClientGridsMultiThreaded(1, CLIENTS);
 
         waitForTopology(CLIENTS + 1);
 
@@ -218,13 +213,11 @@
     public void testStartNoServers_FailOnTimeout() {
         joinTimeout = 3000;
 
-        helper.clientMode(true);
-
         long start = System.currentTimeMillis();
 
         Throwable err = GridTestUtils.assertThrows(log, new Callable<Void>() {
             @Override public Void call() throws Exception {
-                startGrid(0);
+                startClientGrid(0);
 
                 return null;
             }
@@ -263,9 +256,7 @@
 
         IgniteInternalFuture<?> fut = GridTestUtils.runAsync(new Callable<Void>() {
             @Override public Void call() throws Exception {
-                helper.clientModeThreadLocal(true);
-
-                startGrid(0);
+                startClientGrid(0);
 
                 return null;
             }
@@ -275,8 +266,6 @@
 
         helper.waitSpi(getTestIgniteInstanceName(0), spis);
 
-        helper.clientModeThreadLocal(false);
-
         startGrid(1);
 
         fut.get();
@@ -334,9 +323,7 @@
     private void disconnectOnServersLeft(int srvs, int clients) throws Exception {
         startGridsMultiThreaded(srvs);
 
-        helper.clientMode(true);
-
-        startGridsMultiThreaded(srvs, clients);
+        startClientGridsMultiThreaded(srvs, clients);
 
         for (int i = 0; i < GridTestUtils.SF.applyLB(5, 2); i++) {
             info("Iteration: " + i);
@@ -383,8 +370,6 @@
 
             evts.clear();
 
-            helper.clientMode(false);
-
             log.info("Restart servers.");
 
             startGridsMultiThreaded(0, srvs);
diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryClientReconnectTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryClientReconnectTest.java
index d196cb9..6cb100a 100644
--- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryClientReconnectTest.java
+++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryClientReconnectTest.java
@@ -58,9 +58,7 @@
     public void testReconnectServersRestart_3() throws Exception {
         startGrid(0);
 
-        helper.clientMode(true);
-
-        startGridsMultiThreaded(5, 5);
+        startClientGridsMultiThreaded(5, 5);
 
         stopGrid(getTestIgniteInstanceName(0), true, false);
 
@@ -75,9 +73,10 @@
             @Override public Void call() throws Exception {
                 int threadIdx = idx.getAndIncrement();
 
-                helper.clientModeThreadLocal(threadIdx != srvIdx && ThreadLocalRandom.current().nextBoolean());
-
-                startGrid(threadIdx);
+                if (threadIdx != srvIdx && ThreadLocalRandom.current().nextBoolean())
+                    startClientGrid(threadIdx);
+                else
+                    startGrid(threadIdx);
 
                 return null;
             }
@@ -97,11 +96,7 @@
     public void testReconnectServersRestart_4() throws Exception {
         startGrid(0);
 
-        helper.clientMode(true);
-
-        IgniteEx client = startGrid(1);
-
-        helper.clientMode(false);
+        IgniteEx client = startClientGrid(1);
 
         CountDownLatch latch = new CountDownLatch(1);
 
@@ -142,13 +137,9 @@
 
         startGridsMultiThreaded(srvs);
 
-        helper.clientMode(true);
-
         final int CLIENTS = 10;
 
-        startGridsMultiThreaded(srvs, CLIENTS);
-
-        helper.clientMode(false);
+        startClientGridsMultiThreaded(srvs, CLIENTS);
 
         long stopTime = System.currentTimeMillis() + 30_000;
 
diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryCommunicationFailureTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryCommunicationFailureTest.java
index f1a9c0e..09a9433 100644
--- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryCommunicationFailureTest.java
+++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryCommunicationFailureTest.java
@@ -441,9 +441,7 @@
 
         startGridsMultiThreaded(10);
 
-        helper.clientMode(true);
-
-        startGridsMultiThreaded(10, 5);
+        startClientGridsMultiThreaded(10, 5);
 
         int nodesCnt = 15;
 
@@ -471,11 +469,10 @@
                 // No-op.
             }
 
-            boolean clientMode = ThreadLocalRandom.current().nextBoolean();
-
-            helper.clientMode(clientMode);
-
-            startGrid(nodeIdx++);
+            if (ThreadLocalRandom.current().nextBoolean())
+                startClientGrid(nodeIdx++);
+            else
+                startGrid(nodeIdx++);
 
             nodesCnt = nodesCnt - KillRandomCommunicationFailureResolver.LAST_KILLED_NODES.size() + 1;
 
@@ -520,9 +517,7 @@
 
         startGrids(3);
 
-        helper.clientMode(true);
-
-        startGridsMultiThreaded(3, 2);
+        startClientGridsMultiThreaded(3, 2);
 
         ZkTestCommunicationSpi.testSpi(ignite(0)).initCheckResult(5, 0, 1);
         ZkTestCommunicationSpi.testSpi(ignite(1)).initCheckResult(5, 0, 1);
@@ -912,9 +907,7 @@
 
         startGridsMultiThreaded(5);
 
-        helper.clientMode(true);
-
-        startGridsMultiThreaded(5, 5);
+        startClientGridsMultiThreaded(5, 5);
 
         final int NODES = 10;
 
diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryConcurrentStartAndStartStopTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryConcurrentStartAndStartStopTest.java
index 4aebb2b..1572af5 100644
--- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryConcurrentStartAndStartStopTest.java
+++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryConcurrentStartAndStartStopTest.java
@@ -57,9 +57,10 @@
                 @Override public Void call() throws Exception {
                     int threadIdx = idx.getAndIncrement();
 
-                    helper.clientModeThreadLocal(threadIdx == srvIdx || ThreadLocalRandom.current().nextBoolean());
-
-                    startGrid(threadIdx);
+                    if (threadIdx == srvIdx || ThreadLocalRandom.current().nextBoolean())
+                        startClientGrid(threadIdx);
+                    else
+                        startGrid(threadIdx);
 
                     return null;
                 }
@@ -448,14 +449,12 @@
 
         startGrids(SRVS);
 
-        helper.clientMode(true);
-
         final int THREADS = 30;
 
         for (int i = 0; i < GridTestUtils.SF.applyLB(5, 2); i++) {
             info("Iteration: " + i);
 
-            startGridsMultiThreaded(SRVS, THREADS);
+            startClientGridsMultiThreaded(SRVS, THREADS);
 
             waitForTopology(SRVS + THREADS);
 
diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryCustomEventsTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryCustomEventsTest.java
index f121722..1d6c06e 100644
--- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryCustomEventsTest.java
+++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryCustomEventsTest.java
@@ -110,11 +110,8 @@
         if (srvs > 1)
             startGridsMultiThreaded(1, srvs - 1);
 
-        if (clients > 0) {
-            helper.clientMode(true);
-
-            startGridsMultiThreaded(srvs, clients);
-        }
+        if (clients > 0)
+            startClientGridsMultiThreaded(srvs, clients);
 
         awaitPartitionMapExchange();
 
diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryMiscTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryMiscTest.java
index deab1ea..f51da78 100644
--- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryMiscTest.java
+++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryMiscTest.java
@@ -153,9 +153,7 @@
     public void testNodeAddresses() throws Exception {
         startGridsMultiThreaded(3);
 
-        helper.clientMode(true);
-
-        startGridsMultiThreaded(3, 3);
+        startClientGridsMultiThreaded(3, 3);
 
         waitForTopology(6);
 
@@ -179,9 +177,7 @@
     public void testSetConsistentId() throws Exception {
         startGridsMultiThreaded(3);
 
-        helper.clientMode(true);
-
-        startGridsMultiThreaded(3, 3);
+        startClientGridsMultiThreaded(3, 3);
 
         waitForTopology(6);
 
@@ -207,9 +203,7 @@
 
         startGridsMultiThreaded(3);
 
-        helper.clientMode(true);
-
-        startGridsMultiThreaded(3, 3);
+        startClientGridsMultiThreaded(3, 3);
 
         waitForTopology(6);
 
@@ -268,22 +262,16 @@
             assertEquals(1, node.cluster().forServers().nodes().size());
         }
 
-        helper.clientMode(true);
-
-        startGrid(1);
+        startClientGrid(1);
 
         for (Ignite node : G.allGrids()) {
             assertEquals(1, node.cluster().forClients().nodes().size());
             assertEquals(1, node.cluster().forServers().nodes().size());
         }
 
-        helper.clientMode(false);
-
         startGrid(2);
 
-        helper.clientMode(true);
-
-        startGrid(3);
+        startClientGrid(3);
 
         for (Ignite node : G.allGrids()) {
             assertEquals(2, node.cluster().forClients().nodes().size());
@@ -350,7 +338,7 @@
         ccfg = new CacheConfiguration("validate-test-cache");
         ccfg.setAffinity(new ValidationTestAffinity());
 
-        checkStartFail(1, "Failed to add node to topology because it has the same hash code");
+        checkStartFail(1, "Failed to add node to topology because it has the same hash code", false);
     }
 
     /**
@@ -368,13 +356,8 @@
         checkTestSecuritySubject(1);
 
         {
-            helper.clientMode(false);
-            checkStartFail(1, expErr);
-
-            helper.clientMode(true);
-            checkStartFail(1, expErr);
-
-            helper.clientMode(false);
+            checkStartFail(1, expErr, false);
+            checkStartFail(1, expErr, true);
         }
 
         startGrid(2);
@@ -393,39 +376,34 @@
 
         checkTestSecuritySubject(1);
 
-        checkStartFail(1, expErr);
-
-        helper.clientMode(false);
+        checkStartFail(1, expErr, false);
 
         startGrid(3);
 
-        helper.clientMode(true);
-
-        startGrid(4);
-
-        helper.clientMode(false);
+        startClientGrid(4);
 
         startGrid(0);
 
         checkTestSecuritySubject(4);
 
-        checkStartFail(1, expErr);
-        checkStartFail(5, expErr);
-
-        helper.clientMode(true);
-
-        checkStartFail(1, expErr);
-        checkStartFail(5, expErr);
+        checkStartFail(1, expErr, false);
+        checkStartFail(5, expErr, false);
+        checkStartFail(1, expErr, true);
+        checkStartFail(5, expErr, true);
     }
 
     /**
      * @param nodeIdx Node index.
      * @param expMsg Expected error message.
+     * @param client Client mode flag.
      */
-    private void checkStartFail(final int nodeIdx, String expMsg) {
+    private void checkStartFail(final int nodeIdx, String expMsg, boolean client) {
         Throwable err = GridTestUtils.assertThrows(log, new Callable<Void>() {
             @Override public Void call() throws Exception {
-                startGrid(nodeIdx);
+                if (client)
+                    startClientGrid(nodeIdx);
+                else
+                    startGrid(nodeIdx);
 
                 return null;
             }
diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySegmentationAndConnectionRestoreTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySegmentationAndConnectionRestoreTest.java
index 62eedcd..bb3df4c 100644
--- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySegmentationAndConnectionRestoreTest.java
+++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySegmentationAndConnectionRestoreTest.java
@@ -83,9 +83,7 @@
 
         node0.cluster().active(true);
 
-        helper.clientMode(true);
-
-        final IgniteEx client = startGrid(2);
+        final IgniteEx client = startClientGrid(2);
 
         //first transaction
         client.transactions().txStart(PESSIMISTIC, READ_COMMITTED, 0, 0);
diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTestBase.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTestBase.java
index 4401246..9d0cd9c 100644
--- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTestBase.java
+++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTestBase.java
@@ -318,8 +318,6 @@
         catch (Exception e) {
             error("Failed to delete DB files: " + e, e);
         }
-
-        helper.clientModeThreadLocalReset();
     }
 
     /**
@@ -423,13 +421,6 @@
 
         cfg.setCacheConfiguration(getCacheConfiguration());
 
-        Boolean clientMode = helper.clientModeThreadLocal();
-
-        if (clientMode != null)
-            cfg.setClientMode(clientMode);
-        else
-            cfg.setClientMode(helper.clientMode());
-
         if (userAttrs != null)
             cfg.setUserAttributes(userAttrs);
 
diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTestHelper.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTestHelper.java
index dd1a818..c75e859 100644
--- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTestHelper.java
+++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTestHelper.java
@@ -54,52 +54,17 @@
     static final String IGNITE_ZK_ROOT = ZookeeperDiscoverySpi.DFLT_ROOT_PATH;
 
     /** */
-    private static final ThreadLocal<Boolean> clientThreadLoc = new ThreadLocal<>();
-
-    /** */
     private final Consumer<String> info;
 
     /** */
     private final AtomicInteger clusterNum;
 
     /** */
-    private boolean client;
-
-    /** */
     ZookeeperDiscoverySpiTestHelper(Consumer<String> info, AtomicInteger clusterNum) {
         this.info = info;
         this.clusterNum = clusterNum;
     }
 
-    /**
-     * @param clientMode Client mode flag for started nodes.
-     */
-    void clientMode(boolean clientMode) {
-        client = clientMode;
-    }
-
-    /** */
-    boolean clientMode() {
-        return client;
-    }
-
-    /**
-     * @param clientMode Client mode flag for nodes started from current thread.
-     */
-    void clientModeThreadLocal(boolean clientMode) {
-        clientThreadLoc.set(clientMode);
-    }
-
-    /** */
-    Boolean clientModeThreadLocal() {
-        return clientThreadLoc.get();
-    }
-
-    /** */
-    void clientModeThreadLocalReset() {
-        clientThreadLoc.set(null);
-    }
-
     /** */
     static void ackEveryEventSystemProperty() {
         System.setProperty(IGNITE_ZOOKEEPER_DISCOVERY_SPI_ACK_THRESHOLD, "1");
diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySplitBrainTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySplitBrainTest.java
index 5dadba3..997d7cf 100644
--- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySplitBrainTest.java
+++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySplitBrainTest.java
@@ -49,11 +49,7 @@
 
         startGridsMultiThreaded(5);
 
-        helper.clientMode(true);
-
-        startGridsMultiThreaded(5, 3);
-
-        helper.clientMode(false);
+        startClientGridsMultiThreaded(5, 3);
 
         awaitPartitionMapExchange();
 
@@ -106,11 +102,7 @@
 
         Assert.assertEquals(5, srvNodes.size());
 
-        helper.clientMode(true);
-
-        startGridsMultiThreaded(5, 3);
-
-        helper.clientMode(false);
+        startClientGridsMultiThreaded(5, 3);
 
         awaitPartitionMapExchange();
 
@@ -157,11 +149,7 @@
         List<ClusterNode> srvPart1 = srvNodes.subList(0, 3);
         List<ClusterNode> srvPart2 = srvNodes.subList(3, srvNodes.size());
 
-        helper.clientMode(true);
-
-        startGridsMultiThreaded(6, 5);
-
-        helper.clientMode(false);
+        startClientGridsMultiThreaded(6, 5);
 
         awaitPartitionMapExchange();
 
diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryTopologyChangeAndReconnectTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryTopologyChangeAndReconnectTest.java
index ee17e5a..ba17a2f 100644
--- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryTopologyChangeAndReconnectTest.java
+++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryTopologyChangeAndReconnectTest.java
@@ -337,13 +337,9 @@
      */
     @Test
     public void testDeployService2() throws Exception {
-        helper.clientMode(false);
-
         startGrid(0);
 
-        helper.clientMode(true);
-
-        startGrid(1);
+        startClientGrid(1);
 
         grid(0).services(grid(0).cluster()).deployNodeSingleton("test", new GridCacheAbstractFullApiSelfTest.DummyServiceImpl());
     }
@@ -355,16 +351,12 @@
     public void testDeployService3() throws Exception {
         IgniteInternalFuture fut = GridTestUtils.runAsync(new Callable<Object>() {
             @Override public Object call() throws Exception {
-                helper.clientModeThreadLocal(true);
-
-                startGrid(0);
+                startClientGrid(0);
 
                 return null;
             }
         }, "start-node");
 
-        helper.clientModeThreadLocal(false);
-
         startGrid(1);
 
         fut.get();
@@ -435,9 +427,10 @@
             else
                 userAttrs = null;
 
-            helper.clientMode(i > 5);
-
-            startGrid(i);
+            if (i > 5)
+                startClientGrid(i);
+            else
+                startGrid(i);
         }
 
         waitForTopology(10);
@@ -513,10 +506,9 @@
         startGrid(0);
 
         sesTimeout = 2000;
-        helper.clientMode(true);
         testSockNio = true;
 
-        Ignite client = startGrid(1);
+        Ignite client = startClientGrid(1);
 
         client.cache(DEFAULT_CACHE_NAME).put(1, 1);
 
@@ -536,9 +528,7 @@
 
         startGrids(SRVS);
 
-        helper.clientMode(true);
-
-        startGrid(SRVS);
+        startClientGrid(SRVS);
 
         reconnectClientNodes(Collections.singletonList(ignite(SRVS)), new Callable<Void>() {
             @Override public Void call() throws Exception {
@@ -562,9 +552,7 @@
 
         startGrids(SRVS);
 
-        helper.clientMode(true);
-
-        startGrid(SRVS);
+        startClientGrid(SRVS);
 
         reconnectClientNodes(Collections.singletonList(ignite(SRVS)), new Callable<Void>() {
             @Override public Void call() throws Exception {
@@ -1037,13 +1025,9 @@
         for (int i = 0; i < 3; i++) {
             info("Iteration: " + i);
 
-            helper.clientMode(false);
-
             startGridsMultiThreaded(4, i == 0);
 
-            helper.clientMode(true);
-
-            startGridsMultiThreaded(4, 3);
+            startClientGridsMultiThreaded(4, 3);
 
             waitForTopology(7);