http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/928aa3d4/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTxLocalEx.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTxLocalEx.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTxLocalEx.java index 63b5a79..8a485b6 100644 --- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTxLocalEx.java +++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTxLocalEx.java @@ -16,6 +16,7 @@ import org.gridgain.grid.kernal.processors.cache.*; import org.gridgain.grid.kernal.processors.cache.dr.*; import org.jetbrains.annotations.*; +import javax.cache.processor.*; import java.util.*; /** @@ -53,6 +54,7 @@ public interface IgniteTxLocalEx<K, V> extends IgniteTxEx<K, V> { @Nullable public IgniteTxEntry<K, V> groupLockEntry(); /** + * @param cacheCtx Cache context. * @param keys Keys to get. * @param cached Cached entry if this method is called from entry wrapper. * Cached entry is passed if and only if there is only one key in collection of keys. @@ -68,6 +70,7 @@ public interface IgniteTxLocalEx<K, V> extends IgniteTxEx<K, V> { IgnitePredicate<GridCacheEntry<K, V>>[] filter); /** + * @param cacheCtx Cache context. * @param map Map to put. * @param retval Flag indicating whether a value should be returned. * @param cached Cached entry, if any. Will be provided only if map has size 1. @@ -84,17 +87,20 @@ public interface IgniteTxLocalEx<K, V> extends IgniteTxEx<K, V> { IgnitePredicate<GridCacheEntry<K, V>>[] filter); /** - * @param map Map to put. + * @param cacheCtx Cache context. + * @param map Entry processors map. + * @param invokeArgs Optional arguments for entry processor. + * @param retval Flag indicating whether a value should be returned. * @return Transform operation future. */ - public IgniteFuture<GridCacheReturn<V>> transformAllAsync( + public <T> IgniteFuture<GridCacheReturn<Map<K, EntryProcessorResult<T>>>> invokeAsync( GridCacheContext<K, V> cacheCtx, - @Nullable Map<? extends K, ? extends IgniteClosure<V, V>> map, boolean retval, - @Nullable GridCacheEntryEx<K, V> cached, - long ttl); + Map<? extends K, EntryProcessor> map, + Object... invokeArgs); /** + * @param cacheCtx Cache context. * @param keys Keys to remove. * @param retval Flag indicating whether a value should be returned. * @param cached Cached entry, if any. Will be provided only if size of keys collection is 1. @@ -109,6 +115,7 @@ public interface IgniteTxLocalEx<K, V> extends IgniteTxEx<K, V> { IgnitePredicate<GridCacheEntry<K, V>>[] filter); /** + * @param cacheCtx Cache context. * @param drMap DR map to put. * @return Future for DR put operation. */ @@ -117,6 +124,7 @@ public interface IgniteTxLocalEx<K, V> extends IgniteTxEx<K, V> { Map<? extends K, GridCacheDrInfo<V>> drMap); /** + * @param cacheCtx Cache context. * @param drMap DR map. * @return Future for asynchronous remove. */ @@ -127,6 +135,7 @@ public interface IgniteTxLocalEx<K, V> extends IgniteTxEx<K, V> { /** * Performs keys locking for affinity-based group lock transactions. * + * @param cacheCtx Cache context. * @param keys Keys to lock. * @return Lock future. */ @@ -147,6 +156,7 @@ public interface IgniteTxLocalEx<K, V> extends IgniteTxEx<K, V> { public boolean finish(boolean commit) throws IgniteCheckedException; /** + * @param cacheCtx Cache context. * @param async if {@code True}, then loading will happen in a separate thread. * @param keys Keys. * @param c Closure.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/928aa3d4/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeAbstractTest.java index 1da627b..8731306 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeAbstractTest.java @@ -10,7 +10,9 @@ package org.apache.ignite.internal.processors.cache; import org.apache.ignite.*; +import org.apache.ignite.transactions.*; import org.gridgain.grid.cache.*; +import org.gridgain.grid.util.typedef.internal.*; import org.gridgain.testframework.*; import org.jetbrains.annotations.*; @@ -19,6 +21,9 @@ import javax.cache.processor.*; import java.util.*; import java.util.concurrent.*; +import static org.apache.ignite.transactions.IgniteTxConcurrency.*; +import static org.apache.ignite.transactions.IgniteTxIsolation.*; +import static org.gridgain.grid.cache.GridCacheAtomicityMode.*; import static org.gridgain.grid.cache.GridCacheMode.*; /** @@ -34,39 +39,86 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT public void testInvoke() throws Exception { // TODO IGNITE41 test with forceTransformBackups. + invoke(null); + + if (atomicityMode() == TRANSACTIONAL) { + invoke(PESSIMISTIC); + + invoke(OPTIMISTIC); + } + } + + /** + * @param txMode Not null transaction concurrency mode if explicit transaction should be started. + * @throws Exception If failed. + */ + private void invoke(@Nullable IgniteTxConcurrency txMode) throws Exception { final IgniteCache<Integer, Integer> cache = jcache(); IncrementProcessor incProcessor = new IncrementProcessor(); for (final Integer key : keys()) { - log.info("Test invoke [key=" + key + ']'); + log.info("Test invoke [key=" + key + ", txMode=" + txMode + ']'); cache.remove(key); + IgniteTx tx = startTx(txMode); + Integer res = cache.invoke(key, incProcessor); + if (tx != null) + tx.commit(); + assertEquals(-1, (int)res); checkValue(key, 1); + tx = startTx(txMode); + res = cache.invoke(key, incProcessor); + if (tx != null) + tx.commit(); + assertEquals(1, (int)res); checkValue(key, 2); + tx = startTx(txMode); + res = cache.invoke(key, incProcessor); + if (tx != null) + tx.commit(); + assertEquals(2, (int)res); checkValue(key, 3); + tx = startTx(txMode); + res = cache.invoke(key, new ArgumentsSumProcessor(), 10, 20, 30); + if (tx != null) + tx.commit(); + assertEquals(3, (int)res); checkValue(key, 63); + tx = startTx(txMode); + + String strRes = cache.invoke(key, new ToStringProcessor()); + + if (tx != null) + tx.commit(); + + assertEquals("63", strRes); + + checkValue(key, 63); + + tx = startTx(txMode); + GridTestUtils.assertThrows(log, new Callable<Void>() { @Override public Void call() throws Exception { cache.invoke(key, new ExceptionProcessor(63)); @@ -75,10 +127,18 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT } }, EntryProcessorException.class, "Test processor exception."); + if (tx != null) + tx.commit(); + checkValue(key, 63); + tx = startTx(txMode); + assertNull(cache.invoke(key, new RemoveProcessor(63))); + if (tx != null) + tx.commit(); + checkValue(key, null); } } @@ -87,13 +147,27 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT * @throws Exception If failed. */ public void testInvokeAll() throws Exception { + invokeAll(null); + + if (atomicityMode() == TRANSACTIONAL) { + invoke(PESSIMISTIC); + + invoke(OPTIMISTIC); + } + } + + /** + * @param txMode Not null transaction concurrency mode if explicit transaction should be started. + * @throws Exception If failed. + */ + private void invokeAll(@Nullable IgniteTxConcurrency txMode) throws Exception { IgniteCache<Integer, Integer> cache = jcache(); - invokeAll(cache, new HashSet<>(primaryKeys(cache, 3, 0))); + invokeAll(cache, new HashSet<>(primaryKeys(cache, 3, 0)), txMode); - invokeAll(cache, new HashSet<>(backupKeys(cache, 3, 0))); + invokeAll(cache, new HashSet<>(backupKeys(cache, 3, 0)), txMode); - invokeAll(cache, new HashSet<>(nearKeys(cache, 3, 0))); + invokeAll(cache, new HashSet<>(nearKeys(cache, 3, 0)), txMode); Set<Integer> keys = new HashSet<>(); @@ -101,29 +175,38 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT keys.addAll(primaryKeys(jcache(1), 3, 0)); keys.addAll(primaryKeys(jcache(2), 3, 0)); - invokeAll(cache, keys); + invokeAll(cache, keys, txMode); keys = new HashSet<>(); for (int i = 0; i < 1000; i++) keys.add(i); - invokeAll(cache, keys); + invokeAll(cache, keys, txMode); } /** * @param cache Cache. * @param keys Keys. + * @param txMode Not null transaction concurrency mode if explicit transaction should be started. + * @throws Exception If failed. */ - private void invokeAll(IgniteCache<Integer, Integer> cache, Set<Integer> keys) { + private void invokeAll(IgniteCache<Integer, Integer> cache, + Set<Integer> keys, + @Nullable IgniteTxConcurrency txMode) throws Exception { cache.removeAll(keys); - log.info("Test invokeAll [keys=" + keys + ']'); + log.info("Test invokeAll [keys=" + keys + ", txMode=" + txMode + ']'); IncrementProcessor incProcessor = new IncrementProcessor(); + IgniteTx tx = startTx(txMode); + Map<Integer, EntryProcessorResult<Integer>> resMap = cache.invokeAll(keys, incProcessor); + if (tx != null) + tx.commit(); + Map<Object, Object> exp = new HashMap<>(); for (Integer key : keys) @@ -134,8 +217,13 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT for (Integer key : keys) checkValue(key, 1); + tx = startTx(txMode); + resMap = cache.invokeAll(keys, incProcessor); + if (tx != null) + tx.commit(); + exp = new HashMap<>(); for (Integer key : keys) @@ -146,8 +234,13 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT for (Integer key : keys) checkValue(key, 2); + tx = startTx(txMode); + resMap = cache.invokeAll(keys, new ArgumentsSumProcessor(), 10, 20, 30); + if (tx != null) + tx.commit(); + for (Integer key : keys) exp.put(key, 3); @@ -156,8 +249,13 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT for (Integer key : keys) checkValue(key, 62); + tx = startTx(txMode); + resMap = cache.invokeAll(keys, new ExceptionProcessor(null)); + if (tx != null) + tx.commit(); + for (Integer key : keys) { final EntryProcessorResult<Integer> res = resMap.get(key); @@ -175,8 +273,13 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT for (Integer key : keys) checkValue(key, 62); + tx = startTx(txMode); + resMap = cache.invokeAll(keys, new RemoveProcessor(null)); + if (tx != null) + tx.commit(); + for (Integer key : keys) { final EntryProcessorResult<Integer> res = resMap.get(key); @@ -237,7 +340,7 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT * @return Test keys. * @throws Exception If failed. */ - private Collection<Integer> keys() throws Exception { + protected Collection<Integer> keys() throws Exception { GridCache<Integer, Object> cache = cache(0); ArrayList<Integer> keys = new ArrayList<>(); @@ -257,6 +360,14 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT } /** + * @param txMode Transaction concurrency mode. + * @return Transaction. + */ + @Nullable private IgniteTx startTx(@Nullable IgniteTxConcurrency txMode) { + return txMode == null ? null : ignite(0).transactions().txStart(txMode, REPEATABLE_READ); + } + + /** * */ private static class ArgumentsSumProcessor implements EntryProcessor<Integer, Integer, Integer> { @@ -284,10 +395,27 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT /** * */ - private static class IncrementProcessor implements EntryProcessor<Integer, Integer, Integer> { + protected static class ToStringProcessor implements EntryProcessor<Integer, Integer, String> { + /** {@inheritDoc} */ + @Override public String process(MutableEntry<Integer, Integer> e, Object... arguments) + throws EntryProcessorException { + return String.valueOf(e.getValue()); + } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(ToStringProcessor.class, this); + } + } + + /** + * + */ + protected static class IncrementProcessor implements EntryProcessor<Integer, Integer, Integer> { /** {@inheritDoc} */ @Override public Integer process(MutableEntry<Integer, Integer> e, Object... arguments) throws EntryProcessorException { + System.out.println(Thread.currentThread() + " compute, old=" + e.getValue()); if (e.exists()) { Integer val = e.getValue(); @@ -307,6 +435,11 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT return -1; } } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(IncrementProcessor.class, this); + } } /** @@ -337,6 +470,11 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT return null; } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(RemoveProcessor.class, this); + } } /** @@ -363,5 +501,10 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT throw new EntryProcessorException("Test processor exception."); } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(ExceptionProcessor.class, this); + } } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/928aa3d4/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTxInvokeTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTxInvokeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTxInvokeTest.java new file mode 100644 index 0000000..aaa2a21 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTxInvokeTest.java @@ -0,0 +1,41 @@ +/* @java.file.header */ + +/* _________ _____ __________________ _____ + * __ ____/___________(_)______ /__ ____/______ ____(_)_______ + * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ + * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / + * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ + */ + +package org.apache.ignite.internal.processors.cache; + +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 IgniteCacheTxInvokeTest extends IgniteCacheInvokeAbstractTest { + /** {@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/928aa3d4/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFullApiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFullApiSelfTest.java index 2ffc327..fd3751c 100644 --- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFullApiSelfTest.java +++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFullApiSelfTest.java @@ -25,6 +25,7 @@ import org.gridgain.testframework.*; import org.jetbrains.annotations.*; import javax.cache.expiry.*; +import javax.cache.processor.*; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; @@ -42,17 +43,29 @@ import static org.gridgain.testframework.GridTestUtils.*; * Full API cache test. */ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstractSelfTest { - /** Increment closure for transform operations. */ - public static final IgniteClosure<Integer,Integer> INCR_CLOS = new IgniteClosure<Integer, Integer>() { - @Override public Integer apply(Integer old) { - return old == null ? 1 : old + 1; + /** Increment processor for invoke operations. */ + public static final EntryProcessor<String, Integer, String> INCR_PROCESSOR = new EntryProcessor<String, Integer, String>() { + @Override public String process(MutableEntry<String, Integer> e, Object... args) { + assertNotNull(e.getKey()); + + Integer old = e.getValue(); + + e.setValue(old == null ? 1 : old + 1); + + return String.valueOf(old); } }; - /** Remove closure for transform operations. */ - public static final IgniteClosure<Integer,Integer> RMV_CLOS = new IgniteClosure<Integer, Integer>() { - @Override public Integer apply(Integer e) { - return null; + /** Increment processor for invoke operations. */ + public static final EntryProcessor<String, Integer, String> RMV_PROCESSOR = new EntryProcessor<String, Integer, String>() { + @Override public String process(MutableEntry<String, Integer> e, Object... args) { + assertNotNull(e.getKey()); + + Integer old = e.getValue(); + + e.remove(); + + return String.valueOf(old); } }; @@ -772,18 +785,17 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract * @throws Exception If failed. */ private void checkTransform(IgniteTxConcurrency concurrency, IgniteTxIsolation isolation) throws Exception { - GridCacheProjection<String, Integer> cache = cache(); + IgniteCache<String, Integer> cache = jcache(); cache.put("key2", 1); cache.put("key3", 3); - - IgniteTx tx = txEnabled() ? cache.txStart(concurrency, isolation) : null; + IgniteTx tx = txEnabled() ? ignite(0).transactions().txStart(concurrency, isolation) : null; try { - cache.transform("key1", INCR_CLOS); - cache.transform("key2", INCR_CLOS); - cache.transform("key3", RMV_CLOS); + assertEquals("null", cache.invoke("key1", INCR_PROCESSOR)); + assertEquals("1", cache.invoke("key2", INCR_PROCESSOR)); + assertEquals("3", cache.invoke("key3", RMV_PROCESSOR)); if (tx != null) tx.commit(); @@ -809,9 +821,9 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract cache.put("key2", 1); cache.put("key3", 3); - cache.transform("key1", INCR_CLOS); - cache.transform("key2", INCR_CLOS); - cache.transform("key3", RMV_CLOS); + assertEquals("null", cache.invoke("key1", INCR_PROCESSOR)); + assertEquals("1", cache.invoke("key2", INCR_PROCESSOR)); + assertEquals("3", cache.invoke("key3", RMV_PROCESSOR)); assertEquals((Integer)1, cache.get("key1")); assertEquals((Integer)2, cache.get("key2")); @@ -856,25 +868,32 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract */ private void checkTransformAll(IgniteTxConcurrency concurrency, IgniteTxIsolation isolation) throws Exception { - GridCacheProjection<String, Integer> cache = cache(); + final IgniteCache<String, Integer> cache = jcache(); cache.put("key2", 1); cache.put("key3", 3); if (txEnabled()) { - CU.inTx(cache, concurrency, isolation, new CIX1<GridCacheProjection<String, Integer>>() { - @Override - public void applyx(GridCacheProjection<String, Integer> c) throws IgniteCheckedException { - c.transformAll(F.asSet("key1", "key2", "key3"), INCR_CLOS); - } - }); + Map<String, EntryProcessorResult<String>> res; + + try (IgniteTx tx = ignite(0).transactions().txStart(concurrency, isolation)) { + res = cache.invokeAll(F.asSet("key1", "key2", "key3"), INCR_PROCESSOR); + + tx.commit(); + } assertEquals((Integer)1, cache.get("key1")); assertEquals((Integer)2, cache.get("key2")); assertEquals((Integer)4, cache.get("key3")); + + assertEquals("null", res.get("key1").get()); + assertEquals("1", res.get("key2").get()); + assertEquals("3", res.get("key3").get()); + + assertEquals(3, res.size()); } - cache.transformAll(F.asSet("key1", "key2", "key3"), RMV_CLOS); + Map<String, EntryProcessorResult<String>> res = cache.invokeAll(F.asSet("key1", "key2", "key3"), RMV_PROCESSOR); for (int i = 0; i < gridCount(); i++) { assertNull(cache(i).peek("key1")); @@ -882,15 +901,27 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract assertNull(cache(i).peek("key3")); } + assertEquals("1", res.get("key1").get()); + assertEquals("2", res.get("key2").get()); + assertEquals("4", res.get("key3").get()); + + assertEquals(3, res.size()); + cache.remove("key1"); cache.put("key2", 1); cache.put("key3", 3); - cache.transformAll(F.asMap("key1", INCR_CLOS, "key2", INCR_CLOS, "key3", INCR_CLOS)); + res = cache.invokeAll(F.asSet("key1", "key2", "key3"), INCR_PROCESSOR); assertEquals((Integer)1, cache.get("key1")); assertEquals((Integer)2, cache.get("key2")); assertEquals((Integer)4, cache.get("key3")); + + assertEquals("null", res.get("key1").get()); + assertEquals("1", res.get("key2").get()); + assertEquals("3", res.get("key3").get()); + + assertEquals(3, res.size()); } /** @@ -915,8 +946,8 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract { Map<String, IgniteClosure<Integer, Integer>> tm = new HashMap<>(2); - tm.put("key1", INCR_CLOS); - tm.put(null, INCR_CLOS); + tm.put("key1", INCR_PROCESSOR); + tm.put(null, INCR_PROCESSOR); // WARN: F.asMap() doesn't work here, because it will throw NPE. @@ -926,7 +957,7 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract { Map<String, IgniteClosure<Integer, Integer>> tm = new HashMap<>(2); - tm.put("key1", INCR_CLOS); + tm.put("key1", INCR_PROCESSOR); tm.put("key2", null); // WARN: F.asMap() doesn't work here, because it will throw NPE. @@ -934,7 +965,7 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract cache.transformAll(tm); } - cache.transformAll(null, INCR_CLOS); // This should be no-op. + cache.transformAll(null, INCR_PROCESSOR); // This should be no-op. { Set<String> ts = new HashSet<>(3); @@ -944,7 +975,7 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract // WARN: F.asSet() doesn't work here, because it will throw NPE. - cache.transformAll(ts, INCR_CLOS); + cache.transformAll(ts, INCR_PROCESSOR); } } @@ -991,9 +1022,9 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract if (startVal) cache.put("key", 2); - cache.transform("key", INCR_CLOS); - cache.transform("key", INCR_CLOS); - cache.transform("key", INCR_CLOS); + cache.transform("key", INCR_PROCESSOR); + cache.transform("key", INCR_PROCESSOR); + cache.transform("key", INCR_PROCESSOR); if (tx != null) tx.commit(); @@ -1041,9 +1072,9 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract try { cache.remove("key"); - cache.transform("key", INCR_CLOS); - cache.transform("key", INCR_CLOS); - cache.transform("key", INCR_CLOS); + cache.transform("key", INCR_PROCESSOR); + cache.transform("key", INCR_PROCESSOR); + cache.transform("key", INCR_PROCESSOR); if (tx != null) tx.commit(); @@ -1110,7 +1141,7 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract if (put) cache.put("key", 1); - cache.transform("key", INCR_CLOS); + cache.transform("key", INCR_PROCESSOR); assertEquals((Integer)2, cache.get("key")); @@ -1190,7 +1221,7 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract assertEquals((Integer)1, entry.getValue()); - entry.transform(INCR_CLOS); + entry.transform(INCR_PROCESSOR); assertEquals((Integer)2, entry.getValue()); } @@ -1204,9 +1235,9 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract cache.put("key2", 1); cache.put("key3", 3); - IgniteFuture<?> fut0 = cache.transformAsync("key1", INCR_CLOS); - IgniteFuture<?> fut1 = cache.transformAsync("key2", INCR_CLOS); - IgniteFuture<?> fut2 = cache.transformAsync("key3", RMV_CLOS); + IgniteFuture<?> fut0 = cache.transformAsync("key1", INCR_PROCESSOR); + IgniteFuture<?> fut1 = cache.transformAsync("key2", INCR_PROCESSOR); + IgniteFuture<?> fut2 = cache.transformAsync("key3", RMV_PROCESSOR); fut0.get(); fut1.get(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/928aa3d4/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java index 314df0b..b4cd689 100644 --- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java +++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractSelfTest.java @@ -348,6 +348,21 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest { } /** + * @return Default cache instance. + */ + protected IgniteCache<String, Integer> jcache() { + return jcache(0); + } + + /** + * @param idx Index of grid. + * @return Default cache. + */ + protected IgniteCache<String, Integer> jcache(int idx) { + return ignite(idx).jcache(null); + } + + /** * @param idx Index of grid. * @return Cache context. */