Repository: incubator-ignite Updated Branches: refs/heads/ignite-964-1 c8af45dc9 -> 94ca8f29e
#ignite-964: add examples. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/94ca8f29 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/94ca8f29 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/94ca8f29 Branch: refs/heads/ignite-964-1 Commit: 94ca8f29e9fce92650e209bb7635f33fc1a3f80e Parents: c8af45d Author: ivasilinets <ivasilin...@gridgain.com> Authored: Mon Jul 6 19:48:31 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Mon Jul 6 19:48:31 2015 +0300 ---------------------------------------------------------------------- .../main/js/examples/src/cache-api-example.js | 85 ++++++++++++++++++++ .../js/examples/src/cache-put-get-example.js | 5 +- .../js/examples/src/compute-callable-example.js | 50 ++++++++++++ .../js/examples/src/compute-runnable-example.js | 42 ++++++++++ .../examples/src/compute-task-split-example.js | 62 ++++++++++++++ modules/nodejs/src/main/js/server.js | 2 - 6 files changed, 242 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/94ca8f29/modules/nodejs/src/main/js/examples/src/cache-api-example.js ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/main/js/examples/src/cache-api-example.js b/modules/nodejs/src/main/js/examples/src/cache-api-example.js new file mode 100644 index 0000000..30e0739 --- /dev/null +++ b/modules/nodejs/src/main/js/examples/src/cache-api-example.js @@ -0,0 +1,85 @@ +/* + * 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. + */ + +var Ignite = require("../../"); +var assert = require("assert"); + +var Ignition = Ignite.Ignition; +var Entry = Ignite.Entry; + +Ignition.start(['127.0.0.1:9095'], null, onConnect); + +function onConnect(err, ignite) { + assert(err === null); + + console.log(">>> Cache API example started."); + + var cache = ignite.getOrCreateCache("ApiExampleCache"); + + atomicMapOperations(cache); +} + +/** + * Demonstrates cache operations similar to {@link ConcurrentMap} API. Note that + * cache API is a lot richer than the JDK {@link ConcurrentMap}. + */ +atomicMapOperations = function(cache) { + console.log(">>> Cache atomic map operation examples."); + + cache.removeAllFromCache(function(err) { + assert(err === null); + + cache.getAndPut(1, "1", onGetAndPut.bind(null, cache)) + }); +} + +function onGetAndPut(cache, err, entry) { + assert(err == null); + assert(entry == null); + + cache.put(2, "2", onPut.bind(null, cache)); +} + +function onPut(cache, err) { + assert(err === null); + + cache.putIfAbsent(4, "44", onPutIfAbsent.bind(null, cache, true)); +} + +function onPutIfAbsent(cache, expRes, err, res) { + assert(err === null); + assert(res === expRes); + + if (expRes) { + cache.putIfAbsent(4, "44", onPutIfAbsent.bind(null, cache, false)); + } + else { + cache.replaceValue(4, "55", "44", onReplaceValue.bind(null, cache, true)); + } +} + +function onReplaceValue(cache, expRes, err, res) { + assert(err === null); + assert(res === expRes); + + if (expRes) { + cache.replaceValue(4, "555", "44", onReplaceValue.bind(null, cache, false)); + } + else { + console.log("End of the example.") + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/94ca8f29/modules/nodejs/src/main/js/examples/src/cache-put-get-example.js ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/main/js/examples/src/cache-put-get-example.js b/modules/nodejs/src/main/js/examples/src/cache-put-get-example.js index d6b65d8..0906e64 100644 --- a/modules/nodejs/src/main/js/examples/src/cache-put-get-example.js +++ b/modules/nodejs/src/main/js/examples/src/cache-put-get-example.js @@ -29,12 +29,11 @@ function onConnect(error, ignite) { throw new Error(error); } - var cache = ignite.getOrCreateCache("mycache"); + var cache = ignite.getOrCreateCache("PutGetExampleCache"); putGet(cache); putAllGetAll(cache); - } putGet = function(cache) { @@ -63,6 +62,8 @@ putGet = function(cache) { if (putCnt < keyCnt - 1) { putCnt++; + + return; } console.log(">>> Stored values in cache."); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/94ca8f29/modules/nodejs/src/main/js/examples/src/compute-callable-example.js ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/main/js/examples/src/compute-callable-example.js b/modules/nodejs/src/main/js/examples/src/compute-callable-example.js new file mode 100644 index 0000000..bd923e6 --- /dev/null +++ b/modules/nodejs/src/main/js/examples/src/compute-callable-example.js @@ -0,0 +1,50 @@ +/* + * 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. + */ + +var Ignite = require("../../"); +var assert = require("assert"); + +var Ignition = Ignite.Ignition; + +Ignition.start(['127.0.0.1:9095'], null, onConnect); + +function onConnect(err, ignite) { + assert(err === null); + + console.log(">>> Compute callable example started"); + + var f = function (args) { + var words = args.split(" "); + + var sum = 0; + + for (var i = 0; i < words.length; ++i) { + sum += words[i].length; + } + + return sum; + } + + var onRunScript = function(err, sum) { + assert(err == null); + + console.log(">>> Total number of characters in the phrase is '" + sum + "'."); + console.log(">>> Check all nodes for output (this node is also part of the cluster)."); + } + + ignite.compute().runScript(f, "Hello Ignite Enabled World!", onRunScript); +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/94ca8f29/modules/nodejs/src/main/js/examples/src/compute-runnable-example.js ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/main/js/examples/src/compute-runnable-example.js b/modules/nodejs/src/main/js/examples/src/compute-runnable-example.js new file mode 100644 index 0000000..191d750 --- /dev/null +++ b/modules/nodejs/src/main/js/examples/src/compute-runnable-example.js @@ -0,0 +1,42 @@ +/* + * 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. + */ + +var Ignite = require("../../"); +var assert = require("assert"); + +var Ignition = Ignite.Ignition; + +Ignition.start(['127.0.0.1:9095'], null, onConnect); + +function onConnect(err, ignite) { + assert(err === null); + + console.log(">>> Compute runnable example started."); + + var f = function (args) { + print(">>> Printing '" + args + "' on this node from ignite job."); + } + + var onRunScript = function(err, res) { + assert(err == null, err); + + console.log(">>> Finished printing words using runnable execution."); + console.log(">>> Check all nodes for output (this node is also part of the cluster)."); + } + + ignite.compute().runScript(f, "Hello Ignite Enabled World!", onRunScript); +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/94ca8f29/modules/nodejs/src/main/js/examples/src/compute-task-split-example.js ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/main/js/examples/src/compute-task-split-example.js b/modules/nodejs/src/main/js/examples/src/compute-task-split-example.js new file mode 100644 index 0000000..a5b0102 --- /dev/null +++ b/modules/nodejs/src/main/js/examples/src/compute-task-split-example.js @@ -0,0 +1,62 @@ +/* + * 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. + */ + +var Ignite = require("../../"); +var assert = require("assert"); + +var Ignition = Ignite.Ignition; + +Ignition.start(['127.0.0.1:9095'], null, onConnect); + +function onConnect(err, ignite) { + assert(err === null); + + console.log(">>> Compute task split example started."); + + var map = function(nodes, args) { + var words = args.split(" "); + + for (var i = 0; i < words.length; i++) { + var f = function (word) { + print(">>> Printing '" + word + "' on this node from ignite job."); + + return word.length; + }; + + emit(f, words[i], nodes[i % nodes.length]); + } + } + + var reduce = function(results) { + var sum = 0; + + for (var i = 0; i < results.length; ++i) { + sum += results[i]; + } + + return sum; + } + + var onMapReduce = function(err, cnt) { + assert(err === null, err); + + console.log(">>> Total number of characters in the phrase is '" + cnt + "'."); + console.log(">>> Check all nodes for output (this node is also part of the cluster)."); + } + + ignite.compute().execute(map, reduce, "Hello Ignite Enabled World!", onMapReduce); +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/94ca8f29/modules/nodejs/src/main/js/server.js ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/main/js/server.js b/modules/nodejs/src/main/js/server.js index abe24a7..5d7430a 100644 --- a/modules/nodejs/src/main/js/server.js +++ b/modules/nodejs/src/main/js/server.js @@ -86,8 +86,6 @@ Server.prototype.runCommand = function(cmd, callback) { }); response.on('end', function () { - console.log("fullResponseString:" + fullResponseString); - if (response.statusCode !== 200) { if (response.statusCode === 401) { callback.call(null, "Authentication failed. Status code 401.");