Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-964-1 584adbc1a -> 1572a3a0a


#ignite-964: wip


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

Branch: refs/heads/ignite-964-1
Commit: 1572a3a0a3529b0dd55879f33e4afba96ddce6ce
Parents: 584adbc
Author: ivasilinets <[email protected]>
Authored: Thu Jul 2 00:53:40 2015 +0300
Committer: ivasilinets <[email protected]>
Committed: Thu Jul 2 00:53:40 2015 +0300

----------------------------------------------------------------------
 .../IgniteScriptingCommandHandler.java          |  3 +-
 .../scripting/IgniteScriptProcessor.java        | 31 ++++++++++++++++++++
 modules/nodejs/src/test/js/test-compute.js      | 21 +++++++++----
 .../http/jetty/GridJettyRestHandler.java        |  2 +-
 4 files changed, 49 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1572a3a0/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/scripting/IgniteScriptingCommandHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/scripting/IgniteScriptingCommandHandler.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/scripting/IgniteScriptingCommandHandler.java
index 2d65016..68908f4 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/scripting/IgniteScriptingCommandHandler.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/scripting/IgniteScriptingCommandHandler.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.processors.rest.handlers.scripting;
 
+import net.sf.json.*;
 import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.compute.*;
@@ -174,7 +175,7 @@ public class IgniteScriptingCommandHandler extends 
GridRestCommandHandlerAdapter
                     data[i] = results.get(i).getData();
                 }
 
-                return ctx.scripting().invokeFunction(reduceFunc, data);
+                return ctx.scripting().invokeJSFunction(reduceFunc, 
JSONSerializer.toJSON(data), null);
             }
             catch (IgniteCheckedException e) {
                 throw U.convertException(e);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1572a3a0/modules/core/src/main/java/org/apache/ignite/internal/processors/scripting/IgniteScriptProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/scripting/IgniteScriptProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/scripting/IgniteScriptProcessor.java
index 247421f..6248695 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/scripting/IgniteScriptProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/scripting/IgniteScriptProcessor.java
@@ -61,8 +61,14 @@ public class IgniteScriptProcessor extends 
GridProcessorAdapter {
             "var func = __createJSFunction(funcSource); " +
             "return func.apply(null, [arg1, arg2]); }";
 
+        String internalJSCall = "function __internalJSCall(funcSource, arg1, 
arg2) { " +
+                "var func = __createJSFunction(funcSource); " +
+                "println('INIT arg=' + arg1);"+
+                "return func.apply(null, [JSON.parse(arg1), arg2]); }";
+
         addEngineFunction(createJSFunction);
         addEngineFunction(internalCall);
+        addEngineFunction(internalJSCall);
     }
 
     /**
@@ -137,4 +143,29 @@ public class IgniteScriptProcessor extends 
GridProcessorAdapter {
             throw new IgniteCheckedException("Cannot find function 
[func=__internalCall].");
         }
     }
+
+    /**
+     * @param src Script src.
+     * @param arg Argument.
+     * @return Result of the function.
+     * @throws IgniteCheckedException If script failed.
+     */
+    public Object invokeJSFunction(String src, Object arg, Object arg2) throws 
IgniteCheckedException {
+        try {
+            Invocable invocable = (Invocable) jsEngine;
+            if (arg != null && arg2 != null)
+                return invocable.invokeFunction("__internalJSCall", src, 
arg.toString(), arg2.toString());
+            if (arg != null && arg2 == null)
+                return invocable.invokeFunction("__internalJSCall", src, 
arg.toString(), arg2);
+
+            return invocable.invokeFunction("__internalJSCall", src, arg, 
arg2);
+
+        }
+        catch (ScriptException e) {
+            throw new IgniteCheckedException("Function evaluation failed 
[funcName=" + src + "].");
+        }
+        catch (NoSuchMethodException e) {
+            throw new IgniteCheckedException("Cannot find function 
[func=__internalCall].");
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1572a3a0/modules/nodejs/src/test/js/test-compute.js
----------------------------------------------------------------------
diff --git a/modules/nodejs/src/test/js/test-compute.js 
b/modules/nodejs/src/test/js/test-compute.js
index 9fd813b..b7d88f0 100644
--- a/modules/nodejs/src/test/js/test-compute.js
+++ b/modules/nodejs/src/test/js/test-compute.js
@@ -45,19 +45,22 @@ testComputeCacheExecute = function() {
 function onStart(onPut, error, ignite) {
     var cache = ignite.cache("mycache");
 
-    var params = {}
+    var params = [];
 
     for (var i = 900; i < 1000; ++i) {
-        params["key" + i] = "val" + i;
+        params.push(new Entry("key" + i,  "val" + i));
     }
 
     cache.putAll(params, onPut.bind(null, ignite))
 }
 
 function computeRunScript(ignite, error) {
+    assert(error == null, "Error on put:" + error);
+
     var comp = ignite.compute();
 
     var f = function (args) {
+        println("!!!!" + args + " " + ignite.name());
         return args + " " + ignite.name();
     }
 
@@ -73,6 +76,8 @@ function computeRunScript(ignite, error) {
 }
 
 function computeExecute(error, ignite) {
+    assert(error == null, "Error on put:" + error);
+
     var map = function(nodes, arg) {
         var words = arg.split(" ");
 
@@ -91,7 +96,7 @@ function computeExecute(error, ignite) {
         var sum = 0;
 
         for (var i = 0; i < results.length; ++i) {
-            sum += results[i].intValue();
+            sum += results[i];
         }
 
         return sum;
@@ -108,6 +113,8 @@ function computeExecute(error, ignite) {
 }
 
 function computeAllNodeExecute(error, ignite) {
+    assert(error == null, "Error on put:" + error);
+
     var map = function(nodes, arg) {
         for (var i = 0; i < nodes.length; i++) {
             var f = function (node) {
@@ -131,6 +138,8 @@ function computeAllNodeExecute(error, ignite) {
 }
 
 function computeCacheExecute(error, ignite) {
+    assert(error == null, "Error on put:" + error);
+
     var map = function(nodes, args) {
         for (var i = 0; i < nodes.length; i++) {
             var f = function (args1) {
@@ -188,6 +197,8 @@ function computeCacheExecute(error, ignite) {
 }
 
 function computeCacheSizeExecute(error, ignite) {
+    assert(error == null, "Error on put:" + error);
+
     var map = function(nodes, arg) {
         for (var i = 0; i < nodes.length; i++) {
             var f = function (args) {
@@ -204,9 +215,7 @@ function computeCacheSizeExecute(error, ignite) {
         var sum = 0;
 
         for (var i = 0; i < results.length; i++) {
-            println("TYPE:" + (typeof results[i]));
-            println("keys:" + (Object.keys(results[i])));
-            sum += results[i].intValue();
+            sum += results[i];
         }
 
         return sum;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1572a3a0/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 e4ce5f2..1b6a170 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
@@ -798,7 +798,7 @@ public class GridJettyRestHandler extends AbstractHandler {
         }
 
         while (reader.hasNext())
-            builder.append(reader.next() + "\n");
+            builder.append(reader.nextLine() + "\n");
 
         return JSONObject.fromObject(builder.toString());
     }

Reply via email to