#ignite-964: fix get operations.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/830f397d Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/830f397d Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/830f397d Branch: refs/heads/ignite-964 Commit: 830f397d06d3addbbf0363d942e69013bf65897b Parents: 61f88e8 Author: ivasilinets <[email protected]> Authored: Wed Jul 1 16:08:58 2015 +0300 Committer: ivasilinets <[email protected]> Committed: Wed Jul 1 16:08:58 2015 +0300 ---------------------------------------------------------------------- .../apache/ignite/internal/NodeJsCacheApiSelfTest.java | 7 +++++++ modules/nodejs/src/test/js/test-cache-api.js | 10 +++++++++- .../rest/protocols/http/jetty/GridJettyRestHandler.java | 12 +++++++++--- 3 files changed, 25 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/830f397d/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 dcb0db5..596c964 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 @@ -53,6 +53,13 @@ public class NodeJsCacheApiSelfTest extends NodeJsAbstractTest { /** * @throws Exception If failed. */ + public void testPutGetObject() throws Exception { + runJsScript("testPutGetObject"); + } + + /** + * @throws Exception If failed. + */ public void testIncorrectCache() throws Exception { runJsScript("testIncorrectCacheName"); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/830f397d/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 3e397bc..77b1684 100644 --- a/modules/nodejs/src/test/js/test-cache-api.js +++ b/modules/nodejs/src/test/js/test-cache-api.js @@ -26,6 +26,13 @@ testPutGet = function() { startTest("mycache", {trace: [put, getExist], entry: ["key" , "6"]}); } +testPutGetObject = function() { + var key = {"name" : "Paul"}; + var val = {"age" : 12, "books" : ["1", "Book"]}; + + startTest("mycache", {trace: [put, getExist], entry: [key , val]}); +} + testPutContains = function() { startTest("mycache", {trace: [put, containsKey], entry: ["key" , "6"]}); } @@ -249,7 +256,8 @@ function notContainsKeys(cache, entries, next) { function getExist(cache, entry, next) { function onGet(error, value) { assert(!error); - assert(value === entry[1], "Get incorrect value on get [exp=" + entry[1] + ", val=" + value + "]"); + assert(TestUtils.compareObject(entry[1], value), "Get incorrect value on get [exp=" + + JSON.stringify(entry[1]) + ", val=" + JSON.stringify(value) + "]"); next(); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/830f397d/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 cacbf19..be44916 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 @@ -320,10 +320,10 @@ public class GridJettyRestHandler extends AbstractHandler { * @param cmdRes Rest response. */ private void createResponse(GridRestCommand cmd, GridRestResponse cmdRes) { - if (cmd == CACHE_GET_ALL) { - if (cmdRes.getResponse() == null) - return; + if (cmdRes.getResponse() == null) + return; + if (cmd == CACHE_GET_ALL) { Map o = (Map)cmdRes.getResponse(); List<RestEntry> res = new ArrayList<>(); @@ -332,6 +332,12 @@ public class GridJettyRestHandler extends AbstractHandler { res.add(new RestEntry(k, o.get(k))); cmdRes.setResponse(res); + } else if (cmd == CACHE_GET || cmd == CACHE_GET_AND_PUT || + cmd == CACHE_GET_AND_PUT_IF_ABSENT || cmd == CACHE_GET_AND_REMOVE) { + Object o = cmdRes.getResponse(); + + if (o instanceof JSONCacheObject) + cmdRes.setResponse(((JSONCacheObject)o).getFields()); } }
