http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/968c3cf8/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
deleted file mode 100644
index d42dc20..0000000
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheBasicStoreMultithreadedAbstractTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.gridgain.grid.kernal.processors.cache;
-
-import org.apache.ignite.cache.*;
-import org.apache.ignite.cache.store.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.spi.discovery.tcp.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.apache.ignite.testframework.junits.common.*;
-
-import javax.cache.*;
-import javax.cache.configuration.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-import static org.apache.ignite.cache.GridCacheWriteSynchronizationMode.*;
-
-/**
- * Basic store test.
- */
-public abstract class GridCacheBasicStoreMultithreadedAbstractTest extends 
GridCommonAbstractTest {
-    /** Cache store. */
-    private CacheStore<Integer, Integer> store;
-
-    /**
-     *
-     */
-    protected GridCacheBasicStoreMultithreadedAbstractTest() {
-        super(false /*start grid. */);
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTest() throws Exception {
-        GridCache<?, ?> cache = cache();
-
-        if (cache != null)
-            cache.clearAll();
-
-        stopAllGrids();
-    }
-
-    /**
-     * @return Caching mode.
-     */
-    protected abstract GridCacheMode cacheMode();
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override protected final IgniteConfiguration getConfiguration(String 
gridName) throws Exception {
-        IgniteConfiguration c = super.getConfiguration(gridName);
-
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
-
-        disco.setIpFinder(new TcpDiscoveryVmIpFinder(true));
-
-        c.setDiscoverySpi(disco);
-
-        CacheConfiguration cc = defaultCacheConfiguration();
-
-        cc.setCacheMode(cacheMode());
-        cc.setWriteSynchronizationMode(FULL_SYNC);
-        cc.setSwapEnabled(false);
-
-        cc.setCacheStoreFactory(new FactoryBuilder.SingletonFactory(store));
-        cc.setReadThrough(true);
-        cc.setWriteThrough(true);
-        cc.setLoadPreviousValue(true);
-
-        c.setCacheConfiguration(cc);
-
-        return c;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testConcurrentGet() throws Exception {
-        final AtomicInteger cntr = new AtomicInteger();
-
-        store = new CacheStoreAdapter<Integer, Integer>() {
-            @Override public Integer load(Integer key) {
-                return cntr.incrementAndGet();
-            }
-
-            /** {@inheritDoc} */
-            @Override public void write(Cache.Entry<? extends Integer, ? 
extends Integer> e) {
-                assert false;
-            }
-
-            /** {@inheritDoc} */
-            @Override public void delete(Object key) {
-                assert false;
-            }
-        };
-
-        startGrid();
-
-        final GridCache<Integer, Integer> cache = cache();
-
-        int threads = 2;
-
-        final CyclicBarrier barrier = new CyclicBarrier(threads);
-
-        multithreaded(new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                barrier.await();
-
-                cache.get(1);
-
-                return null;
-            }
-        }, threads, "concurrent-get-worker");
-
-        assertEquals(1, cntr.get());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/968c3cf8/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
deleted file mode 100644
index 7b9cf73..0000000
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheClearAllSelfTest.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.gridgain.grid.kernal.processors.cache;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cache.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.transactions.*;
-import org.apache.ignite.spi.discovery.tcp.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.apache.ignite.testframework.junits.common.*;
-
-import java.lang.reflect.*;
-
-import static org.apache.ignite.cache.GridCacheMode.*;
-import static org.apache.ignite.cache.GridCacheDistributionMode.*;
-import static org.apache.ignite.cache.GridCacheWriteSynchronizationMode.*;
-import static org.apache.ignite.cache.GridCacheAtomicityMode.*;
-import static org.apache.ignite.internal.processors.cache.GridCacheAdapter.*;
-
-/**
- * Test {@link org.apache.ignite.cache.GridCache#clearAll()} operations in 
multinode environment with nodes having caches with different names.
- */
-public class GridCacheClearAllSelfTest extends GridCommonAbstractTest {
-    /** Local cache. */
-    private static final String CACHE_LOCAL = "cache_local";
-
-    /** Partitioned cache. */
-    private static final String CACHE_PARTITIONED = "cache_partitioned";
-
-    /** Co-located cache. */
-    private static final String CACHE_COLOCATED = "cache_colocated";
-
-    /** Replicated cache. */
-    private static final String CACHE_REPLICATED = "cache_replicated";
-
-    /** Grid nodes count. */
-    private static final int GRID_CNT = 3;
-
-    /** VM IP finder for TCP discovery SPI. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
-
-    /** Local caches. */
-    private GridCache<Integer, Integer>[] cachesLoc;
-
-    /** Partitioned caches. */
-    private GridCache<Integer, Integer>[] cachesPartitioned;
-
-    /** Colocated caches. */
-    private GridCache<Integer, Integer>[] cachesColocated;
-
-    /** Replicated caches. */
-    private GridCache<Integer, Integer>[] cachesReplicated;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        CacheConfiguration ccfgLoc = new CacheConfiguration();
-
-        ccfgLoc.setName(CACHE_LOCAL);
-        ccfgLoc.setCacheMode(LOCAL);
-        ccfgLoc.setWriteSynchronizationMode(FULL_SYNC);
-        ccfgLoc.setAtomicityMode(TRANSACTIONAL);
-
-        CacheConfiguration ccfgPartitioned = new CacheConfiguration();
-
-        ccfgPartitioned.setName(CACHE_PARTITIONED);
-        ccfgPartitioned.setCacheMode(PARTITIONED);
-        ccfgPartitioned.setBackups(1);
-        ccfgPartitioned.setWriteSynchronizationMode(FULL_SYNC);
-        
ccfgPartitioned.setDistributionMode(gridName.equals(getTestGridName(0)) ? 
NEAR_PARTITIONED :
-            gridName.equals(getTestGridName(1)) ? NEAR_ONLY : CLIENT_ONLY);
-        ccfgPartitioned.setAtomicityMode(TRANSACTIONAL);
-
-        CacheConfiguration ccfgColocated = new CacheConfiguration();
-
-        ccfgColocated.setName(CACHE_COLOCATED);
-        ccfgColocated.setCacheMode(PARTITIONED);
-        ccfgColocated.setBackups(1);
-        ccfgColocated.setWriteSynchronizationMode(FULL_SYNC);
-        ccfgColocated.setDistributionMode(PARTITIONED_ONLY);
-        ccfgColocated.setAtomicityMode(TRANSACTIONAL);
-
-        CacheConfiguration ccfgReplicated = new CacheConfiguration();
-
-        ccfgReplicated.setName(CACHE_REPLICATED);
-        ccfgReplicated.setCacheMode(REPLICATED);
-        ccfgReplicated.setWriteSynchronizationMode(FULL_SYNC);
-        ccfgReplicated.setAtomicityMode(TRANSACTIONAL);
-
-        cfg.setCacheConfiguration(ccfgLoc, ccfgPartitioned, ccfgColocated, 
ccfgReplicated);
-
-        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
-
-        discoSpi.setIpFinder(IP_FINDER);
-
-        cfg.setDiscoverySpi(discoSpi);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTest() throws Exception {
-        stopAllGrids();
-
-        cachesLoc = null;
-        cachesPartitioned = null;
-        cachesColocated = null;
-        cachesReplicated = null;
-    }
-
-    /**
-     * Startup routine.
-     *
-     * @throws Exception If failed.
-     */
-    private void startUp() throws Exception {
-        cachesLoc = (GridCache<Integer, 
Integer>[])Array.newInstance(GridCache.class, GRID_CNT);
-        cachesPartitioned = (GridCache<Integer, 
Integer>[])Array.newInstance(GridCache.class, GRID_CNT);
-        cachesColocated = (GridCache<Integer, 
Integer>[])Array.newInstance(GridCache.class, GRID_CNT);
-        cachesReplicated = (GridCache<Integer, 
Integer>[])Array.newInstance(GridCache.class, GRID_CNT);
-
-        for (int i = 0; i < GRID_CNT; i++) {
-            Ignite ignite = startGrid(i);
-
-            cachesLoc[i] = ignite.cache(CACHE_LOCAL);
-            cachesPartitioned[i] = ignite.cache(CACHE_PARTITIONED);
-            cachesColocated[i] = ignite.cache(CACHE_COLOCATED);
-            cachesReplicated[i] = ignite.cache(CACHE_REPLICATED);
-        }
-    }
-
-    /**
-     * Test {@link GridCache#clearAll()} on LOCAL cache with no split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testLocalNoSplit() throws Exception {
-        test(Mode.TEST_LOCAL, CLEAR_ALL_SPLIT_THRESHOLD / 2);
-    }
-
-    /**
-     * Test {@link GridCache#clearAll()} on LOCAL cache with split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testLocalSplit() throws Exception {
-        test(Mode.TEST_LOCAL, CLEAR_ALL_SPLIT_THRESHOLD + 1);
-    }
-
-    /**
-     * Test {@link GridCache#clearAll()} on PARTITIONED cache with no split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testPartitionedNoSplit() throws Exception {
-        test(Mode.TEST_PARTITIONED, CLEAR_ALL_SPLIT_THRESHOLD / 2);
-    }
-
-    /**
-     * Test {@link GridCache#clearAll()} on PARTITIONED cache with split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testPartitionedSplit() throws Exception {
-        test(Mode.TEST_PARTITIONED, CLEAR_ALL_SPLIT_THRESHOLD + 1);
-    }
-
-    /**
-     * Test {@link GridCache#clearAll()} on co-located cache with no split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testColocatedNoSplit() throws Exception {
-        test(Mode.TEST_COLOCATED, CLEAR_ALL_SPLIT_THRESHOLD / 2);
-    }
-
-    /**
-     * Test {@link GridCache#clearAll()} on co-located cache with split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testColocatedSplit() throws Exception {
-        test(Mode.TEST_COLOCATED, CLEAR_ALL_SPLIT_THRESHOLD + 1);
-    }
-
-    /**
-     * Test {@link GridCache#clearAll()} on REPLICATED cache with no split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testReplicatedNoSplit() throws Exception {
-        test(Mode.TEST_REPLICATED, CLEAR_ALL_SPLIT_THRESHOLD / 2);
-    }
-
-    /**
-     * Test {@link GridCache#clearAll()} on REPLICATED cache with split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testReplicatedSplit() throws Exception {
-        test(Mode.TEST_REPLICATED, CLEAR_ALL_SPLIT_THRESHOLD + 1);
-    }
-
-    /**
-     * Internal method for all tests.
-     *
-     * @param mode Test mode
-     * @param keysCnt Keys count.
-     * @throws Exception In case of exception.
-     */
-    private void test(Mode mode, int keysCnt) throws Exception {
-        startUp();
-
-        switch (mode) {
-            case TEST_LOCAL: {
-                // Check on only one node.
-                GridCache<Integer, Integer> cache = cachesLoc[0];
-
-                fillCache(cache, keysCnt);
-
-                cache.clearAll();
-
-                assert cache.isEmpty();
-
-                break;
-            }
-            case TEST_PARTITIONED: {
-                // Take in count special case for near-only cache as well.
-                fillCache(cachesPartitioned[0], keysCnt);
-
-                // Ensure correct no-op clean of CLIENT_ONLY cache.
-                warmCache(cachesPartitioned[2], keysCnt);
-                assert cachesPartitioned[2].isEmpty();
-                cachesPartitioned[2].clearAll();
-                assert cachesPartitioned[2].isEmpty();
-
-                stopGrid(2); // Shutdown Grid in order to remove reader in 
NEAR_PARTITIONED cache.
-
-                // Ensure correct clear of NEA_ONLY cache.
-                warmCache(cachesPartitioned[1], keysCnt);
-                assert !cachesPartitioned[1].isEmpty();
-                cachesPartitioned[1].clearAll();
-                assert cachesPartitioned[1].isEmpty();
-                fillCache(cachesPartitioned[1], keysCnt);
-
-                stopGrid(1); // Shutdown Grid in order to remove reader in 
NEAR_PARTITIONED cache.
-
-                // Ensure correct clear of NEAR_PARTITIONED cache.
-                assert !cachesPartitioned[0].isEmpty();
-                cachesPartitioned[0].clearAll();
-                assert cachesPartitioned[0].isEmpty();
-
-                break;
-            }
-            default: {
-                assert mode == Mode.TEST_COLOCATED || mode == 
Mode.TEST_REPLICATED;
-
-                GridCache<Integer, Integer>[] caches = mode == 
Mode.TEST_COLOCATED ? cachesColocated : cachesReplicated;
-
-                fillCache(caches[0], keysCnt);
-
-                for (GridCache<Integer, Integer> cache : caches) {
-                    assert !cache.isEmpty();
-
-                    cache.clearAll();
-
-                    assert cache.isEmpty();
-                }
-            }
-        }
-    }
-
-    /**
-     * Fill cache with values.
-     *
-     * @param cache Cache.
-     * @param keysCnt Amount of keys to put.
-     * @throws Exception If failed.
-     */
-    private void fillCache(GridCache<Integer, Integer> cache, int keysCnt) 
throws Exception {
-        try (IgniteTx tx = cache.txStart()) {
-            for (int i = 0; i < keysCnt; i++)
-                cache.put(i, i);
-
-            tx.commit();
-        }
-    }
-
-    /**
-     * Warm cache up.
-     *
-     * @param cache Cache.
-     * @param keysCnt Amount of keys to get.
-     * @throws Exception If failed.
-     */
-    private void warmCache(GridCache<Integer, Integer> cache, int keysCnt) 
throws Exception {
-        for (int i = 0; i < keysCnt; i++)
-            cache.get(i);
-    }
-
-    /**
-     * Test mode.
-     */
-    private enum Mode {
-        /** Local cache. */
-        TEST_LOCAL,
-
-        /** Partitioned cache. */
-        TEST_PARTITIONED,
-
-        /** Co-located cache. */
-        TEST_COLOCATED,
-
-        /** Replicated cache. */
-        TEST_REPLICATED
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/968c3cf8/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheColocatedTxStoreExceptionSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheColocatedTxStoreExceptionSelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheColocatedTxStoreExceptionSelfTest.java
deleted file mode 100644
index 052101a..0000000
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheColocatedTxStoreExceptionSelfTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.gridgain.grid.kernal.processors.cache;
-
-import org.apache.ignite.cache.*;
-
-import static org.apache.ignite.cache.GridCacheDistributionMode.*;
-import static org.apache.ignite.cache.GridCacheMode.*;
-
-/**
- *
- */
-public class GridCacheColocatedTxStoreExceptionSelfTest extends 
IgniteTxStoreExceptionAbstractSelfTest {
-    /** {@inheritDoc} */
-    @Override protected GridCacheMode cacheMode() {
-        return PARTITIONED;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected GridCacheDistributionMode distributionMode() {
-        return PARTITIONED_ONLY;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/968c3cf8/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapTest.java
deleted file mode 100644
index f339e6e..0000000
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentMapTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.gridgain.grid.kernal.processors.cache;
-
-import org.apache.ignite.cache.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.testframework.junits.common.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-import static org.apache.ignite.cache.GridCacheMode.*;
-import static org.apache.ignite.cache.GridCacheWriteSynchronizationMode.*;
-
-/**
- * Grid cache concurrent hash map self test.
- */
-public class GridCacheConcurrentMapTest extends GridCommonAbstractTest {
-    /** Random. */
-    private static final Random RAND = new Random();
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        CacheConfiguration cc = defaultCacheConfiguration();
-
-        cc.setCacheMode(LOCAL);
-        cc.setWriteSynchronizationMode(FULL_SYNC);
-
-        cfg.setCacheConfiguration(cc);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void beforeTestsStarted() throws Exception {
-        startGrid(0);
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTestsStopped() throws Exception {
-        stopAllGrids();
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTest() throws Exception {
-        grid(0).cache(null).removeAll();
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testRandomEntry() throws Exception {
-        GridCache<String, String> cache = grid(0).cache(null);
-
-        for (int i = 0; i < 500; i++)
-            cache.put("key" + i, "val" + i);
-
-        for (int i = 0; i < 20; i++) {
-            GridCacheEntry<String, String> entry = cache.randomEntry();
-
-            assert entry != null;
-
-            info("Random entry key: " + entry.getKey());
-        }
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testRandomEntryMultiThreaded() throws Exception {
-        final GridCache<String, String> cache = grid(0).cache(null);
-
-        final AtomicBoolean done = new AtomicBoolean();
-
-        IgniteFuture<?> fut1 = multithreadedAsync(
-            new Callable<Object>() {
-                @Nullable @Override public Object call() throws Exception {
-                    while (!done.get()) {
-                        int i = RAND.nextInt(500);
-
-                        boolean rmv = RAND.nextBoolean();
-
-                        if (rmv)
-                            cache.remove("key" + i);
-                        else
-                            cache.put("key" + i, "val" + i);
-                    }
-
-                    return null;
-                }
-            },
-            3
-        );
-
-        IgniteFuture<?> fut2 = multithreadedAsync(
-            new Callable<Object>() {
-                @Nullable @Override public Object call() throws Exception {
-                    while (!done.get()) {
-                        GridCacheEntry<String, String> entry = 
cache.randomEntry();
-
-                        info("Random entry key: " + (entry != null ? 
entry.getKey() : "N/A"));
-                    }
-
-                    return null;
-                }
-            },
-            1
-        );
-
-        Thread.sleep( 60 * 1000);
-
-        done.set(true);
-
-        fut1.get();
-        fut2.get();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/968c3cf8/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
deleted file mode 100644
index 5c3ea3c..0000000
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConcurrentTxMultiNodeTest.java
+++ /dev/null
@@ -1,857 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.gridgain.grid.kernal.processors.cache;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cache.*;
-import org.apache.ignite.cache.affinity.*;
-import org.apache.ignite.cache.datastructures.*;
-import org.apache.ignite.cache.eviction.lru.*;
-import org.apache.ignite.cache.query.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.compute.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.processors.cache.*;
-import org.apache.ignite.internal.util.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.transactions.*;
-import org.apache.ignite.internal.processors.cache.distributed.dht.*;
-import org.apache.ignite.internal.processors.cache.distributed.near.*;
-import org.apache.ignite.spi.discovery.tcp.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.testframework.junits.common.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.*;
-
-import static org.apache.ignite.cache.GridCacheDistributionMode.*;
-import static org.apache.ignite.cache.GridCacheMode.*;
-import static org.apache.ignite.cache.GridCachePreloadMode.*;
-import static org.apache.ignite.transactions.IgniteTxConcurrency.*;
-import static org.apache.ignite.transactions.IgniteTxIsolation.*;
-import static org.apache.ignite.cache.GridCacheWriteSynchronizationMode.*;
-
-/**
- *
- */
-public class GridCacheConcurrentTxMultiNodeTest extends GridCommonAbstractTest 
{
-    /** IP finder. */
-    private static final TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
-
-    /** Timers. */
-    private static final ConcurrentMap<Thread, ConcurrentMap<String, T5<Long, 
Long, Long, IgniteUuid, Object>>> timers =
-        new ConcurrentHashMap<>();
-
-    /** */
-    private static final long PRINT_FREQ = 10000;
-
-    /** */
-    private static final GridAtomicLong lastPrint = new GridAtomicLong();
-
-    /** */
-    private static final IgnitePredicate<ClusterNode> serverNode = new 
P1<ClusterNode>() {
-        @Override public boolean apply(ClusterNode n) {
-            String gridName = G.ignite(n.id()).name();
-
-            return gridName != null && gridName.contains("server");
-        }
-    };
-
-    /** */
-    private static final IgnitePredicate<ClusterNode> clientNode = new 
P1<ClusterNode>() {
-        @Override public boolean apply(ClusterNode n) {
-            String gridName = G.ignite(n.id()).name();
-
-            return gridName != null && gridName.contains("client");
-        }
-    };
-
-    /** */
-    private GridCacheMode mode = PARTITIONED;
-
-    /** */
-    private boolean cacheOn;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
-        IgniteConfiguration c = super.getConfiguration(gridName);
-
-        c.getTransactionsConfiguration().setDefaultTxConcurrency(PESSIMISTIC);
-        
c.getTransactionsConfiguration().setDefaultTxIsolation(REPEATABLE_READ);
-
-        if (cacheOn) {
-            CacheConfiguration cc = defaultCacheConfiguration();
-
-            cc.setCacheMode(mode);
-            cc.setDistributionMode(PARTITIONED_ONLY);
-            cc.setEvictionPolicy(new GridCacheLruEvictionPolicy(1000));
-            cc.setEvictSynchronized(false);
-            cc.setEvictNearSynchronized(false);
-            cc.setSwapEnabled(false);
-            cc.setWriteSynchronizationMode(FULL_SYNC);
-            cc.setAtomicSequenceReserveSize(100000);
-            cc.setPreloadMode(NONE);
-
-            c.setCacheConfiguration(cc);
-        }
-        else
-            c.setCacheConfiguration();
-
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
-
-        disco.setIpFinder(ipFinder);
-
-        c.setDiscoverySpi(disco);
-
-        c.setPeerClassLoadingEnabled(false);
-
-        // Enable tracing.
-//        
Logger.getLogger("org.gridgain.grid.kernal.processors.cache.GridCacheDgcManager.trace").setLevel(Level.DEBUG);
-
-        return c;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected long getTestTimeout() {
-        return Long.MAX_VALUE;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testEvictions() throws Exception {
-        try {
-            cacheOn = true;
-
-            Ignite srvr1 = startGrid("server1");
-
-            srvr1.cache(null).dataStructures().atomicSequence("ID", 0, true);
-
-            startGrid("server2");
-
-            cacheOn = false;
-
-            // Client processes count.
-            int clientCnt = 8;
-
-            for (int i = 1; i <= clientCnt; i++)
-                startGrid("client" + i);
-
-            Collection<ClusterNode> srvrNodes = 
srvr1.cluster().forPredicate(serverNode).nodes();
-            Collection<ClusterNode> clientNodes = 
srvr1.cluster().forPredicate(clientNode).nodes();
-
-            assert srvrNodes.size() == 2;
-
-            // Threads count per each client process.
-            int threadCnt = 2;
-
-            int srvrMaxNoTerminals = threadCnt / srvrNodes.size();
-
-            if (srvrMaxNoTerminals *  srvrNodes.size() != threadCnt) {
-                threadCnt = srvrMaxNoTerminals * srvrNodes.size();
-
-                info("Using " + threadCnt + " threads instead to ensure equal 
distribution of terminals");
-            }
-
-            Collection<Callable<Object>> clients = new ArrayList<>(threadCnt * 
clientCnt);
-
-            info("No of servers: " + srvrNodes.size());
-            info("No of clients: " + clientNodes.size());
-            info("Thread count: " + threadCnt);
-            info("Max number of terminals / server: " + srvrMaxNoTerminals);
-
-            // Distribute terminals evenly across all servers
-            for (ClusterNode node : srvrNodes) {
-                UUID srvrId = node.id();
-
-                info(">>> Node ID: " + srvrId);
-
-                int terminalsPerSrvr = 0;
-
-                int tid = 0; // Terminal ID.
-
-                while (true) {
-                    String terminalId = String.valueOf(++tid);
-
-                    // Server partition cache
-                    UUID mappedId = srvr1.cluster().mapKeyToNode(null, 
terminalId).id();
-
-                    if (!srvrId.equals(mappedId))
-                        continue;
-
-                    info("Affinity mapping [key=" + terminalId + ", nodeId=" + 
mappedId + ']');
-
-                    for (int i = 1; i <= clientCnt; i++)
-                        clients.add(new Client(G.ignite("client" + i), 
terminalId, srvrId));
-
-                    info("Terminal ID: " + terminalId);
-
-                    terminalsPerSrvr++;
-
-                    if (terminalsPerSrvr == srvrMaxNoTerminals)
-                        break;
-                }
-            }
-
-            displayReqCount();
-
-            ExecutorService pool = 
Executors.newFixedThreadPool(clients.size());
-
-            pool.invokeAll(clients);
-
-            Thread.sleep(Long.MAX_VALUE);
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
-     *
-     */
-    private void displayReqCount() {
-        new Thread(new Runnable() {
-            @SuppressWarnings({"BusyWait", "InfiniteLoopStatement"})
-            @Override public void run() {
-                int interval = 10;
-
-                while (true) {
-                    long cnt0 = Client.txCnt.get();
-                    long lt0 = Client.latency.get();
-
-                    try {
-                        Thread.sleep(interval * 1000);
-                    }
-                    catch (InterruptedException e) {
-                        e.printStackTrace();
-                    }
-
-                    long cnt1 = Client.txCnt.get();
-                    long lt1 = Client.latency.get();
-
-                    info(">>>");
-                    info(">>> Transaction/s: " + (cnt1 - cnt0) / interval);
-                    info(">>> Avg Latency: " + ((cnt1 - cnt0) > 0 ? (lt1 - 
lt0) / (cnt1 - cnt0) + "ms" : "invalid"));
-                    info(">>> Max Submit Time: " + 
Client.submitTime.getAndSet(0));
-
-                    try {
-                        PerfJob.printTimers();
-                    }
-                    catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                }
-            }
-        }).start();
-    }
-
-    /**
-     *
-     */
-    private static class Client implements Callable<Object> {
-        /** */
-        private static AtomicLong txCnt = new AtomicLong();
-
-        /** */
-        private static AtomicLong latency = new AtomicLong();
-
-        /** */
-        private static GridAtomicLong submitTime = new GridAtomicLong();
-
-
-        /** */
-        private Ignite g;
-
-        /** */
-        private String terminalId;
-
-        /** */
-        private UUID nodeId;
-
-        /**
-         * @param g Grid.
-         * @param terminalId Terminal ID.
-         * @param nodeId Node ID.
-         */
-        private Client(Ignite g, String terminalId, UUID nodeId) {
-            this.g = g;
-            this.terminalId = terminalId;
-            this.nodeId = nodeId;
-        }
-
-        /** {@inheritDoc} */
-        @SuppressWarnings({"InfiniteLoopStatement"})
-        @Override public Object call() throws Exception {
-            while (true) {
-                try {
-                    long t0 = System.currentTimeMillis();
-
-                    long submitTime1 = t0;
-
-                    IgniteCompute comp = 
g.compute(g.cluster().forPredicate(serverNode)).enableAsync();
-
-                    comp.execute(RequestTask.class, new Message(terminalId, 
nodeId));
-
-                    ComputeTaskFuture<Void> f1 = comp.future();
-
-                    submitTime.setIfGreater(System.currentTimeMillis() - 
submitTime1);
-
-                    f1.get();
-
-                    submitTime1 = System.currentTimeMillis();
-
-                    comp.execute(ResponseTask.class, new Message(terminalId, 
nodeId));
-
-                    ComputeTaskFuture<Void> f2 = comp.future();
-
-                    submitTime.setIfGreater(System.currentTimeMillis() - 
submitTime1);
-
-                    f2.get();
-
-                    long t1 = System.currentTimeMillis();
-
-                    txCnt.incrementAndGet();
-
-                    latency.addAndGet(t1 - t0);
-                }
-                catch (IgniteCheckedException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-
-
-    /**
-     *
-     */
-    private static class Message implements Serializable {
-        /** */
-        private String terminalId;
-
-        /** */
-        private UUID nodeId;
-
-        /**
-         * @param terminalId Terminal ID.
-         * @param nodeId Node ID.
-         */
-        Message(String terminalId, UUID nodeId) {
-            this.terminalId = terminalId;
-            this.nodeId = nodeId;
-        }
-
-        /**
-         * @return Terminal ID.
-         */
-        String getTerminalId() {
-            return terminalId;
-        }
-
-        /**
-         * @param terminalId Terminal ID.
-         */
-        void setTerminalId(String terminalId) {
-            this.terminalId = terminalId;
-        }
-
-        /**
-         * @return Node ID.
-         */
-        UUID getNodeId() {
-            return nodeId;
-        }
-
-        /**
-         * @param nodeId Node ID.
-         */
-        void setNodeId(UUID nodeId) {
-            this.nodeId = nodeId;
-        }
-    }
-
-    /**
-     *
-     */
-    private static class PerfJob extends ComputeJobAdapter {
-        /** */
-        private static final long MAX = 5000;
-
-        /** */
-        @IgniteInstanceResource
-        private Ignite ignite;
-
-        /**
-         * @param msg Message.
-         */
-        PerfJob(@Nullable Message msg) {
-            super(msg);
-        }
-
-        /**
-         * @return Message.
-         */
-        private Message message() {
-            return argument(0);
-        }
-
-        /**
-         * @return Terminal ID.
-         */
-        @GridCacheAffinityKeyMapped
-        public String terminalId() {
-            return message().getTerminalId();
-        }
-
-        /** {@inheritDoc} */
-        @Override public Object execute() {
-            ClusterNodeLocalMap<String, T2<AtomicLong, AtomicLong>> nodeLoc = 
ignite.cluster().nodeLocalMap();
-
-            T2<AtomicLong, AtomicLong> cntrs = nodeLoc.get("cntrs");
-
-            if (cntrs == null) {
-                T2<AtomicLong, AtomicLong> other = nodeLoc.putIfAbsent("cntrs",
-                    cntrs = new T2<>(new AtomicLong(), new 
AtomicLong(System.currentTimeMillis())));
-
-                if (other != null)
-                    cntrs = other;
-            }
-
-            long cnt = cntrs.get1().incrementAndGet();
-
-            doWork();
-
-            GridNearCacheAdapter near = (GridNearCacheAdapter)((GridKernal) 
ignite).internalCache();
-            GridDhtCacheAdapter dht = near.dht();
-
-            long start = cntrs.get2().get();
-
-            long now = System.currentTimeMillis();
-
-            long dur = now - start;
-
-            if (dur > 20000 && cntrs.get2().compareAndSet(start, 
System.currentTimeMillis())) {
-                cntrs.get1().set(0);
-
-                X.println("Stats [tx/sec=" + (cnt / (dur / 1000)) + ", 
nearSize=" + near.size() +
-                    ", dhtSize=" + dht.size() + ']');
-            }
-
-            return null;
-        }
-
-        /**
-         * @param name Timer name.
-         * @param xid XID.
-         * @param key Key.
-         * @param termId Terminal ID.
-         */
-        private void startTimer(String name, @Nullable IgniteUuid xid, 
@Nullable String key, String termId) {
-            ConcurrentMap<String, T5<Long, Long, Long, IgniteUuid, Object>> m 
= timers.get(Thread.currentThread());
-
-            if (m == null) {
-                ConcurrentMap<String, T5<Long, Long, Long, IgniteUuid, 
Object>> old =
-                    timers.putIfAbsent(Thread.currentThread(),
-                        m = new ConcurrentHashMap<>());
-
-                if (old != null)
-                    m = old;
-            }
-
-            T5<Long, Long, Long, IgniteUuid, Object> t = m.get(name);
-
-            if (t == null) {
-                T5<Long, Long, Long, IgniteUuid, Object> old = 
m.putIfAbsent(name,
-                    t = new T5<>());
-
-                if (old != null)
-                    t = old;
-            }
-
-            t.set1(System.currentTimeMillis());
-            t.set2(0L);
-            t.set4(xid);
-            t.set5(key == null ? null : new GridCacheAffinityKey<String>(key, 
termId) {});
-        }
-
-        /**
-         * @param name Timer name.
-         */
-        private void stopTimer(String name) {
-            ConcurrentMap<String, T5<Long, Long, Long, IgniteUuid, Object>> m 
= timers.get(Thread.currentThread());
-
-            T5<Long, Long, Long, IgniteUuid, Object> t = m.get(name);
-
-            assert t != null;
-
-            long now = System.currentTimeMillis();
-
-            t.set2(now);
-            t.set3(Math.max(t.get3() == null ? 0 : t.get3(), now - t.get1()));
-            t.set4(null);
-            t.set5(null);
-        }
-
-        /**
-         * @throws Exception If failed.
-         */
-        private static void printTimers() throws Exception {
-            //String termId = terminalId();
-
-            long now = System.currentTimeMillis();
-
-            if (lastPrint.get() + PRINT_FREQ < now && 
lastPrint.setIfGreater(now)) {
-                Map<String, Long> maxes = new HashMap<>();
-
-                Set<GridCacheAffinityKey<String>> keys = null;
-
-                for (Map.Entry<Thread, ConcurrentMap<String, T5<Long, Long, 
Long, IgniteUuid, Object>>> e1 : timers.entrySet()) {
-                    for (Map.Entry<String, T5<Long, Long, Long, IgniteUuid, 
Object>> e2 : e1.getValue().entrySet()) {
-                        T5<Long, Long, Long, IgniteUuid, Object> t = 
e2.getValue();
-
-                        long start = t.get1();
-                        long end = t.get2();
-
-                        IgniteUuid xid = t.get4();
-
-                        long duration = end == 0 ? now - start : end - start;
-
-                        long max = t.get3() == null ? duration : t.get3();
-
-                        if (duration < 0)
-                            duration = now - start;
-
-                        if (duration > MAX) {
-                            X.println("Maxed out timer [name=" + e2.getKey() + 
", key=" + t.get5() +
-                                ", duration=" + duration + ", ongoing=" + (end 
== 0) +
-                                ", thread=" + e1.getKey().getName() + ", xid=" 
+ xid + ']');
-
-                            GridCacheAffinityKey<String> key = 
(GridCacheAffinityKey<String>)t.get5();
-
-                            if (key != null) {
-                                if (keys == null)
-                                    keys = new LinkedHashSet<>();
-
-                                keys.add(key);
-                            }
-                        }
-
-                        Long cmax = maxes.get(e2.getKey());
-
-                        if (cmax == null || max > cmax)
-                            maxes.put(e2.getKey(), max);
-
-                        t.set3(null);
-                    }
-                }
-
-                if (!F.isEmpty(keys)) {
-                    for (Ignite g : G.allGrids()) {
-                        if (g.name().contains("server")) {
-                            GridNearCacheAdapter<GridCacheAffinityKey<String>, 
Object> near =
-                                
(GridNearCacheAdapter<GridCacheAffinityKey<String>, Object>)((GridKernal)g).
-                                    <GridCacheAffinityKey<String>, 
Object>internalCache();
-                            GridDhtCacheAdapter<GridCacheAffinityKey<String>, 
Object> dht = near.dht();
-
-                            for (GridCacheAffinityKey<String> k : keys) {
-                                GridNearCacheEntry<?, ?> nearEntry = 
near.peekExx(k);
-                                GridDhtCacheEntry<?, ?> dhtEntry = 
dht.peekExx(k);
-
-                                X.println("Near entry [grid="+ g.name() + ", 
key=" + k + ", entry=" + nearEntry);
-                                X.println("DHT entry [grid=" + g.name() + ", 
key=" + k + ", entry=" + dhtEntry);
-
-                                GridCacheMvccCandidate<?> nearCand =
-                                    nearEntry == null ? null : 
F.first(nearEntry.localCandidates());
-
-                                if (nearCand != null)
-                                    X.println("Near futures: " +
-                                        
nearEntry.context().mvcc().futures(nearCand.version()));
-
-                                GridCacheMvccCandidate<?> dhtCand =
-                                    dhtEntry == null ? null : 
F.first(dhtEntry.localCandidates());
-
-                                if (dhtCand != null)
-                                    X.println("Dht futures: " +
-                                        
dhtEntry.context().mvcc().futures(dhtCand.version()));
-
-                            }
-                        }
-                    }
-                }
-
-                for (Map.Entry<String, Long> e : maxes.entrySet())
-                    X.println("Timer [name=" + e.getKey() + ", maxTime=" + 
e.getValue() + ']');
-
-                X.println(">>>>");
-            }
-        }
-
-        /**
-         *
-         */
-        private void doWork()  {
-            GridCache cache = ignite.cache(null);
-
-            Session ses = new Session(terminalId());
-
-            try {
-                try (IgniteTx tx = cache.txStart()) {
-                    Request req = new Request(getId());
-
-                    req.setMessageId(getId());
-
-                    String key = req.getCacheKey();
-
-                    startTimer("putRequest", tx.xid(), key, terminalId());
-
-                    put(req, key, terminalId());
-
-                    stopTimer("putRequest");
-//
-//                    for (int i = 0; i < 5; i++) {
-//                        Response rsp = new Response(getId());
-//
-//                        startTimer("putResponse-" + i, tx.xid());
-//
-//                        put(rsp, rsp.getCacheKey(), terminalId());
-//
-//                        stopTimer("putResponse-" + i);
-//                    }
-
-                    key = ses.getCacheKey();
-
-                    startTimer("putSession", tx.xid(), key, terminalId());
-
-                    put(ses, key, terminalId());
-
-                    stopTimer("putSession");
-
-                    startTimer("commit", tx.xid(), null, terminalId());
-
-                    tx.commit();
-
-                    stopTimer("commit");
-                }
-            }
-            catch (IgniteCheckedException e) {
-                e.printStackTrace();
-            }
-        }
-
-        /**
-         * @return New ID.
-         * @throws IgniteCheckedException If failed.
-         */
-        private long getId() throws IgniteCheckedException {
-            GridCacheAtomicSequence seq = 
ignite.cache(null).dataStructures().atomicSequence("ID", 0, true);
-            return seq.incrementAndGet();
-        }
-
-        /**
-         * @param msgId Message ID.
-         * @return Request.
-         */
-        private Request findRequestWithMessageId(Long msgId) {
-            GridCacheProjection<Object, Request> cache = 
ignite.cache(null).projection(Object.class, Request.class);
-
-            GridCacheQuery<Map.Entry<Object, Request>> qry = 
cache.queries().createSqlQuery(
-                Request.class, "messageId = ?");
-
-            try {
-                // taking out localNode() doesn't change the eviction timeout 
future
-                // problem
-                Map.Entry<Object, Request> entry =
-                    
F.first(qry.projection(ignite.cluster().forLocal()).execute(msgId).get());
-
-                if (entry == null)
-                    return null;
-
-                return entry.getValue();
-            }
-            catch (IgniteCheckedException e) {
-                e.printStackTrace();
-
-                return null;
-            }
-        }
-
-        /**
-         * @param o Object to put.
-         * @param cacheKey Cache key.
-         * @param terminalId Terminal ID.
-         * @throws IgniteCheckedException If failed.
-         */
-        private void put(Object o, String cacheKey, String terminalId) throws 
IgniteCheckedException {
-            GridCache<GridCacheAffinityKey<String>, Object> cache = 
ignite.cache(null);
-
-            GridCacheAffinityKey<String> affinityKey = new 
GridCacheAffinityKey<>(cacheKey, terminalId);
-
-            GridCacheEntry<GridCacheAffinityKey<String>, Object> entry = 
cache.entry(affinityKey);
-
-            entry.setx(o);
-        }
-
-        /**
-         * @param cacheKey Cache key.
-         * @param terminalId Terminal ID.
-         * @return Cached object.
-         * @throws IgniteCheckedException If failed.
-         */
-        @SuppressWarnings({"RedundantCast"})
-        private <T> Object get(String cacheKey, String terminalId) throws 
IgniteCheckedException {
-            Object key = new GridCacheAffinityKey<>(cacheKey, terminalId);
-
-            return (T) ignite.cache(null).get(key);
-        }
-    }
-
-    /**
-     *
-     */
-    @GridCacheQueryGroupIndex(name = "msg_tx", unique = true)
-    @SuppressWarnings({"UnusedDeclaration"})
-    private static class Request implements Serializable {
-        /** */
-        @GridCacheQuerySqlField(unique = true)
-        private Long id;
-
-        /** */
-        @GridCacheQuerySqlField(name = "messageId")
-        @GridCacheQuerySqlField.Group(name = "msg_tx", order = 3)
-        private long msgId;
-
-        /** */
-        @GridCacheQuerySqlField(name = "transactionId")
-        @GridCacheQuerySqlField.Group(name = "msg_tx", order = 1)
-        private long txId;
-
-        /**
-         * @param id Request ID.
-         */
-        Request(long id) {
-            this.id = id;
-        }
-
-        /**
-         * @param msgId Message ID.
-         */
-        public void setMessageId(long msgId) {
-            this.msgId = msgId;
-        }
-
-        /**
-         * @return Cache key.
-         */
-        public String getCacheKey() {
-            return "RESPONSE:" + id.toString();
-        }
-    }
-
-    /**
-     *
-     */
-    @SuppressWarnings({"UnusedDeclaration"})
-    private static class Response implements Serializable {
-        /** */
-        @GridCacheQuerySqlField(unique = true)
-        private Long id;
-
-        /** */
-        @GridCacheQuerySqlField(name = "messageId")
-        private long msgId;
-
-        /** */
-        @GridCacheQuerySqlField(name = "transactionId")
-        private long txId;
-
-        /**
-         * @param id Response ID.
-         */
-        Response(long id) {
-            this.id = id;
-        }
-
-        /**
-         * @return Cache key.
-         */
-        public String getCacheKey() {
-            return "REQUEST:" + id.toString();
-        }
-    }
-
-    /**
-     *
-     */
-    private static class Session implements Serializable {
-        /** */
-        @GridCacheQuerySqlField(unique = true)
-        private String terminalId;
-
-        /**
-         * @param terminalId Terminal ID.
-         */
-        Session(String terminalId) {
-            this.terminalId = terminalId;
-        }
-
-        /**
-         * @return Cache key.
-         */
-        public String getCacheKey() {
-            return "SESSION:" + terminalId;
-        }
-    }
-
-    /**
-     *
-     */
-    @SuppressWarnings( {"UnusedDeclaration"})
-    private static class ResponseTask extends ComputeTaskSplitAdapter<Message, 
Void> {
-        /** {@inheritDoc} */
-        @Override protected Collection<? extends ComputeJob> split(int arg0, 
Message msg) throws IgniteCheckedException {
-            return Collections.singletonList(new PerfJob(msg));
-        }
-
-        /** {@inheritDoc} */
-        @Nullable @Override public Void reduce(List<ComputeJobResult> results) 
throws IgniteCheckedException {
-            return null;
-        }
-    }
-
-    /**
-     *
-     */
-    private static class RequestTask extends ComputeTaskSplitAdapter<Message, 
Void> {
-        /** {@inheritDoc} */
-        @Override protected Collection<? extends ComputeJob> split(int arg0, 
Message msg) throws IgniteCheckedException {
-            return Collections.singletonList(new PerfJob(msg));
-        }
-
-        /** {@inheritDoc} */
-        @Nullable @Override public Void reduce(List<ComputeJobResult> results) 
throws IgniteCheckedException {
-            return null;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/968c3cf8/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
deleted file mode 100644
index c9abd0b..0000000
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheConfigurationConsistencySelfTest.java
+++ /dev/null
@@ -1,1074 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.gridgain.grid.kernal.processors.cache;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cache.*;
-import org.apache.ignite.cache.affinity.*;
-import org.apache.ignite.cache.affinity.consistenthash.*;
-import org.apache.ignite.cache.affinity.fair.*;
-import org.apache.ignite.cache.cloner.*;
-import org.apache.ignite.cache.eviction.*;
-import org.apache.ignite.cache.eviction.fifo.*;
-import org.apache.ignite.cache.eviction.lru.*;
-import org.apache.ignite.cache.eviction.random.*;
-import org.apache.ignite.cache.store.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.internal.processors.cache.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.spi.discovery.tcp.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.testframework.*;
-import org.apache.ignite.testframework.junits.common.*;
-import org.jetbrains.annotations.*;
-
-import javax.cache.*;
-import javax.cache.configuration.*;
-import javax.cache.integration.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-import static org.apache.ignite.configuration.IgniteDeploymentMode.*;
-import static org.apache.ignite.cache.GridCacheAtomicityMode.*;
-import static org.apache.ignite.cache.GridCacheMode.*;
-import static org.apache.ignite.cache.GridCacheDistributionMode.*;
-import static org.apache.ignite.cache.GridCachePreloadMode.*;
-import static org.apache.ignite.cache.GridCacheWriteSynchronizationMode.*;
-
-/**
- *
- */
-public class GridCacheConfigurationConsistencySelfTest extends 
GridCommonAbstractTest {
-    /** */
-    private boolean cacheEnabled;
-
-    /** */
-    private String cacheName;
-
-    /** */
-    private GridCacheMode cacheMode = REPLICATED;
-
-    /** */
-    private IgniteDeploymentMode depMode = SHARED;
-
-    /** */
-    private C1<CacheConfiguration, Void> initCache;
-
-    /** */
-    private boolean useStrLog;
-
-    /** */
-    private GridStringLogger strLog;
-
-    /** */
-    private GridCacheAffinityFunction aff;
-
-    /** */
-    private int backups;
-
-    /** */
-    private static TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
-
-    /** {@inheritDoc} */
-    @Override protected void afterTest() throws Exception {
-        stopAllGrids();
-    }
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        if (useStrLog) {
-            strLog = new GridStringLogger(false, cfg.getGridLogger());
-            cfg.setGridLogger(strLog);
-        }
-
-        TcpDiscoverySpi disco = new TcpDiscoverySpi();
-
-        disco.setIpFinder(ipFinder);
-
-        cfg.setDiscoverySpi(disco);
-
-        cfg.setDeploymentMode(depMode);
-
-        if (cacheEnabled) {
-            CacheConfiguration cacheCfg = defaultCacheConfiguration();
-
-            cacheCfg.setName(cacheName);
-            cacheCfg.setCacheMode(cacheMode);
-            cacheCfg.setAffinity(aff);
-            cacheCfg.setBackups(backups);
-            cacheCfg.setAtomicityMode(TRANSACTIONAL);
-
-            if (initCache != null)
-                initCache.apply(cacheCfg);
-
-            cfg.setCacheConfiguration(cacheCfg);
-        }
-        else
-            cfg.setCacheConfiguration();
-
-        return cfg;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testCacheUtilsCheckAttributeMismatch() throws Exception {
-        Ignite ignite = startGrid(1);
-
-        final ClusterNode node = ignite.cluster().localNode();
-
-        final GridStringLogger strLog = new GridStringLogger(false, log);
-
-        CU.checkAttributeMismatch(strLog, "cache", node, "cacheMode", "Cache 
mode", LOCAL, PARTITIONED, false);
-
-        assertTrue("No expected message in log: " + strLog.toString(),
-            strLog.toString().contains("Cache mode mismatch"));
-
-        strLog.reset();
-
-        GridTestUtils.assertThrows(log, new Callable<Void>() {
-            /** {@inheritDoc} */
-            @Override public Void call() throws Exception {
-                CU.checkAttributeMismatch(strLog, "cache", node, "cacheMode", 
"Cache mode", LOCAL, PARTITIONED, true);
-                return null;
-            }
-        }, IgniteCheckedException.class, "Cache mode mismatch");
-
-        final CacheConfiguration cfg1 = defaultCacheConfiguration();
-
-        cfg1.setCacheMode(LOCAL);
-
-        final CacheConfiguration cfg2 = defaultCacheConfiguration();
-
-        cfg2.setCacheMode(PARTITIONED);
-
-        CU.checkAttributeMismatch(strLog, cfg1, cfg2, node, new 
T2<>("cacheMode", "Cache mode"), false);
-
-        assertTrue("No expected message in log: " + strLog.toString(),
-            strLog.toString().contains("Cache mode mismatch"));
-
-        GridTestUtils.assertThrows(log, new Callable<Void>() {
-            /** {@inheritDoc} */
-            @Override public Void call() throws Exception {
-                CU.checkAttributeMismatch(strLog, cfg1, cfg2, node, new 
T2<>("cacheMode", "Cache mode"), true);
-                return null;
-            }
-        }, IgniteCheckedException.class, "Cache mode mismatch");
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testNullCacheMode() throws Exception {
-        // Grid with null cache mode.
-        // This is a legal case. The default cache mode should be used.
-        cacheEnabled = true;
-        cacheName = "myCache";
-        cacheMode = null;
-        depMode = SHARED;
-
-        assert startGrid(1).cache("myCache").configuration().getCacheMode() == 
CacheConfiguration.DFLT_CACHE_MODE;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testWithCacheAndWithoutCache() throws Exception {
-        // 1st grid without cache.
-        cacheEnabled = false;
-        depMode = SHARED;
-
-        startGrid(2);
-
-        // 2nd grid with replicated cache on board.
-        cacheEnabled = true;
-        cacheName = "myCache";
-        cacheMode = REPLICATED;
-        depMode = SHARED;
-
-        startGrid(1);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testSameCacheDifferentModes() throws Exception {
-        // 1st grid with replicated cache.
-        cacheEnabled = true;
-        cacheName = "myCache";
-        cacheMode = REPLICATED;
-        depMode = SHARED;
-
-        startGrid(1);
-
-        // 2nd grid with partitioned cache.
-        cacheEnabled = true;
-        cacheName = "myCache";
-        cacheMode = PARTITIONED;
-        depMode = SHARED;
-
-        try {
-            startGrid(2);
-
-            fail();
-        }
-        catch (IgniteCheckedException e) {
-            info("Caught expected exception: " + e);
-        }
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentCacheDifferentModes() throws Exception {
-        // 1st grid with local cache.
-        cacheEnabled = true;
-        cacheName = "local";
-        cacheMode = LOCAL;
-        depMode = SHARED;
-
-        startGrid(1);
-
-        // 2nd grid with replicated cache.
-        cacheEnabled = true;
-        cacheName = "replicated";
-        cacheMode = REPLICATED;
-        depMode = SHARED;
-
-        startGrid(2);
-
-        // 3d grid with partitioned cache.
-        cacheEnabled = true;
-        cacheName = "partitioned";
-        cacheMode = PARTITIONED;
-        depMode = SHARED;
-
-        startGrid(3);
-
-        // 4th grid with null cache mode (legal case, it should turn to 
REPLICATED mode).
-        cacheEnabled = true;
-        cacheName = "replicated";
-        cacheMode = null;
-        depMode = SHARED;
-
-        startGrid(4);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentDeploymentModes() throws Exception {
-        // 1st grid with SHARED mode.
-        cacheEnabled = true;
-        cacheName = "partitioned";
-        cacheMode = PARTITIONED;
-        depMode = SHARED;
-
-        startGrid(1);
-
-        // 2nd grid with CONTINUOUS mode.
-        cacheEnabled = true;
-        cacheName = "partitioned";
-        cacheMode = PARTITIONED;
-        depMode = CONTINUOUS;
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return startGrid(2);
-            }
-        }, IgniteCheckedException.class, null);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentAffinities() throws Exception {
-        cacheMode = PARTITIONED;
-
-        checkSecondGridStartFails(
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setAffinity(new 
GridCacheConsistentHashAffinityFunction() {/*No-op.*/});
-                    return null;
-                }
-            },
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setAffinity(new 
GridCacheConsistentHashAffinityFunction());
-                    return null;
-                }
-            }
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentPreloadModes() throws Exception {
-        checkSecondGridStartFails(
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setPreloadMode(NONE);
-                    return null;
-                }
-            },
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setPreloadMode(ASYNC);
-                    return null;
-                }
-            }
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentEvictionEnabled() throws Exception {
-        checkSecondGridStartFails(
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setEvictionPolicy(new GridCacheFifoEvictionPolicy());
-                    return null;
-                }
-            },
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    return null;
-                }
-            }
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentEvictionPolicies() throws Exception {
-        checkSecondGridStartFails(
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setEvictionPolicy(new GridCacheRandomEvictionPolicy());
-                    return null;
-                }
-            },
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setEvictionPolicy(new GridCacheFifoEvictionPolicy());
-                    return null;
-                }
-            }
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentEvictionFilters() throws Exception {
-        checkSecondGridStartFails(
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setEvictionFilter(new GridCacheEvictionFilter<Object, 
Object>() {
-                        @Override public boolean 
evictAllowed(GridCacheEntry<Object, Object> entry) {
-                            return false;
-                        }
-                    });
-                    return null;
-                }
-            },
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setEvictionFilter(new GridCacheEvictionFilter<Object, 
Object>() {
-                        @Override public boolean 
evictAllowed(GridCacheEntry<Object, Object> entry) {
-                            return true;
-                        }
-                    });
-                    return null;
-                }
-            }
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentAffinityMappers() throws Exception {
-        checkSecondGridStartFails(
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setAffinityMapper(new 
GridCacheDefaultAffinityKeyMapper() {
-                    });
-                    return null;
-                }
-            },
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setAffinityMapper(new 
GridCacheDefaultAffinityKeyMapper());
-                    return null;
-                }
-            }
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentEvictSynchronized() throws Exception {
-        cacheMode = PARTITIONED;
-
-        checkSecondGridStartFails(
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setEvictSynchronized(true);
-                    cfg.setEvictionPolicy(new 
GridCacheFifoEvictionPolicy(100));
-                    return null;
-                }
-            },
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setEvictSynchronized(false);
-                    cfg.setEvictionPolicy(new 
GridCacheFifoEvictionPolicy(100));
-                    return null;
-                }
-            }
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentEvictNearSynchronized() throws Exception {
-        cacheMode = PARTITIONED;
-
-        checkSecondGridStartFails(
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @SuppressWarnings("deprecation")
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setDistributionMode(NEAR_PARTITIONED);
-                    cfg.setEvictNearSynchronized(true);
-                    return null;
-                }
-            },
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @SuppressWarnings("deprecation")
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setDistributionMode(NEAR_PARTITIONED);
-                    cfg.setEvictNearSynchronized(false);
-                    return null;
-                }
-            }
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentAtomicity() throws Exception {
-        cacheMode = PARTITIONED;
-
-        checkSecondGridStartFails(
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setDistributionMode(PARTITIONED_ONLY);
-                    cfg.setAtomicityMode(ATOMIC);
-                    return null;
-                }
-            },
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setDistributionMode(PARTITIONED_ONLY);
-                    cfg.setAtomicityMode(TRANSACTIONAL);
-                    return null;
-                }
-            }
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentSynchronization() throws Exception {
-        cacheMode = PARTITIONED;
-
-        checkSecondGridStartFails(
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setWriteSynchronizationMode(FULL_SYNC);
-                    return null;
-                }
-            },
-            new C1<CacheConfiguration, Void>() {
-                /** {@inheritDoc} */
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setWriteSynchronizationMode(FULL_ASYNC);
-                    return null;
-                }
-            }
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testAttributesError() throws Exception {
-        checkSecondGridStartFails(
-            new C1<CacheConfiguration, Void>() {
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setQueryIndexEnabled(true);
-                    return null;
-                }
-            },
-            new C1<CacheConfiguration, Void>() {
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setQueryIndexEnabled(false);
-                    return null;
-                }
-            }
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testAffinityFunctionConsistency() throws Exception {
-        cacheEnabled = true;
-        cacheMode = PARTITIONED;
-
-        backups = 1;
-
-        aff = new GridCacheConsistentHashAffinityFunction(false, 100);
-
-        startGrid(1);
-
-        // 2nd grid with another affinity.
-        // Check include neighbors.
-        aff = new GridCacheConsistentHashAffinityFunction(true, 100);
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return startGrid(2);
-            }
-        }, IgniteCheckedException.class, "Affinity include neighbors 
mismatch");
-
-        backups = 2;
-
-        // Check backups.
-        aff = new GridCacheConsistentHashAffinityFunction(false, 100);
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return startGrid(2);
-            }
-        }, IgniteCheckedException.class, "Affinity key backups mismatch");
-
-        backups = 1;
-
-        // Partitions count.
-        aff = new GridCacheConsistentHashAffinityFunction(false, 1000);
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return startGrid(2);
-            }
-        }, IgniteCheckedException.class, "Affinity partitions count mismatch");
-
-        // Replicas count.
-        aff = new GridCacheConsistentHashAffinityFunction(false, 100);
-        
((GridCacheConsistentHashAffinityFunction)aff).setDefaultReplicas(1024);
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return startGrid(2);
-            }
-        }, IgniteCheckedException.class, "Affinity replicas mismatch");
-
-        // Replicas count attribute name.
-        aff = new GridCacheConsistentHashAffinityFunction(false, 100);
-        
((GridCacheConsistentHashAffinityFunction)aff).setReplicaCountAttributeName("attr_name");
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return startGrid(2);
-            }
-        }, IgniteCheckedException.class, "Affinity replica count attribute 
name mismatch");
-
-        // Different hash ID resolver.
-        GridCacheConsistentHashAffinityFunction aff0 = new 
GridCacheConsistentHashAffinityFunction(false, 100);
-
-        aff0.setHashIdResolver(new GridCacheAffinityNodeIdHashResolver());
-
-        aff = aff0;
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return startGrid(2);
-            }
-        }, IgniteCheckedException.class, "Partitioned cache affinity hash ID 
resolver class mismatch");
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testAttributesWarnings() throws Exception {
-        cacheEnabled = true;
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            /** {@inheritDoc} */
-            @Override public Void apply(CacheConfiguration cfg) {
-                cfg.setAtomicSequenceReserveSize(1000);
-                cfg.setCloner(new GridCacheCloner() {
-                    @Nullable @Override public <T> T cloneValue(T val) {
-                        return null;
-                    }
-                });
-                cfg.setDefaultLockTimeout(1000);
-                cfg.setDefaultQueryTimeout(1000);
-                cfg.setDefaultTimeToLive(1000);
-                return null;
-            }
-        };
-
-        startGrid(1);
-
-        useStrLog = true;
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            /** {@inheritDoc} */
-            @Override public Void apply(CacheConfiguration cfg) {
-                cfg.setAtomicSequenceReserveSize(2 * 1000);
-                cfg.setCloner(new GridCacheCloner() {
-                    @Nullable @Override public <T> T cloneValue(T val) {
-                        return null;
-                    }
-                });
-                cfg.setDefaultLockTimeout(2 * 1000);
-                cfg.setDefaultQueryTimeout(2 * 1000);
-                cfg.setDefaultTimeToLive(2 * 1000);
-                return null;
-            }
-        };
-
-        startGrid(2);
-
-        String log = strLog.toString();
-
-        assertTrue(log.contains("Atomic sequence reserve size mismatch"));
-        assertTrue(log.contains("Cache cloner mismatch"));
-        assertTrue(log.contains("Default lock timeout"));
-        assertTrue(log.contains("Default query timeout"));
-        assertTrue(log.contains("Default time to live"));
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testPartitionedOnlyAttributesIgnoredForReplicated() throws 
Exception {
-        cacheEnabled = true;
-
-        cacheMode = REPLICATED;
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            @Override public Void apply(CacheConfiguration cfg) {
-                cfg.setEvictNearSynchronized(true);
-                cfg.setNearEvictionPolicy(new GridCacheRandomEvictionPolicy());
-                return null;
-            }
-        };
-
-        startGrid(1);
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            @Override public Void apply(CacheConfiguration cfg) {
-                cfg.setEvictNearSynchronized(false);
-                cfg.setNearEvictionPolicy(new GridCacheFifoEvictionPolicy());
-                return null;
-            }
-        };
-
-        startGrid(2);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testIgnoreMismatchForLocalCaches() throws Exception {
-        cacheEnabled = true;
-
-        cacheMode = LOCAL;
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            /** {@inheritDoc} */
-            @SuppressWarnings("unchecked")
-            @Override public Void apply(CacheConfiguration cfg) {
-                cfg.setAffinity(new GridCacheConsistentHashAffinityFunction() 
{/*No-op.*/});
-
-                cfg.setEvictionPolicy(new GridCacheFifoEvictionPolicy());
-
-                cfg.setCacheStoreFactory(new 
FactoryBuilder.SingletonFactory(new TestStore()));
-                cfg.setReadThrough(true);
-                cfg.setWriteThrough(true);
-                cfg.setLoadPreviousValue(true);
-
-                return null;
-            }
-        };
-
-        startGrid(1);
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            /** {@inheritDoc} */
-            @Override public Void apply(CacheConfiguration cfg) {
-                cfg.setAffinity(new GridCacheConsistentHashAffinityFunction());
-
-                cfg.setEvictionPolicy(new GridCacheLruEvictionPolicy());
-
-                cfg.setCacheStoreFactory(null);
-
-                return null;
-            }
-        };
-
-        startGrid(2);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testIgnoreStoreMismatchForAtomicClientCache() throws Exception 
{
-        cacheEnabled = true;
-
-        cacheMode = PARTITIONED;
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            @SuppressWarnings("unchecked")
-            @Override public Void apply(CacheConfiguration cc) {
-                cc.setAtomicityMode(ATOMIC);
-
-                cc.setDistributionMode(PARTITIONED_ONLY);
-
-                cc.setCacheStoreFactory(new 
FactoryBuilder.SingletonFactory(new TestStore()));
-                cc.setReadThrough(true);
-                cc.setWriteThrough(true);
-                cc.setLoadPreviousValue(true);
-
-                return null;
-            }
-        };
-
-        startGrid(1);
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            @Override public Void apply(CacheConfiguration cc) {
-                cc.setAtomicityMode(ATOMIC);
-                cc.setDistributionMode(CLIENT_ONLY);
-                cc.setCacheStoreFactory(null);
-
-                return null;
-            }
-        };
-
-        startGrid(2);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testStoreCheckAtomic() throws Exception {
-        cacheEnabled = true;
-
-        cacheMode = PARTITIONED;
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            @SuppressWarnings("unchecked")
-            @Override public Void apply(CacheConfiguration cc) {
-                cc.setAtomicityMode(ATOMIC);
-
-                cc.setDistributionMode(PARTITIONED_ONLY);
-
-                cc.setCacheStoreFactory(new 
FactoryBuilder.SingletonFactory(new TestStore()));
-                cc.setReadThrough(true);
-                cc.setWriteThrough(true);
-                cc.setLoadPreviousValue(true);
-
-                return null;
-            }
-        };
-
-        startGrid(1);
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            @Override public Void apply(CacheConfiguration cc) {
-                cc.setAtomicityMode(ATOMIC);
-                cc.setDistributionMode(PARTITIONED_ONLY);
-                cc.setCacheStoreFactory(null);
-
-                return null;
-            }
-        };
-
-        GridTestUtils.assertThrows(log, new IgniteCallable<Object>() {
-            @Override public Object call() throws Exception {
-                startGrid(2);
-
-                return null;
-            }
-        }, IgniteCheckedException.class, null);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testStoreCheckTransactional() throws Exception {
-        cacheEnabled = true;
-
-        cacheMode = PARTITIONED;
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            @SuppressWarnings("unchecked")
-            @Override public Void apply(CacheConfiguration cc) {
-                cc.setAtomicityMode(TRANSACTIONAL);
-
-                cc.setDistributionMode(PARTITIONED_ONLY);
-
-                cc.setCacheStoreFactory(new 
FactoryBuilder.SingletonFactory(new TestStore()));
-                cc.setReadThrough(true);
-                cc.setWriteThrough(true);
-                cc.setLoadPreviousValue(true);
-
-                return null;
-            }
-        };
-
-        startGrid(1);
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            @Override public Void apply(CacheConfiguration cc) {
-                cc.setAtomicityMode(TRANSACTIONAL);
-
-                cc.setDistributionMode(PARTITIONED_ONLY);
-
-                cc.setCacheStoreFactory(null);
-
-                return null;
-            }
-        };
-
-        GridTestUtils.assertThrows(log, new IgniteCallable<Object>() {
-            @Override public Object call() throws Exception {
-                startGrid(2);
-
-                return null;
-            }
-        }, IgniteCheckedException.class, null);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testStoreCheckTransactionalClient() throws Exception {
-        cacheEnabled = true;
-
-        cacheMode = PARTITIONED;
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            @SuppressWarnings("unchecked")
-            @Override public Void apply(CacheConfiguration cc) {
-                cc.setAtomicityMode(TRANSACTIONAL);
-
-                cc.setDistributionMode(PARTITIONED_ONLY);
-
-                cc.setCacheStoreFactory(new 
FactoryBuilder.SingletonFactory(new TestStore()));
-                cc.setReadThrough(true);
-                cc.setWriteThrough(true);
-                cc.setLoadPreviousValue(true);
-
-                return null;
-            }
-        };
-
-        startGrid(1);
-
-        initCache = new C1<CacheConfiguration, Void>() {
-            @Override public Void apply(CacheConfiguration cc) {
-                cc.setAtomicityMode(TRANSACTIONAL);
-
-                cc.setDistributionMode(CLIENT_ONLY);
-
-                cc.setCacheStoreFactory(null);
-
-                return null;
-            }
-        };
-
-        GridTestUtils.assertThrows(log, new IgniteCallable<Object>() {
-            @Override public Object call() throws Exception {
-                startGrid(2);
-
-                return null;
-            }
-        }, IgniteCheckedException.class, null);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testAffinityForReplicatedCache() throws Exception {
-        cacheEnabled = true;
-
-        aff = new GridCachePartitionFairAffinity(); // Check cannot use 
GridCachePartitionFairAffinity.
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return startGrid(1);
-            }
-        }, IgniteCheckedException.class, null);
-
-        aff = new GridCacheConsistentHashAffinityFunction(true); // Check 
cannot set 'excludeNeighbors' flag.
-        backups = Integer.MAX_VALUE;
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return startGrid(1);
-            }
-        }, IgniteCheckedException.class, null);
-
-        aff = new GridCacheConsistentHashAffinityFunction(false, 100);
-
-        startGrid(1);
-
-        // Try to start node with  different number of partitions.
-        aff = new GridCacheConsistentHashAffinityFunction(false, 200);
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return startGrid(2);
-            }
-        }, IgniteCheckedException.class, "Affinity partitions count mismatch");
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void testDifferentInterceptors() throws Exception {
-        cacheMode = PARTITIONED;
-
-        checkSecondGridStartFails(
-            new C1<CacheConfiguration, Void>() {
-                @Override public Void apply(CacheConfiguration cfg) {
-                    cfg.setInterceptor(new GridCacheInterceptorAdapter() 
{/*No-op.*/});
-
-                    return null;
-                }
-            },
-            new C1<CacheConfiguration, Void>() {
-                @Override public Void apply(CacheConfiguration cfg) {
-                    return null;
-                }
-            }
-        );
-    }
-
-    /**
-     * @param initCache1 Closure.
-     * @param initCache2 Closure.
-     * @throws Exception If failed.
-     */
-    private void checkSecondGridStartFails(C1<CacheConfiguration, Void> 
initCache1,
-                                           C1<CacheConfiguration, Void> 
initCache2) throws Exception {
-        cacheEnabled = true;
-
-        initCache = initCache1;
-
-        startGrid(1);
-
-        initCache = initCache2;
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return startGrid(2);
-            }
-        }, IgniteCheckedException.class, null);
-    }
-
-    /** */
-    private static class TestStore extends CacheStore<Object,Object> {
-        /** {@inheritDoc} */
-        @Nullable @Override public Object load(Object key) {
-            return null;
-        }
-
-        /** {@inheritDoc} */
-        @Override public void loadCache(IgniteBiInClosure<Object, Object> clo, 
@Nullable Object... args) {
-            // No-op.
-        }
-
-        /** {@inheritDoc} */
-        @Override public Map<Object, Object> loadAll(Iterable<?> keys) throws 
CacheLoaderException {
-            return Collections.emptyMap();
-        }
-
-        /** {@inheritDoc} */
-        @Override public void write(Cache.Entry<?, ?> entry) {
-            // No-op.
-        }
-
-        /** {@inheritDoc} */
-        @Override public void writeAll(Collection<Cache.Entry<?, ?>> entries) {
-            // No-op.
-        }
-
-        /** {@inheritDoc} */
-        @Override public void delete(Object key) {
-            // No-op.
-        }
-
-        /** {@inheritDoc} */
-        @Override public void deleteAll(Collection<?> keys) {
-            // No-op.
-        }
-
-        /** {@inheritDoc} */
-        @Override public void txEnd(boolean commit) {
-            // No-op.
-        }
-    }
-}

Reply via email to