# sprint-2 added localRemoveAll for SpringCache

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

Branch: refs/heads/ignite-281
Commit: 29852495e6ebeceb2321197843c2afd6df872007
Parents: 28584e7
Author: sboikov <sboi...@gridgain.com>
Authored: Thu Feb 19 09:48:49 2015 +0300
Committer: sboikov <sboi...@gridgain.com>
Committed: Thu Feb 19 09:48:49 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/CacheProjection.java       |  5 ++++
 .../processors/cache/GridCacheAdapter.java      | 25 ++++++++++++++++++++
 .../cache/GridCacheProjectionImpl.java          |  5 ++++
 .../processors/cache/GridCacheProxyImpl.java    | 12 ++++++++++
 .../dht/atomic/GridDhtAtomicCache.java          | 10 ++++++++
 .../distributed/near/GridNearAtomicCache.java   | 10 ++++++++
 .../apache/ignite/cache/spring/SpringCache.java |  2 +-
 7 files changed, 68 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/29852495/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheProjection.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheProjection.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheProjection.java
index 950043b..74dfebd 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheProjection.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheProjection.java
@@ -1626,6 +1626,11 @@ public interface CacheProjection<K, V> extends 
Iterable<Cache.Entry<K, V>> {
     public IgniteInternalFuture<?> removeAllAsync();
 
     /**
+     * @throws IgniteCheckedException If failed.
+     */
+    public void localRemoveAll() throws IgniteCheckedException;
+
+    /**
      * Synchronously acquires lock on a cached object with given
      * key only if the passed in filter (if any) passes. This method
      * together with filter check will be executed as one atomic operation.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/29852495/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 1e3105a..808c62f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -3636,6 +3636,31 @@ public abstract class GridCacheAdapter<K, V> implements 
GridCache<K, V>,
         return fut;
     }
 
+    /**
+     * @param filter Filter.
+     * @return Future.
+     */
+    public IgniteInternalFuture<?> localRemoveAll(final 
IgnitePredicate<Cache.Entry<K, V>> filter) {
+        ctx.denyOnLocalRead();
+
+        final Set<? extends K> keys = filter != null ? keySet(filter) : 
keySet();
+
+        return asyncOp(new AsyncInOp(keys) {
+            @Override public IgniteInternalFuture<?> 
inOp(IgniteTxLocalAdapter<K, V> tx) {
+                return tx.removeAllAsync(ctx, keys, null, false, null);
+            }
+
+            @Override public String toString() {
+                return "removeAllAsync [filter=" + filter + ']';
+            }
+        });
+    }
+
+    /** {@inheritDoc} */
+    @Override public void localRemoveAll() throws IgniteCheckedException {
+        localRemoveAll(null);
+    }
+
     /** {@inheritDoc} */
     @Override public CacheMetrics metrics() {
         return new CacheMetricsSnapshot(metrics);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/29852495/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProjectionImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProjectionImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProjectionImpl.java
index f759b12..aa47d48 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProjectionImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProjectionImpl.java
@@ -1227,6 +1227,11 @@ public class GridCacheProjectionImpl<K, V> implements 
GridCacheProjectionEx<K, V
     }
 
     /** {@inheritDoc} */
+    @Override public void localRemoveAll() throws IgniteCheckedException {
+        cache.localRemoveAll(predicate());
+    }
+
+    /** {@inheritDoc} */
     @Override public boolean lock(K key, long timeout,
         @Nullable IgnitePredicate<Cache.Entry<K, V>>... filter) throws 
IgniteCheckedException {
         return cache.lock(key, timeout, and(filter, false));

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/29852495/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
index 429bfde..55a9daf 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
@@ -1640,6 +1640,18 @@ public class GridCacheProxyImpl<K, V> implements 
GridCacheProxy<K, V>, Externali
     }
 
     /** {@inheritDoc} */
+    @Override public void localRemoveAll() throws IgniteCheckedException {
+        GridCacheProjectionImpl<K, V> prev = gate.enter(prj);
+
+        try {
+            delegate.localRemoveAll();
+        }
+        finally {
+            gate.leave(prev);
+        }
+    }
+
+    /** {@inheritDoc} */
     @Override public boolean lock(K key, long timeout, @Nullable 
IgnitePredicate<Cache.Entry<K, V>>[] filter)
         throws IgniteCheckedException {
         GridCacheProjectionImpl<K, V> prev = gate.enter(prj);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/29852495/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index d422411..c408394 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@ -545,6 +545,16 @@ public class GridDhtAtomicCache<K, V> extends 
GridDhtCacheAdapter<K, V> {
     }
 
     /** {@inheritDoc} */
+    @Override public void localRemoveAll() throws IgniteCheckedException {
+        removeAll(keySet());
+    }
+
+    /** {@inheritDoc} */
+    @Override public IgniteInternalFuture<?> 
localRemoveAll(IgnitePredicate<Cache.Entry<K, V>> filter) {
+        return removeAllAsync(keySet(filter), null);
+    }
+
+    /** {@inheritDoc} */
     @Override public void removeAllConflict(Map<? extends K, GridCacheVersion> 
conflictMap)
         throws IgniteCheckedException {
         removeAllConflictAsync(conflictMap).get();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/29852495/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
index ee31c38..2b608f4 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
@@ -640,6 +640,16 @@ public class GridNearAtomicCache<K, V> extends 
GridNearCacheAdapter<K, V> {
     }
 
     /** {@inheritDoc} */
+    @Override public void localRemoveAll() throws IgniteCheckedException {
+        dht.localRemoveAll();
+    }
+
+    /** {@inheritDoc} */
+    @Override public IgniteInternalFuture<?> 
localRemoveAll(IgnitePredicate<Cache.Entry<K, V>> filter) {
+        return dht.localRemoveAll(filter);
+    }
+
+    /** {@inheritDoc} */
     @Override public void removeAllConflict(Map<? extends K, GridCacheVersion> 
drMap) throws IgniteCheckedException {
         dht.removeAllConflict(drMap);
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/29852495/modules/spring/src/main/java/org/apache/ignite/cache/spring/SpringCache.java
----------------------------------------------------------------------
diff --git 
a/modules/spring/src/main/java/org/apache/ignite/cache/spring/SpringCache.java 
b/modules/spring/src/main/java/org/apache/ignite/cache/spring/SpringCache.java
index 6719069..07e38a1 100644
--- 
a/modules/spring/src/main/java/org/apache/ignite/cache/spring/SpringCache.java
+++ 
b/modules/spring/src/main/java/org/apache/ignite/cache/spring/SpringCache.java
@@ -172,7 +172,7 @@ class SpringCache implements Cache, Serializable {
 
         /** {@inheritDoc} */
         @Override public void applyx() throws IgniteCheckedException {
-            cache.removeAll();
+            cache.localRemoveAll();
         }
 
         /** {@inheritDoc} */

Reply via email to