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());
+ }
+ }
+ }
}