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/25 14:33:22 UTC

[2/7] incubator-ignite git commit: #ignite-965: Node js run script function can have parameters.

#ignite-965:  Node js run script function can have parameters.


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

Branch: refs/heads/ignite-965
Commit: 710c2fa42d920711e2e6352083664ef65ba97516
Parents: 14dcb14
Author: ivasilinets <iv...@gridgain.com>
Authored: Thu Jun 25 12:02:40 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Thu Jun 25 12:02:40 2015 +0300

----------------------------------------------------------------------
 .../scripting/IgniteScriptingCommandHandler.java  | 18 ++++++++++++------
 .../rest/request/RestRunScriptRequest.java        | 17 +++++++++++++++++
 modules/nodejs/src/main/js/compute.js             |  6 ++++--
 modules/nodejs/src/test/js/test-compute.js        |  7 ++++---
 .../http/jetty/GridJettyRestHandler.java          |  3 ++-
 5 files changed, 39 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/710c2fa4/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 38e4b9c..98ca7b1 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
@@ -86,16 +86,17 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
             case RUN_SCRIPT: {
                 assert req instanceof RestRunScriptRequest : "Invalid type of run script request.";
 
-                return ctx.closure().callAsync(new IgniteClosure<String, GridRestResponse>() {
-                    @Override public GridRestResponse apply(String o) {
+                return ctx.closure().callAsync(new IgniteClosure<RestRunScriptRequest, GridRestResponse>() {
+                    @Override public GridRestResponse apply(RestRunScriptRequest req) {
                         try {
-                            return new GridRestResponse(ctx.grid().compute().call(new JsFunctionCallable(o)));
+                            return new GridRestResponse(ctx.grid().compute().call(
+                                new JsFunctionCallable(req.script(), req.argument())));
                         }
                         catch (Exception e) {
                             return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage());
                         }
                     }
-                }, ((RestRunScriptRequest) req).script(), Collections.singleton(ctx.grid().localNode()));
+                }, (RestRunScriptRequest)req, Collections.singleton(ctx.grid().localNode()));
             }
 
             case EXECUTE_MAP_REDUCE_SCRIPT: {
@@ -249,21 +250,26 @@ public class IgniteScriptingCommandHandler extends GridRestCommandHandlerAdapter
         /** Function to call. */
         private String func;
 
+        /** Function argument. */
+        private Object arg;
+
         /** Ignite instance. */
         @IgniteInstanceResource
         private Ignite ignite;
 
         /**
          * @param func Function to call.
+         * @param arg Function argument.
          */
-        public JsFunctionCallable(String func) {
+        public JsFunctionCallable(String func, Object arg) {
             this.func = func;
+            this.arg = arg;
         }
 
         /** {@inheritDoc} */
         @Override public Object call() {
             try {
-                return ((IgniteKernal)ignite).context().scripting().invokeFunction(func);
+                return ((IgniteKernal)ignite).context().scripting().invokeFunction(func, arg);
             }
             catch (IgniteCheckedException e) {
                 throw U.convertException(e);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/710c2fa4/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/request/RestRunScriptRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/request/RestRunScriptRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/request/RestRunScriptRequest.java
index 42aba76..cf74802 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/request/RestRunScriptRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/request/RestRunScriptRequest.java
@@ -24,6 +24,9 @@ public class RestRunScriptRequest extends GridRestRequest {
     /** Java script function. */
     private String script;
 
+    /** Function arguments. */
+    private Object arg;
+
     /**
      * @return Java script function.
      */
@@ -37,4 +40,18 @@ public class RestRunScriptRequest extends GridRestRequest {
     public void script(String script) {
         this.script = script;
     }
+
+    /**
+     * @return Function argument.
+     */
+    public Object argument() {
+        return arg;
+    }
+
+    /**
+     * @param arg Function argument.
+     */
+    public void argument(Object arg) {
+        this.arg = arg;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/710c2fa4/modules/nodejs/src/main/js/compute.js
----------------------------------------------------------------------
diff --git a/modules/nodejs/src/main/js/compute.js b/modules/nodejs/src/main/js/compute.js
index 0f932e7..9aef39e 100644
--- a/modules/nodejs/src/main/js/compute.js
+++ b/modules/nodejs/src/main/js/compute.js
@@ -29,10 +29,12 @@ function Compute(server) {
 /**
  * @this {Compute}
  * @param runnable Function without parameters
+ * @param args Function arguments
  * @param {onGet} callback Callback
  */
-Compute.prototype.runScript = function(runnable, callback) {
-    this._server.runCommand("runscript", [Server.pair("func", this._escape(runnable))], callback);
+Compute.prototype.runScript = function(runnable, args, callback) {
+    this._server.runCommand("runscript", [Server.pair("func", this._escape(runnable)),
+        Server.pair("arg", this._escape(args))], callback);
 }
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/710c2fa4/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 fec5914..187e54c 100644
--- a/modules/nodejs/src/test/js/test-compute.js
+++ b/modules/nodejs/src/test/js/test-compute.js
@@ -50,18 +50,19 @@ function onStart(onPut, error, ignite) {
 function computeRunScript(ignite, error) {
     var comp = ignite.compute();
 
-    var f = function () {
-        return ignite.hello();
+    var f = function (args) {
+        return args + " " + ignite.hello();
     }
 
     function onEnd(err, res) {
         assert(err == null);
         assert(res.indexOf("HAPPY") !== -1, "Incorrect result message. [mes=" + res + "].");
+        assert(res.indexOf("GridGain") !== -1, "Incorrect result message. [mes=" + res + "].");
 
         TestUtils.testDone();
     }
 
-    comp.runScript(f, onEnd.bind(null));
+    comp.runScript(f, "GridGain", onEnd.bind(null));
 }
 
 function computeExecute(error, ignite) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/710c2fa4/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 b650554..4729549 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
@@ -450,7 +450,8 @@ public class GridJettyRestHandler extends AbstractHandler {
             case RUN_SCRIPT: {
                 RestRunScriptRequest restReq0 = new RestRunScriptRequest();
 
-                restReq0.script((String) params.get("func"));
+                restReq0.script((String)params.get("func"));
+                restReq0.argument(params.get("arg"));
 
                 restReq = restReq0;