# ignite-42
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f4da39a5 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f4da39a5 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f4da39a5 Branch: refs/heads/ignite-32 Commit: f4da39a5b48a46d24417238565a737dc84722e09 Parents: ed72ac1 Author: sboikov <sboi...@gridgain.com> Authored: Wed Jan 21 14:18:42 2015 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Wed Jan 21 14:21:13 2015 +0300 ---------------------------------------------------------------------- .../transactions/IgniteTxLocalAdapter.java | 14 + .../IgniteCacheEntryListenerAbstractTest.java | 2 +- ...IgniteCacheAtomicLocalNoReadThroughTest.java | 49 ++++ ...CacheAtomicNearEnabledNoReadThroughTest.java | 32 +++ .../IgniteCacheAtomicNoReadThroughTest.java | 35 ++- .../IgniteCacheNoReadThroughAbstractTest.java | 272 ++++++++++++++++++- .../IgniteCacheTxLocalNoReadThroughTest.java | 49 ++++ ...niteCacheTxNearEnabledNoReadThroughTest.java | 32 +++ .../IgniteCacheTxNoReadThroughTest.java | 49 ++++ .../bamboo/GridDataGridTestSuite.java | 7 + 10 files changed, 536 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f4da39a5/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTxLocalAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTxLocalAdapter.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTxLocalAdapter.java index 11cd1af..06ee6b0 100644 --- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTxLocalAdapter.java +++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTxLocalAdapter.java @@ -312,6 +312,13 @@ public abstract class IgniteTxLocalAdapter<K, V> extends IgniteTxAdapter<K, V> ) { if (!async) { try { + if (!cacheCtx.readThrough()) { + for (K key : keys) + c.apply(key, null); + + return new GridFinishedFuture<>(cctx.kernalContext(), false); + } + return new GridFinishedFuture<>(cctx.kernalContext(), cacheCtx.store().loadAllFromStore(this, keys, c)); } @@ -323,6 +330,13 @@ public abstract class IgniteTxLocalAdapter<K, V> extends IgniteTxAdapter<K, V> return cctx.kernalContext().closure().callLocalSafe( new GPC<Boolean>() { @Override public Boolean call() throws Exception { + if (!cacheCtx.readThrough()) { + for (K key : keys) + c.apply(key, null); + + return false; + } + return cacheCtx.store().loadAllFromStore(IgniteTxLocalAdapter.this, keys, c); } }, http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f4da39a5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryListenerAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryListenerAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryListenerAbstractTest.java index f8927ad..7d3e2c9 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryListenerAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheEntryListenerAbstractTest.java @@ -842,7 +842,7 @@ public abstract class IgniteCacheEntryListenerAbstractTest extends IgniteCacheAb } /** - * @return Value for configuration property {@link GridCacheConfiguration#isEagerTtl()}. + * @return Value for configuration property {@link CacheConfiguration#isEagerTtl()}. */ protected boolean eagerTtl() { return true; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f4da39a5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicLocalNoReadThroughTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicLocalNoReadThroughTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicLocalNoReadThroughTest.java new file mode 100644 index 0000000..2a87d10 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicLocalNoReadThroughTest.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.integration; + +import org.gridgain.grid.cache.*; + +import static org.gridgain.grid.cache.GridCacheAtomicityMode.*; +import static org.gridgain.grid.cache.GridCacheDistributionMode.*; +import static org.gridgain.grid.cache.GridCacheMode.*; + +/** + * + */ +public class IgniteCacheAtomicLocalNoReadThroughTest extends IgniteCacheNoReadThroughAbstractTest { + /** {@inheritDoc} */ + @Override protected int gridCount() { + return 1; + } + + /** {@inheritDoc} */ + @Override protected GridCacheMode cacheMode() { + return LOCAL; + } + + /** {@inheritDoc} */ + @Override protected GridCacheAtomicityMode atomicityMode() { + return ATOMIC; + } + + /** {@inheritDoc} */ + @Override protected GridCacheDistributionMode distributionMode() { + return PARTITIONED_ONLY; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f4da39a5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicNearEnabledNoReadThroughTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicNearEnabledNoReadThroughTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicNearEnabledNoReadThroughTest.java new file mode 100644 index 0000000..04bffe8 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicNearEnabledNoReadThroughTest.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.integration; + +import org.gridgain.grid.cache.*; + +import static org.gridgain.grid.cache.GridCacheDistributionMode.*; + +/** + * + */ +public class IgniteCacheAtomicNearEnabledNoReadThroughTest extends IgniteCacheAtomicNoReadThroughTest { + /** {@inheritDoc} */ + @Override protected GridCacheDistributionMode distributionMode() { + return NEAR_PARTITIONED; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f4da39a5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicNoReadThroughTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicNoReadThroughTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicNoReadThroughTest.java index bd6bef4..11811d4 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicNoReadThroughTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheAtomicNoReadThroughTest.java @@ -17,8 +17,39 @@ package org.apache.ignite.internal.processors.cache.integration; +import org.gridgain.grid.cache.*; + +import static org.gridgain.grid.cache.GridCacheAtomicWriteOrderMode.*; +import static org.gridgain.grid.cache.GridCacheAtomicityMode.*; +import static org.gridgain.grid.cache.GridCacheDistributionMode.*; +import static org.gridgain.grid.cache.GridCacheMode.*; + /** - * TODO + * */ -public class IgniteCacheAtomicNoReadThroughTest { +public class IgniteCacheAtomicNoReadThroughTest extends IgniteCacheNoReadThroughAbstractTest { + /** {@inheritDoc} */ + @Override protected int gridCount() { + return 3; + } + + /** {@inheritDoc} */ + @Override protected GridCacheMode cacheMode() { + return PARTITIONED; + } + + /** {@inheritDoc} */ + @Override protected GridCacheAtomicityMode atomicityMode() { + return ATOMIC; + } + + /** {@inheritDoc} */ + @Override protected GridCacheDistributionMode distributionMode() { + return PARTITIONED_ONLY; + } + + /** {@inheritDoc} */ + @Override protected GridCacheAtomicWriteOrderMode atomicWriteOrderMode() { + return PRIMARY; + } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f4da39a5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheNoReadThroughAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheNoReadThroughAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheNoReadThroughAbstractTest.java index 0284b26..7087934 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheNoReadThroughAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheNoReadThroughAbstractTest.java @@ -17,8 +17,276 @@ package org.apache.ignite.internal.processors.cache.integration; +import org.apache.ignite.*; +import org.apache.ignite.cache.*; +import org.apache.ignite.cache.store.*; +import org.apache.ignite.configuration.*; +import org.apache.ignite.internal.processors.cache.*; +import org.apache.ignite.lang.*; +import org.apache.ignite.transactions.*; +import org.gridgain.grid.cache.*; +import org.gridgain.grid.util.typedef.*; + +import javax.cache.integration.*; +import javax.cache.processor.*; +import java.util.*; + +import static org.gridgain.grid.cache.GridCacheAtomicityMode.*; +import static org.gridgain.grid.cache.GridCacheMode.*; + /** - * TODO + * */ -public class IgniteCacheNoReadThroughAbstractTest { +public abstract class IgniteCacheNoReadThroughAbstractTest extends IgniteCacheAbstractTest { + /** */ + private Integer lastKey = 0; + + /** */ + private boolean allowLoad; + + /** {@inheritDoc} */ + @Override protected CacheStore<?, ?> cacheStore() { + return new TestStore() { + @Override public void loadCache(IgniteBiInClosure<Object, Object> clo, Object... args) { + if (!allowLoad) + fail(); + + super.loadCache(clo, args); + } + + @Override public Object load(Object key) { + if (!allowLoad) + fail(); + + return super.load(key); + } + + @Override public Map<Object, Object> loadAll(Iterable<?> keys) { + if (!allowLoad) + fail(); + + return super.loadAll(keys); + } + }; + } + + /** {@inheritDoc} */ + @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { + IgniteConfiguration cfg = super.getConfiguration(gridName); + + cfg.getTransactionsConfiguration().setTxSerializableEnabled(true); + + return cfg; + } + + /** {@inheritDoc} */ + @Override protected CacheConfiguration cacheConfiguration(String gridName) throws Exception { + CacheConfiguration ccfg = super.cacheConfiguration(gridName); + + ccfg.setReadThrough(false); + + ccfg.setWriteThrough(true); + + return ccfg; + } + + /** + * @throws Exception If failed. + */ + public void testNoReadThrough() throws Exception { + IgniteCache<Integer, Integer> cache = jcache(0); + + for (Integer key : keys()) { + log.info("Test [key=" + key + ']'); + + storeMap.put(key, key); + + assertNull(cache.get(key)); + + assertEquals(key, storeMap.get(key)); + + assertNull(cache.getAndPut(key, -1)); + + assertEquals(-1, storeMap.get(key)); + + cache.remove(key); + + assertNull(storeMap.get(key)); + + storeMap.put(key, key); + + assertTrue(cache.putIfAbsent(key, -1)); + + assertEquals(-1, storeMap.get(key)); + + cache.remove(key); + + assertNull(storeMap.get(key)); + + storeMap.put(key, key); + + assertNull(cache.getAndRemove(key)); + + assertNull(storeMap.get(key)); + + storeMap.put(key, key); + + assertNull(cache.getAndPutIfAbsent(key, -1)); + + assertEquals(-1, storeMap.get(key)); + + cache.remove(key); + + assertNull(storeMap.get(key)); + + storeMap.put(key, key); + + Object ret = cache.invoke(key, new EntryProcessor<Integer, Integer, Object>() { + @Override public Object process(MutableEntry<Integer, Integer> e, Object... args) { + Integer val = e.getValue(); + + assertFalse(e.exists()); + + assertNull(val); + + e.setValue(-1); + + return String.valueOf(val); + } + }); + + assertEquals("null", ret); + + assertEquals(-1, storeMap.get(key)); + + cache.remove(key); + + assertNull(storeMap.get(key)); + + storeMap.put(key, key); + + assertFalse(cache.replace(key, -1)); + + assertEquals(key, storeMap.get(key)); + + assertNull(cache.getAndReplace(key, -1)); + + assertEquals(key, storeMap.get(key)); + + assertFalse(cache.replace(key, key, -1)); + + assertEquals(key, storeMap.get(key)); + } + + Set<Integer> keys = new HashSet<>(); + + for (int i = 1000_0000; i < 1000_0000 + 1000; i++) { + keys.add(i); + + storeMap.put(i, i); + } + + assertTrue(cache.getAll(keys).isEmpty()); + + if (atomicityMode() == TRANSACTIONAL) { + for (IgniteTxConcurrency concurrency : IgniteTxConcurrency.values()) { + for (IgniteTxIsolation isolation : IgniteTxIsolation.values()) { + for (Integer key : keys()) { + log.info("Test tx [key=" + key + + ", concurrency=" + concurrency + + ", isolation=" + isolation + ']'); + + storeMap.put(key, key); + + try (IgniteTx tx = ignite(0).transactions().txStart(concurrency, isolation)) { + assertNull(cache.get(key)); + + tx.commit(); + } + + assertEquals(key, storeMap.get(key)); + + try (IgniteTx tx = ignite(0).transactions().txStart(concurrency, isolation)) { + assertNull(cache.getAndPut(key, -1)); + + tx.commit(); + } + + assertEquals(-1, storeMap.get(key)); + + cache.remove(key); + + assertNull(storeMap.get(key)); + + storeMap.put(key, key); + + try (IgniteTx tx = ignite(0).transactions().txStart(concurrency, isolation)) { + assertTrue(cache.putIfAbsent(key, -1)); + + tx.commit(); + } + + assertEquals(-1, storeMap.get(key)); + + try (IgniteTx tx = ignite(0).transactions().txStart(concurrency, isolation)) { + assertTrue(cache.getAll(keys).isEmpty()); + + tx.commit(); + } + } + } + } + } + + // Check + + allowLoad = true; + + Integer key = 1; + + cache.remove(key); + + storeMap.clear(); + + storeMap.put(key, 10); + + cache.loadCache(null); + + assertEquals(10, (int)cache.get(key)); + + cache.remove(key); + + storeMap.put(key, 11); + + CompletionListenerFuture fut = new CompletionListenerFuture(); + + cache.loadAll(F.asSet(key), true, fut); + + fut.get(); + + assertEquals(11, (int)cache.get(key)); + } + + /** + * @return Test keys. + * @throws Exception If failed. + */ + protected Collection<Integer> keys() throws Exception { + GridCache<Integer, Object> cache = cache(0); + + ArrayList<Integer> keys = new ArrayList<>(); + + keys.add(primaryKeys(cache, 1, lastKey).get(0)); + + if (gridCount() > 1) { + keys.add(backupKeys(cache, 1, lastKey).get(0)); + + if (cache.configuration().getCacheMode() != REPLICATED) + keys.add(nearKeys(cache, 1, lastKey).get(0)); + } + + lastKey = Collections.max(keys) + 1; + + return keys; + } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f4da39a5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoReadThroughTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoReadThroughTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoReadThroughTest.java new file mode 100644 index 0000000..d56854d --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoReadThroughTest.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.integration; + +import org.gridgain.grid.cache.*; + +import static org.gridgain.grid.cache.GridCacheAtomicityMode.*; +import static org.gridgain.grid.cache.GridCacheDistributionMode.*; +import static org.gridgain.grid.cache.GridCacheMode.*; + +/** + * + */ +public class IgniteCacheTxLocalNoReadThroughTest extends IgniteCacheNoReadThroughAbstractTest { + /** {@inheritDoc} */ + @Override protected int gridCount() { + return 1; + } + + /** {@inheritDoc} */ + @Override protected GridCacheMode cacheMode() { + return LOCAL; + } + + /** {@inheritDoc} */ + @Override protected GridCacheAtomicityMode atomicityMode() { + return TRANSACTIONAL; + } + + /** {@inheritDoc} */ + @Override protected GridCacheDistributionMode distributionMode() { + return PARTITIONED_ONLY; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f4da39a5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoReadThroughTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoReadThroughTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoReadThroughTest.java new file mode 100644 index 0000000..b4fd3db --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoReadThroughTest.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.integration; + +import org.gridgain.grid.cache.*; + +import static org.gridgain.grid.cache.GridCacheDistributionMode.*; + +/** + * + */ +public class IgniteCacheTxNearEnabledNoReadThroughTest extends IgniteCacheTxNoReadThroughTest { + /** {@inheritDoc} */ + @Override protected GridCacheDistributionMode distributionMode() { + return NEAR_PARTITIONED; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f4da39a5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoReadThroughTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoReadThroughTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoReadThroughTest.java new file mode 100644 index 0000000..f936449 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoReadThroughTest.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.integration; + +import org.gridgain.grid.cache.*; + +import static org.gridgain.grid.cache.GridCacheAtomicityMode.*; +import static org.gridgain.grid.cache.GridCacheDistributionMode.*; +import static org.gridgain.grid.cache.GridCacheMode.*; + +/** + * + */ +public class IgniteCacheTxNoReadThroughTest extends IgniteCacheNoReadThroughAbstractTest { + /** {@inheritDoc} */ + @Override protected int gridCount() { + return 3; + } + + /** {@inheritDoc} */ + @Override protected GridCacheMode cacheMode() { + return PARTITIONED; + } + + /** {@inheritDoc} */ + @Override protected GridCacheAtomicityMode atomicityMode() { + return TRANSACTIONAL; + } + + /** {@inheritDoc} */ + @Override protected GridCacheDistributionMode distributionMode() { + return PARTITIONED_ONLY; + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f4da39a5/modules/core/src/test/java/org/gridgain/testsuites/bamboo/GridDataGridTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/testsuites/bamboo/GridDataGridTestSuite.java b/modules/core/src/test/java/org/gridgain/testsuites/bamboo/GridDataGridTestSuite.java index a8f2243..31d7449 100644 --- a/modules/core/src/test/java/org/gridgain/testsuites/bamboo/GridDataGridTestSuite.java +++ b/modules/core/src/test/java/org/gridgain/testsuites/bamboo/GridDataGridTestSuite.java @@ -346,6 +346,13 @@ public class GridDataGridTestSuite extends TestSuite { suite.addTestSuite(IgniteCacheAtomicStoreSessionTest.class); suite.addTestSuite(IgniteCacheTxStoreSessionTest.class); + suite.addTestSuite(IgniteCacheAtomicNoReadThroughTest.class); + suite.addTestSuite(IgniteCacheAtomicNearEnabledNoReadThroughTest.class); + suite.addTestSuite(IgniteCacheAtomicLocalNoReadThroughTest.class); + suite.addTestSuite(IgniteCacheTxNoReadThroughTest.class); + suite.addTestSuite(IgniteCacheTxNearEnabledNoReadThroughTest.class); + suite.addTestSuite(IgniteCacheTxLocalNoReadThroughTest.class); + return suite; } }