You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by iv...@apache.org on 2015/07/01 16:08:52 UTC

[4/4] incubator-ignite git commit: #ignite-964: add SIZE for nodejs cache.

#ignite-964: add SIZE for nodejs cache.


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

Branch: refs/heads/ignite-964
Commit: a7bb9ee4a875b5ca6c928a47282e7104498ee8e2
Parents: 13e78da
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Jul 1 17:08:41 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Jul 1 17:08:41 2015 +0300

----------------------------------------------------------------------
 .../processors/rest/GridRestCommand.java        |  3 ++
 .../processors/rest/GridRestProcessor.java      |  1 +
 .../handlers/cache/GridCacheCommandHandler.java | 20 +++++++++++-
 modules/nodejs/src/main/js/cache.js             |  8 +++++
 .../ignite/internal/NodeJsCacheApiSelfTest.java |  7 ++++
 modules/nodejs/src/test/js/test-cache-api.js    | 34 +++++++++++++++++---
 .../http/jetty/GridJettyRestHandler.java        |  1 +
 7 files changed, 68 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a7bb9ee4/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestCommand.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestCommand.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestCommand.java
index 90d7dc2..81fb7f5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestCommand.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestCommand.java
@@ -93,6 +93,9 @@ public enum GridRestCommand {
     /** Cache metrics. */
     CACHE_METRICS("cache"),
 
+    /** Cache size. */
+    CACHE_SIZE("cachesize"),
+
     /** Increment. */
     ATOMIC_INCREMENT("incr"),
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a7bb9ee4/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
index c3c9871..c8cb25a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
@@ -575,6 +575,7 @@ public class GridRestProcessor extends GridProcessorAdapter {
                 break;
 
             case CACHE_METRICS:
+            case CACHE_SIZE:
             case TOPOLOGY:
             case NODE:
             case VERSION:

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a7bb9ee4/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
index 87a87e3..26140f3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
@@ -73,7 +73,8 @@ public class GridCacheCommandHandler extends GridRestCommandHandlerAdapter {
         CACHE_CAS,
         CACHE_APPEND,
         CACHE_PREPEND,
-        CACHE_METRICS
+        CACHE_METRICS,
+        CACHE_SIZE
     );
 
     /** Requests with required parameter {@code key}. */
@@ -329,6 +330,12 @@ public class GridCacheCommandHandler extends GridRestCommandHandlerAdapter {
                     break;
                 }
 
+                case CACHE_SIZE: {
+                    fut = executeCommand(req.destinationId(), req.clientId(), cacheName, key, new SizeCommand());
+
+                    break;
+                }
+
                 default:
                     throw new IllegalArgumentException("Invalid command for cache handler: " + req);
             }
@@ -1304,4 +1311,15 @@ public class GridCacheCommandHandler extends GridRestCommandHandlerAdapter {
             );
         }
     }
