ignite-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sboi...@apache.org
Subject [1/2] incubator-ignite git commit: # ignite-496
Date Wed, 18 Mar 2015 15:22:27 GMT
Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-496 bfee5325c -> c83b01605


# ignite-496


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

Branch: refs/heads/ignite-496
Commit: 432cabd92455b1e3f48925f285ead51593e3f97f
Parents: 312a14d
Author: sboikov <sboikov@gridgain.com>
Authored: Wed Mar 18 16:13:27 2015 +0300
Committer: sboikov <sboikov@gridgain.com>
Committed: Wed Mar 18 18:21:17 2015 +0300

----------------------------------------------------------------------
 .../processors/interop/InteropTarget.java       |  11 ++
 .../interop/InteropTargetAdapter.java           |   4 +
 .../processors/interop/InteropUtils.java        |   6 +
 .../ignite-interop-api/ignite-interop-api.cpp   |  62 ++++++-
 .../ignite-interop-api/ignite-interop-api.h     |   8 +
 .../config/test.xml                             |  53 ------
 .../ignite-interop-cpp-prototype.cpp            |  54 +-----
 .../main/cpp/ignite-interop/ignite-interop.sln  |  17 +-
 .../ignite-nodejs-prototype.vcxproj             | 164 +++++++++++++++++++
 .../ignite-nodejs-prototype.vcxproj.filters     |  49 ++++++
 .../ignite-nodejs-prototype.vcxproj.user        |  24 +++
 .../include/ignite_cache.h                      |  45 +++++
 .../ignite-nodejs-prototype/include/main.h      |  17 ++
 .../src/ignite_cache.cpp                        | 164 +++++++++++++++++++
 .../ignite-nodejs-prototype/src/main.cpp        |  30 ++++
 modules/interop/src/test/config/test.xml        |  48 ++++++
 16 files changed, 648 insertions(+), 108 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropTarget.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropTarget.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropTarget.java
