You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/06/24 14:48:36 UTC

[1/7] incubator-ignite git commit: #ignite-965: use ClusterNodes on map function.

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-965 cb0407ddb -> fbe541306


#ignite-965: use ClusterNodes on map function.


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

Branch: refs/heads/ignite-965
Commit: d20d9033104e9468d71e81f79ed0925a88c1840b
Parents: cb0407d
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Jun 24 14:44:40 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Jun 24 14:44:40 2015 +0300

----------------------------------------------------------------------
 .../scripting/IgniteScriptingCommandHandler.java         | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d20d9033/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 ff56d88..c03a48a 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
@@ -160,22 +160,15 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
             try {
                 Map<ComputeJob, ClusterNode> map = new HashMap<>();
 
-                String[] ids = new String[nodes.size()];
-
-                for (int i = 0; i < ids.length; ++i)
-                    ids[i] = nodes.get(i).id().toString();
-
                 List jsMapRes = (List)ctx.scripting().invokeFunctionByName("__compute",
-                    mapFunc, ids, this.arg);
+                    mapFunc, nodes.toArray(new ClusterNode[nodes.size()]), this.arg);
 
                 for (Object jobMapping : jsMapRes) {
                     List task = (List)jobMapping;
 
                     final String func = (String)task.get(0);
                     final List argv = (List)task.get(1);
-                    String nodeId = (String)task.get(2);
-
-                    ClusterNode node = ctx.grid().cluster().node(UUID.fromString(nodeId));
+                    ClusterNode node = (ClusterNode)task.get(2);
 
                     map.put(new ComputeJobAdapter() {
                         @IgniteInstanceResource


[2/7] incubator-ignite git commit: #ignite-965: emit get second parameter as object instead of string.

Posted by sb...@apache.org.
#ignite-965: emit get second parameter as object instead of string.


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

Branch: refs/heads/ignite-965
Commit: 529d2e56f42b83d60ee61a4d644a9d94e871f93f
Parents: d20d903
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Jun 24 14:46:25 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Jun 24 14:46:25 2015 +0300

----------------------------------------------------------------------
 .../handlers/scripting/IgniteScriptingCommandHandler.java | 10 ++--------
 modules/nodejs/src/test/js/test-compute.js                |  2 +-
 2 files changed, 3 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/529d2e56/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 c03a48a..c43c81e 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
@@ -167,7 +167,7 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
                     List task = (List)jobMapping;
 
                     final String func = (String)task.get(0);
-                    final List argv = (List)task.get(1);
+                    final Object argv = task.get(1);
                     ClusterNode node = (ClusterNode)task.get(2);
 
                     map.put(new ComputeJobAdapter() {
@@ -176,13 +176,7 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
 
                         @Override public Object execute() throws IgniteException {
                             try {
-                                String[] argv1 = new String[argv.size()];
-
-                                for (int i = 0; i < argv1.length; ++i)
-                                    argv1[i] = argv.get(i).toString();
-
-
-                                return ((IgniteKernal)ignite).context().scripting().invokeFunction(func, argv1);
+                                return ((IgniteKernal)ignite).context().scripting().invokeFunction(func, argv);
                             }
                             catch (IgniteCheckedException e) {
                                throw U.convertException(e);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/529d2e56/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 13b2ecf..0fe7842 100644
--- a/modules/nodejs/src/test/js/test-compute.js
+++ b/modules/nodejs/src/test/js/test-compute.js
@@ -67,7 +67,7 @@ function computeExecute(error, ignite) {
                 return word.length;
             };
 
-            emit(f, [words[i]], nodes[i %  nodes.length]);
+            emit(f, words[i], nodes[i %  nodes.length]);
         }
     };
 


[7/7] incubator-ignite git commit: #ignite-965: js __internalCall can use only 2 arguments.

Posted by sb...@apache.org.
#ignite-965: js __internalCall can use only 2 arguments.


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

Branch: refs/heads/ignite-965
Commit: fbe541306dcb6db769868751767efe897dc741f5
Parents: 3989b84
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Jun 24 15:48:26 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Jun 24 15:48:26 2015 +0300

----------------------------------------------------------------------
 .../internal/processors/scripting/IgniteScriptProcessor.java       | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fbe54130/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 b48b0c0..2c2d5c5 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
@@ -59,7 +59,7 @@ public class IgniteScriptProcessor extends GridProcessorAdapter {
 
         String internalCall  = "function __internalCall(funcSource, arg1, arg2) { " +
             "var func = __createJSFunction(funcSource); " +
-            "return func.apply(null, arg1, arg2); }";
+            "return func.apply(null, [arg1, arg2]); }";
 
         addEngineFunction(createJSFunction);
         addEngineFunction(internalCall);


[6/7] incubator-ignite git commit: #ignite-965: js __internalCall can use only 2 arguments.

Posted by sb...@apache.org.
#ignite-965: js __internalCall can use only 2 arguments.


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

Branch: refs/heads/ignite-965
Commit: 3989b84f3593b4713b6c61b6b3fc1be77b4b3b12
Parents: 99d2c2a
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Jun 24 15:46:32 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Jun 24 15:46:32 2015 +0300

----------------------------------------------------------------------
 .../scripting/IgniteScriptingCommandHandler.java      |  9 +--------
 .../processors/scripting/IgniteScriptProcessor.java   | 14 ++++++++++++--
 2 files changed, 13 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3989b84f/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 b48671e..c41315b 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
@@ -60,13 +60,7 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
             String emitFunction = "function emit(f, args, nodeId) {" +
                 "__emitResult.add(f.toString(), args, nodeId);}";
 
-            String computeFunction = "function __compute(mapFuncSource, ids, args) {"  +
-                "       var f = __createJSFunction(mapFuncSource);" +
-                "       f(ids, args); "  +
-                "   }";
-
             script.addEngineFunction(emitFunction);
-            script.addEngineFunction(computeFunction);
 
             emitRes = new IgniteJsEmitResult();
 
@@ -159,8 +153,7 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
             try {
                 Map<ComputeJob, ClusterNode> map = new HashMap<>();
 
-                ctx.scripting().invokeFunctionByName("__compute",
-                    mapFunc, nodes.toArray(new ClusterNode[nodes.size()]), this.arg);
+                ctx.scripting().invokeFunction(mapFunc, nodes.toArray(new ClusterNode[nodes.size()]), this.arg);
 
                 List<T3<Object, Object, Object>> jsMapRes = emitRes.getEmitResult();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3989b84f/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 e1eb8b7..b48b0c0 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
@@ -57,9 +57,9 @@ public class IgniteScriptProcessor extends GridProcessorAdapter {
         String createJSFunction = "function __createJSFunction(mapFunc) {" +
                 "return eval('(function() { return ' + mapFunc.trim() + '})()'); }";
 
-        String internalCall  = "function __internalCall(funcSource, arg) { " +
+        String internalCall  = "function __internalCall(funcSource, arg1, arg2) { " +
             "var func = __createJSFunction(funcSource); " +
-            "return func.apply(null, arg); }";
+            "return func.apply(null, arg1, arg2); }";
 
         addEngineFunction(createJSFunction);
         addEngineFunction(internalCall);
@@ -114,6 +114,16 @@ public class IgniteScriptProcessor extends GridProcessorAdapter {
     }
 
     /**
+     * @param src Script src.
+     * @param arg Argument.
+     * @return Result of the function.
+     * @throws IgniteCheckedException If script failed.
+     */
+    public Object invokeFunction(String src, Object arg, Object arg2) throws IgniteCheckedException {
+        return invokeFunctionByName("__internalCall", src, arg, arg2);
+    }
+
+    /**
      * Invoke function.
      *
      * @param nameFunc Function name.


[4/7] incubator-ignite git commit: #ignite-965: emit is a global function.

Posted by sb...@apache.org.
#ignite-965: emit is a global function.


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

Branch: refs/heads/ignite-965
Commit: e8377811f02969cf905a61f772cc0727669516ec
Parents: 53e5be7
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Jun 24 15:29:32 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Jun 24 15:29:32 2015 +0300

----------------------------------------------------------------------
 .../handlers/scripting/IgniteJsEmitResult.java  | 57 ++++++++++++++++++++
 .../IgniteScriptingCommandHandler.java          | 35 ++++++++----
 .../scripting/IgniteScriptProcessor.java        | 14 +++++
 modules/nodejs/src/test/js/test-compute.js      |  2 +-
 4 files changed, 96 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e8377811/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/scripting/IgniteJsEmitResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/scripting/IgniteJsEmitResult.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/scripting/IgniteJsEmitResult.java
new file mode 100644
index 0000000..ecd6cba
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/scripting/IgniteJsEmitResult.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.rest.handlers.scripting;
+
+import org.apache.ignite.internal.util.typedef.*;
+
+import java.util.*;
+
+/**
+ * Emit result binding.
+ */
+public class IgniteJsEmitResult {
+    /** Thread local emit result.*/
+    private ThreadLocal<List<T3<Object, Object, Object>>> emitResPerCall = new ThreadLocal<>();
+
+    /**
+     * @param f JS function.
+     * @param args Function arguments.
+     * @param node Node.
+     */
+    public void add(Object f, Object args, Object node) {
+        List<T3<Object, Object, Object>> res = emitResPerCall.get();
+
+        if (res == null)
+            res = new ArrayList();
+
+        res.add(new T3(f, args, node));
+
+        emitResPerCall.set(res);
+    }
+
+    /**
+     * @return Emit result.
+     */
+    public List<T3<Object, Object, Object>> getEmitResult() {
+        List<T3<Object, Object, Object>> res = emitResPerCall.get();
+
+        emitResPerCall.set(null);
+
+        return res;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e8377811/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 54dffe2..edf9826 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
@@ -26,6 +26,7 @@ import org.apache.ignite.internal.processors.rest.handlers.*;
 import org.apache.ignite.internal.processors.rest.request.*;
 import org.apache.ignite.internal.processors.scripting.*;
 import org.apache.ignite.internal.util.future.*;
+import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
@@ -44,6 +45,9 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
         EXECUTE_MAP_REDUCE_SCRIPT,
         RUN_SCRIPT);
 
+    /** Emit result. */
+    private IgniteJsEmitResult emitRes;
+
     /**
      * @param ctx Context.
      */
@@ -53,17 +57,20 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
         try {
             IgniteScriptProcessor script = ctx.scripting();
 
-            String emitFunction = "function emit(result, f, args, nodeId) {result.push([f.toString(), args, nodeId])}";
+            String emitFunction = "function emit(f, args, nodeId) {" +
+                "__emitResult.add(f.toString(), args, nodeId);}";
 
             String computeFunction = "function __compute(mapFuncSource, ids, args) {"  +
-                "       var res = [];" +
                 "       var f = __createJSFunction(mapFuncSource);" +
-                "       f(ids, args, emit.bind(null, res)); "  +
-                "       return res;" +
+                "       f(ids, args); "  +
                 "   }";
 
             script.addEngineFunction(emitFunction);
             script.addEngineFunction(computeFunction);
+
+            emitRes = new IgniteJsEmitResult();
+
+            script.addBinding("__emitResult", emitRes);
         }
         catch (IgniteCheckedException e) {
             ctx.log().error(e.getMessage());
@@ -101,7 +108,8 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
                 final RestMapReduceScriptRequest req0 = (RestMapReduceScriptRequest) req;
 
                 GridRestResponse res = ctx.grid().compute().execute(
-                    new JsTask(req0.mapFunction(), req0.argument(), req0.reduceFunction(), ctx), null);
+                    new JsTask(req0.mapFunction(), req0.argument(), req0.reduceFunction(), ctx, emitRes),
+                    null);
 
                 return new GridFinishedFuture<>(res);
             }
@@ -129,17 +137,21 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
         /** Map function argument. */
         private String arg;
 
+        /** Emit results. */
+        private IgniteJsEmitResult emitRes;
+
         /**
          * @param mapFunc Map function.
          * @param arg Map function argument.
          * @param reduceFunc Reduce function.
          * @param ctx Kernal context.
          */
-        public JsTask(String mapFunc, String arg, String reduceFunc, GridKernalContext ctx) {
+        public JsTask(String mapFunc, String arg, String reduceFunc, GridKernalContext ctx, IgniteJsEmitResult emitRes) {
             this.mapFunc = mapFunc;
             this.reduceFunc = reduceFunc;
             this.arg = arg;
             this.ctx = ctx;
+            this.emitRes = emitRes;
         }
 
         /** {@inheritDoc} */
@@ -147,14 +159,15 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
             try {
                 Map<ComputeJob, ClusterNode> map = new HashMap<>();
 
-                List jsMapRes = (List)ctx.scripting().invokeFunctionByName("__compute",
+                ctx.scripting().invokeFunctionByName("__compute",
                     mapFunc, nodes.toArray(new ClusterNode[nodes.size()]), this.arg);
 
-                for (Object jobMapping : jsMapRes) {
-                    List task = (List)jobMapping;
+                List<T3<Object, Object, Object>> jsMapRes = emitRes.getEmitResult();
+
+                for (T3<Object, Object, Object> task : jsMapRes) {
 
-                    map.put(new JsCallFunctionJob((String)task.get(0), task.get(1)),
-                        (ClusterNode)task.get(2));
+                    map.put(new JsCallFunctionJob((String)task.get1(), task.get2()),
+                        (ClusterNode)task.get3());
                 }
 
                 return map;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e8377811/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 9843bc3..5073427 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
@@ -84,6 +84,20 @@ public class IgniteScriptProcessor extends GridProcessorAdapter {
     }
 
     /**
+     * Add binding.
+     *
+     * @param name Binding name.
+     * @param o Object to bind.
+     */
+    public void addBinding(String name, Object o) {
+        Bindings b = jsEngine.getBindings(ENGINE_SCOPE);
+
+        b.put(name, o);
+
+        jsEngine.setBindings(b, ENGINE_SCOPE);
+    }
+
+    /**
      * @param src Script src.
      * @param args Arguments.
      * @return Result of the function.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e8377811/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 0fe7842..6aad0c6 100644
--- a/modules/nodejs/src/test/js/test-compute.js
+++ b/modules/nodejs/src/test/js/test-compute.js
@@ -57,7 +57,7 @@ function computeRunScript(ignite, error) {
 }
 
 function computeExecute(error, ignite) {
-    var map = function(nodes, arg, emit) {
+    var map = function(nodes, arg) {
         var words = arg.split(" ");
 
         for (var i = 0; i < words.length; i++) {


[5/7] incubator-ignite git commit: #ignite-965: emit is a global function.

Posted by sb...@apache.org.
#ignite-965: emit is a global function.


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

Branch: refs/heads/ignite-965
Commit: 99d2c2ac161efb9703a5a934e831bb3f5b43abc4
Parents: e837781
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Jun 24 15:44:01 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Jun 24 15:44:01 2015 +0300

----------------------------------------------------------------------
 .../IgniteScriptingCommandHandler.java          |  2 +-
 .../scripting/IgniteScriptProcessor.java        | 28 ++++++++++----------
 2 files changed, 15 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/99d2c2ac/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 edf9826..b48671e 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
@@ -191,7 +191,7 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
                     data[i] = results.get(i).getData();
                 }
 
-                return new GridRestResponse(ctx.scripting().invokeFunction(reduceFunc, (Object)data));
+                return new GridRestResponse(ctx.scripting().invokeFunction(reduceFunc, data));
             }
             catch (IgniteCheckedException e) {
                 return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage());

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/99d2c2ac/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 5073427..e1eb8b7 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
@@ -57,12 +57,9 @@ public class IgniteScriptProcessor extends GridProcessorAdapter {
         String createJSFunction = "function __createJSFunction(mapFunc) {" +
                 "return eval('(function() { return ' + mapFunc.trim() + '})()'); }";
 
-        String internalCall  = "function __internalCall(funcSource) { " +
-                "var func = __createJSFunction(funcSource); " +
-                "var arg = Array.prototype.slice.call(arguments, 0);" +
-                "arg.shift();" +
-                "return func.apply(null, arg);" +
-                "}";
+        String internalCall  = "function __internalCall(funcSource, arg) { " +
+            "var func = __createJSFunction(funcSource); " +
+            "return func.apply(null, arg); }";
 
         addEngineFunction(createJSFunction);
         addEngineFunction(internalCall);
@@ -99,18 +96,21 @@ public class IgniteScriptProcessor extends GridProcessorAdapter {
 
     /**
      * @param src Script src.
-     * @param args Arguments.
      * @return Result of the function.
      * @throws IgniteCheckedException If script failed.
      */
-    public Object invokeFunction(String src, Object... args) throws IgniteCheckedException {
-        Object[] newArgs = new Object[args.length + 1];
-
-        newArgs[0] = src;
-
-        System.arraycopy(args, 0, newArgs, 1, args.length);
+    public Object invokeFunction(String src) throws IgniteCheckedException {
+        return invokeFunctionByName("__internalCall", src);
+    }
 
-        return invokeFunctionByName("__internalCall", newArgs);
+    /**
+     * @param src Script src.
+     * @param arg Argument.
+     * @return Result of the function.
+     * @throws IgniteCheckedException If script failed.
+     */
+    public Object invokeFunction(String src, Object arg) throws IgniteCheckedException {
+        return invokeFunctionByName("__internalCall", src, arg);
     }
 
     /**


[3/7] incubator-ignite git commit: #ignite-965: remove anonymous classes.

Posted by sb...@apache.org.
#ignite-965: remove anonymous classes.


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

Branch: refs/heads/ignite-965
Commit: 53e5be79236f9872e50e93899c0c58a32ca669bd
Parents: 529d2e5
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Jun 24 14:59:08 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Jun 24 14:59:08 2015 +0300

----------------------------------------------------------------------
 .../IgniteScriptingCommandHandler.java          | 112 +++++++++++++------
 1 file changed, 77 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/53e5be79/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 c43c81e..54dffe2 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
@@ -87,20 +87,7 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
 
                 final RestRunScriptRequest req0 = (RestRunScriptRequest) req;
 
-                GridRestResponse res = ctx.grid().compute().call(new IgniteCallable<GridRestResponse>() {
-                    @IgniteInstanceResource
-                    private Ignite ignite;
-
-                    @Override public GridRestResponse call() {
-                        try {
-                            return new GridRestResponse(((IgniteKernal)ignite).
-                                context().scripting().invokeFunction(req0.script()));
-                        }
-                        catch (IgniteCheckedException e) {
-                            return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage());
-                        }
-                    }
-                });
+                GridRestResponse res = ctx.grid().compute().call(new JsFunctionCallable(req0.script()));
 
                 return new GridFinishedFuture<>(res);
             }
@@ -113,10 +100,10 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
 
                 final RestMapReduceScriptRequest req0 = (RestMapReduceScriptRequest) req;
 
-                GridRestResponse execRes = ctx.grid().compute().execute(
+                GridRestResponse res = ctx.grid().compute().execute(
                     new JsTask(req0.mapFunction(), req0.argument(), req0.reduceFunction(), ctx), null);
 
-                return new GridFinishedFuture<>(execRes);
+                return new GridFinishedFuture<>(res);
             }
         }
 
@@ -166,23 +153,8 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
                 for (Object jobMapping : jsMapRes) {
                     List task = (List)jobMapping;
 
-                    final String func = (String)task.get(0);
-                    final Object argv = task.get(1);
-                    ClusterNode node = (ClusterNode)task.get(2);
-
-                    map.put(new ComputeJobAdapter() {
-                        @IgniteInstanceResource
-                        private Ignite ignite;
-
-                        @Override public Object execute() throws IgniteException {
-                            try {
-                                return ((IgniteKernal)ignite).context().scripting().invokeFunction(func, argv);
-                            }
-                            catch (IgniteCheckedException e) {
-                               throw U.convertException(e);
-                            }
-                        }
-                    }, node);
+                    map.put(new JsCallFunctionJob((String)task.get(0), task.get(1)),
+                        (ClusterNode)task.get(2));
                 }
 
                 return map;
@@ -195,7 +167,7 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
         /** {@inheritDoc} */
         @Nullable @Override public GridRestResponse reduce(List<ComputeJobResult> results) {
             try {
-                String[] data = new String[results.size()];
+                Object[] data = new Object[results.size()];
 
                 for (int i = 0; i < results.size(); ++i) {
                     IgniteException err = results.get(i).getException();
@@ -203,7 +175,7 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
                     if (err != null)
                         return new GridRestResponse(GridRestResponse.STATUS_FAILED, err.getMessage());
 
-                    data[i] = results.get(i).getData().toString();
+                    data[i] = results.get(i).getData();
                 }
 
                 return new GridRestResponse(ctx.scripting().invokeFunction(reduceFunc, (Object)data));
@@ -213,4 +185,74 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
             }
         }
     }
+
+    /**
+     * Js call function job.
+     */
+    private static class JsCallFunctionJob extends ComputeJobAdapter {
+        /** */
+        private static final long serialVersionUID = 0L;
+
+        /** Function to call. */
+        private String func;
+
+        /** Function argument. */
+        private Object argv;
+
+        /** Ignite instance. */
+        @IgniteInstanceResource
+        private Ignite ignite;
+
+        /**
+         * @param func Function to call.
+         * @param argv Function argument.
+         */
+        public JsCallFunctionJob(String func, Object argv) {
+            this.func = func;
+            this.argv = argv;
+        }
+
+        /** {@inheritDoc} */
+        @Override public Object execute() throws IgniteException {
+            try {
+                return ((IgniteKernal)ignite).context().scripting().invokeFunction(func, argv);
+            }
+            catch (IgniteCheckedException e) {
+                throw U.convertException(e);
+            }
+        }
+    }
+
+    /**
+     * Call java script function.
+     */
+    private static class JsFunctionCallable implements IgniteCallable<GridRestResponse> {
+        /** */
+        private static final long serialVersionUID = 0L;
+
+        /** Function to call. */
+        private String func;
+
+        /** Ignite instance. */
+        @IgniteInstanceResource
+        private Ignite ignite;
+
+        /**
+         * @param func Function to call.
+         */
+        public JsFunctionCallable(String func) {
+            this.func = func;
+        }
+
+        /** {@inheritDoc} */
+        @Override public GridRestResponse call() {
+            try {
+                return new GridRestResponse(((IgniteKernal)ignite).
+                    context().scripting().invokeFunction(func));
+            }
+            catch (IgniteCheckedException e) {
+                return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage());
+            }
+        }
+    }
 }