You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/08/16 15:41:28 UTC

[05/25] ignite git commit: IGNITE-5902 Implemented stop caches at once.

IGNITE-5902 Implemented stop caches at once.


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

Branch: refs/heads/ignite-5901
Commit: ebb8765ab6735289cc2ceb4ccba2f6fd1e9816a8
Parents: 1c62fda
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Fri Aug 11 10:25:36 2017 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Aug 11 10:25:36 2017 +0700

----------------------------------------------------------------------
 .../visor/cache/VisorCacheStopTask.java         | 22 ++++++++--------
 .../visor/cache/VisorCacheStopTaskArg.java      | 27 ++++++++++++++++++++
 2 files changed, 39 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ebb8765a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStopTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStopTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStopTask.java
index 9f7c018..df95c5e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStopTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStopTask.java
@@ -17,8 +17,10 @@
 
 package org.apache.ignite.internal.visor.cache;
 
-import org.apache.ignite.IgniteCache;
+import java.util.Collection;
+import java.util.HashSet;
 import org.apache.ignite.internal.processors.task.GridInternal;
+import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.visor.VisorJob;
 import org.apache.ignite.internal.visor.VisorOneNodeTask;
@@ -46,23 +48,23 @@ public class VisorCacheStopTask extends VisorOneNodeTask<VisorCacheStopTaskArg,
         /**
          * Create job.
          *
-         * @param cacheName Cache name to clear.
+         * @param arg Task argument.
          * @param debug Debug flag.
          */
-        private VisorCacheStopJob(VisorCacheStopTaskArg cacheName, boolean debug) {
-            super(cacheName, debug);
+        private VisorCacheStopJob(VisorCacheStopTaskArg arg, boolean debug) {
+            super(arg, debug);
         }
 
         /** {@inheritDoc} */
         @Override protected Void run(VisorCacheStopTaskArg arg) {
-            String cacheName = arg.getCacheName();
+            Collection<String> cacheNames = F.isEmpty(arg.getCacheNames())
+                ? F.asList(arg.getCacheName())
+                : new HashSet<>(arg.getCacheNames());
 
-            IgniteCache cache = ignite.cache(cacheName);
+            if (F.isEmpty(cacheNames))
+                throw new IllegalStateException("Cache names was not specified.");
 
-            if (cache == null)
-                throw new IllegalStateException("Failed to find cache for name: " + cacheName);
-
-            cache.destroy();
+            ignite.destroyCaches(cacheNames);
 
             return null;
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebb8765a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStopTaskArg.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStopTaskArg.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStopTaskArg.java
index 4976036..77156ab 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStopTaskArg.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStopTaskArg.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.visor.cache;
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.util.List;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.internal.visor.VisorDataTransferObject;
@@ -34,6 +35,9 @@ public class VisorCacheStopTaskArg extends VisorDataTransferObject {
     /** Cache name. */
     private String cacheName;
 
+    /** Cache names. */
+    private List<String> cacheNames;
+
     /**
      * Default constructor.
      */
@@ -49,20 +53,43 @@ public class VisorCacheStopTaskArg extends VisorDataTransferObject {
     }
 
     /**
+     * @param cacheNames Cache names.
+     */
+    public VisorCacheStopTaskArg(List<String> cacheNames) {
+        this.cacheNames = cacheNames;
+    }
+
+    /**
      * @return Cache name.
      */
     public String getCacheName() {
         return cacheName;
     }
 
+    /**
+     * @return Cache names.
+     */
+    public List<String> getCacheNames() {
+        return cacheNames;
+    }
+
+    /** {@inheritDoc} */
+    @Override public byte getProtocolVersion() {
+        return V2;
+    }
+
     /** {@inheritDoc} */
     @Override protected void writeExternalData(ObjectOutput out) throws IOException {
         U.writeString(out, cacheName);
+        U.writeCollection(out, cacheNames);
     }
 
     /** {@inheritDoc} */
     @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
         cacheName = U.readString(in);
+
+        if (protoVer > V1)
+            cacheNames = U.readList(in);
     }
 
     /** {@inheritDoc} */