index 8333a7d..bbb99bc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropTarget.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropTarget.java
@@ -40,4 +40,15 @@ public interface InteropTarget {
      * @throws IgniteCheckedException If failed.
      */
     public long inOutOp(int type, long ptr, int len) throws IgniteCheckedException;
+
+    /**
+     * @param type Operation type.
+     * @param ptr Input data pointer.
+     * @param len Input data length.
+     * @param cb Callback address.
+     * @param cbArg Value passed to callback.
+     * @throws IgniteCheckedException If failed.
+     */
+    public void inOutAsyncOp(int type, long ptr, int len, long cb, long cbArg)
+        throws IgniteCheckedException;
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropTargetAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropTargetAdapter.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropTargetAdapter.java
index a710388..58f5f3e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropTargetAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropTargetAdapter.java
@@ -85,4 +85,8 @@ public abstract class InteropTargetAdapter implements InteropTarget {
         InteropOutputStream out,
         InteropMarshaller marsh)
         throws IgniteCheckedException;
+
+    /** {@inheritDoc} */
+    @Override public void inOutAsyncOp(int type, long ptr, int len, long cb, long cbArg)
throws IgniteCheckedException {
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropUtils.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropUtils.java
index 7323673..73987e3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/InteropUtils.java
@@ -33,4 +33,10 @@ public class InteropUtils {
 
         return ctx.interop();
     }
+
+    /**
+     * @param cb Callback address.
+     * @param cbArg Value passed to callback.
+     */
+    native public void asyncCallback(long cb, long cbArg);
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/main/cpp/ignite-interop/ignite-interop-api/ignite-interop-api.cpp
----------------------------------------------------------------------
diff --git a/modules/interop/src/main/cpp/ignite-interop/ignite-interop-api/ignite-interop-api.cpp
b/modules/interop/src/main/cpp/ignite-interop/ignite-interop-api/ignite-interop-api.cpp
index 6975ca4..a2db741 100644
--- a/modules/interop/src/main/cpp/ignite-interop/ignite-interop-api/ignite-interop-api.cpp
+++ b/modules/interop/src/main/cpp/ignite-interop/ignite-interop-api/ignite-interop-api.cpp
@@ -21,6 +21,7 @@
 #include <string.h>
 #include <iostream>
 #include <stdlib.h>
+#include <string>
 
 #include "ignite-interop-api.h"
 
@@ -247,6 +248,65 @@ void printError(JNIEnv* env) {
 
 /* --- EXPORTED METHODS. --- */
 
+IGNITE_API_IMPORT_EXPORT extern int TestInit() {
+	char* igniteHome;
+
+	igniteHome = getenv("IGNITE_HOME");
+
+	if (!igniteHome) {
+		cout << "IGNITE_HOME is not set" << endl;
+
+		return 0;
+	}
+
+	string home(igniteHome);
+
+	cout << "IGNITE_HOME:" << home << endl;
+
+	string classpath = "-Djava.class.path=" + home + "\\modules\\core\\target\\classes;";
+
+	classpath += home + "\\modules\\core\\target\\libs\\cache-api-1.0.0.jar;";
+	classpath += home + "\\modules\\spring\\target\\classes;";
+	classpath += home + "\\modules\\spring\\target\\libs\\spring-core-4.1.0.RELEASE.jar;";
+	classpath += home + "\\modules\\spring\\target\\libs\\spring-context-4.1.0.RELEASE.jar;";
+	classpath += home + "\\modules\\spring\\target\\libs\\spring-beans-4.1.0.RELEASE.jar;";
+	classpath += home + "\\modules\\spring\\target\\libs\\spring-tx-4.1.0.RELEASE.jar;";
+	classpath += home + "\\modules\\spring\\target\\libs\\spring-aop-4.1.0.RELEASE.jar;";
+	classpath += home + "\\modules\\spring\\target\\libs\\spring-expression-4.1.0.RELEASE.jar;";
+	classpath += home + "\\modules\\spring\\target\\libs\\commons-logging-1.1.1.jar;";
+
+	cout << "Classpath:" << classpath << endl;
+
+	JavaVMInitArgs args;
+
+	JavaVMOption* options = new JavaVMOption[2];
+
+	options[0].optionString = const_cast<char*>(classpath.c_str());
+	options[1].optionString = "-DIGNITE_QUIET=false";
+
+	args.version = JNI_VERSION_1_6;
+	args.nOptions = 2;
+	args.options = options;
+	args.ignoreUnrecognized = 0;
+
+	char* errClsName;
+	char* errMsg;
+
+	int res = ContextInit(args, &errClsName, &errMsg);
+
+	delete[] options;
+
+	if (res != JNI_OK) {
+		printf("Failed to create JVM: %s\n", errMsg);
+
+		return 0;
+	}
+
+	cout << "Created JVM" << endl;
+
+	return 1;
+}
+
 IGNITE_API_IMPORT_EXPORT int ContextInit(JavaVMInitArgs args, char** errClsName, char** errMsg)
{
 	// TODO AcquireSRWLockExclusive(&lock);
 
@@ -414,7 +474,7 @@ void* IgniteInteropAbstractTarget::inOutOp(jint type, void* ptr, jint
len) {
 IGNITE_API_IMPORT_EXPORT IgniteInteropNode* StartNode() {
 	JNIEnv* env = Attach();
 
-	char* cfgPath = "modules\\interop\\src\\main\\cpp\\ignite-interop\\ignite-interop-cpp-prototype\\config\\test.xml";
+	char* cfgPath = "modules\\interop\\src\\test\\config\\test.xml";
 	char* gridName = "grid1";
 
 	jstring cfgPath0 = env->NewStringUTF(cfgPath);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/main/cpp/ignite-interop/ignite-interop-api/ignite-interop-api.h
----------------------------------------------------------------------
diff --git a/modules/interop/src/main/cpp/ignite-interop/ignite-interop-api/ignite-interop-api.h
b/modules/interop/src/main/cpp/ignite-interop/ignite-interop-api/ignite-interop-api.h
index 6435200..3849a30 100644
--- a/modules/interop/src/main/cpp/ignite-interop/ignite-interop-api/ignite-interop-api.h
+++ b/modules/interop/src/main/cpp/ignite-interop/ignite-interop-api/ignite-interop-api.h
@@ -29,6 +29,9 @@
 
 #include <jni.h>
 #include <assert.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <algorithm>
 
 /*
 * Unmanaged context.
@@ -343,4 +346,9 @@ IGNITE_API_IMPORT_EXPORT extern JniContext* Context();
 
 IGNITE_API_IMPORT_EXPORT extern IgniteInteropNode* StartNode();
 
+/*
+* Just for tesing.
+*/
+IGNITE_API_IMPORT_EXPORT extern int TestInit();
+
 #endif

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/main/cpp/ignite-interop/ignite-interop-cpp-prototype/config/test.xml
----------------------------------------------------------------------
diff --git a/modules/interop/src/main/cpp/ignite-interop/ignite-interop-cpp-prototype/config/test.xml
b/modules/interop/src/main/cpp/ignite-interop/ignite-interop-cpp-prototype/config/test.xml
deleted file mode 100644
index 6cedcf5..0000000
--- a/modules/interop/src/main/cpp/ignite-interop/ignite-interop-cpp-prototype/config/test.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?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.
--->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-        http://www.springframework.org/schema/beans/spring-beans.xsd">
-    <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
-        <property name="localHost" value="127.0.0.1"/>
-
-        <property name="gridName" value="grid1"/>
-
-        <property name="cacheConfiguration">
-            <list>
-                <bean class="org.apache.ignite.configuration.CacheConfiguration">
-                    <property name="name" value="cache1"/>
-                    <property name="rebalanceMode" value="SYNC"/>
-                </bean>
-            </list>
-        </property>
-
-        <property name="discoverySpi">
-            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
-                <property name="ipFinder">
-                    <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..47501</value>
-                            </list>
-                        </property>
-                    </bean>
-                </property>
-            </bean>
-        </property>
-    </bean>
-</beans>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/main/cpp/ignite-interop/ignite-interop-cpp-prototype/ignite-interop-cpp-prototype.cpp
----------------------------------------------------------------------
diff --git a/modules/interop/src/main/cpp/ignite-interop/ignite-interop-cpp-prototype/ignite-interop-cpp-prototype.cpp
b/modules/interop/src/main/cpp/ignite-interop/ignite-interop-cpp-prototype/ignite-interop-cpp-prototype.cpp
index bd4d2b0..c4c46d9 100644
--- a/modules/interop/src/main/cpp/ignite-interop/ignite-interop-cpp-prototype/ignite-interop-cpp-prototype.cpp
+++ b/modules/interop/src/main/cpp/ignite-interop/ignite-interop-cpp-prototype/ignite-interop-cpp-prototype.cpp
@@ -62,60 +62,8 @@ public:
 
 int _tmain(int argc, _TCHAR* argv[])
 {
-	char* igniteHome;
-
-	igniteHome = getenv("IGNITE_HOME");
-
-	if (!igniteHome) {
-		cout << "IGNITE_HOME is not set" << endl;
-
+	if (!TestInit())
 		return 0;
-	}
-
-	string home(igniteHome);
-
-	cout << "IGNITE_HOME:" << home << endl;
-
-	string classpath = "-Djava.class.path=" + home + "\\modules\\core\\target\\classes;";
-
-	classpath += home + "\\modules\\core\\target\\libs\\cache-api-1.0.0.jar;";
-	classpath += home + "\\modules\\spring\\target\\classes;";
-	classpath += home + "\\modules\\spring\\target\\libs\\spring-core-4.1.0.RELEASE.jar;";
-	classpath += home + "\\modules\\spring\\target\\libs\\spring-context-4.1.0.RELEASE.jar;";
-	classpath += home + "\\modules\\spring\\target\\libs\\spring-beans-4.1.0.RELEASE.jar;";
-	classpath += home + "\\modules\\spring\\target\\libs\\spring-tx-4.1.0.RELEASE.jar;";
-	classpath += home + "\\modules\\spring\\target\\libs\\spring-aop-4.1.0.RELEASE.jar;";
-	classpath += home + "\\modules\\spring\\target\\libs\\spring-expression-4.1.0.RELEASE.jar;";
-	classpath += home + "\\modules\\spring\\target\\libs\\commons-logging-1.1.1.jar;";
-
-	cout << "Classpath:" << classpath << endl;
-
-	JavaVMInitArgs args;
-
-	JavaVMOption* options = new JavaVMOption[2];
-
-	options[0].optionString = const_cast<char*>(classpath.c_str());
-	options[1].optionString = "-DIGNITE_QUIET=false";
-
-	args.version = JNI_VERSION_1_6;
-	args.nOptions = 2;
-	args.options = options;
-	args.ignoreUnrecognized = 0;
-
-	char* errClsName;
-	char* errMsg;
-
-	int res = ContextInit(args, &errClsName, &errMsg);
-
-	if (res != JNI_OK) {
-		printf("Failed to create JVM: %s\n", errMsg);
-
-		return 0;
-	}
-
-	delete[] options;
-
-	cout << "Created JVM" << endl;
 
 	IgniteInteropNode* node = StartNode();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/main/cpp/ignite-interop/ignite-interop.sln
----------------------------------------------------------------------
diff --git a/modules/interop/src/main/cpp/ignite-interop/ignite-interop.sln b/modules/interop/src/main/cpp/ignite-interop/ignite-interop.sln
index 3cefee0..80af048 100644
--- a/modules/interop/src/main/cpp/ignite-interop/ignite-interop.sln
+++ b/modules/interop/src/main/cpp/ignite-interop/ignite-interop.sln
@@ -1,7 +1,7 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 2013
-VisualStudioVersion = 12.0.21005.1
+VisualStudioVersion = 12.0.30501.0
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ignite-interop-api", "ignite-interop-api\ignite-interop-api.vcxproj",
"{99F02840-F28B-42F3-9530-F8B75F97B682}"
 EndProject
@@ -10,6 +10,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ignite-interop-cpp-prototyp
 		{99F02840-F28B-42F3-9530-F8B75F97B682} = {99F02840-F28B-42F3-9530-F8B75F97B682}
 	EndProjectSection
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ignite-nodejs-prototype", "ignite-nodejs-prototype\ignite-nodejs-prototype.vcxproj",
"{6445748E-C948-4E2E-AA3E-A9E8CC8AA66F}"
+	ProjectSection(ProjectDependencies) = postProject
+		{99F02840-F28B-42F3-9530-F8B75F97B682} = {99F02840-F28B-42F3-9530-F8B75F97B682}
+	EndProjectSection
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Mixed Platforms = Debug|Mixed Platforms
@@ -43,6 +48,16 @@ Global
 		{15376F49-5837-4FBE-9FE4-636A3A0A686C}.Release|Win32.ActiveCfg = Release|Win32
 		{15376F49-5837-4FBE-9FE4-636A3A0A686C}.Release|Win32.Build.0 = Release|Win32
 		{15376F49-5837-4FBE-9FE4-636A3A0A686C}.Release|x64.ActiveCfg = Release|Win32
+		{6445748E-C948-4E2E-AA3E-A9E8CC8AA66F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
+		{6445748E-C948-4E2E-AA3E-A9E8CC8AA66F}.Debug|Mixed Platforms.Build.0 = Debug|x64
+		{6445748E-C948-4E2E-AA3E-A9E8CC8AA66F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{6445748E-C948-4E2E-AA3E-A9E8CC8AA66F}.Debug|Win32.Build.0 = Debug|Win32
+		{6445748E-C948-4E2E-AA3E-A9E8CC8AA66F}.Debug|x64.ActiveCfg = Debug|Win32
+		{6445748E-C948-4E2E-AA3E-A9E8CC8AA66F}.Release|Mixed Platforms.ActiveCfg = Release|Win32
+		{6445748E-C948-4E2E-AA3E-A9E8CC8AA66F}.Release|Mixed Platforms.Build.0 = Release|Win32
+		{6445748E-C948-4E2E-AA3E-A9E8CC8AA66F}.Release|Win32.ActiveCfg = Release|Win32
+		{6445748E-C948-4E2E-AA3E-A9E8CC8AA66F}.Release|Win32.Build.0 = Release|Win32
+		{6445748E-C948-4E2E-AA3E-A9E8CC8AA66F}.Release|x64.ActiveCfg = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/ignite-nodejs-prototype.vcxproj
----------------------------------------------------------------------
diff --git a/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/ignite-nodejs-prototype.vcxproj
b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/ignite-nodejs-prototype.vcxproj
new file mode 100644
index 0000000..0f766ab
--- /dev/null
+++ b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/ignite-nodejs-prototype.vcxproj
@@ -0,0 +1,164 @@
+<?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.
+-->
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{6445748E-C948-4E2E-AA3E-A9E8CC8AA66F}</ProjectGuid>
+    <RootNamespace>ignitenodejsprototype</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v120</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v120</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v120</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v120</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <TargetExt>.node</TargetExt>
+    <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(NODE_HOME)\src</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <TargetExt>.node</TargetExt>
+    <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(NODE_HOME)\src;$(ProjectDir)\include;$(NODE_HOME)\deps\v8\include;;$(NODE_HOME)\deps\uv\include</IncludePath>
+    <LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NODE_HOME)\$(Configuration)</LibraryPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(NODE_HOME)\src</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(NODE_HOME)\src;$(ProjectDir)\include;$(NODE_HOME)\deps\v8\include;;$(NODE_HOME)\deps\uv\include</IncludePath>
+    <LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NODE_HOME)\$(Configuration)</LibraryPath>
+    <TargetExt>.node</TargetExt>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;$(SolutionDir)\ignite-interop-api</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);_SCL_SECURE_NO_WARNINGS</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>$(SolutionDir)\x64\Debug\ignite-interop-api.lib;node.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)\ignite-interop-api</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="include\ignite_cache.h" />
+    <ClInclude Include="include\main.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\ignite_cache.cpp" />
+    <ClCompile Include="src\main.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/ignite-nodejs-prototype.vcxproj.filters
----------------------------------------------------------------------
diff --git a/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/ignite-nodejs-prototype.vcxproj.filters
b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/ignite-nodejs-prototype.vcxproj.filters
new file mode 100644
index 0000000..64c8a7c
--- /dev/null
+++ b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/ignite-nodejs-prototype.vcxproj.filters
@@ -0,0 +1,49 @@
+<?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.
+-->
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="include\main.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\ignite_cache.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\main.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\ignite_cache.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/ignite-nodejs-prototype.vcxproj.user
----------------------------------------------------------------------
diff --git a/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/ignite-nodejs-prototype.vcxproj.user
b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/ignite-nodejs-prototype.vcxproj.user
new file mode 100644
index 0000000..22c4501
--- /dev/null
+++ b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/ignite-nodejs-prototype.vcxproj.user
@@ -0,0 +1,24 @@
+<?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.
+-->
+<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LocalDebuggerCommand>$(NODE_HOME)\$(Configuration)\node.exe</LocalDebuggerCommand>
+    <LocalDebuggerWorkingDirectory>$(OutDir)</LocalDebuggerWorkingDirectory>
+    <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+  </PropertyGroup>
+</Project>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/include/ignite_cache.h
----------------------------------------------------------------------
diff --git a/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/include/ignite_cache.h
b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/include/ignite_cache.h
new file mode 100644
index 0000000..7b8c589
--- /dev/null
+++ b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/include/ignite_cache.h
@@ -0,0 +1,45 @@
+/*
+ * 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.
+ */
+
+#ifndef MYOBJECT_H
+#define MYOBJECT_H
+
+#include <node.h>
+#include <node_object_wrap.h>
+#include "ignite-interop-api.h"
+
+class IgniteCache : public node::ObjectWrap {
+public:
+	static void Init(v8::Handle<v8::Object> exports);
+
+private:
+	IgniteCache(IgniteInteropCache* cache);
+
+	~IgniteCache();
+
+	static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
+
+	static void Put(const v8::FunctionCallbackInfo<v8::Value>& args);
+
+	static void ObjectInfo(const v8::FunctionCallbackInfo<v8::Value>& args);
+
+	static v8::Persistent<v8::Function> constructor;
+
+	IgniteInteropCache* cache;
+};
+
+#endif
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/include/main.h
----------------------------------------------------------------------
diff --git a/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/include/main.h
b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/include/main.h
new file mode 100644
index 0000000..4b326ae
--- /dev/null
+++ b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/include/main.h
@@ -0,0 +1,17 @@
+/*
+ * 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.
+ */
+

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/src/ignite_cache.cpp
----------------------------------------------------------------------
diff --git a/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/src/ignite_cache.cpp
b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/src/ignite_cache.cpp
new file mode 100644
index 0000000..04d4820
--- /dev/null
+++ b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/src/ignite_cache.cpp
@@ -0,0 +1,164 @@
+/*
+ * 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.
+ */
+
+#include "ignite_cache.h"
+
+#include <iostream>
+#include <stdlib.h>
+#include <string>
+
+using namespace v8;
+
+Persistent<Function> IgniteCache::constructor;
+
+IgniteCache::IgniteCache(IgniteInteropCache* cache) : cache(cache) {
+	// No-op
+}
+
+IgniteCache::~IgniteCache() {
+	if (cache)
+		delete cache;
+}
+
+IgniteInteropNode* igniteNode;
+
+void IgniteCache::Init(Handle<Object> exports) {
+	/*
+	igniteNode = StartNode();
+
+	if (!igniteNode)
+		return;
+		*/
+
+	Isolate* isolate = Isolate::GetCurrent();
+
+	// Prepare constructor template
+	Local<FunctionTemplate> tpl = FunctionTemplate::New(isolate, New);
+	tpl->SetClassName(String::NewFromUtf8(isolate, "IgniteCache"));
+	tpl->InstanceTemplate()->SetInternalFieldCount(1);
+
+	// Prototype
+	NODE_SET_PROTOTYPE_METHOD(tpl, "put", Put);
+	NODE_SET_PROTOTYPE_METHOD(tpl, "objectInfo", ObjectInfo);
+
+	constructor.Reset(isolate, tpl->GetFunction());
+	
+	exports->Set(String::NewFromUtf8(isolate, "IgniteCache"), tpl->GetFunction());
+}
+
+void IgniteCache::New(const FunctionCallbackInfo<Value>& args) {
+	Isolate* isolate = Isolate::GetCurrent();
+	HandleScope scope(isolate);
+
+	if (args.IsConstructCall()) {
+		// Invoked as constructor: `new IgniteCache(...)`
+		
+		IgniteInteropCache* cache = 0;
+		
+		/*
+		if (!args[0]->IsUndefined()) {
+			Local<String> name = args[0]->ToString();
+
+			v8::String::Utf8Value utf8(name);
+			
+			std::cout << "Cache: " << *utf8 << "\n";
+			
+			cache = igniteNode->getCache(*utf8);
+		}
+		else
+			cache = igniteNode->getCache(0);
+
+		if (!cache)
+			return;
+		*/
+
+		IgniteCache* obj = new IgniteCache(cache);
+
+		obj->Wrap(args.This());
+
+		args.GetReturnValue().Set(args.This());
+	}
+	else {
+		// Invoked as plain function `IgniteCache(...)`, turn into construct call.
+		const int argc = 1;
+
+		Local<Value> argv[argc] = { args[0] };
+		
+		Local<Function> cons = Local<Function>::New(isolate, constructor);
+		
+		args.GetReturnValue().Set(cons->NewInstance(argc, argv));
+	}
+}
+
+void IgniteCache::Put(const FunctionCallbackInfo<Value>& args) {
+	Isolate* isolate = Isolate::GetCurrent();
+	HandleScope scope(isolate);
+
+	IgniteCache* cache = ObjectWrap::Unwrap<IgniteCache>(args.Holder());
+
+	if (args.Length() != 2) {
+		std::cout << "Two arguments expected.\n";
+
+		return;
+	}
+
+	int key = args[0]->Int32Value();
+	int val = args[1]->Int32Value();
+
+	std::cout << "Put key=" << key << ", val=" << val << "\n";
+
+	InterupOutputStream out(8);
+
+	out.writeInt32(key);
+	out.writeInt32(val);
+
+	cache->cache->put(out.data(), out.size());
+	//obj->value_ += 1;
+
+	//args.GetReturnValue().Set(Number::New(isolate, obj->value_));
+}
+
+void IgniteCache::ObjectInfo(const FunctionCallbackInfo<Value>& args) {
+	Isolate* isolate = Isolate::GetCurrent();
+	HandleScope scope(isolate);
+
+	IgniteCache* cache = ObjectWrap::Unwrap<IgniteCache>(args.Holder());
+
+	if (args.Length() != 1 || !args[0]->IsObject()) {
+		std::cout << "One object argument is expected.\n";
+
+		return;
+	}
+
+	Local<Object> obj = Local<Object>::Cast(args[0]);
+
+	std::cout << "Constructor: " << *v8::String::Utf8Value(obj->GetConstructorName())
<< "\n";
+
+	Local<Array> props = obj->GetPropertyNames();
+
+	std::cout << "Properties (" << props->Length() << "):\n";
+
+	for (int i = 0; i < props->Length(); i++) {
+		Local<Value> prop = props->Get(i);
+
+		Local<Value> val = obj->Get(prop);
+
+		if (!val->IsFunction()) {
+			std::cout << *v8::String::Utf8Value(prop->ToString()) << "=" << *v8::String::Utf8Value(val->ToString())
<< "\n";
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/src/main.cpp
----------------------------------------------------------------------
diff --git a/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/src/main.cpp
b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/src/main.cpp
new file mode 100644
index 0000000..d4c9188
--- /dev/null
+++ b/modules/interop/src/main/cpp/ignite-interop/ignite-nodejs-prototype/src/main.cpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+
+#include "main.h"
+#include <node.h>
+#include "ignite_cache.h"
+
+using namespace v8;
+
+void InitAll(Handle<Object> exports) {
+	//TestInit();
+
+	IgniteCache::Init(exports);
+}
+
+NODE_MODULE(addon, InitAll)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/432cabd9/modules/interop/src/test/config/test.xml
----------------------------------------------------------------------
diff --git a/modules/interop/src/test/config/test.xml b/modules/interop/src/test/config/test.xml
new file mode 100644
index 0000000..fd9e3a5
--- /dev/null
+++ b/modules/interop/src/test/config/test.xml
@@ -0,0 +1,48 @@
+<?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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+        http://www.springframework.org/schema/beans/spring-beans.xsd">
+    <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
+        <property name="localHost" value="127.0.0.1"/>
+
+        <property name="gridName" value="grid1"/>
+
+        <property name="cacheConfiguration">
+            <list>
+                <bean class="org.apache.ignite.configuration.CacheConfiguration">
+                    <property name="name" value="cache1"/>
+                    <property name="rebalanceMode" value="SYNC"/>
+                </bean>
+            </list>
+        </property>
+
+        <property name="discoverySpi">
+            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
+                <property name="ipFinder">
+                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+                        <property name="shared" value="true"/>
+                    </bean>
+                </property>
+            </bean>
+        </property>
+    </bean>
+</beans>


Mime
View raw message