+
+    /** */
+    private static class SizeCommand extends CacheCommand {
+        /** */
+        private static final long serialVersionUID = 0L;
+
+        /** {@inheritDoc} */
+        @Override public IgniteInternalFuture<?> applyx(IgniteInternalCache<Object, Object> c, GridKernalContext ctx) {
+            return c.sizeAsync(new CachePeekMode[]{CachePeekMode.ALL});
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a7bb9ee4/modules/nodejs/src/main/js/cache.js
----------------------------------------------------------------------
diff --git a/modules/nodejs/src/main/js/cache.js b/modules/nodejs/src/main/js/cache.js
index 97175fd..2fea1f6 100644
--- a/modules/nodejs/src/main/js/cache.js
+++ b/modules/nodejs/src/main/js/cache.js
@@ -270,6 +270,14 @@ Cache.prototype.getAndPutIfAbsent = function(key, val, callback) {
 }
 
 /**
+ * @this {Cache}
+ * @param {onGet} callback Called on finish
+ */
+Cache.prototype.size = function(callback) {
+    this._server.runCommand(this._createCommand("cachesize"), callback);
+}
+
+/**
  * Execute sql query
  *
  * @param {SqlQuery|SqlFieldsQuery} qry Query

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a7bb9ee4/modules/nodejs/src/test/java/org/apache/ignite/internal/NodeJsCacheApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/nodejs/src/test/java/org/apache/ignite/internal/NodeJsCacheApiSelfTest.java b/modules/nodejs/src/test/java/org/apache/ignite/internal/NodeJsCacheApiSelfTest.java
index a79ab6f..3123c13 100644
--- a/modules/nodejs/src/test/java/org/apache/ignite/internal/NodeJsCacheApiSelfTest.java
+++ b/modules/nodejs/src/test/java/org/apache/ignite/internal/NodeJsCacheApiSelfTest.java
@@ -210,4 +210,11 @@ public class NodeJsCacheApiSelfTest extends NodeJsAbstractTest {
     public void testReplaceValueObject() throws Exception {
         runJsScript("testReplaceValueObject");
     }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testSize() throws Exception {
+        runJsScript("testSize");
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a7bb9ee4/modules/nodejs/src/test/js/test-cache-api.js
----------------------------------------------------------------------
diff --git a/modules/nodejs/src/test/js/test-cache-api.js b/modules/nodejs/src/test/js/test-cache-api.js
index 99c97c9..3d3dad8 100644
--- a/modules/nodejs/src/test/js/test-cache-api.js
+++ b/modules/nodejs/src/test/js/test-cache-api.js
@@ -171,7 +171,7 @@ testReplace = function() {
             cache.get(entry[0], function(err, res) {
                 assert(!err);
                 assert("7" === res, "Get incorrect value on get [exp=7, val=" + res + "]");
-                TestUtils.testDone();
+                next();
             });
         }
     }
@@ -191,7 +191,8 @@ testReplaceObject = function() {
             cache.get(entry[0], function(err, res) {
                 assert(!err);
                 assert(TestUtils.compareObject(newKey, res), "Get incorrect value on get.");
-                TestUtils.testDone();
+
+                next();
             });
         }
     }
@@ -210,7 +211,8 @@ testGetAndReplaceObject = function() {
         function onGetAndReplace(cache, err, res) {
             assert(err === null, "Get error on get and put [err=" + err + "]");
             assert(TestUtils.compareObject(val, res), "Get incorrect value on get.");
-            TestUtils.testDone();
+
+            next();
         }
     }
 
@@ -228,7 +230,7 @@ testReplaceValueObject = function() {
         function onReplaceValue(cache, err, res) {
             assert(err === null, "Get error on get and put [err=" + err + "]");
             assert(res === true, "Incorrect result for replace [expected=true, val" + res + "]");
-            TestUtils.testDone();
+            next();
         }
     }
 
@@ -245,7 +247,7 @@ testIncorrectReplaceObject = function() {
         function onReplace(cache, err, res) {
             assert(err !== null, "Do not get error");
             assert(err.indexOf("Failed to update keys") > -1, "Incorrect error message: " + err);
-            TestUtils.testDone();
+            next();
         }
     }
 
@@ -255,6 +257,28 @@ testIncorrectReplaceObject = function() {
     startTest("mycache", {trace: [put, replace], entry: [key, val]});
 }
 
+testSize = function() {
+    function onSize(exp, next, cache, err, res) {
+            assert(err === null, "Do not get error");
+            assert(res === exp, "Incorrect size: " + res);
+
+            next();
+    }
+
+    function size0(cache, entry, next) {
+        cache.size(onSize.bind(null, 0, next, cache));
+    }
+
+     function size1(cache, entry, next) {
+        cache.size(onSize.bind(null, 1, next, cache));
+    }
+
+    var key = {"name" : "Paul"};
+    var val = {"age" : 12, "books" : ["1", "Book"]};
+
+    startTest("mycache", {trace: [size0, put, size1], entry: [key, val]});
+}
+
 function objectEntries() {
     entries = [];
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a7bb9ee4/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
----------------------------------------------------------------------
diff --git a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
index 8b60fcf..264cf5e 100644
--- a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
+++ b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
@@ -387,6 +387,7 @@ public class GridJettyRestHandler extends AbstractHandler {
             case CACHE_ADD:
             case CACHE_CAS:
             case CACHE_METRICS:
+            case CACHE_SIZE:
             case CACHE_REPLACE:
             case CACHE_APPEND:
             case CACHE_PREPEND: {