Repository: incubator-ignite Updated Branches: refs/heads/ignite-964-1 4a2d313e6 -> fd4cb53eb
#ignite-964: add cache-put-get-example. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/fd4cb53e Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/fd4cb53e Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/fd4cb53e Branch: refs/heads/ignite-964-1 Commit: fd4cb53ebec2c190a9c7711de0be9cbe512bef6a Parents: 4a2d313 Author: ivasilinets <ivasilin...@gridgain.com> Authored: Mon Jul 6 13:25:03 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Mon Jul 6 13:25:03 2015 +0300 ---------------------------------------------------------------------- .../processors/rest/GridRestProcessor.java | 4 - modules/nodejs/src/main/js/cache.js | 1 - .../main/js/examples/config/example-ignite.xml | 89 ++++++++++++++++++++ .../src/main/js/examples/config/rest-jetty.xml | 71 ++++++++++++++++ .../js/examples/src/cache-put-get-example.js | 72 ++++++++++++++++ .../ignite/examples/ExampleNodeStartup.java | 36 ++++++++ modules/nodejs/src/main/js/server.js | 2 +- 7 files changed, 269 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fd4cb53e/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java index 49120ed..df2304a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java @@ -59,10 +59,6 @@ public class GridRestProcessor extends GridProcessorAdapter { private static final String HTTP_PROTO_CLS = "org.apache.ignite.internal.processors.rest.protocols.http.jetty.GridJettyRestProtocol"; - /** HTTP protocol class name. */ - private static final String HTTP_SCRIPTING_CLS = - "org.apache.ignite.internal.processors.rest.protocols.http.jetty.IgniteScriptingCommandHandler"; - /** */ public static final byte[] ZERO_BYTES = new byte[0]; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fd4cb53e/modules/nodejs/src/main/js/cache.js ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/main/js/cache.js b/modules/nodejs/src/main/js/cache.js index 67762fd..93ded2d 100644 --- a/modules/nodejs/src/main/js/cache.js +++ b/modules/nodejs/src/main/js/cache.js @@ -353,7 +353,6 @@ Cache.prototype._createQueryCommand = function(name, qry) { } Cache.prototype._runCacheCommand = function(command, callback) { - console.log("RUNCACHECOMMAND create:" + this._create); if (this._create) { var onCreateCallback = function(command, callback, err) { if (err !== null) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fd4cb53e/modules/nodejs/src/main/js/examples/config/example-ignite.xml ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/main/js/examples/config/example-ignite.xml b/modules/nodejs/src/main/js/examples/config/example-ignite.xml new file mode 100644 index 0000000..fd76bcf --- /dev/null +++ b/modules/nodejs/src/main/js/examples/config/example-ignite.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + 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. +--> + +<!-- + Ignite configuration with all defaults and enabled p2p deployment and enabled events. +--> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:util="http://www.springframework.org/schema/util" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/util + http://www.springframework.org/schema/util/spring-util.xsd"> + <bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration"> + <property name="connectorConfiguration"> + <bean class="org.apache.ignite.configuration.ConnectorConfiguration"> + <property name="jettyPath" value="modules/nodejs/src/main/js/examples/config/rest-jetty.xml"/> + </bean> + </property> + + <!-- Set to true to enable distributed class loading for examples, default is false. --> + <property name="peerClassLoadingEnabled" value="true"/> + + <property name="marshaller"> + <bean class="org.apache.ignite.marshaller.optimized.OptimizedMarshaller"> + <!-- Set to false to allow non-serializable objects in examples, default is true. --> + <property name="requireSerializable" value="false"/> + </bean> + </property> + + <!-- Enable task execution events for examples. --> + <property name="includeEventTypes"> + <list> + <!--Task execution events--> + <util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_STARTED"/> + <util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_FINISHED"/> + <util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_FAILED"/> + <util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_TIMEDOUT"/> + <util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_SESSION_ATTR_SET"/> + <util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_REDUCED"/> + + <!--Cache events--> + <util:constant static-field="org.apache.ignite.events.EventType.EVT_CACHE_OBJECT_PUT"/> + <util:constant static-field="org.apache.ignite.events.EventType.EVT_CACHE_OBJECT_READ"/> + <util:constant static-field="org.apache.ignite.events.EventType.EVT_CACHE_OBJECT_REMOVED"/> + </list> + </property> + + <!-- Explicitly configure TCP discovery SPI to provide list of initial nodes. --> + <property name="discoverySpi"> + <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> + <property name="ipFinder"> + <!-- + Ignite provides several options for automatic discovery that can be used + instead os static IP based discovery. For information on all options refer + to our documentation: http://apacheignite.readme.io/docs/cluster-config + --> + <!-- Uncomment static IP finder to enable static-based discovery of initial nodes. --> + <!--<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">--> + <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> + <property name="addresses"> + <list> + <!-- In distributed environment, replace with actual host IP address. --> + <value>127.0.0.1:47500..47509</value> + </list> + </property> + </bean> + </property> + </bean> + </property> + </bean> +</beans> http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fd4cb53e/modules/nodejs/src/main/js/examples/config/rest-jetty.xml ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/main/js/examples/config/rest-jetty.xml b/modules/nodejs/src/main/js/examples/config/rest-jetty.xml new file mode 100644 index 0000000..abc146b --- /dev/null +++ b/modules/nodejs/src/main/js/examples/config/rest-jetty.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + 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. +--> + +<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> +<Configure id="Server" class="org.eclipse.jetty.server.Server"> + <Arg name="threadPool"> + <!-- Default queued blocking thread pool --> + <New class="org.eclipse.jetty.util.thread.QueuedThreadPool"> + <Set name="minThreads">20</Set> + <Set name="maxThreads">200</Set> + </New> + </Arg> + <New id="httpCfg" class="org.eclipse.jetty.server.HttpConfiguration"> + <Set name="secureScheme">https</Set> + <Set name="securePort">8443</Set> + <Set name="sendServerVersion">true</Set> + <Set name="sendDateHeader">true</Set> + </New> + <Call name="addConnector"> + <Arg> + <New class="org.eclipse.jetty.server.ServerConnector"> + <Arg name="server"><Ref refid="Server"/></Arg> + <Arg name="factories"> + <Array type="org.eclipse.jetty.server.ConnectionFactory"> + <Item> + <New class="org.eclipse.jetty.server.HttpConnectionFactory"> + <Ref refid="httpCfg"/> + </New> + </Item> + </Array> + </Arg> + <Set name="host"> + <SystemProperty name="IGNITE_JETTY_HOST" default="localhost"/> + </Set> + <Set name="port"> + <SystemProperty name="IGNITE_JETTY_PORT" default="9095"/> + </Set> + <Set name="idleTimeout">30000</Set> + <Set name="reuseAddress">true</Set> + </New> + </Arg> + </Call> + <Set name="handler"> + <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection"> + <Set name="handlers"> + <Array type="org.eclipse.jetty.server.Handler"> + <Item> + <New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/> + </Item> + </Array> + </Set> + </New> + </Set> + <Set name="stopAtShutdown">false</Set> +</Configure> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fd4cb53e/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 new file mode 100644 index 0000000..e89570a --- /dev/null +++ b/modules/nodejs/src/main/js/examples/src/cache-put-get-example.js @@ -0,0 +1,72 @@ +/* + * 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 Ignition = Ignite.Ignition; + +Ignition.start(['127.0.0.1:9095'], null, onConnect); + +function onConnect(error, ignite) { + if (error) { + console.log("Error: " + error); + + throw new Error(error); + } + + var cache = ignite.getOrCreateCache("mycache"); + + console.log(">>> Cache put-get example started."); + + var keyCnt = 20; + + var putCnt = 0; + + var onGet = function(err, res) { + if (err) { + console.log("Error: " + err); + + throw new Error(err); + } + + console.log("Get val=" + res); + } + + var onPut = function(err) { + if (err) { + console.log("Error: " + err); + + throw new Error(err); + } + + if (putCnt < keyCnt - 1) { + putCnt++; + } + + console.log(">>> Stored values in cache."); + + for (var i = 0; i < keyCnt; i++) { + cache.get(i, onGet); + } + } + + // Store keys in cache. + for (var i = 0; i < keyCnt; i++) { + cache.put(i, i.toString(), onPut); + } + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fd4cb53e/modules/nodejs/src/main/js/examples/src/org/apache/ignite/examples/ExampleNodeStartup.java ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/main/js/examples/src/org/apache/ignite/examples/ExampleNodeStartup.java b/modules/nodejs/src/main/js/examples/src/org/apache/ignite/examples/ExampleNodeStartup.java new file mode 100644 index 0000000..1578c18 --- /dev/null +++ b/modules/nodejs/src/main/js/examples/src/org/apache/ignite/examples/ExampleNodeStartup.java @@ -0,0 +1,36 @@ +/* + * 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.examples; + +import org.apache.ignite.*; +import org.apache.ignite.spi.discovery.tcp.internal.*; + +/** + * Starts up an empty node with example compute configuration. + */ +public class ExampleNodeStartup { + /** + * Start up an empty node with example compute configuration. + * + * @param args Command line arguments, none required. + * @throws IgniteException If failed. + */ + public static void main(String[] args) throws IgniteException { + Ignition.start("modules/nodejs/src/main/js/examples/config/example-ignite.xml"); + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fd4cb53e/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 ee1a134..abe24a7 100644 --- a/modules/nodejs/src/main/js/server.js +++ b/modules/nodejs/src/main/js/server.js @@ -121,7 +121,7 @@ Server.prototype.runCommand = function(cmd, callback) { var request = http.request(options, streamCallback); - request.setTimeout(5000, callback.bind(null, "Request timeout: >5 sec")); + request.setTimeout(20000, callback.bind(null, "Request timeout: >5 sec")); request.on('error', callback);