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/12/17 10:41:51 UTC

[01/24] ignite git commit: IGNITE-2155 Fixed ScalarSnowflakeSchemaExample.

Repository: ignite
Updated Branches:
  refs/heads/ignite-1.5.1 ad638e71c -> b9e0f117a


IGNITE-2155 Fixed ScalarSnowflakeSchemaExample.


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

Branch: refs/heads/ignite-1.5.1
Commit: 894992d6846f8290362e43816524902a57955ee2
Parents: ed5f279
Author: AKuznetsov <ak...@gridgain.com>
Authored: Tue Dec 15 23:59:30 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Tue Dec 15 23:59:30 2015 +0700

----------------------------------------------------------------------
 .../examples/ScalarSnowflakeSchemaExample.scala | 31 ++++++++++++--------
 .../scala/org/apache/ignite/scalar/scalar.scala | 11 ++++++-
 2 files changed, 29 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/894992d6/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala
index 33b2fcc..eb8a538 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala
@@ -52,14 +52,14 @@ object ScalarSnowflakeSchemaExample {
     /** Configuration file name. */
     private val CONFIG = "examples/config/example-ignite.xml"
 
-    /** Name of replicated cache specified in spring configuration. */
-    private val REPL_NAME = "ScalarSnowflakeSchemaExampleReplicated"
-
     /** Name of partitioned cache specified in spring configuration. */
-    private val PART_NAME = "ScalarSnowflakeSchemaExamplePartitioned"
+    private val PARTITIONED_CACHE_NAME = "ScalarSnowflakeSchemaExamplePartitioned"
+
+    /** Name of replicated cache specified in spring configuration. */
+    private val REPLICATED_CACHE_NAME = "ScalarSnowflakeSchemaExampleReplicated"
 
     /** ID generator. */
-    private[this] val idGen = Stream.from(System.currentTimeMillis.toInt).iterator
+    private[this] val idGen = Stream.from(0).iterator
 
     /** DimStore data. */
     private[this] val dataStore = scala.collection.mutable.Map[JavaInt, DimStore]()
@@ -72,11 +72,18 @@ object ScalarSnowflakeSchemaExample {
      */
     def main(args: Array[String]) {
         scalar(CONFIG) {
-            val dimCache = createCache$[JavaInt, AnyRef](REPL_NAME, CacheMode.REPLICATED, Seq(classOf[JavaInt], classOf[DimStore],
+            println
+            println(">>> Cache star schema example started.")
+
+            // Destroy caches to clean up the data if any left from previous runs.
+            destroyCache$(PARTITIONED_CACHE_NAME)
+            destroyCache$(REPLICATED_CACHE_NAME)
+
+            val dimCache = createCache$[JavaInt, AnyRef](REPLICATED_CACHE_NAME, CacheMode.REPLICATED, Seq(classOf[JavaInt], classOf[DimStore],
                 classOf[JavaInt], classOf[DimProduct]))
 
             try {
-                val factCache = createCache$[JavaInt, FactPurchase](PART_NAME, indexedTypes = Seq(classOf[JavaInt], classOf[FactPurchase]))
+                val factCache = createCache$[JavaInt, FactPurchase](PARTITIONED_CACHE_NAME, indexedTypes = Seq(classOf[JavaInt], classOf[FactPurchase]))
 
                 try {
                     populateDimensions(dimCache)
@@ -138,10 +145,10 @@ object ScalarSnowflakeSchemaExample {
      * `FactPurchase` objects stored in `partitioned` cache.
      */
     def queryStorePurchases() {
-        val factCache = ignite$.cache[JavaInt, FactPurchase](PART_NAME)
+        val factCache = ignite$.cache[JavaInt, FactPurchase](PARTITIONED_CACHE_NAME)
 
         val storePurchases = factCache.sql(
-            "from \"" + REPL_NAME + "\".DimStore, \"" + PART_NAME + "\".FactPurchase " +
+            "from \"" + REPLICATED_CACHE_NAME + "\".DimStore, \"" + PARTITIONED_CACHE_NAME + "\".FactPurchase " +
             "where DimStore.id=FactPurchase.storeId and DimStore.name=?", "Store1")
 
         printQueryResults("All purchases made at store1:", storePurchases.getAll)
@@ -154,7 +161,7 @@ object ScalarSnowflakeSchemaExample {
      * stored in `partitioned` cache.
      */
     private def queryProductPurchases() {
-        val factCache = ignite$.cache[JavaInt, FactPurchase](PART_NAME)
+        val factCache = ignite$.cache[JavaInt, FactPurchase](PARTITIONED_CACHE_NAME)
 
         // All purchases for certain product made at store2.
         // =================================================
@@ -165,8 +172,8 @@ object ScalarSnowflakeSchemaExample {
         println("IDs of products [p1=" + p1.id + ", p2=" + p2.id + ", p3=" + p3.id + ']')
 
         val prodPurchases = factCache.sql(
-            "from \"" + REPL_NAME + "\".DimStore, \"" + REPL_NAME + "\".DimProduct, \"" +
-                PART_NAME + "\".FactPurchase " +
+            "from \"" + REPLICATED_CACHE_NAME + "\".DimStore, \"" + REPLICATED_CACHE_NAME + "\".DimProduct, \"" +
+                PARTITIONED_CACHE_NAME + "\".FactPurchase " +
             "where DimStore.id=FactPurchase.storeId and " +
                 "DimProduct.id=FactPurchase.productId and " +
                 "DimStore.name=? and DimProduct.id in(?, ?, ?)",

http://git-wip-us.apache.org/repos/asf/ignite/blob/894992d6/modules/scalar/src/main/scala/org/apache/ignite/scalar/scalar.scala
----------------------------------------------------------------------
diff --git a/modules/scalar/src/main/scala/org/apache/ignite/scalar/scalar.scala b/modules/scalar/src/main/scala/org/apache/ignite/scalar/scalar.scala
index c5bc085..998ec28 100644
--- a/modules/scalar/src/main/scala/org/apache/ignite/scalar/scalar.scala
+++ b/modules/scalar/src/main/scala/org/apache/ignite/scalar/scalar.scala
@@ -275,7 +275,7 @@ object scalar extends ScalarConversions {
         Option(Ignition.ignite.cache(cacheName))
 
     /**
-     * Creates cache cache with specified parameters in default grid.
+     * Creates cache with specified parameters in default grid.
      *
      * @param cacheName Name of the cache to get.
      */
@@ -291,6 +291,15 @@ object scalar extends ScalarConversions {
     }
 
     /**
+      * Destroy cache with specified name.
+      *
+      * @param cacheName Name of the cache to destroy.
+      */
+    @inline def destroyCache$(@Nullable cacheName: String) = {
+        Ignition.ignite.destroyCache(cacheName)
+    }
+
+    /**
      * Gets named cache from specified grid.
      *
      * @param gridName Name of the grid.


[04/24] ignite git commit: ignite-2146 Call service node filter outside of system cache transaction.

Posted by sb...@apache.org.
ignite-2146 Call service node filter outside of system cache transaction.


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

Branch: refs/heads/ignite-1.5.1
Commit: ab8ba9746f7f8f3be88eba73cc9abfb84cd86ecc
Parents: df08d3d
Author: sboikov <sb...@gridgain.com>
Authored: Wed Dec 16 08:39:20 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Dec 16 08:39:20 2015 +0300

----------------------------------------------------------------------
 .../service/GridServiceProcessor.java           |  30 +++-
 .../ServicePredicateAccessCacheTest.java        | 155 +++++++++++++++++++
 .../testsuites/IgniteKernalSelfTestSuite.java   |   2 +
 3 files changed, 180 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ab8ba974/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
index ed54f00..6b05edd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
@@ -704,13 +704,33 @@ public class GridServiceProcessor extends GridProcessorAdapter {
         Object affKey = cfg.getAffinityKey();
 
         while (true) {
+            GridServiceAssignments assigns = new GridServiceAssignments(cfg, dep.nodeId(), topVer);
+
+             Collection<ClusterNode> nodes;
+
+             // Call node filter outside of transaction.
+            if (affKey == null) {
+                nodes = ctx.discovery().nodes(topVer);
+
+                if (assigns.nodeFilter() != null) {
+                    Collection<ClusterNode> nodes0 = new ArrayList<>();
+
+                    for (ClusterNode node : nodes) {
+                        if (assigns.nodeFilter().apply(node))
+                            nodes0.add(node);
+                    }
+
+                    nodes = nodes0;
+                }
+            }
+            else
+                nodes = null;
+
             try (IgniteInternalTx tx = cache.txStartEx(PESSIMISTIC, REPEATABLE_READ)) {
                 GridServiceAssignmentsKey key = new GridServiceAssignmentsKey(cfg.getName());
 
                 GridServiceAssignments oldAssigns = (GridServiceAssignments)cache.get(key);
 
-                GridServiceAssignments assigns = new GridServiceAssignments(cfg, dep.nodeId(), topVer);
-
                 Map<UUID, Integer> cnts = new HashMap<>();
 
                 if (affKey != null) {
@@ -723,10 +743,6 @@ public class GridServiceProcessor extends GridProcessorAdapter {
                     }
                 }
                 else {
-                    Collection<ClusterNode> nodes = assigns.nodeFilter() == null ?
-                        ctx.discovery().nodes(topVer) :
-                        F.view(ctx.discovery().nodes(topVer), assigns.nodeFilter());
-
                     if (!nodes.isEmpty()) {
                         int size = nodes.size();
 
@@ -805,7 +821,7 @@ public class GridServiceProcessor extends GridProcessorAdapter {
 
                 assigns.assigns(cnts);
 
-                cache.getAndPut(key, assigns);
+                cache.put(key, assigns);
 
                 tx.commit();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/ab8ba974/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServicePredicateAccessCacheTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServicePredicateAccessCacheTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServicePredicateAccessCacheTest.java
new file mode 100644
index 0000000..c91d9f1
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServicePredicateAccessCacheTest.java
@@ -0,0 +1,155 @@
+/*
+ * 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.service;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.CountDownLatch;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.cluster.ClusterGroup;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.binary.BinaryMarshaller;
+import org.apache.ignite.lang.IgnitePredicate;
+import org.apache.ignite.services.Service;
+import org.apache.ignite.services.ServiceContext;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+import static org.apache.ignite.cache.CacheAtomicWriteOrderMode.PRIMARY;
+import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
+import static org.apache.ignite.cache.CacheMode.REPLICATED;
+import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
+
+/**
+ *
+ */
+public class ServicePredicateAccessCacheTest extends GridCommonAbstractTest {
+    /** */
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+
+    /** */
+    private static CountDownLatch latch;
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
+
+        cfg.setMarshaller(new BinaryMarshaller());
+
+        cfg.setPeerClassLoadingEnabled(false);
+
+        return cfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected long getTestTimeout() {
+        return 60_000;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTestsStopped() throws Exception {
+        stopAllGrids();
+
+        super.afterTestsStopped();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPredicateAccessCache() throws Exception {
+        final Ignite ignite0 = startGrid(0);
+
+        ignite0.getOrCreateCache(new CacheConfiguration<String, Object>()
+            .setName("testCache")
+            .setAtomicityMode(ATOMIC)
+            .setCacheMode(REPLICATED)
+            .setWriteSynchronizationMode(FULL_SYNC)
+            .setAtomicWriteOrderMode(PRIMARY));
+
+        latch = new CountDownLatch(1);
+
+        final ClusterGroup grp = ignite0.cluster().forPredicate(new IgnitePredicate<ClusterNode>() {
+            @Override public boolean apply(ClusterNode node) {
+                System.out.println("Predicated started [thread=" + Thread.currentThread().getName() + ']');
+
+                latch.countDown();
+
+                try {
+                    Thread.sleep(3000);
+                }
+                catch (InterruptedException ignore) {
+                    // No-op.
+                }
+
+                System.out.println("Call contains key [thread=" + Thread.currentThread().getName() + ']');
+
+                boolean ret = ignite0.cache("testCache").containsKey(node.id().toString());
+
+                System.out.println("After contains key [ret=" + ret +
+                    ", thread=" + Thread.currentThread().getName() + ']');
+
+                return ret;
+            }
+        });
+
+        IgniteInternalFuture<?> fut = GridTestUtils.runAsync(new Callable<Void>() {
+            @Override public Void call() throws Exception {
+                info("Start deploy service.");
+
+                ignite0.services(grp).deployNodeSingleton("testService", new TestService());
+
+                info("Service deployed.");
+
+                return null;
+            }
+        }, "deploy-thread");
+
+        latch.await();
+
+        startGrid(1);
+
+        fut.get();
+    }
+
+    /**
+     *
+     */
+    public static class TestService implements Service {
+        /** {@inheritDoc} */
+        public void execute(ServiceContext ctx) {
+            // No-op.
+        }
+
+        /** {@inheritDoc} */
+        public void init(ServiceContext ctx) {
+            // No-op.
+        }
+
+        /** {@inheritDoc} */
+        public void cancel(ServiceContext ctx) {
+            // No-op.
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/ab8ba974/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java
index a41859e..deb49b7 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java
@@ -52,6 +52,7 @@ import org.apache.ignite.internal.processors.service.GridServiceProcessorProxySe
 import org.apache.ignite.internal.processors.service.GridServiceProcessorSingleNodeSelfTest;
 import org.apache.ignite.internal.processors.service.GridServiceProcessorStopSelfTest;
 import org.apache.ignite.internal.processors.service.GridServiceReassignmentSelfTest;
+import org.apache.ignite.internal.processors.service.ServicePredicateAccessCacheTest;
 import org.apache.ignite.internal.util.GridStartupWithSpecifiedWorkDirectorySelfTest;
 import org.apache.ignite.internal.util.GridStartupWithUndefinedIgniteHomeSelfTest;
 import org.apache.ignite.spi.communication.GridCacheMessageSelfTest;
@@ -117,6 +118,7 @@ public class IgniteKernalSelfTestSuite extends TestSuite {
         suite.addTestSuite(GridServiceReassignmentSelfTest.class);
         suite.addTestSuite(GridServiceClientNodeTest.class);
         suite.addTestSuite(GridServiceProcessorStopSelfTest.class);
+        suite.addTestSuite(ServicePredicateAccessCacheTest.class);
 
         return suite;
     }


[09/24] ignite git commit: IGNITE-2159: CPP: Fixed compilation for interlocked operations on Windows.

Posted by sb...@apache.org.
IGNITE-2159: CPP: Fixed compilation for interlocked operations on Windows.


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

Branch: refs/heads/ignite-1.5.1
Commit: 65b176665e97e753f263231700b6907e51e94b00
Parents: 1acbce1
Author: isapego <is...@gridgain.com>
Authored: Wed Dec 16 11:32:11 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Dec 16 11:32:11 2015 +0300

----------------------------------------------------------------------
 .../cpp/common/os/win/src/concurrent_os.cpp     | 26 +++++++++++++++++++-
 .../platforms/cpp/core-test/src/cache_test.cpp  |  4 +--
 2 files changed, 27 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/65b17666/modules/platforms/cpp/common/os/win/src/concurrent_os.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/common/os/win/src/concurrent_os.cpp b/modules/platforms/cpp/common/os/win/src/concurrent_os.cpp
index a21f7ec..676d8b6 100644
--- a/modules/platforms/cpp/common/os/win/src/concurrent_os.cpp
+++ b/modules/platforms/cpp/common/os/win/src/concurrent_os.cpp
@@ -17,6 +17,8 @@
 
 #include "ignite/common/concurrent_os.h"
 
+#pragma intrinsic(_InterlockedCompareExchange64)
+
 namespace ignite
 {
     namespace common
@@ -103,17 +105,39 @@ namespace ignite
 
             int64_t Atomics::CompareAndSet64Val(int64_t* ptr, int64_t expVal, int64_t newVal)
             {
-                return InterlockedCompareExchange64(reinterpret_cast<LONG64*>(ptr), newVal, expVal);
+                return _InterlockedCompareExchange64(reinterpret_cast<LONG64*>(ptr), newVal, expVal);
             }
 
             int64_t Atomics::IncrementAndGet64(int64_t* ptr)
             {
+#ifdef _WIN64
                 return InterlockedIncrement64(reinterpret_cast<LONG64*>(ptr));
+#else 
+                while (true)
+                {
+                    int64_t expVal = *ptr;
+                    int64_t newVal = expVal + 1;
+
+                    if (CompareAndSet64(ptr, expVal, newVal))
+                        return newVal;
+                }
+#endif
             }
 
             int64_t Atomics::DecrementAndGet64(int64_t* ptr)
             {
+#ifdef _WIN64
                 return InterlockedDecrement64(reinterpret_cast<LONG64*>(ptr));
+#else 
+                while (true)
+                {
+                    int64_t expVal = *ptr;
+                    int64_t newVal = expVal - 1;
+
+                    if (CompareAndSet64(ptr, expVal, newVal))
+                        return newVal;
+                }
+#endif
             }
             
             bool ThreadLocal::OnProcessAttach()

http://git-wip-us.apache.org/repos/asf/ignite/blob/65b17666/modules/platforms/cpp/core-test/src/cache_test.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core-test/src/cache_test.cpp b/modules/platforms/cpp/core-test/src/cache_test.cpp
index c56054f..32c5bd6 100644
--- a/modules/platforms/cpp/core-test/src/cache_test.cpp
+++ b/modules/platforms/cpp/core-test/src/cache_test.cpp
@@ -234,12 +234,12 @@ BOOST_AUTO_TEST_CASE(TestGetAll)
     
     std::set<int> keySet (keys, keys + 5);
 
-    for (int i = 0; i < keySet.size(); i++)
+    for (int i = 0; i < static_cast<int>(keySet.size()); i++)
         cache.Put(i + 1, i + 1);
 
     std::map<int, int> map = cache.GetAll(keySet);
 
-    for (int i = 0; i < keySet.size(); i++)
+    for (int i = 0; i < static_cast<int>(keySet.size()); i++)
         BOOST_REQUIRE(i + 1 == map[i + 1]);
 }
 


[24/24] ignite git commit: Merge

Posted by sb...@apache.org.
Merge


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

Branch: refs/heads/ignite-1.5.1
Commit: b9e0f117ac88f2b7b863d6c9b8ae39799ddea1db
Parents: 3163f08
Author: Anton Vinogradov <av...@gridgain.com>
Authored: Thu Dec 17 12:39:48 2015 +0300
Committer: Anton Vinogradov <av...@gridgain.com>
Committed: Thu Dec 17 12:39:48 2015 +0300

----------------------------------------------------------------------
 .../apache/ignite/internal/IgniteKernal.java    |  4 ++--
 .../internal/binary/BinaryEnumObjectImpl.java   | 11 +++++-----
 .../internal/binary/BinaryObjectExImpl.java     |  6 +++---
 .../binary/BinaryObjectOffheapImpl.java         | 21 ++++++++++----------
 .../processors/cache/GridCacheProcessor.java    |  2 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  1 -
 .../cache/store/CacheOsStoreManager.java        |  2 +-
 .../internal/visor/query/VisorQueryJob.java     |  2 +-
 8 files changed, 23 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/b9e0f117/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 6e0be10..5457bbd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -83,6 +83,8 @@ import org.apache.ignite.configuration.CollectionConfiguration;
 import org.apache.ignite.configuration.ConnectorConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.internal.binary.BinaryEnumCache;
+import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.cluster.ClusterGroupAdapter;
 import org.apache.ignite.internal.cluster.IgniteClusterEx;
 import org.apache.ignite.internal.managers.GridManager;
@@ -96,8 +98,6 @@ import org.apache.ignite.internal.managers.failover.GridFailoverManager;
 import org.apache.ignite.internal.managers.indexing.GridIndexingManager;
 import org.apache.ignite.internal.managers.loadbalancer.GridLoadBalancerManager;
 import org.apache.ignite.internal.managers.swapspace.GridSwapSpaceManager;
-import org.apache.ignite.internal.binary.BinaryEnumCache;
-import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.processors.GridProcessor;
 import org.apache.ignite.internal.processors.affinity.GridAffinityProcessor;
 import org.apache.ignite.internal.processors.cache.GridCacheAdapter;

http://git-wip-us.apache.org/repos/asf/ignite/blob/b9e0f117/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
index 001d2d7..a0d2a71 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
@@ -17,6 +17,11 @@
 
 package org.apache.ignite.internal.binary;
 
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.nio.ByteBuffer;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.binary.BinaryObject;
 import org.apache.ignite.binary.BinaryObjectBuilder;
@@ -32,12 +37,6 @@ import org.apache.ignite.plugin.extensions.communication.MessageReader;
 import org.apache.ignite.plugin.extensions.communication.MessageWriter;
 import org.jetbrains.annotations.Nullable;
 
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.nio.ByteBuffer;
-
 /**
  * Binary enum object.
  */

http://git-wip-us.apache.org/repos/asf/ignite/blob/b9e0f117/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
index ddf17f0..1fc5fbe 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
@@ -21,13 +21,13 @@ import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.IdentityHashMap;
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.binary.BinaryObject;
 import org.apache.ignite.binary.BinaryObjectBuilder;
+import org.apache.ignite.binary.BinaryObjectException;
+import org.apache.ignite.binary.BinaryType;
 import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl;
 import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeMemory;
 import org.apache.ignite.internal.util.typedef.internal.SB;
-import org.apache.ignite.binary.BinaryObjectException;
-import org.apache.ignite.binary.BinaryType;
-import org.apache.ignite.binary.BinaryObject;
 import org.jetbrains.annotations.Nullable;
 
 /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/b9e0f117/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
index 696a34b..a844a1a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
@@ -17,6 +17,16 @@
 
 package org.apache.ignite.internal.binary;
 
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.nio.ByteBuffer;
+import java.sql.Timestamp;
+import java.util.Date;
+import java.util.UUID;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.binary.BinaryObject;
 import org.apache.ignite.binary.BinaryObjectBuilder;
@@ -33,17 +43,6 @@ import org.apache.ignite.plugin.extensions.communication.MessageWriter;
 import org.jetbrains.annotations.Nullable;
 import sun.misc.Unsafe;
 
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.nio.ByteBuffer;
-import java.sql.Timestamp;
-import java.util.Date;
-import java.util.UUID;
-
 import static java.nio.charset.StandardCharsets.UTF_8;
 
 /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/b9e0f117/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 380c163..57bb53b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -69,8 +69,8 @@ import org.apache.ignite.internal.IgniteComponentType;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.IgniteNodeAttributes;
 import org.apache.ignite.internal.IgniteTransactionsEx;
-import org.apache.ignite.internal.managers.discovery.CustomEventListener;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
+import org.apache.ignite.internal.managers.discovery.CustomEventListener;
 import org.apache.ignite.internal.processors.GridProcessorAdapter;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.processors.cache.datastructures.CacheDataStructuresManager;

http://git-wip-us.apache.org/repos/asf/ignite/blob/b9e0f117/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
index eefdc73..f0b8124 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
@@ -47,7 +47,6 @@ import org.apache.ignite.internal.processors.cache.KeyCacheObject;
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTopologyFuture;
 import org.apache.ignite.internal.processors.cache.distributed.near.GridNearAtomicCache;
 import org.apache.ignite.internal.processors.cache.dr.GridCacheDrInfo;
-import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
 import org.apache.ignite.internal.util.future.GridFutureAdapter;
 import org.apache.ignite.internal.util.tostring.GridToStringInclude;

http://git-wip-us.apache.org/repos/asf/ignite/blob/b9e0f117/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java
index 27771ff..fabf53a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java
@@ -21,9 +21,9 @@ import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.cache.store.CacheStore;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.internal.GridKernalContext;
+import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.processors.platform.PlatformProcessor;
 import org.apache.ignite.internal.processors.platform.cache.store.PlatformCacheStore;
-import org.apache.ignite.internal.binary.BinaryMarshaller;
 
 /**
  * Default store manager implementation.

http://git-wip-us.apache.org/repos/asf/ignite/blob/b9e0f117/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryJob.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryJob.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryJob.java
index dcca671..6d3ac4c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryJob.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryJob.java
@@ -41,8 +41,8 @@ import org.apache.ignite.lang.IgniteBiTuple;
 
 import static org.apache.ignite.internal.visor.query.VisorQueryUtils.RMV_DELAY;
 import static org.apache.ignite.internal.visor.query.VisorQueryUtils.SCAN_COL_NAMES;
-import static org.apache.ignite.internal.visor.query.VisorQueryUtils.SCAN_QRY_NAME;
 import static org.apache.ignite.internal.visor.query.VisorQueryUtils.SCAN_NEAR_CACHE;
+import static org.apache.ignite.internal.visor.query.VisorQueryUtils.SCAN_QRY_NAME;
 import static org.apache.ignite.internal.visor.query.VisorQueryUtils.SQL_QRY_NAME;
 import static org.apache.ignite.internal.visor.query.VisorQueryUtils.fetchScanQueryRows;
 import static org.apache.ignite.internal.visor.query.VisorQueryUtils.fetchSqlQueryRows;


[11/24] ignite git commit: ignite-1.5 Fixed tx entry add to always check for enlistWrite errors.

Posted by sb...@apache.org.
ignite-1.5 Fixed tx entry add to always check for enlistWrite errors.


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

Branch: refs/heads/ignite-1.5.1
Commit: 490f552b7a7a205a5dc2d34051c365ccc8e9f205
Parents: 77c6d08
Author: sboikov <sb...@gridgain.com>
Authored: Wed Dec 16 11:50:03 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Dec 16 11:50:03 2015 +0300

----------------------------------------------------------------------
 .../transactions/IgniteTxLocalAdapter.java      | 23 +++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/490f552b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index a3aed34..720832e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -2952,6 +2952,9 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
             if (pessimistic()) {
                 assert loadFut == null || loadFut.isDone() : loadFut;
 
+                if (loadFut != null)
+                    loadFut.get();
+
                 final Collection<KeyCacheObject> enlisted = Collections.singleton(cacheKey);
 
                 if (log.isDebugEnabled())
@@ -3124,6 +3127,15 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
             if (pessimistic()) {
                 assert loadFut == null || loadFut.isDone() : loadFut;
 
+                if (loadFut != null) {
+                    try {
+                        loadFut.get();
+                    }
+                    catch (IgniteCheckedException e) {
+                        return new GridFinishedFuture(e);
+                    }
+                }
+
                 if (log.isDebugEnabled())
                     log.debug("Before acquiring transaction lock for put on keys: " + enlisted);
 
@@ -3382,7 +3394,16 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
         // Otherwise, during rollback we will not know whether locks need
         // to be rolled back.
         if (pessimistic()) {
-            assert loadFut.isDone() : loadFut;
+            assert loadFut == null || loadFut.isDone() : loadFut;
+
+            if (loadFut != null) {
+                try {
+                    loadFut.get();
+                }
+                catch (IgniteCheckedException e) {
+                    return new GridFinishedFuture<>(e);
+                }
+            }
 
             if (log.isDebugEnabled())
                 log.debug("Before acquiring transaction lock for remove on keys: " + enlisted);


[18/24] ignite git commit: fixed https://issues.apache.org/jira/browse/IGNITE-2168

Posted by sb...@apache.org.
fixed https://issues.apache.org/jira/browse/IGNITE-2168


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

Branch: refs/heads/ignite-1.5.1
Commit: d204b0ed9b1a905ec05f0594c48504e691ce7df2
Parents: d8c8214
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Thu Dec 17 09:31:53 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Thu Dec 17 09:31:53 2015 +0300

----------------------------------------------------------------------
 .../ignite/examples/datagrid/store/jdbc/CacheJdbcStoreExample.java  | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d204b0ed/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcStoreExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcStoreExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcStoreExample.java
index 0034410..e6584dd 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcStoreExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcStoreExample.java
@@ -31,7 +31,6 @@ import org.apache.ignite.examples.ExampleNodeStartup;
 import org.apache.ignite.examples.ExamplesUtils;
 import org.apache.ignite.examples.model.Person;
 import org.apache.ignite.examples.util.DbH2ServerStartup;
-import org.apache.ignite.scalar.lang.ScalarOutClosure;
 import org.apache.ignite.transactions.Transaction;
 import org.h2.jdbcx.JdbcConnectionPool;
 


[23/24] ignite git commit: Merge

Posted by sb...@apache.org.
Merge


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

Branch: refs/heads/ignite-1.5.1
Commit: 3163f085e0e2ee27e6d5fc25e5deb058d285f5cf
Parents: ad638e7 9087f01
Author: Anton Vinogradov <av...@gridgain.com>
Authored: Thu Dec 17 12:39:34 2015 +0300
Committer: Anton Vinogradov <av...@gridgain.com>
Committed: Thu Dec 17 12:39:34 2015 +0300

----------------------------------------------------------------------
 examples/pom.xml                                |   2 +-
 examples/schema-import/pom.xml                  |   2 +-
 .../store/auto/CacheBinaryAutoStoreExample.java |   2 +-
 .../store/dummy/CacheDummyPersonStore.java      | 113 -----
 .../store/dummy/CacheDummyStoreExample.java     | 133 ------
 .../datagrid/store/dummy/package-info.java      |  22 -
 .../store/jdbc/CacheJdbcPersonStore.java        |  43 +-
 .../store/jdbc/CacheJdbcStoreExample.java       |  24 +-
 .../store/spring/CacheSpringPersonStore.java    | 131 -----
 .../store/spring/CacheSpringStoreExample.java   | 147 ------
 .../datagrid/store/spring/package-info.java     |  22 -
 .../examples/ScalarSnowflakeSchemaExample.scala |  31 +-
 .../ignite/examples/CacheExamplesSelfTest.java  |  10 +-
 modules/aop/pom.xml                             |   2 +-
 modules/apache-license-gen/pom.xml              |   2 +-
 modules/aws/pom.xml                             |   2 +-
 modules/camel/pom.xml                           |   2 +-
 modules/clients/pom.xml                         |   2 +-
 modules/cloud/pom.xml                           |   2 +-
 modules/codegen/pom.xml                         |   2 +-
 modules/core/pom.xml                            |   7 +-
 .../src/main/java/org/apache/ignite/Ignite.java |  19 +
 .../java/org/apache/ignite/IgniteCache.java     |   8 +-
 .../org/apache/ignite/binary/BinaryObject.java  |  15 +
 .../store/jdbc/CacheAbstractJdbcStore.java      |   2 +-
 .../configuration/CacheConfiguration.java       |  19 +-
 .../apache/ignite/internal/IgniteKernal.java    |  38 +-
 .../internal/binary/BinaryEnumObjectImpl.java   |   7 +
 .../internal/binary/BinaryObjectExImpl.java     |   7 +
 .../binary/BinaryObjectOffheapImpl.java         |   7 +
 .../processors/cache/GridCacheProcessor.java    |  12 +-
 .../cache/GridCacheSharedContext.java           |  20 +
 .../processors/cache/GridCacheUtils.java        |  18 +-
 .../dht/CacheDistributedGetFutureAdapter.java   |   2 +-
 .../dht/GridPartitionedGetFuture.java           |  15 +-
 .../dht/GridPartitionedSingleGetFuture.java     |   8 +
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  10 +-
 .../colocated/GridDhtColocatedLockFuture.java   |   2 +-
 .../distributed/near/GridNearGetFuture.java     |  17 +-
 .../distributed/near/GridNearLockFuture.java    |  30 +-
 ...ridNearOptimisticTxPrepareFutureAdapter.java |   6 +-
 .../cache/store/CacheOsStoreManager.java        |   2 +-
 .../transactions/IgniteTxLocalAdapter.java      |  23 +-
 .../cache/transactions/IgniteTxManager.java     |   6 +-
 .../service/GridServiceProcessor.java           |  30 +-
 .../internal/visor/query/VisorQueryJob.java     |   4 +-
 .../ignite/spi/discovery/tcp/ClientImpl.java    |   2 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |   4 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |  42 +-
 .../core/src/main/resources/ignite.properties   |   3 +-
 .../CacheSerializableTransactionsTest.java      |   8 +
 ...IgniteCacheBinaryEntryProcessorSelfTest.java | 255 ++++++++++
 .../cache/IgniteCacheNearLockValueSelfTest.java |  11 +-
 .../IgniteCacheStoreValueAbstractTest.java      |   2 +-
 .../IgniteStartCacheInTransactionSelfTest.java  |  39 +-
 .../GridCacheBinaryStoreAbstractSelfTest.java   |   2 +-
 .../CacheGetInsideLockChangingTopologyTest.java | 475 +++++++++++++++++++
 .../BinaryTxCacheLocalEntriesSelfTest.java      |   2 +-
 .../GridServiceProcessorProxySelfTest.java      |   3 +-
 .../ServicePredicateAccessCacheTest.java        | 155 ++++++
 .../spi/discovery/tcp/TcpDiscoverySelfTest.java |  16 +-
 .../IgniteCacheFailoverTestSuite3.java          |   2 +
 .../testsuites/IgniteKernalSelfTestSuite.java   |   2 +
 modules/extdata/p2p/pom.xml                     |   2 +-
 .../extdata/uri/modules/uri-dependency/pom.xml  |   2 +-
 modules/extdata/uri/pom.xml                     |   2 +-
 modules/flume/pom.xml                           |   2 +-
 modules/gce/pom.xml                             |   2 +-
 modules/geospatial/pom.xml                      |   2 +-
 modules/hadoop/pom.xml                          |   2 +-
 modules/hibernate/pom.xml                       |   2 +-
 modules/indexing/pom.xml                        |   2 +-
 .../IgniteBinaryObjectFieldsQuerySelfTest.java  |  53 ++-
 modules/jcl/pom.xml                             |   2 +-
 modules/jms11/pom.xml                           |   2 +-
 modules/jta/pom.xml                             |   2 +-
 modules/kafka/pom.xml                           |   2 +-
 modules/log4j/pom.xml                           |   2 +-
 modules/log4j2/pom.xml                          |   2 +-
 modules/mesos/pom.xml                           |   2 +-
 modules/mqtt/pom.xml                            |   2 +-
 modules/osgi-karaf/pom.xml                      |   2 +-
 modules/osgi-paxlogging/pom.xml                 |   2 +-
 modules/osgi/pom.xml                            |   2 +-
 modules/platforms/cpp/common/configure.ac       |   2 +-
 .../common/include/ignite/common/concurrent.h   |   2 +-
 .../cpp/common/include/ignite/common/utils.h    |   1 -
 .../cpp/common/os/win/src/concurrent_os.cpp     |  26 +-
 modules/platforms/cpp/common/src/java.cpp       |  20 +-
 modules/platforms/cpp/core-test/configure.ac    |   2 +-
 .../platforms/cpp/core-test/src/cache_test.cpp  |   4 +-
 modules/platforms/cpp/core/configure.ac         |   2 +-
 modules/platforms/cpp/core/impl/doxygen.h       |  53 +++
 .../core/include/ignite/binary/binary_type.h    |   4 +-
 .../cpp/core/include/ignite/cache/cache.h       |  12 +-
 .../include/ignite/cache/query/query_scan.h     |  28 +-
 .../include/ignite/cache/query/query_text.h     |  38 +-
 .../cpp/core/include/ignite/ignition.h          |  10 +-
 .../core/include/ignite/impl/cache/cache_impl.h |   6 +-
 .../cpp/core/include/ignite/impl/operations.h   |   8 +-
 modules/platforms/cpp/cpp.dxg                   |   4 +-
 modules/platforms/cpp/examples/configure.ac     |   2 +-
 modules/platforms/cpp/ignite/configure.ac       |   2 +-
 .../Properties/AssemblyInfo.cs                  |   4 +-
 .../Properties/AssemblyInfo.cs                  |   4 +-
 .../native-client-test-cache-parallel-store.xml |   2 +-
 .../Config/native-client-test-cache-store.xml   |   6 +-
 .../Examples/ExamplesTest.cs                    |   4 +-
 .../Properties/AssemblyInfo.cs                  |   4 +-
 .../Apache.Ignite.Core.csproj                   |  19 +
 .../Apache.Ignite.Core/Binary/Package-Info.cs   |  26 +
 .../Cache/Event/Package-Info.cs                 |  26 +
 .../Cache/Expiry/Package-Info.cs                |  26 +
 .../Apache.Ignite.Core/Cache/Package-Info.cs    |  26 +
 .../Cache/Query/Continuous/Package-Info.cs      |  26 +
 .../Cache/Query/Package-Info.cs                 |  26 +
 .../Cache/Store/Package-Info.cs                 |  26 +
 .../Apache.Ignite.Core/Cluster/Package-Info.cs  |  26 +
 .../Apache.Ignite.Core/Common/Package-Info.cs   |  26 +
 .../Apache.Ignite.Core/Compute/IComputeTask.cs  |  11 +-
 .../Apache.Ignite.Core/Compute/Package-Info.cs  |  26 +
 .../DataStructures/Package-Info.cs              |  26 +
 .../Datastream/Package-Info.cs                  |  26 +
 .../Apache.Ignite.Core/Events/Package-Info.cs   |  26 +
 .../dotnet/Apache.Ignite.Core/Impl/Ignite.cs    |   8 -
 .../Lifecycle/Package-Info.cs                   |  26 +
 .../Messaging/Package-Info.cs                   |  26 +
 .../dotnet/Apache.Ignite.Core/Package-Info.cs   |  36 ++
 .../Properties/AssemblyInfo.cs                  |   4 +-
 .../Apache.Ignite.Core/Resource/Package-Info.cs |  26 +
 .../Apache.Ignite.Core/Services/Package-Info.cs |  26 +
 .../Transactions/Package-Info.cs                |  26 +
 modules/platforms/dotnet/Apache.Ignite.sln      |   1 +
 .../Apache.Ignite/Properties/AssemblyInfo.cs    |   4 +-
 .../Apache.Ignite.Examples.csproj               |   1 -
 .../Datagrid/CrossPlatformExample.cs            | 205 --------
 .../Properties/AssemblyInfo.cs                  |   4 +-
 .../Properties/AssemblyInfo.cs                  |   4 +-
 modules/rest-http/pom.xml                       |   2 +-
 modules/scalar-2.10/pom.xml                     |   2 +-
 modules/scalar/pom.xml                          |   2 +-
 .../scala/org/apache/ignite/scalar/scalar.scala |  11 +-
 modules/schedule/pom.xml                        |   2 +-
 modules/schema-import/pom.xml                   |   2 +-
 modules/slf4j/pom.xml                           |   2 +-
 modules/spark-2.10/pom.xml                      |   2 +-
 modules/spark/pom.xml                           |   2 +-
 modules/spring/pom.xml                          |   2 +-
 modules/ssh/pom.xml                             |   2 +-
 modules/tools/pom.xml                           |   2 +-
 modules/twitter/pom.xml                         |   2 +-
 modules/urideploy/pom.xml                       |   2 +-
 modules/visor-console-2.10/pom.xml              |   2 +-
 modules/visor-console/pom.xml                   |   2 +-
 modules/visor-plugins/pom.xml                   |   2 +-
 modules/web/pom.xml                             |   2 +-
 modules/yardstick/pom.xml                       |   2 +-
 modules/yarn/pom.xml                            |   2 +-
 modules/zookeeper/pom.xml                       |   2 +-
 parent/pom.xml                                  |   1 +
 pom.xml                                         |   2 +-
 161 files changed, 2071 insertions(+), 1144 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/3163f085/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Properties/AssemblyInfo.cs
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3163f085/modules/platforms/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3163f085/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Properties/AssemblyInfo.cs
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3163f085/modules/platforms/dotnet/Apache.Ignite.Core/Properties/AssemblyInfo.cs
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3163f085/modules/platforms/dotnet/Apache.Ignite/Properties/AssemblyInfo.cs
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3163f085/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Properties/AssemblyInfo.cs
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3163f085/modules/platforms/dotnet/examples/Apache.Ignite.ExamplesDll/Properties/AssemblyInfo.cs
----------------------------------------------------------------------


[05/24] ignite git commit: ignite-1.5 More info in test assert.

Posted by sb...@apache.org.
ignite-1.5 More info in test assert.


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

Branch: refs/heads/ignite-1.5.1
Commit: a586b49aec8671b4485886ed0ccbe0e011fe4a3e
Parents: ab8ba97
Author: sboikov <sb...@gridgain.com>
Authored: Wed Dec 16 09:04:40 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Dec 16 09:04:40 2015 +0300

----------------------------------------------------------------------
 .../processors/service/GridServiceProcessorProxySelfTest.java     | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/a586b49a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorProxySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorProxySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorProxySelfTest.java
index f69176c..6fc7e02 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorProxySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorProxySelfTest.java
@@ -29,7 +29,6 @@ import org.apache.ignite.services.ServiceContext;
  * Service proxy test.
  */
 public class GridServiceProcessorProxySelfTest extends GridServiceProcessorAbstractSelfTest {
-
     /** {@inheritDoc} */
     @Override protected int nodeCount() {
         return 4;
@@ -216,7 +215,7 @@ public class GridServiceProcessorProxySelfTest extends GridServiceProcessorAbstr
             MapService<Integer, String> svc =  grid(i).services().serviceProxy(name, MapService.class, false);
 
             // Make sure service is a local instance.
-            assertTrue(svc instanceof Service);
+            assertTrue("Invalid service instance [srv=" + svc + ", node=" + i + ']', svc instanceof Service);
 
             svc.put(i, Integer.toString(i));
         }


[19/24] ignite git commit: Merge remote-tracking branch 'origin/ignite-1.5' into ignite-1.5_

Posted by sb...@apache.org.
Merge remote-tracking branch 'origin/ignite-1.5' into ignite-1.5_


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

Branch: refs/heads/ignite-1.5.1
Commit: 7f35bc6d13cd609e63b8e59b1a28d30f402bd44f
Parents: d204b0e 96dc238
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Thu Dec 17 09:32:08 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Thu Dec 17 09:32:08 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheProcessor.java    |   8 +-
 .../cache/GridCacheSharedContext.java           |  20 +
 .../dht/CacheDistributedGetFutureAdapter.java   |   2 +-
 .../dht/GridPartitionedGetFuture.java           |  15 +-
 .../dht/GridPartitionedSingleGetFuture.java     |   8 +
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  10 +-
 .../colocated/GridDhtColocatedLockFuture.java   |   2 +-
 .../distributed/near/GridNearGetFuture.java     |  17 +-
 .../distributed/near/GridNearLockFuture.java    |  30 +-
 ...ridNearOptimisticTxPrepareFutureAdapter.java |   6 +-
 .../cache/transactions/IgniteTxManager.java     |   6 +-
 .../cache/IgniteCacheNearLockValueSelfTest.java |  11 +-
 .../IgniteCacheStoreValueAbstractTest.java      |   2 +-
 .../IgniteStartCacheInTransactionSelfTest.java  |  39 +-
 .../CacheGetInsideLockChangingTopologyTest.java | 475 +++++++++++++++++++
 .../IgniteCacheFailoverTestSuite3.java          |   2 +
 16 files changed, 593 insertions(+), 60 deletions(-)
----------------------------------------------------------------------



[08/24] ignite git commit: IGNITE-1994: Removed .Net: CrossPlatformExample.

Posted by sb...@apache.org.
IGNITE-1994: Removed .Net: CrossPlatformExample.


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

Branch: refs/heads/ignite-1.5.1
Commit: 1acbce1e7a59ae9e7436e083ab919df618e57c1a
Parents: ec3fd19
Author: Pavel Tupitsyn <pt...@gridgain.com>
Authored: Wed Dec 16 11:16:55 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Dec 16 11:16:55 2015 +0300

----------------------------------------------------------------------
 .../Examples/ExamplesTest.cs                    |   4 +-
 .../Apache.Ignite.Examples.csproj               |   1 -
 .../Datagrid/CrossPlatformExample.cs            | 205 -------------------
 3 files changed, 2 insertions(+), 208 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/1acbce1e/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Examples/ExamplesTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Examples/ExamplesTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Examples/ExamplesTest.cs
index bcf6baa..4e8a036 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Examples/ExamplesTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Examples/ExamplesTest.cs
@@ -68,10 +68,10 @@ namespace Apache.Ignite.Core.Tests.Examples
         /// <param name="clientMode">Client mode flag.</param>
         private static void TestRemoteNodes(Example example, bool clientMode)
         {
-            // Exclude CrossPlatformExample and LifecycleExample
+            // Exclude LifecycleExample
             if (string.IsNullOrEmpty(example.SpringConfigUrl))
             {
-                Assert.IsTrue(new[] {"CrossPlatformExample", "LifecycleExample"}.Contains(example.Name));
+                Assert.AreEqual("LifecycleExample", example.Name);
 
                 return;
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/1acbce1e/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Apache.Ignite.Examples.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Apache.Ignite.Examples.csproj b/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Apache.Ignite.Examples.csproj
index 2f4ce18..abe4b14 100644
--- a/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Apache.Ignite.Examples.csproj
+++ b/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Apache.Ignite.Examples.csproj
@@ -57,7 +57,6 @@
     <Compile Include="Compute\ClosureExample.cs" />
     <Compile Include="Compute\TaskExample.cs" />
     <Compile Include="Datagrid\ContinuousQueryExample.cs" />
-    <Compile Include="Datagrid\CrossPlatformExample.cs" />
     <Compile Include="Datagrid\DataStreamerExample.cs" />
     <Compile Include="Datagrid\PutGetExample.cs" />
     <Compile Include="Datagrid\QueryExample.cs" />

http://git-wip-us.apache.org/repos/asf/ignite/blob/1acbce1e/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Datagrid/CrossPlatformExample.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Datagrid/CrossPlatformExample.cs b/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Datagrid/CrossPlatformExample.cs
deleted file mode 100644
index 5c07204..0000000
--- a/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Datagrid/CrossPlatformExample.cs
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * 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.
- */
-
-using System;
-using System.Collections.Generic;
-using Apache.Ignite.Core;
-using Apache.Ignite.Core.Binary;
-
-namespace Apache.Ignite.Examples.Datagrid
-{
-    using Apache.Ignite.ExamplesDll.Binary;
-
-    /// <summary>
-    /// This example demonstrates use of binary objects between different platforms.
-    /// <para/>
-    /// This example must be run with standalone Java node. To achieve this start a node from %IGNITE_HOME%
-    /// using "ignite.bat" with proper configuration:
-    /// <example>'bin\ignite.bat examples\config\example-server.xml'</example>.
-    /// <para />
-    /// Once remote node is started, launch this example as follows:
-    /// 1) Build the project Apache.Ignite.ExamplesDll (select it -> right-click -> Build);
-    /// 2) Set this class as startup object (Apache.Ignite.Examples project -> right-click -> Properties -> 
-    ///     Application -> Startup object); 
-    /// 3) Start application (F5 or Ctrl+F5).
-    /// <para />
-    /// To see how objects can be transferred between platforms, start cross-platform Java example 
-    /// without restarting remote node.
-    /// </summary>
-    public class CrossPlatformExample
-    {
-        /// <summary>Key for Java object.</summary>
-        private const int KeyJava = 100;
-
-        /// <summary>Key for .Net object.</summary>
-        private const int KeyDotnet = 200;
-
-        /// <summary>Key for C++ object.</summary>
-        private const int KeyCpp = 300;
-
-        /// <summary>Cache Name.</summary>
-        private const string CacheName = "cacheCrossPlatform";
-
-        /// <summary>
-        /// Runs the example.
-        /// </summary>
-        [STAThread]
-        public static void Main()
-        {
-            var cfg = new IgniteConfiguration
-            {
-                SpringConfigUrl = @"platforms\dotnet\examples\config\example-cache.xml",
-                JvmOptions = new List<string> { "-Xms512m", "-Xmx1024m" }
-            };
-
-            using (var ignite = Ignition.Start(cfg))
-            {
-                Console.WriteLine();
-                Console.WriteLine(">>> Cross-platform example started.");
-
-                if (ignite.GetCluster().ForRemotes().GetNodes().Count == 0)
-                {
-                    Console.WriteLine();
-                    Console.WriteLine(">>> This example requires remote nodes to be started.");
-                    Console.WriteLine(">>> Please start at least 1 remote node.");
-                    Console.WriteLine(">>> Refer to example's documentation for details on configuration.");
-                    Console.WriteLine();
-                }
-                else
-                {
-                    var cache = ignite.GetOrCreateCache<int, Organization>(CacheName);
-
-                    // Create new Organization object to store in cache.
-                    Organization org = new Organization(
-                        "Apache",
-                        new Address("1065 East Hillsdale Blvd, Foster City, CA", 94404),
-                        OrganizationType.Private,
-                        DateTime.Now
-                    );
-
-                    // Put created data entry to cache.
-                    cache.Put(KeyDotnet, org);
-
-                    // Retrieve value stored by Java client.
-                    GetFromJava(ignite);
-
-                    // Retrieve value stored by C++ client.
-                    GetFromCpp(ignite);
-
-                    // Gets binary value from cache in binary format, without de-serializing it.
-                    GetDotNetBinaryInstance(ignite);
-
-                    // Gets binary value form cache as a strongly-typed fully de-serialized instance.
-                    GetDotNetTypedInstance(ignite);
-
-                    Console.WriteLine();
-                }
-            }
-
-            Console.WriteLine();
-            Console.WriteLine(">>> Example finished, press any key to exit ...");
-            Console.ReadKey();
-        }
-
-        /// <summary>
-        /// Gets entry put by Java client. In order for entry to be in cache, Java client example
-        /// must be run before this example.
-        /// </summary>
-        /// <param name="ignite">Ignite instance.</param>
-        private static void GetFromJava(IIgnite ignite)
-        {
-            var cache = ignite.GetOrCreateCache<int, IBinaryObject>(CacheName)
-                .WithKeepBinary<int, IBinaryObject>();
-
-            var orgBinary = cache.GetAsync(KeyJava).Result;
-
-            if (orgBinary == null)
-            {
-                Console.WriteLine(">>> Java client hasn't put entry to cache. Run Java example before this example " +
-                    "to see the output.");
-            }
-            else
-            {
-                Console.WriteLine(">>> Entry from Java client:");
-                Console.WriteLine(">>>     Binary:     " + orgBinary);
-                Console.WriteLine(">>>     Deserialized: " + orgBinary.Deserialize<Organization>());
-            }
-        }
-
-        /// <summary>
-        /// Gets entry put by C++ client. In order for entry to be in cache, C++ client example
-        /// must be run before this example.
-        /// </summary>
-        /// <param name="ignite">Ignite instance.</param>
-        private static void GetFromCpp(IIgnite ignite)
-        {
-            var cache = ignite.GetOrCreateCache<int, IBinaryObject>(CacheName)
-                .WithKeepBinary<int, IBinaryObject>();
-
-            var orgBinary = cache.GetAsync(KeyCpp).Result;
-
-            Console.WriteLine();
-
-            if (orgBinary == null)
-            {
-                Console.WriteLine(">>> CPP client hasn't put entry to cache. Run CPP example before this example " +
-                    "to see the output.");
-            }
-            else
-            {
-                Console.WriteLine(">>> Entry from CPP client:");
-                Console.WriteLine(">>>     Binary:     " + orgBinary);
-                Console.WriteLine(">>>     Deserialized: " + orgBinary.Deserialize<Organization>());
-            }
-        }
-
-        /// <summary>
-        /// Gets binary value from cache in binary format, without de-serializing it.
-        /// </summary>
-        /// <param name="ignite">Ignite instance.</param>
-        private static void GetDotNetBinaryInstance(IIgnite ignite)
-        {
-            // Apply "KeepBinary" flag on data projection.
-            var cache = ignite.GetOrCreateCache<int, IBinaryObject>(CacheName)
-                .WithKeepBinary<int, IBinaryObject>();
-
-            var org = cache.Get(KeyDotnet);
-
-            string name = org.GetField<string>("name");
-
-            Console.WriteLine();
-            Console.WriteLine(">>> Retrieved organization name from binary field: " + name);
-        }
-
-        /// <summary>
-        /// Gets binary value form cache as a strongly-typed fully de-serialized instance.
-        /// </summary>
-        /// <param name="ignite">Ignite instance.</param>
-        private static void GetDotNetTypedInstance(IIgnite ignite)
-        {
-            var cache = ignite.GetOrCreateCache<int, Organization>(CacheName);
-
-            // Get recently created employee as a strongly-typed fully de-serialized instance.
-            Organization emp = cache.Get(KeyDotnet);
-
-            string name = emp.Name;
-
-            Console.WriteLine();
-            Console.WriteLine(">>> Retrieved organization name from deserialized Organization instance: " + name);
-        }
-    }
-}


[22/24] ignite git commit: 1.5.0-final-SNAPSHOT

Posted by sb...@apache.org.
1.5.0-final-SNAPSHOT


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

Branch: refs/heads/ignite-1.5.1
Commit: 9087f019d06b3c7a35376590177868877311fec2
Parents: 916f59a
Author: Ignite Teamcity <ig...@apache.org>
Authored: Thu Dec 17 12:33:20 2015 +0300
Committer: Ignite Teamcity <ig...@apache.org>
Committed: Thu Dec 17 12:33:20 2015 +0300

----------------------------------------------------------------------
 examples/pom.xml                                                 | 2 +-
 examples/schema-import/pom.xml                                   | 2 +-
 modules/aop/pom.xml                                              | 2 +-
 modules/apache-license-gen/pom.xml                               | 2 +-
 modules/aws/pom.xml                                              | 2 +-
 modules/camel/pom.xml                                            | 2 +-
 modules/clients/pom.xml                                          | 2 +-
 modules/cloud/pom.xml                                            | 2 +-
 modules/codegen/pom.xml                                          | 2 +-
 modules/core/pom.xml                                             | 2 +-
 modules/core/src/main/resources/ignite.properties                | 2 +-
 modules/extdata/p2p/pom.xml                                      | 2 +-
 modules/extdata/uri/modules/uri-dependency/pom.xml               | 2 +-
 modules/extdata/uri/pom.xml                                      | 2 +-
 modules/flume/pom.xml                                            | 2 +-
 modules/gce/pom.xml                                              | 2 +-
 modules/geospatial/pom.xml                                       | 2 +-
 modules/hadoop/pom.xml                                           | 2 +-
 modules/hibernate/pom.xml                                        | 2 +-
 modules/indexing/pom.xml                                         | 2 +-
 modules/jcl/pom.xml                                              | 2 +-
 modules/jms11/pom.xml                                            | 2 +-
 modules/jta/pom.xml                                              | 2 +-
 modules/kafka/pom.xml                                            | 2 +-
 modules/log4j/pom.xml                                            | 2 +-
 modules/log4j2/pom.xml                                           | 2 +-
 modules/mesos/pom.xml                                            | 2 +-
 modules/mqtt/pom.xml                                             | 2 +-
 modules/osgi-karaf/pom.xml                                       | 2 +-
 modules/osgi-paxlogging/pom.xml                                  | 2 +-
 modules/osgi/pom.xml                                             | 2 +-
 modules/platforms/cpp/common/configure.ac                        | 2 +-
 modules/platforms/cpp/core-test/configure.ac                     | 2 +-
 modules/platforms/cpp/core/configure.ac                          | 2 +-
 modules/platforms/cpp/examples/configure.ac                      | 2 +-
 modules/platforms/cpp/ignite/configure.ac                        | 2 +-
 .../dotnet/Apache.Ignite.Benchmarks/Properties/AssemblyInfo.cs   | 4 ++--
 .../Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs  | 4 ++--
 .../dotnet/Apache.Ignite.Core.Tests/Properties/AssemblyInfo.cs   | 4 ++--
 .../dotnet/Apache.Ignite.Core/Properties/AssemblyInfo.cs         | 4 ++--
 .../platforms/dotnet/Apache.Ignite/Properties/AssemblyInfo.cs    | 4 ++--
 .../examples/Apache.Ignite.Examples/Properties/AssemblyInfo.cs   | 4 ++--
 .../Apache.Ignite.ExamplesDll/Properties/AssemblyInfo.cs         | 4 ++--
 modules/rest-http/pom.xml                                        | 2 +-
 modules/scalar-2.10/pom.xml                                      | 2 +-
 modules/scalar/pom.xml                                           | 2 +-
 modules/schedule/pom.xml                                         | 2 +-
 modules/schema-import/pom.xml                                    | 2 +-
 modules/slf4j/pom.xml                                            | 2 +-
 modules/spark-2.10/pom.xml                                       | 2 +-
 modules/spark/pom.xml                                            | 2 +-
 modules/spring/pom.xml                                           | 2 +-
 modules/ssh/pom.xml                                              | 2 +-
 modules/tools/pom.xml                                            | 2 +-
 modules/twitter/pom.xml                                          | 2 +-
 modules/urideploy/pom.xml                                        | 2 +-
 modules/visor-console-2.10/pom.xml                               | 2 +-
 modules/visor-console/pom.xml                                    | 2 +-
 modules/visor-plugins/pom.xml                                    | 2 +-
 modules/web/pom.xml                                              | 2 +-
 modules/yardstick/pom.xml                                        | 2 +-
 modules/yarn/pom.xml                                             | 2 +-
 modules/zookeeper/pom.xml                                        | 2 +-
 pom.xml                                                          | 2 +-
 64 files changed, 71 insertions(+), 71 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/examples/pom.xml
----------------------------------------------------------------------
diff --git a/examples/pom.xml b/examples/pom.xml
index 41a5b6f..f123855 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -28,7 +28,7 @@
     </parent>
 
     <artifactId>ignite-examples</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/examples/schema-import/pom.xml
----------------------------------------------------------------------
diff --git a/examples/schema-import/pom.xml b/examples/schema-import/pom.xml
index 40f20a3..f2cfbeb 100644
--- a/examples/schema-import/pom.xml
+++ b/examples/schema-import/pom.xml
@@ -35,7 +35,7 @@
     </properties>
 
     <artifactId>ignite-schema-import-demo</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/aop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/aop/pom.xml b/modules/aop/pom.xml
index 68a6c4b..c143c67 100644
--- a/modules/aop/pom.xml
+++ b/modules/aop/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-aop</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/apache-license-gen/pom.xml
----------------------------------------------------------------------
diff --git a/modules/apache-license-gen/pom.xml b/modules/apache-license-gen/pom.xml
index fac37b1..154d43b 100644
--- a/modules/apache-license-gen/pom.xml
+++ b/modules/apache-license-gen/pom.xml
@@ -31,7 +31,7 @@
 
     <groupId>org.apache.ignite</groupId>
     <artifactId>ignite-apache-license-gen</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <build>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/aws/pom.xml
----------------------------------------------------------------------
diff --git a/modules/aws/pom.xml b/modules/aws/pom.xml
index b3a4286..b4e8816 100644
--- a/modules/aws/pom.xml
+++ b/modules/aws/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-aws</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/camel/pom.xml
----------------------------------------------------------------------
diff --git a/modules/camel/pom.xml b/modules/camel/pom.xml
index 7b73f1d..6a574af 100644
--- a/modules/camel/pom.xml
+++ b/modules/camel/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-camel</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <properties>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/clients/pom.xml
----------------------------------------------------------------------
diff --git a/modules/clients/pom.xml b/modules/clients/pom.xml
index 002e6c4..cd8ae10 100644
--- a/modules/clients/pom.xml
+++ b/modules/clients/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-clients</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/cloud/pom.xml
----------------------------------------------------------------------
diff --git a/modules/cloud/pom.xml b/modules/cloud/pom.xml
index f81db04..175b3b2 100644
--- a/modules/cloud/pom.xml
+++ b/modules/cloud/pom.xml
@@ -29,7 +29,7 @@
     </parent>
 
     <artifactId>ignite-cloud</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <properties>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/codegen/pom.xml
----------------------------------------------------------------------
diff --git a/modules/codegen/pom.xml b/modules/codegen/pom.xml
index c9d0be7..d124c42 100644
--- a/modules/codegen/pom.xml
+++ b/modules/codegen/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-codegen</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <properties>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index c8702bd..56c1ff3 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-core</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <repositories>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/core/src/main/resources/ignite.properties
----------------------------------------------------------------------
diff --git a/modules/core/src/main/resources/ignite.properties b/modules/core/src/main/resources/ignite.properties
index 866bbc9..3568cd4 100644
--- a/modules/core/src/main/resources/ignite.properties
+++ b/modules/core/src/main/resources/ignite.properties
@@ -15,7 +15,7 @@
 # limitations under the License.
 #
 
-ignite.version=1.5.0-b2-SNAPSHOT
+ignite.version=1.5.0-final-SNAPSHOT
 ignite.build=0
 ignite.revision=DEV
 ignite.rel.date=01011970

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/extdata/p2p/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/pom.xml b/modules/extdata/p2p/pom.xml
index 26d7d06..2525ab6 100644
--- a/modules/extdata/p2p/pom.xml
+++ b/modules/extdata/p2p/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-extdata-p2p</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/extdata/uri/modules/uri-dependency/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/uri/modules/uri-dependency/pom.xml b/modules/extdata/uri/modules/uri-dependency/pom.xml
index 3eea056..9de066c 100644
--- a/modules/extdata/uri/modules/uri-dependency/pom.xml
+++ b/modules/extdata/uri/modules/uri-dependency/pom.xml
@@ -27,7 +27,7 @@
     <artifactId>ignite-extdata-uri-dep</artifactId>
     <packaging>jar</packaging>
 
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <modelVersion>4.0.0</modelVersion>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/extdata/uri/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/uri/pom.xml b/modules/extdata/uri/pom.xml
index 118a045..99fd120 100644
--- a/modules/extdata/uri/pom.xml
+++ b/modules/extdata/uri/pom.xml
@@ -32,7 +32,7 @@
     </parent>
 
     <artifactId>ignite-extdata-uri</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/flume/pom.xml
----------------------------------------------------------------------
diff --git a/modules/flume/pom.xml b/modules/flume/pom.xml
index 871ca1b..2f856f8 100644
--- a/modules/flume/pom.xml
+++ b/modules/flume/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-flume</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/gce/pom.xml
----------------------------------------------------------------------
diff --git a/modules/gce/pom.xml b/modules/gce/pom.xml
index f9d79f4..b05e1ff 100644
--- a/modules/gce/pom.xml
+++ b/modules/gce/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-gce</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/geospatial/pom.xml
----------------------------------------------------------------------
diff --git a/modules/geospatial/pom.xml b/modules/geospatial/pom.xml
index 69eb9a0..eb9b89a 100644
--- a/modules/geospatial/pom.xml
+++ b/modules/geospatial/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-geospatial</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/hadoop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hadoop/pom.xml b/modules/hadoop/pom.xml
index 00b18e7..103d402 100644
--- a/modules/hadoop/pom.xml
+++ b/modules/hadoop/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-hadoop</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/hibernate/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hibernate/pom.xml b/modules/hibernate/pom.xml
index 01cd464..dcfe133 100644
--- a/modules/hibernate/pom.xml
+++ b/modules/hibernate/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-hibernate</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/indexing/pom.xml
----------------------------------------------------------------------
diff --git a/modules/indexing/pom.xml b/modules/indexing/pom.xml
index d108842..7efabcd 100644
--- a/modules/indexing/pom.xml
+++ b/modules/indexing/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-indexing</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/jcl/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jcl/pom.xml b/modules/jcl/pom.xml
index 7c95748..d11fdcc 100644
--- a/modules/jcl/pom.xml
+++ b/modules/jcl/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-jcl</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/jms11/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jms11/pom.xml b/modules/jms11/pom.xml
index 030b546..db2d6e9 100644
--- a/modules/jms11/pom.xml
+++ b/modules/jms11/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-jms11</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/jta/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jta/pom.xml b/modules/jta/pom.xml
index c69b6cc..10756aa 100644
--- a/modules/jta/pom.xml
+++ b/modules/jta/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-jta</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/kafka/pom.xml
----------------------------------------------------------------------
diff --git a/modules/kafka/pom.xml b/modules/kafka/pom.xml
index 97df51c..f99f3c0 100644
--- a/modules/kafka/pom.xml
+++ b/modules/kafka/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-kafka</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/log4j/pom.xml
----------------------------------------------------------------------
diff --git a/modules/log4j/pom.xml b/modules/log4j/pom.xml
index e22d50c..29230c0 100644
--- a/modules/log4j/pom.xml
+++ b/modules/log4j/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-log4j</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/log4j2/pom.xml
----------------------------------------------------------------------
diff --git a/modules/log4j2/pom.xml b/modules/log4j2/pom.xml
index 21fb4b3..15d56ea 100644
--- a/modules/log4j2/pom.xml
+++ b/modules/log4j2/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-log4j2</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/mesos/pom.xml
----------------------------------------------------------------------
diff --git a/modules/mesos/pom.xml b/modules/mesos/pom.xml
index 1901ec6..1d55b30 100644
--- a/modules/mesos/pom.xml
+++ b/modules/mesos/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-mesos</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <properties>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/mqtt/pom.xml
----------------------------------------------------------------------
diff --git a/modules/mqtt/pom.xml b/modules/mqtt/pom.xml
index 24c98b9..9f5cf8b 100644
--- a/modules/mqtt/pom.xml
+++ b/modules/mqtt/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-mqtt</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/osgi-karaf/pom.xml
----------------------------------------------------------------------
diff --git a/modules/osgi-karaf/pom.xml b/modules/osgi-karaf/pom.xml
index 68e0c12..46cd239 100644
--- a/modules/osgi-karaf/pom.xml
+++ b/modules/osgi-karaf/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-osgi-karaf</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <build>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/osgi-paxlogging/pom.xml
----------------------------------------------------------------------
diff --git a/modules/osgi-paxlogging/pom.xml b/modules/osgi-paxlogging/pom.xml
index 7695349..8d23b25 100644
--- a/modules/osgi-paxlogging/pom.xml
+++ b/modules/osgi-paxlogging/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-osgi-paxlogging</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <packaging>jar</packaging>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/osgi/pom.xml
----------------------------------------------------------------------
diff --git a/modules/osgi/pom.xml b/modules/osgi/pom.xml
index ade8fd6..a08c7a0 100644
--- a/modules/osgi/pom.xml
+++ b/modules/osgi/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-osgi</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/platforms/cpp/common/configure.ac
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/common/configure.ac b/modules/platforms/cpp/common/configure.ac
index 9dfb0a3..f354f1a 100644
--- a/modules/platforms/cpp/common/configure.ac
+++ b/modules/platforms/cpp/common/configure.ac
@@ -19,7 +19,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.69])
-AC_INIT([Apache Ignite JNI bridge for C++], [1.5.0.2], [dev@ignite.apache.org], [ignite-common], [ignite.apache.org])
+AC_INIT([Apache Ignite JNI bridge for C++], [1.5.0.10000], [dev@ignite.apache.org], [ignite-common], [ignite.apache.org])
 AC_CONFIG_SRCDIR(src)
 
 AC_CANONICAL_SYSTEM

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/platforms/cpp/core-test/configure.ac
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core-test/configure.ac b/modules/platforms/cpp/core-test/configure.ac
index 2a3e125..80072a8 100644
--- a/modules/platforms/cpp/core-test/configure.ac
+++ b/modules/platforms/cpp/core-test/configure.ac
@@ -19,7 +19,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.69])
-AC_INIT([Apache Ignite C++ Test], [1.5.0.2], [dev@ignite.apache.org], [ignite], [ignite.apache.org])
+AC_INIT([Apache Ignite C++ Test], [1.5.0.10000], [dev@ignite.apache.org], [ignite], [ignite.apache.org])
 AC_CONFIG_SRCDIR(src)
 
 AC_CANONICAL_SYSTEM

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/platforms/cpp/core/configure.ac
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/configure.ac b/modules/platforms/cpp/core/configure.ac
index 368fcac..aa4cbde 100644
--- a/modules/platforms/cpp/core/configure.ac
+++ b/modules/platforms/cpp/core/configure.ac
@@ -19,7 +19,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.69])
-AC_INIT([Apache Ignite C++], [1.5.0.2], [dev@ignite.apache.org], [ignite], [ignite.apache.org])
+AC_INIT([Apache Ignite C++], [1.5.0.10000], [dev@ignite.apache.org], [ignite], [ignite.apache.org])
 AC_CONFIG_SRCDIR(src)
 
 AC_CANONICAL_SYSTEM

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/platforms/cpp/examples/configure.ac
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/examples/configure.ac b/modules/platforms/cpp/examples/configure.ac
index a75e5f3..4c8316a 100644
--- a/modules/platforms/cpp/examples/configure.ac
+++ b/modules/platforms/cpp/examples/configure.ac
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.69])
-AC_INIT([Ingnite C++ examples],[1.5.0.2],[dec@ignite.apache.org],[ignite-examples],[ignite.apache.org])
+AC_INIT([Ingnite C++ examples],[1.5.0.10000],[dec@ignite.apache.org],[ignite-examples],[ignite.apache.org])
 AC_CONFIG_SRCDIR(src)
 
 AC_CANONICAL_SYSTEM

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/platforms/cpp/ignite/configure.ac
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/ignite/configure.ac b/modules/platforms/cpp/ignite/configure.ac
index 3a85d9d..6da472e 100644
--- a/modules/platforms/cpp/ignite/configure.ac
+++ b/modules/platforms/cpp/ignite/configure.ac
@@ -19,7 +19,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.69])
-AC_INIT([Apache Ignite C++ Runner], [1.5.0.2], [dev@ignite.apache.org], [ignite], [ignite.apache.org])
+AC_INIT([Apache Ignite C++ Runner], [1.5.0.10000], [dev@ignite.apache.org], [ignite], [ignite.apache.org])
 AC_CONFIG_SRCDIR(src)
 
 AC_CANONICAL_SYSTEM

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Properties/AssemblyInfo.cs
index 3318641..384f61c 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Properties/AssemblyInfo.cs
@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
 
 [assembly: Guid("8fae8395-7e91-411a-a78f-44d6d3fed0fc")]
 
-[assembly: AssemblyVersion("1.5.0.2")]
-[assembly: AssemblyFileVersion("1.5.0.2")]
+[assembly: AssemblyVersion("1.5.0.10000")]
+[assembly: AssemblyFileVersion("1.5.0.10000")]

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/platforms/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs
index 88b7a23..c7b9898 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs
@@ -45,5 +45,5 @@ using System.Runtime.InteropServices;
 // You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.5.0.2")]
-[assembly: AssemblyFileVersion("1.5.0.2")]
+[assembly: AssemblyVersion("1.5.0.10000")]
+[assembly: AssemblyFileVersion("1.5.0.10000")]

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Properties/AssemblyInfo.cs
index 9d32327..0c74e95 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Properties/AssemblyInfo.cs
@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
 
 [assembly: Guid("de8dd5cc-7c7f-4a09-80d5-7086d9416a7b")]
 
-[assembly: AssemblyVersion("1.5.0.2")]
-[assembly: AssemblyFileVersion("1.5.0.2")]
+[assembly: AssemblyVersion("1.5.0.10000")]
+[assembly: AssemblyFileVersion("1.5.0.10000")]

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/platforms/dotnet/Apache.Ignite.Core/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Properties/AssemblyInfo.cs
index 4fb0458..3512810 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Properties/AssemblyInfo.cs
@@ -33,8 +33,8 @@ using System.Runtime.InteropServices;
 
 [assembly: Guid("97db45a8-f922-456a-a819-7b3c6e5e03ba")]
 
-[assembly: AssemblyVersion("1.5.0.2")]
-[assembly: AssemblyFileVersion("1.5.0.2")]
+[assembly: AssemblyVersion("1.5.0.10000")]
+[assembly: AssemblyFileVersion("1.5.0.10000")]
 
 [assembly: CLSCompliant(true)]
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/platforms/dotnet/Apache.Ignite/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite/Properties/AssemblyInfo.cs
index bd2d2ad..f6257f9 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Properties/AssemblyInfo.cs
@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
 
 [assembly: Guid("0f9702ec-da7d-4ce5-b4b7-73310c885355")]
 
-[assembly: AssemblyVersion("1.5.0.2")]
-[assembly: AssemblyFileVersion("1.5.0.2")]
+[assembly: AssemblyVersion("1.5.0.10000")]
+[assembly: AssemblyFileVersion("1.5.0.10000")]

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Properties/AssemblyInfo.cs
index 082dde2..fa82d17 100644
--- a/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Properties/AssemblyInfo.cs
@@ -31,5 +31,5 @@
 
 [assembly: Guid("41a0cb95-3435-4c78-b867-900b28e2c9ee")]
 
-[assembly: AssemblyVersion("1.5.0.2")]
-[assembly: AssemblyFileVersion("1.5.0.2")]
+[assembly: AssemblyVersion("1.5.0.10000")]
+[assembly: AssemblyFileVersion("1.5.0.10000")]

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/platforms/dotnet/examples/Apache.Ignite.ExamplesDll/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/examples/Apache.Ignite.ExamplesDll/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/examples/Apache.Ignite.ExamplesDll/Properties/AssemblyInfo.cs
index cc08601..e1748ec 100644
--- a/modules/platforms/dotnet/examples/Apache.Ignite.ExamplesDll/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/examples/Apache.Ignite.ExamplesDll/Properties/AssemblyInfo.cs
@@ -31,5 +31,5 @@ using System.Reflection;
 
 [assembly: Guid("ce65ec7c-d3cf-41ad-8f45-f90d5af68d77")]
 
-[assembly: AssemblyVersion("1.5.0.2")]
-[assembly: AssemblyFileVersion("1.5.0.2")]
+[assembly: AssemblyVersion("1.5.0.10000")]
+[assembly: AssemblyFileVersion("1.5.0.10000")]

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/rest-http/pom.xml
----------------------------------------------------------------------
diff --git a/modules/rest-http/pom.xml b/modules/rest-http/pom.xml
index 6d5166a..1709c2c 100644
--- a/modules/rest-http/pom.xml
+++ b/modules/rest-http/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-rest-http</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <properties>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/scalar-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/scalar-2.10/pom.xml b/modules/scalar-2.10/pom.xml
index c75880d..05b66f1 100644
--- a/modules/scalar-2.10/pom.xml
+++ b/modules/scalar-2.10/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-scalar_2.10</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/scalar/pom.xml
----------------------------------------------------------------------
diff --git a/modules/scalar/pom.xml b/modules/scalar/pom.xml
index cdabc4b..8be03df 100644
--- a/modules/scalar/pom.xml
+++ b/modules/scalar/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-scalar</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/schedule/pom.xml
----------------------------------------------------------------------
diff --git a/modules/schedule/pom.xml b/modules/schedule/pom.xml
index 1435121..5246938 100644
--- a/modules/schedule/pom.xml
+++ b/modules/schedule/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-schedule</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <properties>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/schema-import/pom.xml
----------------------------------------------------------------------
diff --git a/modules/schema-import/pom.xml b/modules/schema-import/pom.xml
index 3fe9ad3..ff6387d 100644
--- a/modules/schema-import/pom.xml
+++ b/modules/schema-import/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-schema-import</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/slf4j/pom.xml
----------------------------------------------------------------------
diff --git a/modules/slf4j/pom.xml b/modules/slf4j/pom.xml
index 27b4cda..aba43b9 100644
--- a/modules/slf4j/pom.xml
+++ b/modules/slf4j/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-slf4j</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/spark-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spark-2.10/pom.xml b/modules/spark-2.10/pom.xml
index faeb45f..79db055 100644
--- a/modules/spark-2.10/pom.xml
+++ b/modules/spark-2.10/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-spark_2.10</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/spark/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spark/pom.xml b/modules/spark/pom.xml
index 780397c..b79e0ec 100644
--- a/modules/spark/pom.xml
+++ b/modules/spark/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-spark</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/spring/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spring/pom.xml b/modules/spring/pom.xml
index f1b9bc1..0c73598 100644
--- a/modules/spring/pom.xml
+++ b/modules/spring/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-spring</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/ssh/pom.xml
----------------------------------------------------------------------
diff --git a/modules/ssh/pom.xml b/modules/ssh/pom.xml
index 70091e7..b67252d 100644
--- a/modules/ssh/pom.xml
+++ b/modules/ssh/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-ssh</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/tools/pom.xml
----------------------------------------------------------------------
diff --git a/modules/tools/pom.xml b/modules/tools/pom.xml
index c259cce..3f71641 100644
--- a/modules/tools/pom.xml
+++ b/modules/tools/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-tools</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <properties>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/twitter/pom.xml
----------------------------------------------------------------------
diff --git a/modules/twitter/pom.xml b/modules/twitter/pom.xml
index 60e415f..21b360d 100644
--- a/modules/twitter/pom.xml
+++ b/modules/twitter/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-twitter</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/urideploy/pom.xml
----------------------------------------------------------------------
diff --git a/modules/urideploy/pom.xml b/modules/urideploy/pom.xml
index cf51bfa..fcd2b49 100644
--- a/modules/urideploy/pom.xml
+++ b/modules/urideploy/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-urideploy</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/visor-console-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-console-2.10/pom.xml b/modules/visor-console-2.10/pom.xml
index a4e50cb..e4c29f8 100644
--- a/modules/visor-console-2.10/pom.xml
+++ b/modules/visor-console-2.10/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-visor-console_2.10</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/visor-console/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-console/pom.xml b/modules/visor-console/pom.xml
index f686238..ccdba4f 100644
--- a/modules/visor-console/pom.xml
+++ b/modules/visor-console/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-visor-console</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/visor-plugins/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-plugins/pom.xml b/modules/visor-plugins/pom.xml
index 4d63db7..4403e08 100644
--- a/modules/visor-plugins/pom.xml
+++ b/modules/visor-plugins/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-visor-plugins</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/web/pom.xml
----------------------------------------------------------------------
diff --git a/modules/web/pom.xml b/modules/web/pom.xml
index 401a1cc..9a7e81d 100644
--- a/modules/web/pom.xml
+++ b/modules/web/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-web</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/yardstick/pom.xml
----------------------------------------------------------------------
diff --git a/modules/yardstick/pom.xml b/modules/yardstick/pom.xml
index 8c3e4c1..9c0f594 100644
--- a/modules/yardstick/pom.xml
+++ b/modules/yardstick/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-yardstick</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <properties>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/yarn/pom.xml
----------------------------------------------------------------------
diff --git a/modules/yarn/pom.xml b/modules/yarn/pom.xml
index a726321..348c72e 100644
--- a/modules/yarn/pom.xml
+++ b/modules/yarn/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-yarn</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <properties>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/modules/zookeeper/pom.xml
----------------------------------------------------------------------
diff --git a/modules/zookeeper/pom.xml b/modules/zookeeper/pom.xml
index 6a5bc70..8879ec3 100644
--- a/modules/zookeeper/pom.xml
+++ b/modules/zookeeper/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-zookeeper</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <url>http://ignite.apache.org</url>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/ignite/blob/9087f019/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 97d5f6f..7bc9492 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,7 @@
 
     <groupId>org.apache.ignite</groupId>
     <artifactId>apache-ignite</artifactId>
-    <version>1.5.0-b2-SNAPSHOT</version>
+    <version>1.5.0-final-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <properties>


[13/24] ignite git commit: ignite-1.5 Fixed warnings.

Posted by sb...@apache.org.
ignite-1.5 Fixed warnings.


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

Branch: refs/heads/ignite-1.5.1
Commit: 58e6412e67f16780731c13948e91eed8aaf8daf8
Parents: 6fedd27
Author: sboikov <sb...@gridgain.com>
Authored: Wed Dec 16 15:11:08 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Dec 16 15:11:08 2015 +0300

----------------------------------------------------------------------
 .../ignite/spi/discovery/tcp/ClientImpl.java    |  2 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |  4 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      | 42 +++++++++++++++-----
 .../spi/discovery/tcp/TcpDiscoverySelfTest.java | 16 ++++++--
 4 files changed, 47 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/58e6412e/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
index a4619c6..8f6c8a9 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
@@ -1054,7 +1054,7 @@ class ClientImpl extends TcpDiscoveryImpl {
                     }
                 }
 
-                for (IgniteInClosure<TcpDiscoveryAbstractMessage> msgLsnr : spi.sendMsgLsnrs)
+                for (IgniteInClosure<TcpDiscoveryAbstractMessage> msgLsnr : spi.sndMsgLsnrs)
                     msgLsnr.apply(msg);
 
                 boolean ack = clientAck && !(msg instanceof TcpDiscoveryPingResponse);

http://git-wip-us.apache.org/repos/asf/ignite/blob/58e6412e/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index d801109..471c36b 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -2352,7 +2352,7 @@ class ServerImpl extends TcpDiscoveryImpl {
 
             assert ring.hasRemoteNodes();
 
-            for (IgniteInClosure<TcpDiscoveryAbstractMessage> msgLsnr : spi.sendMsgLsnrs)
+            for (IgniteInClosure<TcpDiscoveryAbstractMessage> msgLsnr : spi.sndMsgLsnrs)
                 msgLsnr.apply(msg);
 
             sendMessageToClients(msg);
@@ -4849,7 +4849,7 @@ class ServerImpl extends TcpDiscoveryImpl {
             for (port = spi.locPort; port < spi.locPort + spi.locPortRange; port++) {
                 try {
                     if (spi.isSslEnabled())
-                        srvrSock = spi.sslSrvSocketFactory.createServerSocket(port, 0, spi.locHost);
+                        srvrSock = spi.sslSrvSockFactory.createServerSocket(port, 0, spi.locHost);
                     else
                         srvrSock = new ServerSocket(port, 0, spi.locHost);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/58e6412e/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 854ce95..f9273c3 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -377,17 +377,17 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
     protected DiscoverySpiNodeAuthenticator nodeAuth;
 
     /** SSL server socket factory. */
-    protected SSLServerSocketFactory sslSrvSocketFactory;
+    protected SSLServerSocketFactory sslSrvSockFactory;
 
     /** SSL socket factory. */
-    protected SSLSocketFactory sslSocketFactory;
+    protected SSLSocketFactory sslSockFactory;
 
     /** Context initialization latch. */
     @GridToStringExclude
     private final CountDownLatch ctxInitLatch = new CountDownLatch(1);
 
     /** */
-    protected final CopyOnWriteArrayList<IgniteInClosure<TcpDiscoveryAbstractMessage>> sendMsgLsnrs =
+    protected final CopyOnWriteArrayList<IgniteInClosure<TcpDiscoveryAbstractMessage>> sndMsgLsnrs =
         new CopyOnWriteArrayList<>();
 
     /** */
@@ -543,6 +543,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * then {@link InetAddress#getLocalHost()} will be used.
      *
      * @param locAddr IP address.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setLocalAddress(String locAddr) {
@@ -600,6 +601,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      *
      * @param reconCnt Number of retries during message sending.
      * @see #setAckTimeout(long)
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setReconnectCount(int reconCnt) {
@@ -630,6 +632,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * When this property is explicitly set {@link IgniteConfiguration#getFailureDetectionTimeout()} is ignored.
      *
      * @param maxAckTimeout Maximum acknowledgement timeout.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setMaxAckTimeout(long maxAckTimeout) {
@@ -655,6 +658,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * Affected server nodes only.
      *
      * @param locPort Local port to bind.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setLocalPort(int locPort) {
@@ -676,9 +680,9 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * If not specified, default is {@link #DFLT_PORT_RANGE}.
      * <p>
      * Affected server nodes only.
-
      *
      * @param locPortRange Local port range to bind.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setLocalPortRange(int locPortRange) {
@@ -700,6 +704,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * Affected server nodes only.
      *
      * @param maxMissedHbs Max missed heartbeats.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setMaxMissedHeartbeats(int maxMissedHbs) {
@@ -719,6 +724,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * If not provided, default value is {@link #DFLT_MAX_MISSED_CLIENT_HEARTBEATS}.
      *
      * @param maxMissedClientHbs Max missed client heartbeats.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setMaxMissedClientHeartbeats(int maxMissedClientHbs) {
@@ -742,6 +748,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * This may be very helpful for tracing topology problems.
      *
      * @param statsPrintFreq Statistics print frequency in milliseconds.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setStatisticsPrintFrequency(long statsPrintFreq) {
@@ -763,6 +770,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * Affected server nodes only.
      *
      * @param ipFinderCleanFreq IP finder clean frequency.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setIpFinderCleanFrequency(long ipFinderCleanFreq) {
@@ -787,6 +795,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * be used by default.
      *
      * @param ipFinder IP finder.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setIpFinder(TcpDiscoveryIpFinder ipFinder) {
@@ -807,6 +816,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * When this property is explicitly set {@link IgniteConfiguration#getFailureDetectionTimeout()} is ignored.
      *
      * @param sockTimeout Socket connection timeout.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setSocketTimeout(long sockTimeout) {
@@ -828,6 +838,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * When this property is explicitly set {@link IgniteConfiguration#getFailureDetectionTimeout()} is ignored.
      *
      * @param ackTimeout Acknowledgement timeout.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setAckTimeout(long ackTimeout) {
@@ -844,6 +855,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * If not specified, default is {@link #DFLT_NETWORK_TIMEOUT}.
      *
      * @param netTimeout Network timeout.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setNetworkTimeout(long netTimeout) {
@@ -870,6 +882,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * @param joinTimeout Join timeout ({@code 0} means wait forever).
      *
      * @see TcpDiscoveryIpFinder#isShared()
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setJoinTimeout(long joinTimeout) {
@@ -884,6 +897,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * If not provided, default value is {@link #DFLT_THREAD_PRI}
      *
      * @param threadPri Thread priority.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setThreadPriority(int threadPri) {
@@ -899,6 +913,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * If not provided, default value is {@link #DFLT_HEARTBEAT_FREQ}.
      *
      * @param hbFreq Heartbeat frequency in milliseconds.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setHeartbeatFrequency(long hbFreq) {
@@ -919,6 +934,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * {@link #DFLT_TOP_HISTORY_SIZE}.
      *
      * @param topHistSize Size of topology snapshots history.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
     public TcpDiscoverySpi setTopHistorySize(int topHistSize) {
@@ -951,6 +967,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
 
     /**
      * @param srvPort Server port.
+     * @param addExtAddrAttr If {@code true} adds {@link #ATTR_EXT_ADDRS} attribute.
      */
     protected void initLocalNode(int srvPort, boolean addExtAddrAttr) {
         // Init local node.
@@ -1263,7 +1280,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
         Socket sock;
 
         if (isSslEnabled())
-            sock = sslSocketFactory.createSocket();
+            sock = sslSockFactory.createSocket();
         else
             sock = new Socket();
 
@@ -1338,11 +1355,14 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * @param sock Socket.
      * @param msg Message.
      * @param bout Byte array output stream.
+     * @param timeout Timeout.
      * @throws IOException If IO failed or write timed out.
      * @throws IgniteCheckedException If marshalling failed.
      */
     @SuppressWarnings("ThrowFromFinallyBlock")
-    protected void writeToSocket(Socket sock, TcpDiscoveryAbstractMessage msg, GridByteArrayOutputStream bout,
+    protected void writeToSocket(Socket sock,
+        TcpDiscoveryAbstractMessage msg,
+        GridByteArrayOutputStream bout,
         long timeout) throws IOException, IgniteCheckedException {
         assert sock != null;
         assert msg != null;
@@ -1755,8 +1775,8 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
             try {
                 SSLContext sslCtx = ignite().configuration().getSslContextFactory().create();
 
-                sslSocketFactory = sslCtx.getSocketFactory();
-                sslSrvSocketFactory = sslCtx.getServerSocketFactory();
+                sslSockFactory = sslCtx.getSocketFactory();
+                sslSrvSockFactory = sslCtx.getServerSocketFactory();
             }
             catch (IgniteException e) {
                 throw new IgniteSpiException("Failed to create SSL context. SSL factory: "
@@ -1853,7 +1873,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
     }
 
     /**
-     *
+     * @return Ignite instance.
      */
     Ignite ignite() {
         return ignite;
@@ -1916,14 +1936,14 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
      * <strong>FOR TEST ONLY!!!</strong>
      */
     public void addSendMessageListener(IgniteInClosure<TcpDiscoveryAbstractMessage> lsnr) {
-        sendMsgLsnrs.add(lsnr);
+        sndMsgLsnrs.add(lsnr);
     }
 
     /**
      * <strong>FOR TEST ONLY!!!</strong>
      */
     public void removeSendMessageListener(IgniteInClosure<TcpDiscoveryAbstractMessage> lsnr) {
-        sendMsgLsnrs.remove(lsnr);
+        sndMsgLsnrs.remove(lsnr);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/58e6412e/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java
index dff37a9..5475f25 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java
@@ -902,9 +902,15 @@ public class TcpDiscoverySelfTest extends GridCommonAbstractTest {
 
             Ignite g1 = startGrid(1);
 
-            long timeout = (long)(discoMap.get(g1.name()).getIpFinderCleanFrequency() * 1.5);
+            long failureDetectTimeout = g1.configuration().getFailureDetectionTimeout();
 
-            Thread.sleep(timeout);
+            long timeout = (long)(discoMap.get(g1.name()).getIpFinderCleanFrequency() * 1.5) + failureDetectTimeout;
+
+            GridTestUtils.waitForCondition(new GridAbsPredicate() {
+                @Override public boolean apply() {
+                    return ipFinder.getRegisteredAddresses().size() == 1;
+                }
+            }, timeout);
 
             assert ipFinder.getRegisteredAddresses().size() == 1 : "ipFinder=" + ipFinder.getRegisteredAddresses();
 
@@ -914,7 +920,11 @@ public class TcpDiscoverySelfTest extends GridCommonAbstractTest {
             ipFinder.registerAddresses(Arrays.asList(new InetSocketAddress("host1", 1024),
                 new InetSocketAddress("host2", 1024)));
 
-            Thread.sleep(timeout);
+            GridTestUtils.waitForCondition(new GridAbsPredicate() {
+                @Override public boolean apply() {
+                    return ipFinder.getRegisteredAddresses().size() == 1;
+                }
+            }, timeout);
 
             assert ipFinder.getRegisteredAddresses().size() == 1 : "ipFinder=" + ipFinder.getRegisteredAddresses();
         }


[07/24] ignite git commit: IGNITE-2152: Main page description for .NET docs.

Posted by sb...@apache.org.
IGNITE-2152: Main page description for .NET docs.


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

Branch: refs/heads/ignite-1.5.1
Commit: ec3fd1968ef477605738eafc0a2795a808290da2
Parents: 85ec808
Author: Pavel Tupitsyn <pt...@gridgain.com>
Authored: Wed Dec 16 11:14:53 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Dec 16 11:14:53 2015 +0300

----------------------------------------------------------------------
 .../Apache.Ignite.Core.csproj                   |  1 +
 .../dotnet/Apache.Ignite.Core/Index.cs          | 31 ++++++++++++++++++++
 modules/platforms/dotnet/Apache.Ignite.sln      |  1 +
 3 files changed, 33 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ec3fd196/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj b/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
index b3bd712..740852d 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
@@ -309,6 +309,7 @@
     <Compile Include="Impl\Unmanaged\UnmanagedNonReleaseableTarget.cs" />
     <Compile Include="Impl\Unmanaged\UnmanagedTarget.cs" />
     <Compile Include="Impl\Unmanaged\UnmanagedUtils.cs" />
+    <Compile Include="Index.cs" />
     <Compile Include="Lifecycle\ILifecycleBean.cs" />
     <Compile Include="Lifecycle\LifecycleEventType.cs" />
     <Compile Include="Messaging\IMessageListener.cs" />

http://git-wip-us.apache.org/repos/asf/ignite/blob/ec3fd196/modules/platforms/dotnet/Apache.Ignite.Core/Index.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Index.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Index.cs
new file mode 100644
index 0000000..c6dc5d8
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Index.cs
@@ -0,0 +1,31 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core
+{
+    // Doxygen main page
+
+    /**
+
+    \mainpage Apache Ignite.NET In-Memory Data Fabric
+
+    Apache Ignite.NET In-Memory Data Fabric is a high-performance, integrated and distributed in-memory platform for 
+    computing and transacting on large-scale data sets in real-time, orders of magnitude faster than possible with 
+    traditional disk-based or flash-based technologies.
+
+    */
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/ec3fd196/modules/platforms/dotnet/Apache.Ignite.sln
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.sln b/modules/platforms/dotnet/Apache.Ignite.sln
index 19916f2..5c6ce05 100644
--- a/modules/platforms/dotnet/Apache.Ignite.sln
+++ b/modules/platforms/dotnet/Apache.Ignite.sln
@@ -22,6 +22,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.Benchmarks",
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{E0784F76-949C-456E-A529-A55D0E389165}"
 	ProjectSection(SolutionItems) = preProject
+		Apache.Ignite.dxg = Apache.Ignite.dxg
 		Apache.Ignite.FxCop = Apache.Ignite.FxCop
 		Apache.Ignite.sln.DotSettings = Apache.Ignite.sln.DotSettings
 		build.bat = build.bat


[21/24] ignite git commit: IGNITE-2178 - Fixed primary key set for scan query.

Posted by sb...@apache.org.
IGNITE-2178 - Fixed primary key set for scan query.


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

Branch: refs/heads/ignite-1.5.1
Commit: 916f59aa1504a02288b965c50b9acffa29a2a464
Parents: 5f26538
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Thu Dec 17 12:01:42 2015 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Thu Dec 17 12:02:27 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheUtils.java        | 18 +------
 .../IgniteBinaryObjectFieldsQuerySelfTest.java  | 53 ++++++++++++++++++--
 2 files changed, 50 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/916f59aa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
index f118003..51f6dcd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
@@ -1578,23 +1578,7 @@ public class GridCacheUtils {
     ) {
         return new CacheEntryPredicateAdapter() {
             @Override public boolean apply(GridCacheEntryEx e) {
-                return aff.isPrimary(n, e.key().value(e.context().cacheObjectContext(), false));
-            }
-        };
-    }
-
-    /**
-     * @param aff Affinity.
-     * @param n Node.
-     * @return Predicate that evaulates to {@code true} if entry is primary for node.
-     */
-    public static <K, V> IgnitePredicate<Cache.Entry<K, V>> cachePrimary0(
-        final Affinity<K> aff,
-        final ClusterNode n
-    ) {
-        return new IgnitePredicate<Cache.Entry<K, V>>() {
-            @Override public boolean apply(Cache.Entry<K, V> e) {
-                return aff.isPrimary(n, e.getKey());
+                return aff.isPrimary(n, e.key());
             }
         };
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/916f59aa/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteBinaryObjectFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteBinaryObjectFieldsQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteBinaryObjectFieldsQuerySelfTest.java
index 091c633..5c1e578 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteBinaryObjectFieldsQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteBinaryObjectFieldsQuerySelfTest.java
@@ -19,16 +19,19 @@ package org.apache.ignite.internal.processors.cache;
 import java.util.List;
 import javax.cache.Cache;
 import org.apache.ignite.IgniteCache;
+import org.apache.ignite.binary.BinaryObject;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.CacheRebalanceMode;
 import org.apache.ignite.cache.CacheWriteSynchronizationMode;
 import org.apache.ignite.cache.query.QueryCursor;
+import org.apache.ignite.cache.query.ScanQuery;
 import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.cache.query.SqlQuery;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.lang.IgniteBiPredicate;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
@@ -48,6 +51,9 @@ public class IgniteBinaryObjectFieldsQuerySelfTest extends GridCommonAbstractTes
     /** IP finder. */
     private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
+    /** Grid count. */
+    public static final int GRID_CNT = 4;
+
     /** */
     private static ClassLoader extClassLoader;
 
@@ -94,8 +100,7 @@ public class IgniteBinaryObjectFieldsQuerySelfTest extends GridCommonAbstractTes
     @Override protected void beforeTestsStarted() throws Exception {
         extClassLoader = getExternalClassLoader();
 
-        startGrids(4);
-
+        startGrids(GRID_CNT);
     }
 
     /** {@inheritDoc} */
@@ -165,7 +170,7 @@ public class IgniteBinaryObjectFieldsQuerySelfTest extends GridCommonAbstractTes
      * @throws Exception If failed.
      */
     private void checkFieldsQuery(CacheMode cacheMode, CacheAtomicityMode atomicity) throws Exception {
-        IgniteCache<Object, Object>cache = grid(3).getOrCreateCache(cache(cacheMode, atomicity));
+        IgniteCache<Object, Object>cache = grid(GRID_CNT - 1).getOrCreateCache(cache(cacheMode, atomicity));
 
         try {
             populate(cache);
@@ -195,7 +200,7 @@ public class IgniteBinaryObjectFieldsQuerySelfTest extends GridCommonAbstractTes
      * @throws Exception If failed.
      */
     private void checkQuery(CacheMode cacheMode, CacheAtomicityMode atomicity) throws Exception {
-        IgniteCache<Object, Object> cache = grid(3).getOrCreateCache(cache(cacheMode, atomicity));
+        IgniteCache<Object, Object> cache = grid(GRID_CNT - 1).getOrCreateCache(cache(cacheMode, atomicity));
 
         try {
             populate(cache);
@@ -215,6 +220,26 @@ public class IgniteBinaryObjectFieldsQuerySelfTest extends GridCommonAbstractTes
                 assertEquals("person-last-" + i, U.field(person, "lastName"));
                 assertEquals((double)(i * 25), U.field(person, "salary"));
             }
+
+            int max = 49;
+
+            // Check local scan query with keepBinary flag set.
+            ScanQuery<BinaryObject, BinaryObject> scanQry = new ScanQuery<>(new PersonKeyFilter(max));
+
+            QueryCursor<Cache.Entry<BinaryObject, BinaryObject>> curs = grid(GRID_CNT - 1)
+                .cache(null).withKeepBinary().query(scanQry);
+
+            List<Cache.Entry<BinaryObject, BinaryObject>> records = curs.getAll();
+
+            assertEquals(50, records.size());
+
+            for (Cache.Entry<BinaryObject, BinaryObject> entry : records) {
+                BinaryObject key = entry.getKey();
+
+                assertTrue(key.<Integer>field("id") <= max);
+
+                assertEquals(PERSON_KEY_CLS_NAME, key.deserialize().getClass().getName());
+            }
         }
         finally {
             grid(3).destroyCache(null);
@@ -243,4 +268,24 @@ public class IgniteBinaryObjectFieldsQuerySelfTest extends GridCommonAbstractTes
             cache.put(key, person);
         }
     }
+
+    /**
+     *
+     */
+    private static class PersonKeyFilter implements IgniteBiPredicate<BinaryObject, BinaryObject> {
+        /** Max ID allowed. */
+        private int maxId;
+
+        /**
+         * @param maxId Max ID allowed.
+         */
+        public PersonKeyFilter(int maxId) {
+            this.maxId = maxId;
+        }
+
+        /** {@inheritDoc} */
+        @Override public boolean apply(BinaryObject key, BinaryObject val) {
+            return key.<Integer>field("id") <= maxId;
+        }
+    }
 }


[10/24] ignite git commit: IGNITE-2164: CPP: Added namespace description. Docs fixes.

Posted by sb...@apache.org.
IGNITE-2164: CPP: Added namespace description. Docs fixes.


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

Branch: refs/heads/ignite-1.5.1
Commit: 77c6d08a41d349aea850b6c6ca4190b8ec77e22a
Parents: 65b1766
Author: isapego <is...@gridgain.com>
Authored: Wed Dec 16 11:36:40 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Dec 16 11:36:40 2015 +0300

----------------------------------------------------------------------
 .../common/include/ignite/common/concurrent.h   |  2 +-
 .../cpp/common/include/ignite/common/utils.h    |  1 -
 modules/platforms/cpp/common/src/java.cpp       | 20 ++++----
 modules/platforms/cpp/core/impl/doxygen.h       | 53 ++++++++++++++++++++
 .../core/include/ignite/binary/binary_type.h    |  4 +-
 .../cpp/core/include/ignite/cache/cache.h       | 12 ++---
 .../include/ignite/cache/query/query_scan.h     | 28 +++++------
 .../include/ignite/cache/query/query_text.h     | 38 +++++++-------
 .../cpp/core/include/ignite/ignition.h          | 10 +---
 .../core/include/ignite/impl/cache/cache_impl.h |  6 +--
 .../cpp/core/include/ignite/impl/operations.h   |  8 +--
 modules/platforms/cpp/cpp.dxg                   |  4 +-
 12 files changed, 115 insertions(+), 71 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/77c6d08a/modules/platforms/cpp/common/include/ignite/common/concurrent.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/common/include/ignite/common/concurrent.h b/modules/platforms/cpp/common/include/ignite/common/concurrent.h
index fbba808..a4cc3f7 100644
--- a/modules/platforms/cpp/common/include/ignite/common/concurrent.h
+++ b/modules/platforms/cpp/common/include/ignite/common/concurrent.h
@@ -214,7 +214,7 @@ namespace ignite
                     return impl ? static_cast<T*>(impl->Pointer()) : NULL;
                 }
 
-                /*
+                /**
                  * Check whether underlying raw pointer is valid.
                  *
                  * @return True if valid.

http://git-wip-us.apache.org/repos/asf/ignite/blob/77c6d08a/modules/platforms/cpp/common/include/ignite/common/utils.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/common/include/ignite/common/utils.h b/modules/platforms/cpp/common/include/ignite/common/utils.h
index 4b590d9..44db6e8 100644
--- a/modules/platforms/cpp/common/include/ignite/common/utils.h
+++ b/modules/platforms/cpp/common/include/ignite/common/utils.h
@@ -1,4 +1,3 @@
-#pragma once
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with

http://git-wip-us.apache.org/repos/asf/ignite/blob/77c6d08a/modules/platforms/cpp/common/src/java.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/common/src/java.cpp b/modules/platforms/cpp/common/src/java.cpp
index 7bc18f1..64f5d9c 100644
--- a/modules/platforms/cpp/common/src/java.cpp
+++ b/modules/platforms/cpp/common/src/java.cpp
@@ -78,7 +78,7 @@ namespace ignite
                 }
             };
 
-            /*
+            /**
              * Heloper function to copy characters.
              *
              * @param src Source.
@@ -148,7 +148,7 @@ namespace ignite
                     delete[] errMsg;
             }
 
-            /*
+            /**
              * Guard to ensure global reference cleanup.
              */
             class JniGlobalRefGuard
@@ -397,7 +397,7 @@ namespace ignite
 
             /* HELPER METHODS. */
 
-            /*
+            /**
              * Throw exception to Java in case of missing callback pointer. It means that callback is not implemented in
              * native platform and Java -> platform operation cannot proceede further. As JniContext is not available at
              * this point, we have to obtain exception details from scratch. This is not critical from performance
@@ -728,7 +728,7 @@ namespace ignite
                 return members;
             }
 
-            /*
+            /**
              * Create JVM.
              */
             void CreateJvm(char** opts, int optsLen, JavaVM** jvm, JNIEnv** env) {
@@ -2084,9 +2084,9 @@ namespace ignite
                 jvm->GetJvm()->DestroyJavaVM();
             }
 
-            /*
-            * Attach thread to JVM.
-            */
+            /**
+             * Attach thread to JVM.
+             */
             JNIEnv* JniContext::Attach() {
                 JNIEnv* env;
 
@@ -2164,9 +2164,9 @@ namespace ignite
                 }
             }
 
-            /*
-            * Convert local reference to global.
-            */
+            /**
+             * Convert local reference to global.
+             */
             jobject JniContext::LocalToGlobal(JNIEnv* env, jobject localRef) {
                 if (localRef) {
                     jobject globalRef = env->NewGlobalRef(localRef);

http://git-wip-us.apache.org/repos/asf/ignite/blob/77c6d08a/modules/platforms/cpp/core/impl/doxygen.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/impl/doxygen.h b/modules/platforms/cpp/core/impl/doxygen.h
new file mode 100644
index 0000000..ed237f6
--- /dev/null
+++ b/modules/platforms/cpp/core/impl/doxygen.h
@@ -0,0 +1,53 @@
+/*
+ * 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.
+ */
+
+/**
+ * \mainpage Apache Ignite C++
+ *
+ * Apache Ignite In-Memory Data Fabric is a high-performance, integrated and distributed in-memory platform for
+ * computing and transacting on large-scale data sets in real-time, orders of magnitude faster than possible with
+ * traditional disk-based or flash-based technologies.
+ */
+ 
+ /**
+  * Apache %Ignite API.
+  */
+ namespace ignite
+ {
+	 /**
+	  * %Ignite Binary Objects API.
+	  */
+	 namespace binary
+	 {
+		 // Empty.
+	 }
+	 
+	 /**
+	  * %Ignite %Cache API.
+	  */
+	 namespace cache
+	 {
+		 /**
+		  * Contains APIs for creating and executing cache queries.
+		  */
+		 namespace query
+		 {
+			 // Empty.
+		 }
+	 }
+ }
+ 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/77c6d08a/modules/platforms/cpp/core/include/ignite/binary/binary_type.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/binary/binary_type.h b/modules/platforms/cpp/core/include/ignite/binary/binary_type.h
index 576a4d6..353b3bb 100644
--- a/modules/platforms/cpp/core/include/ignite/binary/binary_type.h
+++ b/modules/platforms/cpp/core/include/ignite/binary/binary_type.h
@@ -226,8 +226,8 @@ namespace ignite
             }
         };
 
-        /*
-         * Templated binary type for pointers.
+        /**
+         * Templated binary type specification for pointers.
          */
         template <typename T>
         struct IGNITE_IMPORT_EXPORT BinaryType<T*>

http://git-wip-us.apache.org/repos/asf/ignite/blob/77c6d08a/modules/platforms/cpp/core/include/ignite/cache/cache.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/cache/cache.h b/modules/platforms/cpp/core/include/ignite/cache/cache.h
index 7581d86..ad23d62 100644
--- a/modules/platforms/cpp/core/include/ignite/cache/cache.h
+++ b/modules/platforms/cpp/core/include/ignite/cache/cache.h
@@ -1083,7 +1083,7 @@ namespace ignite
                 return query::QueryCursor<K, V>(cursorImpl);
             }
 
-            /*
+            /**
              * Perform text query.
              *
              * @param qry Query.
@@ -1100,7 +1100,7 @@ namespace ignite
                 return res;
             }
 
-            /*
+            /**
              * Perform text query.
              *
              * @param qry Query.
@@ -1114,7 +1114,7 @@ namespace ignite
                 return query::QueryCursor<K, V>(cursorImpl);
             }
 
-            /*
+            /**
              * Perform scan query.
              *
              * @param qry Query.
@@ -1131,7 +1131,7 @@ namespace ignite
                 return res;
             }
 
-            /*
+            /**
              * Perform scan query.
              *
              * @param qry Query.
@@ -1145,7 +1145,7 @@ namespace ignite
                 return query::QueryCursor<K, V>(cursorImpl);
             }
 
-            /*
+            /**
              * Perform sql fields query.
              *
              * @param qry Query.
@@ -1162,7 +1162,7 @@ namespace ignite
                 return res;
             }
 
-            /*
+            /**
              * Perform sql fields query.
              *
              * @param qry Query.

http://git-wip-us.apache.org/repos/asf/ignite/blob/77c6d08a/modules/platforms/cpp/core/include/ignite/cache/query/query_scan.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/cache/query/query_scan.h b/modules/platforms/cpp/core/include/ignite/cache/query/query_scan.h
index c8389b2..fa47269 100644
--- a/modules/platforms/cpp/core/include/ignite/cache/query/query_scan.h
+++ b/modules/platforms/cpp/core/include/ignite/cache/query/query_scan.h
@@ -29,13 +29,13 @@ namespace ignite
     {
         namespace query
         {         
-            /*
-             * Scab query.
+            /**
+             * Scan query.
              */
             class ScanQuery
             {
             public:
-                /* 
+                /**
                  * Constructor.
                  */
                 ScanQuery() : part(-1), pageSize(1024), loc(false)
@@ -43,7 +43,7 @@ namespace ignite
                     // No-op.
                 }
                 
-                /*
+                /**
                  * Constructor.
                  *
                  * @param part Partition.
@@ -53,7 +53,7 @@ namespace ignite
                     // No-op.
                 }
                 
-                /*
+                /**
                  * Get partition to scan.
                  *
                  * @return Partition to scan.
@@ -63,7 +63,7 @@ namespace ignite
                     return part;
                 }
 
-                /*
+                /**
                  * Set partition to scan.
                  *
                  * @param part Partition to scan.
@@ -73,7 +73,7 @@ namespace ignite
                     this->part = part;
                 }
 
-                /*
+                /**
                  * Get page size.
                  *
                  * @return Page size.
@@ -83,7 +83,7 @@ namespace ignite
                     return pageSize;
                 }
 
-                /*
+                /**
                  * Set page size.
                  *
                  * @param pageSize Page size.
@@ -93,7 +93,7 @@ namespace ignite
                     this->pageSize = pageSize;
                 }
 
-                /*
+                /**
                  * Get local flag.
                  *
                  * @return Local flag.
@@ -103,7 +103,7 @@ namespace ignite
                     return loc;
                 }
 
-                /*
+                /**
                  * Set local flag.
                  *
                  * @param loc Local flag.
@@ -113,7 +113,7 @@ namespace ignite
                     this->loc = loc;
                 }
                 
-                /*
+                /**
                  * Write query info to the stream.
                  *
                  * @param writer Writer.
@@ -135,13 +135,13 @@ namespace ignite
                 }
 
             private:
-                /* Partition. */
+                /** Partition. */
                 int32_t part;
 
-                /* Page size. */
+                /** Page size. */
                 int32_t pageSize;
 
-                /* Local flag. */
+                /** Local flag. */
                 bool loc;
             };
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/77c6d08a/modules/platforms/cpp/core/include/ignite/cache/query/query_text.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/cache/query/query_text.h b/modules/platforms/cpp/core/include/ignite/cache/query/query_text.h
index f4e7f99..4494883 100644
--- a/modules/platforms/cpp/core/include/ignite/cache/query/query_text.h
+++ b/modules/platforms/cpp/core/include/ignite/cache/query/query_text.h
@@ -29,13 +29,13 @@ namespace ignite
     {
         namespace query
         {         
-            /*
+            /**
              * Text query.
              */
             class TextQuery
             {
             public:
-                /*
+                /**
                  * Constructor.
                  *
                  * @param type Type name.
@@ -47,7 +47,7 @@ namespace ignite
                     // No-op.
                 }
                 
-                /*
+                /**
                  * Get type name.
                  *
                  * @return Type name.
@@ -57,7 +57,7 @@ namespace ignite
                     return type;
                 }
 
-                /*
+                /**
                  * Set type name.
                  *
                  * @param sql Type name.
@@ -67,7 +67,7 @@ namespace ignite
                     this->type = type;
                 }
 
-                /*
+                /**
                  * Get text string.
                  *
                  * @return text string.
@@ -77,7 +77,7 @@ namespace ignite
                     return text;
                 }
 
-                /*
+                /**
                  * Set text string.
                  *
                  * @param text Text string.
@@ -87,7 +87,7 @@ namespace ignite
                     this->text = text;
                 }
 
-                /*
+                /**
                  * Get page size.
                  *
                  * @return Page size.
@@ -97,7 +97,7 @@ namespace ignite
                     return pageSize;
                 }
 
-                /*
+                /**
                  * Set page size.
                  *
                  * @param pageSize Page size.
@@ -107,7 +107,7 @@ namespace ignite
                     this->pageSize = pageSize;
                 }
 
-                /*
+                /**
                  * Get local flag.
                  *
                  * @return Local flag.
@@ -117,17 +117,17 @@ namespace ignite
                     return loc;
                 }
 
-                /*
-                    * Set local flag.
-                    *
-                    * @param loc Local flag.
-                    */
+                /**
+                 * Set local flag.
+                 *
+                 * @param loc Local flag.
+                 */
                 void SetLocal(bool loc)
                 {
                     this->loc = loc;
                 }
                 
-                /*
+                /**
                  * Write query info to the stream.
                  *
                  * @param writer Writer.
@@ -141,16 +141,16 @@ namespace ignite
                 }
 
             private:
-                /* Type name. */
+                /** Type name. */
                 std::string type;
 
-                /* Text string. */
+                /** Text string. */
                 std::string text;
 
-                /* Page size. */
+                /** Page size. */
                 int32_t pageSize;
 
-                /* Local flag. */
+                /** Local flag. */
                 bool loc;
             };
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/77c6d08a/modules/platforms/cpp/core/include/ignite/ignition.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/ignition.h b/modules/platforms/cpp/core/include/ignite/ignition.h
index 93ce166..f0046b0 100644
--- a/modules/platforms/cpp/core/include/ignite/ignition.h
+++ b/modules/platforms/cpp/core/include/ignite/ignition.h
@@ -15,14 +15,6 @@
  * limitations under the License.
  */
 
-/**
- * \mainpage Apache Ignite C++
- *
- * Apache Ignite In-Memory Data Fabric is a high-performance, integrated and distributed in-memory platform for
- * computing and transacting on large-scale data sets in real-time, orders of magnitude faster than possible with
- * traditional disk-based or flash-based technologies.
- */
-
 #ifndef _IGNITE_IGNITION
 #define _IGNITE_IGNITION
 
@@ -46,7 +38,7 @@ namespace ignite
          */
         static Ignite Start(const IgniteConfiguration& cfg);
 
-        /*
+        /**
          * Start Ignite instance.
          *
          * @param cfg Configuration.

http://git-wip-us.apache.org/repos/asf/ignite/blob/77c6d08a/modules/platforms/cpp/core/include/ignite/impl/cache/cache_impl.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/impl/cache/cache_impl.h b/modules/platforms/cpp/core/include/ignite/impl/cache/cache_impl.h
index 31ebca1..546a97b 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/cache/cache_impl.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/cache/cache_impl.h
@@ -300,7 +300,7 @@ namespace ignite
                  */
                 query::QueryCursorImpl* QuerySql(const ignite::cache::query::SqlQuery& qry, IgniteError* err);
 
-                /*
+                /**
                  * Invoke text query.
                  *
                  * @param qry Query.
@@ -309,7 +309,7 @@ namespace ignite
                  */
                 query::QueryCursorImpl* QueryText(const ignite::cache::query::TextQuery& qry, IgniteError* err);
 
-                /*
+                /**
                  * Invoke scan query.
                  *
                  * @param qry Query.
@@ -318,7 +318,7 @@ namespace ignite
                  */
                 query::QueryCursorImpl* QueryScan(const ignite::cache::query::ScanQuery& qry, IgniteError* err);
 
-                /*
+                /**
                  * Invoke sql fields query.
                  *
                  * @param qry Query.

http://git-wip-us.apache.org/repos/asf/ignite/blob/77c6d08a/modules/platforms/cpp/core/include/ignite/impl/operations.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/impl/operations.h b/modules/platforms/cpp/core/include/ignite/impl/operations.h
index 5423a56..9f1f333 100644
--- a/modules/platforms/cpp/core/include/ignite/impl/operations.h
+++ b/modules/platforms/cpp/core/include/ignite/impl/operations.h
@@ -154,7 +154,7 @@ namespace ignite
             IGNITE_NO_COPY_ASSIGNMENT(In3Operation)
         };
 
-        /*
+        /**
          * Input set operation.
          */
         template<typename T>
@@ -192,7 +192,7 @@ namespace ignite
         class InMapOperation : public InputOperation
         {
         public:
-            /*
+            /**
              * Constructor.
              *
              * @param val Value.
@@ -360,7 +360,7 @@ namespace ignite
             IGNITE_NO_COPY_ASSIGNMENT(Out2Operation)
         };
         
-        /*
+        /**
          * Output map operation.
          */
         template<typename T1, typename T2>
@@ -412,7 +412,7 @@ namespace ignite
             IGNITE_NO_COPY_ASSIGNMENT(OutMapOperation)
         };
 
-        /*
+        /**
          * Output query GET ALL operation.
          */
         template<typename K, typename V>

http://git-wip-us.apache.org/repos/asf/ignite/blob/77c6d08a/modules/platforms/cpp/cpp.dxg
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/cpp.dxg b/modules/platforms/cpp/cpp.dxg
index 281c32b..42b0a36 100644
--- a/modules/platforms/cpp/cpp.dxg
+++ b/modules/platforms/cpp/cpp.dxg
@@ -150,7 +150,7 @@ SHORT_NAMES            = NO
 # comments will behave just like regular Qt-style comments
 # (thus requiring an explicit @brief command for a brief description.)
 
-JAVADOC_AUTOBRIEF      = NO
+JAVADOC_AUTOBRIEF      = YES
 
 # If the QT_AUTOBRIEF tag is set to YES then Doxygen will
 # interpret the first line (until the first dot) of a Qt-style
@@ -1715,7 +1715,7 @@ GENERATE_LEGEND        = YES
 
 DOT_CLEANUP            = YES
 
-;INPUT=core/include/ignite core/src
+;INPUT=core
 ;EXCLUDE=core/include/ignite/impl core/os/linux/include/ignite/impl core/os/linux/src/impl core/os/win/include/ignite/impl core/os/win/src/impl core/src/impl
 ;STRIP_FROM_PATH=core/include/ignite core/src
 ;OUTPUT_DIRECTORY=../../clients/target/cppdoc


[15/24] ignite git commit: IGNITE-2153: .NET: Added package descriptions.

Posted by sb...@apache.org.
IGNITE-2153: .NET: Added package descriptions.


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

Branch: refs/heads/ignite-1.5.1
Commit: b028a2677166b5cbbd613d80bd52b11a7f3b6dbe
Parents: ea64f3a
Author: Pavel Tupitsyn <pt...@gridgain.com>
Authored: Wed Dec 16 17:04:50 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Dec 16 17:04:50 2015 +0300

----------------------------------------------------------------------
 .../Apache.Ignite.Core.csproj                   | 20 ++++++++++-
 .../Apache.Ignite.Core/Binary/Package-Info.cs   | 26 ++++++++++++++
 .../Cache/Event/Package-Info.cs                 | 26 ++++++++++++++
 .../Cache/Expiry/Package-Info.cs                | 26 ++++++++++++++
 .../Apache.Ignite.Core/Cache/Package-Info.cs    | 26 ++++++++++++++
 .../Cache/Query/Continuous/Package-Info.cs      | 26 ++++++++++++++
 .../Cache/Query/Package-Info.cs                 | 26 ++++++++++++++
 .../Cache/Store/Package-Info.cs                 | 26 ++++++++++++++
 .../Apache.Ignite.Core/Cluster/Package-Info.cs  | 26 ++++++++++++++
 .../Apache.Ignite.Core/Common/Package-Info.cs   | 26 ++++++++++++++
 .../Apache.Ignite.Core/Compute/IComputeTask.cs  | 11 +++---
 .../Apache.Ignite.Core/Compute/Package-Info.cs  | 26 ++++++++++++++
 .../DataStructures/Package-Info.cs              | 26 ++++++++++++++
 .../Datastream/Package-Info.cs                  | 26 ++++++++++++++
 .../Apache.Ignite.Core/Events/Package-Info.cs   | 26 ++++++++++++++
 .../dotnet/Apache.Ignite.Core/Impl/Ignite.cs    |  8 -----
 .../dotnet/Apache.Ignite.Core/Index.cs          | 31 -----------------
 .../Lifecycle/Package-Info.cs                   | 26 ++++++++++++++
 .../Messaging/Package-Info.cs                   | 26 ++++++++++++++
 .../dotnet/Apache.Ignite.Core/Package-Info.cs   | 36 ++++++++++++++++++++
 .../Apache.Ignite.Core/Resource/Package-Info.cs | 26 ++++++++++++++
 .../Apache.Ignite.Core/Services/Package-Info.cs | 26 ++++++++++++++
 .../Transactions/Package-Info.cs                | 26 ++++++++++++++
 23 files changed, 527 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj b/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
index 740852d..f758863 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
@@ -54,6 +54,7 @@
     <Reference Include="System.Core" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="Binary\Package-Info.cs" />
     <Compile Include="Cache\CacheAtomicUpdateTimeoutException.cs" />
     <Compile Include="Cache\CacheEntryProcessorException.cs" />
     <Compile Include="Cache\CacheException.cs" />
@@ -63,8 +64,10 @@
     <Compile Include="Cache\Event\ICacheEntryEvent.cs" />
     <Compile Include="Cache\Event\ICacheEntryEventFilter.cs" />
     <Compile Include="Cache\Event\ICacheEntryEventListener.cs" />
+    <Compile Include="Cache\Event\Package-Info.cs" />
     <Compile Include="Cache\Expiry\ExpiryPolicy.cs" />
     <Compile Include="Cache\Expiry\IExpiryPolicy.cs" />
+    <Compile Include="Cache\Expiry\Package-Info.cs" />
     <Compile Include="Cache\ICache.cs" />
     <Compile Include="Cache\ICacheAffinity.cs" />
     <Compile Include="Cache\ICacheEntry.cs" />
@@ -75,9 +78,12 @@
     <Compile Include="Cache\ICacheMetrics.cs" />
     <Compile Include="Cache\CacheResult.cs" />
     <Compile Include="Cache\IMutableCacheEntry.cs" />
+    <Compile Include="Cache\Package-Info.cs" />
     <Compile Include="Cache\Query\Continuous\ContinuousQuery.cs" />
     <Compile Include="Cache\Query\Continuous\IContinuousQueryHandle.cs" />
+    <Compile Include="Cache\Query\Continuous\Package-Info.cs" />
     <Compile Include="Cache\Query\IQueryCursor.cs" />
+    <Compile Include="Cache\Query\Package-Info.cs" />
     <Compile Include="Cache\Query\QueryBase.cs" />
     <Compile Include="Cache\Query\ScanQuery.cs" />
     <Compile Include="Cache\Query\SqlFieldsQuery.cs" />
@@ -88,6 +94,7 @@
     <Compile Include="Cache\Store\CacheStoreException.cs" />
     <Compile Include="Cache\Store\ICacheStore.cs" />
     <Compile Include="Cache\Store\ICacheStoreSession.cs" />
+    <Compile Include="Cache\Store\Package-Info.cs" />
     <Compile Include="Cluster\ClusterGroupEmptyException.cs" />
     <Compile Include="Cluster\ClusterTopologyException.cs" />
     <Compile Include="Cluster\ICluster.cs" />
@@ -95,8 +102,10 @@
     <Compile Include="Cluster\IClusterMetrics.cs" />
     <Compile Include="Cluster\IClusterNode.cs" />
     <Compile Include="Cluster\IClusterNodeFilter.cs" />
+    <Compile Include="Cluster\Package-Info.cs" />
     <Compile Include="Common\IgniteException.cs" />
     <Compile Include="Common\IgniteGuid.cs" />
+    <Compile Include="Common\Package-Info.cs" />
     <Compile Include="Compute\ComputeExecutionRejectedException.cs" />
     <Compile Include="Compute\ComputeJobAdapter.cs" />
     <Compile Include="Compute\ComputeJobFailoverException.cs" />
@@ -113,11 +122,14 @@
     <Compile Include="Compute\IComputeJobResult.cs" />
     <Compile Include="Compute\IComputeReducer.cs" />
     <Compile Include="Compute\IComputeTask.cs" />
+    <Compile Include="Compute\Package-Info.cs" />
     <Compile Include="Datastream\IDataStreamer.cs" />
     <Compile Include="Datastream\IStreamReceiver.cs" />
+    <Compile Include="Datastream\Package-Info.cs" />
     <Compile Include="Datastream\StreamTransformer.cs" />
     <Compile Include="Datastream\StreamVisitor.cs" />
     <Compile Include="DataStructures\IAtomicLong.cs" />
+    <Compile Include="DataStructures\Package-Info.cs" />
     <Compile Include="Events\CacheEvent.cs" />
     <Compile Include="Events\CacheQueryExecutedEvent.cs" />
     <Compile Include="Events\CacheQueryReadEvent.cs" />
@@ -132,6 +144,7 @@
     <Compile Include="Events\IEventListener.cs" />
     <Compile Include="Events\IEvents.cs" />
     <Compile Include="Events\JobEvent.cs" />
+    <Compile Include="Events\Package-Info.cs" />
     <Compile Include="Events\SwapSpaceEvent.cs" />
     <Compile Include="Events\TaskEvent.cs" />
     <Compile Include="GlobalSuppressions.cs" />
@@ -309,7 +322,9 @@
     <Compile Include="Impl\Unmanaged\UnmanagedNonReleaseableTarget.cs" />
     <Compile Include="Impl\Unmanaged\UnmanagedTarget.cs" />
     <Compile Include="Impl\Unmanaged\UnmanagedUtils.cs" />
-    <Compile Include="Index.cs" />
+    <Compile Include="Lifecycle\Package-Info.cs" />
+    <Compile Include="Messaging\Package-Info.cs" />
+    <Compile Include="Package-Info.cs" />
     <Compile Include="Lifecycle\ILifecycleBean.cs" />
     <Compile Include="Lifecycle\LifecycleEventType.cs" />
     <Compile Include="Messaging\IMessageListener.cs" />
@@ -332,16 +347,19 @@
     <Compile Include="Binary\BinaryTypeNames.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Resource\InstanceResourceAttribute.cs" />
+    <Compile Include="Resource\Package-Info.cs" />
     <Compile Include="Resource\StoreSessionResourceAttribute.cs" />
     <Compile Include="Services\IService.cs" />
     <Compile Include="Services\IServiceContext.cs" />
     <Compile Include="Services\IServiceDescriptor.cs" />
     <Compile Include="Services\IServices.cs" />
+    <Compile Include="Services\Package-Info.cs" />
     <Compile Include="Services\ServiceConfiguration.cs" />
     <Compile Include="Services\ServiceInvocationException.cs" />
     <Compile Include="Transactions\ITransaction.cs" />
     <Compile Include="Transactions\ITransactionMetrics.cs" />
     <Compile Include="Transactions\ITransactions.cs" />
+    <Compile Include="Transactions\Package-Info.cs" />
     <Compile Include="Transactions\TransactionConcurrency.cs" />
     <Compile Include="Transactions\TransactionHeuristicException.cs" />
     <Compile Include="Transactions\TransactionIsolation.cs" />

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Binary/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Binary/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Binary/Package-Info.cs
new file mode 100644
index 0000000..fd01160
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Binary/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains Ignite Binary Objects API classes.
+/// </summary>
+namespace Apache.Ignite.Core.Binary
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Event/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Event/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Event/Package-Info.cs
new file mode 100644
index 0000000..0d3dbb0
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Event/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Cache events API.
+/// </summary>
+namespace Apache.Ignite.Core.Cache.Event
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Expiry/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Expiry/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Expiry/Package-Info.cs
new file mode 100644
index 0000000..23a82a4
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Expiry/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Cache expiration API.
+/// </summary>
+namespace Apache.Ignite.Core.Cache.Expiry
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Package-Info.cs
new file mode 100644
index 0000000..4dd7439
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains main Data Grid APIs.
+/// </summary>
+namespace Apache.Ignite.Core.Cache
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Query/Continuous/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Query/Continuous/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Query/Continuous/Package-Info.cs
new file mode 100644
index 0000000..2ba6dfe
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Query/Continuous/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains APIs for creating and executing cache continuous queries.
+/// </summary>
+namespace Apache.Ignite.Core.Cache.Query.Continuous
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Query/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Query/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Query/Package-Info.cs
new file mode 100644
index 0000000..2e83364
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Query/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains APIs for creating and executing cache queries.
+/// </summary>
+namespace Apache.Ignite.Core.Cache.Query
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Store/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Store/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Store/Package-Info.cs
new file mode 100644
index 0000000..c2772a4
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Store/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains cache store interfaces.
+/// </summary>
+namespace Apache.Ignite.Core.Cache.Store
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Cluster/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cluster/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cluster/Package-Info.cs
new file mode 100644
index 0000000..b62fa40
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cluster/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains cluster-related classes.
+/// </summary>
+namespace Apache.Ignite.Core.Cluster
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Common/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Common/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Common/Package-Info.cs
new file mode 100644
index 0000000..1e7ea89
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Common/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Common Ignite types.
+/// </summary>
+namespace Apache.Ignite.Core.Common
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Compute/IComputeTask.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Compute/IComputeTask.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Compute/IComputeTask.cs
index 87aebda..5ae1420 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Compute/IComputeTask.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Compute/IComputeTask.cs
@@ -33,7 +33,7 @@ namespace Apache.Ignite.Core.Compute
     ///         <description>Inject annotated resources into task instance.</description>
     ///     </item>
     ///     <item>
-    ///         <description>Apply <see cref="IComputeTask{A,T,R}.Map(IList{IClusterNode}, TArg)"/>.
+    ///         <description>Apply <see cref="Map"/>.
     ///         This method is responsible for splitting business logic into multiple jobs 
     ///         (units of execution) and mapping them to Ignite nodes.</description>
     ///     </item>
@@ -41,8 +41,7 @@ namespace Apache.Ignite.Core.Compute
     ///         <description>System will send mapped Ignite jobs to their respective nodes.</description>
     ///     </item>
     ///     <item>
-    ///         <description>Once job execution results become available method 
-    ///         <see cref="IComputeTask{A,T,R}.OnResult(IComputeJobResult{TJobRes}, IList{IComputeJobResult{TJobRes}})"/>
+    ///         <description>Once job execution results become available, <see cref="OnResult"/> method
     ///         will be called for ech received job result. The policy returned by this method will
     ///         determine the way task reacts to every job result.
     ///         <para />
@@ -65,10 +64,8 @@ namespace Apache.Ignite.Core.Compute
     ///         </description>
     ///     </item>
     ///     <item>
-    ///         <description>Once all results are received or 
-    ///         <see cref="IComputeTask{A,T,R}.OnResult(IComputeJobResult{TJobRes}, IList{IComputeJobResult{TJobRes}})"/>
-    ///         method returned <see cref="ComputeJobResultPolicy.Reduce"/> policy, method 
-    ///         <see cref="IComputeTask{A,T,R}.Reduce(IList{IComputeJobResult{TJobRes}})"/>
+    ///         <description>Once all results are received or  <see cref="OnResult"/>
+    ///         method returned <see cref="ComputeJobResultPolicy.Reduce"/> policy, method <see cref="Reduce"/>
     ///         is called to aggregate received results into one final result. Once this method is finished the 
     ///         execution of the Ignite task is complete. This result will be returned to the user through future.
     ///         </description>    

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Compute/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Compute/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Compute/Package-Info.cs
new file mode 100644
index 0000000..2221c5f
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Compute/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains Compute Grid functionality.
+/// </summary>
+namespace Apache.Ignite.Core.Compute
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/DataStructures/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/DataStructures/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/DataStructures/Package-Info.cs
new file mode 100644
index 0000000..4b8595f
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/DataStructures/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Distributed data structures.
+/// </summary>
+namespace Apache.Ignite.Core.DataStructures
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Datastream/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Datastream/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Datastream/Package-Info.cs
new file mode 100644
index 0000000..9d7790e
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Datastream/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains Ignite Streamer classes.
+/// </summary>
+namespace Apache.Ignite.Core.Datastream
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Events/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Events/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Events/Package-Info.cs
new file mode 100644
index 0000000..e832b74
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Events/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains Event Subscription functionality together with various events emitted by Ignite.
+/// </summary>
+namespace Apache.Ignite.Core.Events
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
index 5b952b1..2fcada3 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
@@ -15,14 +15,6 @@
  * limitations under the License.
  */
 
-/**
- * \mainpage Apache Ignite.NET
- *
- * Apache Ignite In-Memory Data Fabric is a high-performance, integrated and distributed in-memory platform for 
- * computing and transacting on large-scale data sets in real-time, orders of magnitude faster than possible with 
- * traditional disk-based or flash-based technologies.
- */
-
 namespace Apache.Ignite.Core.Impl
 {
     using System;

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Index.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Index.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Index.cs
deleted file mode 100644
index c6dc5d8..0000000
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Index.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.
- */
-
-namespace Apache.Ignite.Core
-{
-    // Doxygen main page
-
-    /**
-
-    \mainpage Apache Ignite.NET In-Memory Data Fabric
-
-    Apache Ignite.NET In-Memory Data Fabric is a high-performance, integrated and distributed in-memory platform for 
-    computing and transacting on large-scale data sets in real-time, orders of magnitude faster than possible with 
-    traditional disk-based or flash-based technologies.
-
-    */
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Lifecycle/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Lifecycle/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Lifecycle/Package-Info.cs
new file mode 100644
index 0000000..ca743ea
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Lifecycle/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains lifecycle-related classes.
+/// </summary>
+namespace Apache.Ignite.Core.Lifecycle
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Messaging/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Messaging/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Messaging/Package-Info.cs
new file mode 100644
index 0000000..b991821
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Messaging/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains Topic-based Messaging functionality.
+/// </summary>
+namespace Apache.Ignite.Core.Messaging
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Package-Info.cs
new file mode 100644
index 0000000..8f6421e
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Package-Info.cs
@@ -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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains Ignite APIs.
+/// </summary>
+namespace Apache.Ignite.Core
+{
+    // Doxygen main page
+
+    /**
+
+    \mainpage Apache Ignite.NET In-Memory Data Fabric
+
+    Apache Ignite.NET In-Memory Data Fabric is a high-performance, integrated and distributed in-memory platform for 
+    computing and transacting on large-scale data sets in real-time, orders of magnitude faster than possible with 
+    traditional disk-based or flash-based technologies.
+
+    */
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Resource/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Resource/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Resource/Package-Info.cs
new file mode 100644
index 0000000..dbf4101
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Resource/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains attributes to inject resources into user-defined code such as tasks, jobs, entry processors.
+/// </summary>
+namespace Apache.Ignite.Core.Resource
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Services/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Services/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Services/Package-Info.cs
new file mode 100644
index 0000000..435b930
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Services/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains Managed Services APIs.
+/// </summary>
+namespace Apache.Ignite.Core.Services
+{
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/b028a267/modules/platforms/dotnet/Apache.Ignite.Core/Transactions/Package-Info.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Transactions/Package-Info.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Transactions/Package-Info.cs
new file mode 100644
index 0000000..e63c2c6
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Transactions/Package-Info.cs
@@ -0,0 +1,26 @@
+/*
+* 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.
+*/
+
+#pragma warning disable 1587   // invalid XML comment
+
+/// <summary>
+/// Contains transaction-related classes.
+/// </summary>
+namespace Apache.Ignite.Core.Transactions
+{
+    // No-op.
+}


[20/24] ignite git commit: ignite-1.5 Avoid NPE in dumpDebugInfo.

Posted by sb...@apache.org.
ignite-1.5 Avoid NPE in dumpDebugInfo.


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

Branch: refs/heads/ignite-1.5.1
Commit: 5f26538d7ac7838500259e9213abf26db50da9d9
Parents: 7f35bc6
Author: sboikov <sb...@gridgain.com>
Authored: Thu Dec 17 11:58:32 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Dec 17 11:58:32 2015 +0300

----------------------------------------------------------------------
 .../apache/ignite/internal/IgniteKernal.java    | 35 ++++++++++++--------
 1 file changed, 21 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/5f26538d/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index e0503fa..6e0be10 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -3245,26 +3245,33 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
 
     /** {@inheritDoc} */
     public void dumpDebugInfo() {
-        GridKernalContextImpl ctx = this.ctx;
+        try {
+            GridKernalContextImpl ctx = this.ctx;
+
+            GridDiscoveryManager discoMrg = ctx != null ? ctx.discovery() : null;
 
-        if (ctx != null) {
-            boolean client = ctx.clientNode();
+            ClusterNode locNode = discoMrg != null ? discoMrg.localNode() : null;
 
-            ClusterNode locNode = ctx.discovery().localNode();
+            if (ctx != null && discoMrg != null && locNode != null) {
+                boolean client = ctx.clientNode();
 
-            UUID routerId = locNode instanceof TcpDiscoveryNode ? ((TcpDiscoveryNode)locNode).clientRouterNodeId() : null;
+                UUID routerId = locNode instanceof TcpDiscoveryNode ? ((TcpDiscoveryNode)locNode).clientRouterNodeId() : null;
 
-            U.warn(log, "Dumping debug info for node [id=" + locNode.id() +
-                ", name=" + ctx.gridName() +
-                ", order=" + locNode.order() +
-                ", topVer=" + ctx.discovery().topologyVersion() +
-                ", client=" + client +
-                (client && routerId != null ? ", routerId=" + routerId : "") + ']');
+                U.warn(log, "Dumping debug info for node [id=" + locNode.id() +
+                    ", name=" + ctx.gridName() +
+                    ", order=" + locNode.order() +
+                    ", topVer=" + discoMrg.topologyVersion() +
+                    ", client=" + client +
+                    (client && routerId != null ? ", routerId=" + routerId : "") + ']');
 
-            ctx.cache().context().exchange().dumpDebugInfo();
+                ctx.cache().context().exchange().dumpDebugInfo();
+            }
+            else
+                U.warn(log, "Dumping debug info for node, context is not initialized [name=" + gridName + ']');
+        }
+        catch (Exception e) {
+            U.error(log, "Failed to dump debug info for node: " + e, e);
         }
-        else
-            U.warn(log, "Dumping debug info for node, context is not initialized [name=" + gridName + ']');
     }
 
     /** {@inheritDoc} */


[14/24] ignite git commit: Added default value for IGNITE_UPDATE_NOTIFIER

Posted by sb...@apache.org.
Added default value for IGNITE_UPDATE_NOTIFIER


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

Branch: refs/heads/ignite-1.5.1
Commit: ea64f3abed69052f34bc743cb32903ab5051660c
Parents: 58e6412
Author: Anton Vinogradov <av...@apache.org>
Authored: Wed Dec 16 15:18:58 2015 +0300
Committer: Anton Vinogradov <av...@apache.org>
Committed: Wed Dec 16 15:18:58 2015 +0300

----------------------------------------------------------------------
 modules/core/pom.xml                                            | 5 +++++
 .../src/main/java/org/apache/ignite/internal/IgniteKernal.java  | 3 ++-
 modules/core/src/main/resources/ignite.properties               | 1 +
 parent/pom.xml                                                  | 1 +
 4 files changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ea64f3ab/modules/core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 065082d..c8702bd 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -331,6 +331,11 @@
                                         <property name="props.file" value="../../modules/core/target/classes/ignite.properties" />
 
                                         <replaceregexp file="${props.file}" byline="true">
+                                            <regexp pattern="ignite.update.notifier.enabled.by.default=.*" />
+                                            <substitution expression="ignite.update.notifier.enabled.by.default=${update.notifier.enabled.by.default}" />
+                                        </replaceregexp>
+
+                                        <replaceregexp file="${props.file}" byline="true">
                                             <regexp pattern="ignite.rel.date=.*" />
                                             <substitution expression="ignite.rel.date=${ignite.rel.date}" />
                                         </replaceregexp>

http://git-wip-us.apache.org/repos/asf/ignite/blob/ea64f3ab/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 0f781d6..e0503fa 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -745,7 +745,8 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
         // Run background network diagnostics.
         GridDiagnostic.runBackgroundCheck(gridName, execSvc, log);
 
-        boolean notifyEnabled = IgniteSystemProperties.getBoolean(IGNITE_UPDATE_NOTIFIER, true);
+        boolean notifyEnabled = IgniteSystemProperties.getBoolean(IGNITE_UPDATE_NOTIFIER,
+            Boolean.parseBoolean(IgniteProperties.get("ignite.update.notifier.enabled.by.default")));
 
         // Ack 3-rd party licenses location.
         if (log.isInfoEnabled() && cfg.getIgniteHome() != null)

http://git-wip-us.apache.org/repos/asf/ignite/blob/ea64f3ab/modules/core/src/main/resources/ignite.properties
----------------------------------------------------------------------
diff --git a/modules/core/src/main/resources/ignite.properties b/modules/core/src/main/resources/ignite.properties
index 073c9ab..866bbc9 100644
--- a/modules/core/src/main/resources/ignite.properties
+++ b/modules/core/src/main/resources/ignite.properties
@@ -20,3 +20,4 @@ ignite.build=0
 ignite.revision=DEV
 ignite.rel.date=01011970
 ignite.update.status.params=test=vfvfvskfkeievskjv
+ignite.update.notifier.enabled.by.default=false

http://git-wip-us.apache.org/repos/asf/ignite/blob/ea64f3ab/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index 486fc0d..f665d40 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -43,6 +43,7 @@
         <git.exec>git</git.exec>
         <maven.bundle.plugin.version>2.5.4</maven.bundle.plugin.version>
         <javadoc.opts>-XDenableSunApiLintControl</javadoc.opts>
+        <update.notifier.enabled.by.default>true</update.notifier.enabled.by.default>
 
         <!-- Dependency versions. -->
         <activemq.version>5.12.0</activemq.version>


[02/24] ignite git commit: #Ignite-1.5 - Javadoc

Posted by sb...@apache.org.
#Ignite-1.5 - Javadoc


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

Branch: refs/heads/ignite-1.5.1
Commit: 046f3b84fd78e36d6dc3130c3200f3e97074515c
Parents: 894992d
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Tue Dec 15 20:16:00 2015 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Tue Dec 15 20:16:00 2015 +0300

----------------------------------------------------------------------
 .../src/main/java/org/apache/ignite/Ignite.java  | 19 +++++++++++++++++++
 .../main/java/org/apache/ignite/IgniteCache.java |  8 +++++++-
 2 files changed, 26 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/046f3b84/modules/core/src/main/java/org/apache/ignite/Ignite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/Ignite.java b/modules/core/src/main/java/org/apache/ignite/Ignite.java
index 7196959..5703744 100644
--- a/modules/core/src/main/java/org/apache/ignite/Ignite.java
+++ b/modules/core/src/main/java/org/apache/ignite/Ignite.java
@@ -214,6 +214,9 @@ public interface Ignite extends AutoCloseable {
      * <p>
      * If local node is an affinity node, this method will return the instance of started cache.
      * Otherwise, it will create a client cache on local node.
+     * <p>
+     * If a cache with the same name already exists in the grid, an exception will be thrown regardless
+     * whether the given configuration matches the configuration of the existing cache or not.
      *
      * @param cacheCfg Cache configuration to use.
      * @return Instance of started cache.
@@ -225,6 +228,8 @@ public interface Ignite extends AutoCloseable {
      * <p>
      * If local node is an affinity node, this method will return the instance of started cache.
      * Otherwise, it will create a client cache on local node.
+     * <p>
+     * If a cache with the same name already exists in the grid, an exception will be thrown.
      *
      * @param cacheName Cache name.
      * @return Instance of started cache.
@@ -233,6 +238,10 @@ public interface Ignite extends AutoCloseable {
 
     /**
      * Gets existing cache with the given name or creates new one with the given configuration.
+     * <p>
+     * If a cache with the same name already exist, this method will not check that the given
+     * configuration matches the configuration of existing cache and will return an instance
+     * of the existing cache.
      *
      * @param cacheCfg Cache configuration to use.
      * @return Existing or newly created cache.
@@ -259,6 +268,9 @@ public interface Ignite extends AutoCloseable {
      * <p>
      * If local node is an affinity node, this method will return the instance of started cache.
      * Otherwise, it will create a near cache with the given configuration on local node.
+     * <p>
+     * If a cache with the same name already exists in the grid, an exception will be thrown regardless
+     * whether the given configuration matches the configuration of the existing cache or not.
      *
      * @param cacheCfg Cache configuration to use.
      * @param nearCfg Near cache configuration to use on local node in case it is not an
@@ -270,6 +282,13 @@ public interface Ignite extends AutoCloseable {
 
     /**
      * Gets existing cache with the given cache configuration or creates one if it does not exist.
+     * <p>
+     * If a cache with the same name already exist, this method will not check that the given
+     * configuration matches the configuration of existing cache and will return an instance
+     * of the existing cache.
+     * <p>
+     * If local node is not an affinity node and a client cache without near cache has been already started
+     * on this node, an exception will be thrown.
      *
      * @param cacheCfg Cache configuration.
      * @param nearCfg Near cache configuration for client.

http://git-wip-us.apache.org/repos/asf/ignite/blob/046f3b84/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteCache.java b/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
index f98d50a..886dca6 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
@@ -557,8 +557,10 @@ public interface IgniteCache<K, V> extends javax.cache.Cache<K, V>, IgniteAsyncS
      * the provided key. If an {@link javax.cache.Cache.Entry} does not exist for the specified key,
      * an attempt is made to load it (if a loader is configured) or a surrogate
      * {@link javax.cache.Cache.Entry}, consisting of the key with a null value is used instead.
-     * This method different
      * <p>
+     * An instance of entry processor must be stateless as it may be invoked multiple times on primary and
+     * backup nodes in the cache. It is guaranteed that the value passed to the entry processor will be always
+     * the same.
      *
      * @param key            the key to the entry
      * @param entryProcessor the {@link CacheEntryProcessor} to invoke
@@ -605,6 +607,10 @@ public interface IgniteCache<K, V> extends javax.cache.Cache<K, V>, IgniteAsyncS
      * {@link CacheEntryProcessor} or Caching implementation throw an exception, the
      * exception is wrapped and re-thrown when a call to
      * {@link javax.cache.processor.EntryProcessorResult#get()} is made.
+     * <p>
+     * An instance of entry processor must be stateless as it may be invoked multiple times on primary and
+     * backup nodes in the cache. It is guaranteed that the value passed to the entry processor will be always
+     * the same.
      *
      * @param keys           the set of keys for entries to process
      * @param entryProcessor the {@link CacheEntryProcessor} to invoke


[16/24] ignite git commit: fixed https://issues.apache.org/jira/browse/IGNITE-2158

Posted by sb...@apache.org.
fixed https://issues.apache.org/jira/browse/IGNITE-2158


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

Branch: refs/heads/ignite-1.5.1
Commit: d8c8214181b2fce4f069b2f8f1bb06ae3fc6d492
Parents: b028a26
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Wed Dec 16 17:19:37 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Wed Dec 16 17:19:37 2015 +0300

----------------------------------------------------------------------
 .../store/dummy/CacheDummyPersonStore.java      | 113 --------------
 .../store/dummy/CacheDummyStoreExample.java     | 133 -----------------
 .../datagrid/store/dummy/package-info.java      |  22 ---
 .../store/jdbc/CacheJdbcPersonStore.java        |  43 +-----
 .../store/jdbc/CacheJdbcStoreExample.java       |  25 +++-
 .../store/spring/CacheSpringPersonStore.java    | 131 -----------------
 .../store/spring/CacheSpringStoreExample.java   | 147 -------------------
 .../datagrid/store/spring/package-info.java     |  22 ---
 .../ignite/examples/CacheExamplesSelfTest.java  |  10 +-
 9 files changed, 30 insertions(+), 616 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d8c82141/examples/src/main/java/org/apache/ignite/examples/datagrid/store/dummy/CacheDummyPersonStore.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/dummy/CacheDummyPersonStore.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/dummy/CacheDummyPersonStore.java
deleted file mode 100644
index 6c0fecb..0000000
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/dummy/CacheDummyPersonStore.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * 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.datagrid.store.dummy;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.cache.store.CacheStoreAdapter;
-import org.apache.ignite.cache.store.CacheStoreSession;
-import org.apache.ignite.examples.model.Person;
-import org.apache.ignite.lang.IgniteBiInClosure;
-import org.apache.ignite.resources.CacheNameResource;
-import org.apache.ignite.resources.CacheStoreSessionResource;
-import org.apache.ignite.resources.IgniteInstanceResource;
-import org.apache.ignite.transactions.Transaction;
-import org.jetbrains.annotations.Nullable;
-
-/**
- * Dummy cache store implementation.
- */
-public class CacheDummyPersonStore extends CacheStoreAdapter<Long, Person> {
-    /** Auto-inject ignite instance. */
-    @IgniteInstanceResource
-    private Ignite ignite;
-
-    /** Auto-inject cache name. */
-    @CacheNameResource
-    private String cacheName;
-
-    /** */
-    @CacheStoreSessionResource
-    private CacheStoreSession ses;
-
-    /** Dummy database. */
-    private Map<Long, Person> dummyDB = new ConcurrentHashMap<>();
-
-    /** {@inheritDoc} */
-    @Override public Person load(Long key) {
-        Transaction tx = transaction();
-
-        System.out.println(">>> Store load [key=" + key + ", xid=" + (tx == null ? null : tx.xid()) + ']');
-
-        return dummyDB.get(key);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void write(javax.cache.Cache.Entry<? extends Long, ? extends Person> entry) {
-        Transaction tx = transaction();
-
-        Long key = entry.getKey();
-        Person val = entry.getValue();
-
-        System.out.println(">>> Store put [key=" + key + ", val=" + val + ", xid=" + (tx == null ? null : tx.xid()) + ']');
-
-        dummyDB.put(key, val);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void delete(Object key) {
-        Transaction tx = transaction();
-
-        System.out.println(">>> Store remove [key=" + key + ", xid=" + (tx == null ? null : tx.xid()) + ']');
-
-        dummyDB.remove(key);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void loadCache(IgniteBiInClosure<Long, Person> clo, Object... args) {
-        int cnt = (Integer)args[0];
-
-        System.out.println(">>> Store loadCache for entry count: " + cnt);
-
-        for (long i = 0; i < cnt; i++) {
-            // Generate dummy person on the fly.
-            Person p = new Person(i, "first-" + i, "last-" + 1);
-
-            // Ignite will automatically discard entries that don't belong on this node,
-            // but we check if local node is primary or backup anyway just to demonstrate that we can.
-            // Ideally, partition ID of a key would be stored  in the database and only keys
-            // for partitions that belong on this node would be loaded from database.
-            if (ignite.affinity(cacheName).isPrimaryOrBackup(ignite.cluster().localNode(), p.id)) {
-                // Update dummy database.
-                // In real life data would be loaded from database.
-                dummyDB.put(p.id, p);
-
-                // Pass data to cache.
-                clo.apply(p.id, p);
-            }
-        }
-    }
-
-    /**
-     * @return Current transaction.
-     */
-    @Nullable private Transaction transaction() {
-        return ses != null ? ses.transaction() : null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/d8c82141/examples/src/main/java/org/apache/ignite/examples/datagrid/store/dummy/CacheDummyStoreExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/dummy/CacheDummyStoreExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/dummy/CacheDummyStoreExample.java
deleted file mode 100644
index a631df3..0000000
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/dummy/CacheDummyStoreExample.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * 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.datagrid.store.dummy;
-
-import java.util.UUID;
-import javax.cache.configuration.FactoryBuilder;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.Ignition;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.examples.ExampleNodeStartup;
-import org.apache.ignite.examples.ExamplesUtils;
-import org.apache.ignite.examples.model.Person;
-import org.apache.ignite.transactions.Transaction;
-
-import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
-
-/**
- * Demonstrates usage of cache with underlying persistent store configured.
- * <p>
- * This example uses {@link CacheDummyPersonStore} as a persistent store.
- * <p>
- * Remote nodes can be started with {@link ExampleNodeStartup} in another JVM which will
- * start node with {@code examples/config/example-ignite.xml} configuration.
- */
-public class CacheDummyStoreExample {
-    /** Cache name. */
-    private static final String CACHE_NAME = CacheDummyStoreExample.class.getSimpleName();
-
-    /** Heap size required to run this example. */
-    public static final int MIN_MEMORY = 1024 * 1024 * 1024;
-
-    /** Number of entries to load. */
-    private static final int ENTRY_COUNT = 100_000;
-
-    /** Global person ID to use across entire example. */
-    private static final Long id = Math.abs(UUID.randomUUID().getLeastSignificantBits());
-
-    /**
-     * Executes example.
-     *
-     * @param args Command line arguments, none required.
-     * @throws IgniteException If example execution failed.
-     */
-    public static void main(String[] args) throws IgniteException {
-        ExamplesUtils.checkMinMemory(MIN_MEMORY);
-
-        // To start ignite with desired configuration uncomment the appropriate line.
-        try (Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) {
-            System.out.println();
-            System.out.println(">>> Cache store example started.");
-
-            CacheConfiguration<Long, Person> cacheCfg = new CacheConfiguration<>(CACHE_NAME);
-
-            // Set atomicity as transaction, since we are showing transactions in example.
-            cacheCfg.setAtomicityMode(TRANSACTIONAL);
-
-            // Configure Dummy store.
-            cacheCfg.setCacheStoreFactory(FactoryBuilder.factoryOf(CacheDummyPersonStore.class));
-
-            cacheCfg.setReadThrough(true);
-            cacheCfg.setWriteThrough(true);
-
-            try (IgniteCache<Long, Person> cache = ignite.getOrCreateCache(cacheCfg)) {
-                // Make initial cache loading from persistent store. This is a
-                // distributed operation and will call CacheStore.loadCache(...)
-                // method on all nodes in topology.
-                loadCache(cache);
-
-                // Start transaction and execute several cache operations with
-                // read/write-through to persistent store.
-                executeTransaction(cache);
-            }
-        }
-    }
-
-    /**
-     * Makes initial cache loading.
-     *
-     * @param cache Cache to load.
-     */
-    private static void loadCache(IgniteCache<Long, Person> cache) {
-        long start = System.currentTimeMillis();
-
-        // Start loading cache from persistent store on all caching nodes.
-        cache.loadCache(null, ENTRY_COUNT);
-
-        long end = System.currentTimeMillis();
-
-        System.out.println(">>> Loaded " + cache.size() + " keys with backups in " + (end - start) + "ms.");
-    }
-
-    /**
-     * Executes transaction with read/write-through to persistent store.
-     *
-     * @param cache Cache to execute transaction on.
-     */
-    private static void executeTransaction(IgniteCache<Long, Person> cache) {
-        try (Transaction tx = Ignition.ignite().transactions().txStart()) {
-            Person val = cache.get(id);
-
-            System.out.println("Read value: " + val);
-
-            val = cache.getAndPut(id, new Person(id, "Isaac", "Newton"));
-
-            System.out.println("Overwrote old value: " + val);
-
-            val = cache.get(id);
-
-            System.out.println("Read value: " + val);
-
-            tx.commit();
-        }
-
-        System.out.println("Read value after commit: " + cache.get(id));
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/d8c82141/examples/src/main/java/org/apache/ignite/examples/datagrid/store/dummy/package-info.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/dummy/package-info.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/dummy/package-info.java
deleted file mode 100644
index 42c3899..0000000
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/dummy/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * 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 description. -->
- * Contains dummy cache store implementation.
- */
-package org.apache.ignite.examples.datagrid.store.dummy;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/d8c82141/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java
index 6ba181e..f93a49f 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java
@@ -24,62 +24,29 @@ import java.sql.SQLException;
 import javax.cache.Cache;
 import javax.cache.integration.CacheLoaderException;
 import javax.cache.integration.CacheWriterException;
-import javax.sql.DataSource;
-import org.apache.ignite.IgniteException;
 import org.apache.ignite.cache.store.CacheStore;
 import org.apache.ignite.cache.store.CacheStoreAdapter;
 import org.apache.ignite.cache.store.CacheStoreSession;
 import org.apache.ignite.examples.model.Person;
 import org.apache.ignite.lang.IgniteBiInClosure;
 import org.apache.ignite.resources.CacheStoreSessionResource;
-import org.h2.jdbcx.JdbcConnectionPool;
 
 /**
  * Example of {@link CacheStore} implementation that uses JDBC
  * transaction with cache transactions and maps {@link Long} to {@link Person}.
  */
 public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
-    /** Data source. */
-    public static final DataSource DATA_SRC =
-        JdbcConnectionPool.create("jdbc:h2:mem:example;DB_CLOSE_DELAY=-1", "", "");
-
     /** Store session. */
     @CacheStoreSessionResource
     private CacheStoreSession ses;
 
-    /**
-     * Constructor.
-     *
-     * @throws IgniteException If failed.
-     */
-    public CacheJdbcPersonStore() throws IgniteException {
-        prepareDb();
-    }
-
-    /**
-     * Prepares database for example execution. This method will create a
-     * table called "PERSONS" so it can be used by store implementation.
-     *
-     * @throws IgniteException If failed.
-     */
-    private void prepareDb() throws IgniteException {
-        try (Connection conn = DATA_SRC.getConnection()) {
-            conn.createStatement().execute(
-                "create table if not exists PERSONS (" +
-                "id number unique, firstName varchar(255), lastName varchar(255))");
-        }
-        catch (SQLException e) {
-            throw new IgniteException("Failed to create database table.", e);
-        }
-    }
-
     /** {@inheritDoc} */
     @Override public Person load(Long key) {
         System.out.println(">>> Store load [key=" + key + ']');
 
         Connection conn = ses.attachment();
 
-        try (PreparedStatement st = conn.prepareStatement("select * from PERSONS where id = ?")) {
+        try (PreparedStatement st = conn.prepareStatement("select * from PERSON where id = ?")) {
             st.setString(1, key.toString());
 
             ResultSet rs = st.executeQuery();
@@ -106,7 +73,7 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
             // Try update first. If it does not work, then try insert.
             // Some databases would allow these to be done in one 'upsert' operation.
             try (PreparedStatement st = conn.prepareStatement(
-                "update PERSONS set firstName = ?, lastName = ? where id = ?")) {
+                "update PERSON set first_name = ?, last_name = ? where id = ?")) {
                 st.setString(1, val.firstName);
                 st.setString(2, val.lastName);
                 st.setLong(3, val.id);
@@ -117,7 +84,7 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
             // If update failed, try to insert.
             if (updated == 0) {
                 try (PreparedStatement st = conn.prepareStatement(
-                    "insert into PERSONS (id, firstName, lastName) values (?, ?, ?)")) {
+                    "insert into PERSON (id, first_name, last_name) values (?, ?, ?)")) {
                     st.setLong(1, val.id);
                     st.setString(2, val.firstName);
                     st.setString(3, val.lastName);
@@ -137,7 +104,7 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
 
         Connection conn = ses.attachment();
 
-        try (PreparedStatement st = conn.prepareStatement("delete from PERSONS where id=?")) {
+        try (PreparedStatement st = conn.prepareStatement("delete from PERSON where id=?")) {
             st.setLong(1, (Long)key);
 
             st.executeUpdate();
@@ -156,7 +123,7 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
 
         Connection conn = ses.attachment();
 
-        try (PreparedStatement stmt = conn.prepareStatement("select * from PERSONS limit ?")) {
+        try (PreparedStatement stmt = conn.prepareStatement("select * from PERSON limit ?")) {
             stmt.setInt(1, entryCnt);
 
             ResultSet rs = stmt.executeQuery();

http://git-wip-us.apache.org/repos/asf/ignite/blob/d8c82141/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcStoreExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcStoreExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcStoreExample.java
index 55ad5df..0034410 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcStoreExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcStoreExample.java
@@ -30,7 +30,10 @@ import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.examples.ExampleNodeStartup;
 import org.apache.ignite.examples.ExamplesUtils;
 import org.apache.ignite.examples.model.Person;
+import org.apache.ignite.examples.util.DbH2ServerStartup;
+import org.apache.ignite.scalar.lang.ScalarOutClosure;
 import org.apache.ignite.transactions.Transaction;
+import org.h2.jdbcx.JdbcConnectionPool;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 
@@ -39,6 +42,13 @@ import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
  * <p>
  * This example uses {@link CacheJdbcPersonStore} as a persistent store.
  * <p>
+ * To start the example, you should:
+ * <ul>
+ *     <li>Start H2 database TCP server using {@link DbH2ServerStartup}.</li>
+ *     <li>Start a few nodes using {@link ExampleNodeStartup}.</li>
+ *     <li>Start example using {@link CacheJdbcStoreExample}.</li>
+ * </ul>
+ * <p>
  * Remote nodes can be started with {@link ExampleNodeStartup} in another JVM which will
  * start node with {@code examples/config/example-ignite.xml} configuration.
  */
@@ -82,7 +92,7 @@ public class CacheJdbcStoreExample {
                 @Override public CacheStoreSessionListener create() {
                     CacheJdbcStoreSessionListener lsnr = new CacheJdbcStoreSessionListener();
 
-                    lsnr.setDataSource(CacheJdbcPersonStore.DATA_SRC);
+                    lsnr.setDataSource(JdbcConnectionPool.create("jdbc:h2:tcp://localhost/mem:ExampleDb", "sa", ""));
 
                     return lsnr;
                 }
@@ -143,5 +153,18 @@ public class CacheJdbcStoreExample {
         }
 
         System.out.println("Read value after commit: " + cache.get(id));
+
+        // Clear entry from memory, but keep it in store.
+        cache.clear(id);
+
+        // Operations on this cache will not affect store.
+        IgniteCache<Long, Person> cacheSkipStore = cache.withSkipStore();
+
+        System.out.println("Read value skipping store (expecting null): " + cacheSkipStore.get(id));
+
+        System.out.println("Read value with store lookup (expecting NOT null): " + cache.get(id));
+
+        // Expecting not null, since entry should be in memory since last call.
+        System.out.println("Read value skipping store (expecting NOT null): " + cacheSkipStore.get(id));
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/d8c82141/examples/src/main/java/org/apache/ignite/examples/datagrid/store/spring/CacheSpringPersonStore.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/spring/CacheSpringPersonStore.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/spring/CacheSpringPersonStore.java
deleted file mode 100644
index 0029890..0000000
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/spring/CacheSpringPersonStore.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * 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.datagrid.store.spring;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.concurrent.atomic.AtomicInteger;
-import javax.cache.Cache;
-import javax.cache.integration.CacheLoaderException;
-import javax.sql.DataSource;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.cache.store.CacheStore;
-import org.apache.ignite.cache.store.CacheStoreAdapter;
-import org.apache.ignite.examples.model.Person;
-import org.apache.ignite.lang.IgniteBiInClosure;
-import org.springframework.dao.EmptyResultDataAccessException;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.core.RowCallbackHandler;
-import org.springframework.jdbc.core.RowMapper;
-import org.springframework.jdbc.datasource.DriverManagerDataSource;
-
-/**
- * Example of {@link CacheStore} implementation that uses JDBC
- * transaction with cache transactions and maps {@link Long} to {@link Person}.
- */
-public class CacheSpringPersonStore extends CacheStoreAdapter<Long, Person> {
-    /** Data source. */
-    public static final DataSource DATA_SRC = new DriverManagerDataSource("jdbc:h2:mem:example;DB_CLOSE_DELAY=-1");
-
-    /** Spring JDBC template. */
-    private JdbcTemplate jdbcTemplate;
-
-    /**
-     * Constructor.
-     *
-     * @throws IgniteException If failed.
-     */
-    public CacheSpringPersonStore() throws IgniteException {
-        jdbcTemplate = new JdbcTemplate(DATA_SRC);
-
-        prepareDb();
-    }
-
-    /**
-     * Prepares database for example execution. This method will create a
-     * table called "PERSONS" so it can be used by store implementation.
-     *
-     * @throws IgniteException If failed.
-     */
-    private void prepareDb() throws IgniteException {
-        jdbcTemplate.update(
-            "create table if not exists PERSONS (" +
-            "id number unique, firstName varchar(255), lastName varchar(255))");
-    }
-
-    /** {@inheritDoc} */
-    @Override public Person load(Long key) {
-        System.out.println(">>> Store load [key=" + key + ']');
-
-        try {
-            return jdbcTemplate.queryForObject("select * from PERSONS where id = ?", new RowMapper<Person>() {
-                @Override public Person mapRow(ResultSet rs, int rowNum) throws SQLException {
-                    return new Person(rs.getLong(1), rs.getString(2), rs.getString(3));
-                }
-            }, key);
-        }
-        catch (EmptyResultDataAccessException ignored) {
-            return null;
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void write(Cache.Entry<? extends Long, ? extends Person> entry) {
-        Long key = entry.getKey();
-        Person val = entry.getValue();
-
-        System.out.println(">>> Store write [key=" + key + ", val=" + val + ']');
-
-        int updated = jdbcTemplate.update("update PERSONS set firstName = ?, lastName = ? where id = ?",
-            val.firstName, val.lastName, val.id);
-
-        if (updated == 0) {
-            jdbcTemplate.update("insert into PERSONS (id, firstName, lastName) values (?, ?, ?)",
-                val.id, val.firstName, val.lastName);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void delete(Object key) {
-        System.out.println(">>> Store delete [key=" + key + ']');
-
-        jdbcTemplate.update("delete from PERSONS where id = ?", key);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void loadCache(final IgniteBiInClosure<Long, Person> clo, Object... args) {
-        if (args == null || args.length == 0 || args[0] == null)
-            throw new CacheLoaderException("Expected entry count parameter is not provided.");
-
-        int entryCnt = (Integer)args[0];
-
-        final AtomicInteger cnt = new AtomicInteger();
-
-        jdbcTemplate.query("select * from PERSONS limit ?", new RowCallbackHandler() {
-            @Override public void processRow(ResultSet rs) throws SQLException {
-                Person person = new Person(rs.getLong(1), rs.getString(2), rs.getString(3));
-
-                clo.apply(person.id, person);
-
-                cnt.incrementAndGet();
-            }
-        }, entryCnt);
-
-        System.out.println(">>> Loaded " + cnt + " values into cache.");
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/d8c82141/examples/src/main/java/org/apache/ignite/examples/datagrid/store/spring/CacheSpringStoreExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/spring/CacheSpringStoreExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/spring/CacheSpringStoreExample.java
deleted file mode 100644
index 273ea1c..0000000
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/spring/CacheSpringStoreExample.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * 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.datagrid.store.spring;
-
-import java.util.UUID;
-import javax.cache.configuration.Factory;
-import javax.cache.configuration.FactoryBuilder;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.Ignition;
-import org.apache.ignite.cache.store.CacheStoreSessionListener;
-import org.apache.ignite.cache.store.jdbc.CacheJdbcStoreSessionListener;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.examples.ExampleNodeStartup;
-import org.apache.ignite.examples.ExamplesUtils;
-import org.apache.ignite.examples.model.Person;
-import org.apache.ignite.transactions.Transaction;
-
-import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
-
-/**
- * Demonstrates usage of cache with underlying persistent store configured.
- * <p>
- * This example uses {@link CacheSpringPersonStore} as a persistent store.
- * <p>
- * Remote nodes can be started with {@link ExampleNodeStartup} in another JVM which will
- * start node with {@code examples/config/example-ignite.xml} configuration.
- */
-public class CacheSpringStoreExample {
-    /** Cache name. */
-    private static final String CACHE_NAME = CacheSpringStoreExample.class.getSimpleName();
-
-    /** Heap size required to run this example. */
-    public static final int MIN_MEMORY = 1024 * 1024 * 1024;
-
-    /** Number of entries to load. */
-    private static final int ENTRY_COUNT = 100_000;
-
-    /** Global person ID to use across entire example. */
-    private static final Long id = Math.abs(UUID.randomUUID().getLeastSignificantBits());
-
-    /**
-     * Executes example.
-     *
-     * @param args Command line arguments, none required.
-     * @throws IgniteException If example execution failed.
-     */
-    public static void main(String[] args) throws IgniteException {
-        ExamplesUtils.checkMinMemory(MIN_MEMORY);
-
-        // To start ignite with desired configuration uncomment the appropriate line.
-        try (Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) {
-            System.out.println();
-            System.out.println(">>> Cache store example started.");
-
-            CacheConfiguration<Long, Person> cacheCfg = new CacheConfiguration<>(CACHE_NAME);
-
-            // Set atomicity as transaction, since we are showing transactions in example.
-            cacheCfg.setAtomicityMode(TRANSACTIONAL);
-
-            // Configure Spring store.
-            cacheCfg.setCacheStoreFactory(FactoryBuilder.factoryOf(CacheSpringPersonStore.class));
-
-            // Configure Spring session listener.
-            cacheCfg.setCacheStoreSessionListenerFactories(new Factory<CacheStoreSessionListener>() {
-                @Override public CacheStoreSessionListener create() {
-                    CacheJdbcStoreSessionListener lsnr = new CacheJdbcStoreSessionListener();
-
-                    lsnr.setDataSource(CacheSpringPersonStore.DATA_SRC);
-
-                    return lsnr;
-                }
-            });
-
-            cacheCfg.setReadThrough(true);
-            cacheCfg.setWriteThrough(true);
-
-            try (IgniteCache<Long, Person> cache = ignite.getOrCreateCache(cacheCfg)) {
-                // Make initial cache loading from persistent store. This is a
-                // distributed operation and will call CacheStore.loadCache(...)
-                // method on all nodes in topology.
-                loadCache(cache);
-
-                // Start transaction and execute several cache operations with
-                // read/write-through to persistent store.
-                executeTransaction(cache);
-            }
-        }
-    }
-
-    /**
-     * Makes initial cache loading.
-     *
-     * @param cache Cache to load.
-     */
-    private static void loadCache(IgniteCache<Long, Person> cache) {
-        long start = System.currentTimeMillis();
-
-        // Start loading cache from persistent store on all caching nodes.
-        cache.loadCache(null, ENTRY_COUNT);
-
-        long end = System.currentTimeMillis();
-
-        System.out.println(">>> Loaded " + cache.size() + " keys with backups in " + (end - start) + "ms.");
-    }
-
-    /**
-     * Executes transaction with read/write-through to persistent store.
-     *
-     * @param cache Cache to execute transaction on.
-     */
-    private static void executeTransaction(IgniteCache<Long, Person> cache) {
-        try (Transaction tx = Ignition.ignite().transactions().txStart()) {
-            Person val = cache.get(id);
-
-            System.out.println("Read value: " + val);
-
-            val = cache.getAndPut(id, new Person(id, "Isaac", "Newton"));
-
-            System.out.println("Overwrote old value: " + val);
-
-            val = cache.get(id);
-
-            System.out.println("Read value: " + val);
-
-            tx.commit();
-        }
-
-        System.out.println("Read value after commit: " + cache.get(id));
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/d8c82141/examples/src/main/java/org/apache/ignite/examples/datagrid/store/spring/package-info.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/spring/package-info.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/spring/package-info.java
deleted file mode 100644
index 3f03bde..0000000
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/spring/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * 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 description. -->
- * Contains Spring-based cache store implementation.
- */
-package org.apache.ignite.examples.datagrid.store.spring;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/d8c82141/examples/src/test/java/org/apache/ignite/examples/CacheExamplesSelfTest.java
----------------------------------------------------------------------
diff --git a/examples/src/test/java/org/apache/ignite/examples/CacheExamplesSelfTest.java b/examples/src/test/java/org/apache/ignite/examples/CacheExamplesSelfTest.java
index c11fa1a..050c59f 100644
--- a/examples/src/test/java/org/apache/ignite/examples/CacheExamplesSelfTest.java
+++ b/examples/src/test/java/org/apache/ignite/examples/CacheExamplesSelfTest.java
@@ -25,14 +25,13 @@ import org.apache.ignite.examples.datagrid.CachePutGetExample;
 import org.apache.ignite.examples.datagrid.CacheQueryExample;
 import org.apache.ignite.examples.datagrid.CacheTransactionExample;
 import org.apache.ignite.examples.datagrid.starschema.CacheStarSchemaExample;
-import org.apache.ignite.examples.datagrid.store.dummy.CacheDummyStoreExample;
 import org.apache.ignite.examples.datastructures.IgniteAtomicLongExample;
 import org.apache.ignite.examples.datastructures.IgniteAtomicReferenceExample;
 import org.apache.ignite.examples.datastructures.IgniteAtomicSequenceExample;
 import org.apache.ignite.examples.datastructures.IgniteAtomicStampedExample;
 import org.apache.ignite.examples.datastructures.IgniteCountDownLatchExample;
-import org.apache.ignite.examples.datastructures.IgniteSemaphoreExample;
 import org.apache.ignite.examples.datastructures.IgniteQueueExample;
+import org.apache.ignite.examples.datastructures.IgniteSemaphoreExample;
 import org.apache.ignite.examples.datastructures.IgniteSetExample;
 import org.apache.ignite.testframework.junits.common.GridAbstractExamplesTest;
 
@@ -106,13 +105,6 @@ public class CacheExamplesSelfTest extends GridAbstractExamplesTest {
     /**
      * @throws Exception If failed.
      */
-    public void testCacheDummyStoreExample() throws Exception {
-        CacheDummyStoreExample.main(EMPTY_ARGS);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
     public void testCacheQueryExample() throws Exception {
         CacheQueryExample.main(EMPTY_ARGS);
     }


[12/24] ignite git commit: ignite-1.5 Added withKeepBinary for Visor scan and SQL query task.

Posted by sb...@apache.org.
ignite-1.5 Added withKeepBinary for Visor scan and SQL query task.


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

Branch: refs/heads/ignite-1.5.1
Commit: 6fedd27fc3dcf41e657df9b7d2d3ca87a0006c0b
Parents: 490f552
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Wed Dec 16 17:26:26 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Wed Dec 16 17:26:26 2015 +0700

----------------------------------------------------------------------
 .../org/apache/ignite/internal/visor/query/VisorQueryJob.java    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/6fedd27f/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryJob.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryJob.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryJob.java
index 50e5a06..dcca671 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryJob.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryJob.java
@@ -86,7 +86,7 @@ public class VisorQueryJob extends VisorJob<VisorQueryArg, IgniteBiTuple<? exten
         qry.setPageSize(arg.pageSize());
         qry.setLocal(arg.local());
 
-        return c.query(qry);
+        return c.withKeepBinary().query(qry);
     }
 
     /**
@@ -142,7 +142,7 @@ public class VisorQueryJob extends VisorJob<VisorQueryArg, IgniteBiTuple<? exten
 
                 long start = U.currentTimeMillis();
 
-                VisorQueryCursor<List<?>> cur = new VisorQueryCursor<>(c.query(qry));
+                VisorQueryCursor<List<?>> cur = new VisorQueryCursor<>(c.withKeepBinary().query(qry));
 
                 Collection<GridQueryFieldMetadata> meta = cur.fieldsMeta();
 


[03/24] ignite git commit: IGNITE-2138 Introduced toBuilder() method.

Posted by sb...@apache.org.
IGNITE-2138 Introduced toBuilder() method.


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

Branch: refs/heads/ignite-1.5.1
Commit: df08d3de91d080bd26a1aa0debc656fa73a3f156
Parents: 046f3b8
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Tue Dec 15 20:31:52 2015 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Tue Dec 15 20:31:52 2015 +0300

----------------------------------------------------------------------
 .../store/auto/CacheBinaryAutoStoreExample.java |   2 +-
 .../org/apache/ignite/binary/BinaryObject.java  |  15 ++
 .../store/jdbc/CacheAbstractJdbcStore.java      |   2 +-
 .../configuration/CacheConfiguration.java       |  19 +-
 .../internal/binary/BinaryEnumObjectImpl.java   |   7 +
 .../internal/binary/BinaryObjectExImpl.java     |   7 +
 .../binary/BinaryObjectOffheapImpl.java         |   7 +
 .../processors/cache/GridCacheProcessor.java    |   4 +-
 .../cache/store/CacheOsStoreManager.java        |   2 +-
 ...IgniteCacheBinaryEntryProcessorSelfTest.java | 255 +++++++++++++++++++
 .../GridCacheBinaryStoreAbstractSelfTest.java   |   2 +-
 .../BinaryTxCacheLocalEntriesSelfTest.java      |   2 +-
 .../native-client-test-cache-parallel-store.xml |   2 +-
 .../Config/native-client-test-cache-store.xml   |   6 +-
 14 files changed, 311 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/examples/src/main/java/org/apache/ignite/examples/binary/datagrid/store/auto/CacheBinaryAutoStoreExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/binary/datagrid/store/auto/CacheBinaryAutoStoreExample.java b/examples/src/main/java/org/apache/ignite/examples/binary/datagrid/store/auto/CacheBinaryAutoStoreExample.java
index aa5eea1..75773cb 100644
--- a/examples/src/main/java/org/apache/ignite/examples/binary/datagrid/store/auto/CacheBinaryAutoStoreExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/binary/datagrid/store/auto/CacheBinaryAutoStoreExample.java
@@ -94,7 +94,7 @@ public class CacheBinaryAutoStoreExample {
         cfg.setAtomicityMode(TRANSACTIONAL);
 
         // This option will allow to start remote nodes without having user classes in classpath.
-        cfg.setKeepBinaryInStore(true);
+        cfg.setStoreKeepBinary(true);
 
         cfg.setReadThrough(true);
         cfg.setWriteThrough(true);

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/core/src/main/java/org/apache/ignite/binary/BinaryObject.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/binary/BinaryObject.java b/modules/core/src/main/java/org/apache/ignite/binary/BinaryObject.java
index f4afd8d..3d99757 100644
--- a/modules/core/src/main/java/org/apache/ignite/binary/BinaryObject.java
+++ b/modules/core/src/main/java/org/apache/ignite/binary/BinaryObject.java
@@ -141,6 +141,21 @@ public interface BinaryObject extends Serializable, Cloneable {
     public BinaryObject clone() throws CloneNotSupportedException;
 
     /**
+     * Creates a new {@link BinaryObjectBuilder} based on this binary object. The following code
+     * <pre name=code class=java>
+     * BinaryObjectBuilder builder = binaryObject.toBuilder();
+     * </pre>
+     * is equivalent to
+     * <pre name=code class=java>
+     * BinaryObjectBuilder builder = ignite.binary().builder(binaryObject);
+     * </pre>
+     *
+     * @return Binary object builder.
+     * @throws BinaryObjectException If builder cannot be created.
+     */
+    public BinaryObjectBuilder toBuilder() throws BinaryObjectException;
+
+    /**
      * Get ordinal for this enum object. Use {@link BinaryType#isEnum()} to check if object is of enum type.
      *
      * @return Ordinal.

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
index 07e9c9b..c5c55e1 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
@@ -1475,7 +1475,7 @@ public abstract class CacheAbstractJdbcStore<K, V> implements CacheStore<K, V>,
         throws CacheWriterException {
         TypeKind valKind = em.valueKind();
 
-        // Object could be passed by cache in binary format in case of cache configured with setKeepBinaryInStore(true).
+        // Object could be passed by cache in binary format in case of cache configured with setStoreKeepBinary(true).
         if (valKind == TypeKind.POJO && val instanceof BinaryObject)
             valKind = TypeKind.BINARY;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
index d73ff58..be1240c 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
@@ -208,7 +208,7 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> {
 
     /** Default value for keep binary in store behavior .*/
     @SuppressWarnings({"UnnecessaryBoxing", "BooleanConstructorCall"})
-    public static final Boolean DFLT_KEEP_BINARY_IN_STORE = new Boolean(false);
+    public static final Boolean DFLT_STORE_KEEP_BINARY = new Boolean(false);
 
     /** Default threshold for concurrent loading of keys from {@link CacheStore}. */
     public static final int DFLT_CONCURRENT_LOAD_ALL_THRESHOLD = 5;
@@ -269,7 +269,7 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> {
     private Factory storeFactory;
 
     /** */
-    private Boolean keepBinaryInStore = DFLT_KEEP_BINARY_IN_STORE;
+    private Boolean storeKeepBinary = DFLT_STORE_KEEP_BINARY;
 
     /** */
     private boolean loadPrevVal = DFLT_LOAD_PREV_VAL;
@@ -444,8 +444,7 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> {
         invalidate = cc.isInvalidate();
         isReadThrough = cc.isReadThrough();
         isWriteThrough = cc.isWriteThrough();
-        keepBinaryInStore = cc.isKeepBinaryInStore() != null ? cc.isKeepBinaryInStore() :
-            DFLT_KEEP_BINARY_IN_STORE;
+        storeKeepBinary = cc.isStoreKeepBinary() != null ? cc.isStoreKeepBinary() : DFLT_STORE_KEEP_BINARY;
         listenerConfigurations = cc.listenerConfigurations;
         loadPrevVal = cc.isLoadPreviousValue();
         longQryWarnTimeout = cc.getLongQueryWarningTimeout();
@@ -891,7 +890,7 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> {
     /**
      * Flag indicating that {@link CacheStore} implementation
      * is working with binary objects instead of Java objects.
-     * Default value of this flag is {@link #DFLT_KEEP_BINARY_IN_STORE}.
+     * Default value of this flag is {@link #DFLT_STORE_KEEP_BINARY}.
      * <p>
      * If set to {@code false}, Ignite will deserialize keys and
      * values stored in binary format before they are passed
@@ -906,17 +905,17 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> {
      *
      * @return Keep binary in store flag.
      */
-    public Boolean isKeepBinaryInStore() {
-        return keepBinaryInStore;
+    public Boolean isStoreKeepBinary() {
+        return storeKeepBinary;
     }
 
     /**
      * Sets keep binary in store flag.
      *
-     * @param keepBinaryInStore Keep binary in store flag.
+     * @param storeKeepBinary Keep binary in store flag.
      */
-    public void setKeepBinaryInStore(boolean keepBinaryInStore) {
-        this.keepBinaryInStore = keepBinaryInStore;
+    public void setStoreKeepBinary(boolean storeKeepBinary) {
+        this.storeKeepBinary = storeKeepBinary;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
index b2ee16f..001d2d7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
@@ -19,9 +19,11 @@ package org.apache.ignite.internal.binary;
 
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.binary.BinaryObject;
+import org.apache.ignite.binary.BinaryObjectBuilder;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.binary.BinaryType;
 import org.apache.ignite.internal.GridDirectTransient;
+import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl;
 import org.apache.ignite.internal.processors.cache.CacheObject;
 import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl;
@@ -121,6 +123,11 @@ public class BinaryEnumObjectImpl implements BinaryObjectEx, Externalizable, Cac
     }
 
     /** {@inheritDoc} */
+    @Override public BinaryObjectBuilder toBuilder() throws BinaryObjectException {
+        return BinaryObjectBuilderImpl.wrap(this);
+    }
+
+    /** {@inheritDoc} */
     @Override public int enumOrdinal() throws BinaryObjectException {
         return ord;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
index 404300d..ddf17f0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
@@ -21,6 +21,8 @@ import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.IdentityHashMap;
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.binary.BinaryObjectBuilder;
+import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl;
 import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeMemory;
 import org.apache.ignite.internal.util.typedef.internal.SB;
 import org.apache.ignite.binary.BinaryObjectException;
@@ -101,6 +103,11 @@ public abstract class BinaryObjectExImpl implements BinaryObjectEx {
     protected abstract BinarySchema createSchema();
 
     /** {@inheritDoc} */
+    @Override public BinaryObjectBuilder toBuilder() throws BinaryObjectException {
+        return BinaryObjectBuilderImpl.wrap(this);
+    }
+
+    /** {@inheritDoc} */
     @Override public BinaryObject clone() throws CloneNotSupportedException {
         return (BinaryObject)super.clone();
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
index 0246a36..696a34b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
@@ -19,8 +19,10 @@ package org.apache.ignite.internal.binary;
 
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.binary.BinaryObject;
+import org.apache.ignite.binary.BinaryObjectBuilder;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl;
 import org.apache.ignite.internal.binary.streams.BinaryOffheapInputStream;
 import org.apache.ignite.internal.processors.cache.CacheObject;
 import org.apache.ignite.internal.processors.cache.CacheObjectContext;
@@ -326,6 +328,11 @@ public class BinaryObjectOffheapImpl extends BinaryObjectExImpl implements Exter
     }
 
     /** {@inheritDoc} */
+    @Override public BinaryObjectBuilder toBuilder() throws BinaryObjectException {
+        return BinaryObjectBuilderImpl.wrap(heapCopy());
+    }
+
+    /** {@inheritDoc} */
     @Override public byte cacheObjectType() {
         throw new UnsupportedOperationException();
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 1bbef62..f0bed99 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -1041,9 +1041,9 @@ public class GridCacheProcessor extends GridProcessorAdapter {
         CacheConfiguration cfg = cacheCtx.config();
 
         // Intentionally compare Boolean references using '!=' below to check if the flag has been explicitly set.
-        if (cfg.isKeepBinaryInStore() && cfg.isKeepBinaryInStore() != CacheConfiguration.DFLT_KEEP_BINARY_IN_STORE
+        if (cfg.isStoreKeepBinary() && cfg.isStoreKeepBinary() != CacheConfiguration.DFLT_STORE_KEEP_BINARY
             && !(ctx.config().getMarshaller() instanceof BinaryMarshaller))
-            U.warn(log, "CacheConfiguration.isKeepBinaryInStore() configuration property will be ignored because " +
+            U.warn(log, "CacheConfiguration.isStoreKeepBinary() configuration property will be ignored because " +
                 "BinaryMarshaller is not used");
 
         // Start managers.

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java
index e89483a..27771ff 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/CacheOsStoreManager.java
@@ -82,6 +82,6 @@ public class CacheOsStoreManager extends GridCacheStoreManagerAdapter {
 
     /** {@inheritDoc} */
     @Override public boolean configuredConvertBinary() {
-        return !(ctx.config().getMarshaller() instanceof BinaryMarshaller && cfg.isKeepBinaryInStore());
+        return !(ctx.config().getMarshaller() instanceof BinaryMarshaller && cfg.isStoreKeepBinary());
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryEntryProcessorSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryEntryProcessorSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryEntryProcessorSelfTest.java
new file mode 100644
index 0000000..8e20c3e
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryEntryProcessorSelfTest.java
@@ -0,0 +1,255 @@
+/*
+ * 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.cache;
+
+import javax.cache.processor.EntryProcessorException;
+import javax.cache.processor.MutableEntry;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteBinary;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.binary.BinaryObject;
+import org.apache.ignite.binary.BinaryObjectBuilder;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.cache.CacheEntryProcessor;
+import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+/**
+ *
+ */
+public class IgniteCacheBinaryEntryProcessorSelfTest extends GridCommonAbstractTest {
+    /** */
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+    /** */
+    private static final int SRV_CNT = 4;
+
+    /** */
+    private static final int NODES = 5;
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
+
+        if (getTestGridName(SRV_CNT).equals(gridName))
+            cfg.setClientMode(true);
+
+        cfg.setMarshaller(null);
+
+        return cfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTestsStopped() throws Exception {
+        stopAllGrids();
+
+        super.afterTestsStopped();
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void beforeTestsStarted() throws Exception {
+        super.beforeTestsStarted();
+
+        startGridsMultiThreaded(NODES);
+    }
+
+    /**
+     * @param cacheMode Cache mode.
+     * @param atomicityMode Atomicity mode.
+     * @return Cache configuration.
+     */
+    private CacheConfiguration<Integer, TestValue> cacheConfiguration(CacheMode cacheMode, CacheAtomicityMode atomicityMode) {
+        CacheConfiguration<Integer, TestValue> ccfg = new CacheConfiguration<>();
+
+        ccfg.setCacheMode(cacheMode);
+        ccfg.setAtomicityMode(atomicityMode);
+
+        ccfg.setBackups(1);
+
+        return ccfg;
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPartitionedTransactional() throws Exception {
+        checkInvokeBinaryObject(CacheMode.PARTITIONED, CacheAtomicityMode.TRANSACTIONAL);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testReplicatedTransactional() throws Exception {
+        checkInvokeBinaryObject(CacheMode.REPLICATED, CacheAtomicityMode.TRANSACTIONAL);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPartitionedAtomic() throws Exception {
+        checkInvokeBinaryObject(CacheMode.PARTITIONED, CacheAtomicityMode.TRANSACTIONAL);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testReplicatedAtomic() throws Exception {
+        checkInvokeBinaryObject(CacheMode.REPLICATED, CacheAtomicityMode.TRANSACTIONAL);
+    }
+
+    /**
+     * @param cacheMode Cache mode to test.
+     * @param atomicityMode Atomicity mode to test.
+     * @throws Exception
+     */
+    private void checkInvokeBinaryObject(CacheMode cacheMode, CacheAtomicityMode atomicityMode) throws Exception {
+        Ignite client = ignite(SRV_CNT);
+
+        IgniteCache<Integer, TestValue> clientCache = client.createCache(cacheConfiguration(cacheMode, atomicityMode));
+
+        try {
+            IgniteBinary binary = client.binary();
+
+            for (int i = 0; i < 100; i++) {
+                clientCache.put(i, new TestValue(i, "value-" + i));
+
+                BinaryObjectBuilder bldr = binary.builder("NoClass");
+
+                bldr.setField("val", i);
+                bldr.setField("strVal", "value-" + i);
+
+                clientCache.withKeepBinary().put(-(i + 1), bldr.build());
+            }
+
+            IgniteCache<Integer, BinaryObject> binaryClientCache = clientCache.withKeepBinary();
+
+            for (int i = 0; i < 100; i++) {
+                binaryClientCache.invoke(i, new TestEntryProcessor());
+                binaryClientCache.invoke(-(i + 1), new TestEntryProcessor());
+            }
+
+            for (int g = 0; g < NODES; g++) {
+                IgniteCache<Integer, TestValue> nodeCache = ignite(g).cache(null);
+                IgniteCache<Integer, BinaryObject> nodeBinaryCache = nodeCache.withKeepBinary();
+
+                for (int i = 0; i < 100; i++) {
+                    TestValue updated = nodeCache.get(i);
+
+                    assertEquals((Integer)(i + 1), updated.value());
+                    assertEquals("updated-" + i, updated.stringValue());
+
+                    BinaryObject updatedBinary = nodeBinaryCache.get(i);
+                    assertEquals(i + 1, updatedBinary.field("val"));
+                    assertEquals("updated-" + i, updatedBinary.field("strVal"));
+
+                    updatedBinary = nodeBinaryCache.get(-(i + 1));
+                    assertEquals(i + 1, updatedBinary.field("val"));
+                    assertEquals("updated-" + i, updatedBinary.field("strVal"));
+                }
+            }
+        }
+        finally {
+            client.destroyCache(null);
+        }
+    }
+
+    /**
+     *
+     */
+    private static class TestEntryProcessor implements CacheEntryProcessor<Integer, BinaryObject, Void> {
+        /** {@inheritDoc} */
+        @Override public Void process(MutableEntry<Integer, BinaryObject> entry, Object... arguments)
+            throws EntryProcessorException {
+            BinaryObjectBuilder bldr = entry.getValue().toBuilder();
+
+            Integer val = bldr.<Integer>getField("val");
+
+            bldr.setField("val", val + 1);
+            bldr.setField("strVal", "updated-" + val);
+
+            entry.setValue(bldr.build());
+
+            return null;
+        }
+    }
+
+    /**
+     *
+     */
+    static class TestValue {
+        /** */
+        private Integer val;
+
+        /** */
+        private String strVal;
+
+        /**
+         * @param val Value.
+         */
+        public TestValue(Integer val, String strVal) {
+            this.val = val;
+            this.strVal = strVal;
+        }
+
+        /**
+         * @return Value.
+         */
+        public Integer value() {
+            return val;
+        }
+
+        /**
+         * @return String value.
+         */
+        public String stringValue() {
+            return strVal;
+        }
+
+        /** {@inheritDoc} */
+        @Override public boolean equals(Object o) {
+            if (this == o)
+                return true;
+
+            if (o == null || getClass() != o.getClass())
+                return false;
+
+            TestValue testVal = (TestValue) o;
+
+            return val.equals(testVal.val);
+
+        }
+
+        /** {@inheritDoc} */
+        @Override public int hashCode() {
+            return val.hashCode();
+        }
+
+        /** {@inheritDoc} */
+        @Override public String toString() {
+            return S.toString(TestValue.class, this);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryStoreAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryStoreAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryStoreAbstractSelfTest.java
index 4f478f7..0cfa88b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryStoreAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryStoreAbstractSelfTest.java
@@ -62,7 +62,7 @@ public abstract class GridCacheBinaryStoreAbstractSelfTest extends GridCommonAbs
         CacheConfiguration cacheCfg = new CacheConfiguration();
 
         cacheCfg.setCacheStoreFactory(singletonFactory(STORE));
-        cacheCfg.setKeepBinaryInStore(keepBinaryInStore());
+        cacheCfg.setStoreKeepBinary(keepBinaryInStore());
         cacheCfg.setReadThrough(true);
         cacheCfg.setWriteThrough(true);
         cacheCfg.setLoadPreviousValue(true);

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/portable/BinaryTxCacheLocalEntriesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/portable/BinaryTxCacheLocalEntriesSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/portable/BinaryTxCacheLocalEntriesSelfTest.java
index aa25caf..54fa5dd 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/portable/BinaryTxCacheLocalEntriesSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/portable/BinaryTxCacheLocalEntriesSelfTest.java
@@ -41,7 +41,7 @@ public class BinaryTxCacheLocalEntriesSelfTest extends GridCacheAbstractSelfTest
     @Override protected CacheConfiguration cacheConfiguration(String gridName) throws Exception {
         CacheConfiguration ccfg = super.cacheConfiguration(gridName);
 
-        ccfg.setKeepBinaryInStore(true);
+        ccfg.setStoreKeepBinary(true);
 
         return ccfg;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/native-client-test-cache-parallel-store.xml
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/native-client-test-cache-parallel-store.xml b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/native-client-test-cache-parallel-store.xml
index af03e69..8376d40 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/native-client-test-cache-parallel-store.xml
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/native-client-test-cache-parallel-store.xml
@@ -39,7 +39,7 @@
                     <property name="name" value="object_store_parallel"/>
                     <property name="cacheMode" value="LOCAL"/>
                     <property name="atomicityMode" value="TRANSACTIONAL"/>
-                    <property name="keepBinaryInStore" value="false"/>
+                    <property name="storeKeepBinary" value="false"/>
 
                     <property name="cacheStoreFactory">
                         <bean class="org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactory">

http://git-wip-us.apache.org/repos/asf/ignite/blob/df08d3de/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/native-client-test-cache-store.xml
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/native-client-test-cache-store.xml b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/native-client-test-cache-store.xml
index 25a1d16..c2c4762 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/native-client-test-cache-store.xml
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/native-client-test-cache-store.xml
@@ -41,7 +41,7 @@
                     <property name="atomicityMode" value="TRANSACTIONAL"/>
                     <property name="writeThrough" value="true"/>
                     <property name="readThrough" value="true"/>
-                    <property name="keepBinaryInStore" value="true"/>
+                    <property name="storeKeepBinary" value="true"/>
 
                     <property name="cacheStoreFactory">
                         <bean class="org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactory">
@@ -56,7 +56,7 @@
                     <property name="atomicityMode" value="TRANSACTIONAL"/>
                     <property name="writeThrough" value="true"/>
                     <property name="readThrough" value="true"/>
-                    <property name="keepBinaryInStore" value="false"/>
+                    <property name="storeKeepBinary" value="false"/>
 
                     <property name="cacheStoreFactory">
                         <bean class="org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactory">
@@ -71,7 +71,7 @@
                     <property name="atomicityMode" value="TRANSACTIONAL"/>
                     <property name="writeThrough" value="true"/>
                     <property name="readThrough" value="true"/>
-                    <property name="keepBinaryInStore" value="false"/>
+                    <property name="storeKeepBinary" value="false"/>
 
                     <property name="cacheStoreFactory">
                         <bean class="org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactory">


[17/24] ignite git commit: ignite-2146 Avoid hang in 'cache.get' if topology locked.

Posted by sb...@apache.org.
ignite-2146 Avoid hang in 'cache.get' if topology locked.


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

Branch: refs/heads/ignite-1.5.1
Commit: 96dc238fd3e159c68ba54eef2fc6f3589aa6b2ca
Parents: d8c8214
Author: sboikov <sb...@gridgain.com>
Authored: Thu Dec 17 08:45:48 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Dec 17 08:45:48 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheProcessor.java    |   8 +-
 .../cache/GridCacheSharedContext.java           |  20 +
 .../dht/CacheDistributedGetFutureAdapter.java   |   2 +-
 .../dht/GridPartitionedGetFuture.java           |  15 +-
 .../dht/GridPartitionedSingleGetFuture.java     |   8 +
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  10 +-
 .../colocated/GridDhtColocatedLockFuture.java   |   2 +-
 .../distributed/near/GridNearGetFuture.java     |  17 +-
 .../distributed/near/GridNearLockFuture.java    |  30 +-
 ...ridNearOptimisticTxPrepareFutureAdapter.java |   6 +-
 .../cache/transactions/IgniteTxManager.java     |   6 +-
 .../cache/IgniteCacheNearLockValueSelfTest.java |  11 +-
 .../IgniteCacheStoreValueAbstractTest.java      |   2 +-
 .../IgniteStartCacheInTransactionSelfTest.java  |  39 +-
 .../CacheGetInsideLockChangingTopologyTest.java | 475 +++++++++++++++++++
 .../IgniteCacheFailoverTestSuite3.java          |   2 +
 16 files changed, 593 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index f0bed99..380c163 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -3343,16 +3343,14 @@ public class GridCacheProcessor extends GridProcessorAdapter {
      * @throws IgniteException If transaction exist.
      */
     private void checkEmptyTransactions() throws IgniteException {
-        if (transactions().tx() != null)
-            throw new IgniteException("Cannot start/stop cache within transaction.");
-
-        if (sharedCtx.mvcc().lastExplicitLockTopologyVersion(Thread.currentThread().getId()) != null)
-            throw new IgniteException("Cannot start/stop cache within lock.");
+        if (transactions().tx() != null || sharedCtx.lockedTopologyVersion(null) != null)
+            throw new IgniteException("Cannot start/stop cache within lock or transaction.");
     }
 
     /**
      * @param val Object to check.
      * @throws IgniteCheckedException If validation failed.
+     * @return Configuration copy.
      */
     private CacheConfiguration cloneCheckSerializable(CacheConfiguration val) throws IgniteCheckedException {
         if (val == null)

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
index 608829a..5ed1df9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
@@ -572,6 +572,26 @@ public class GridCacheSharedContext<K, V> {
     }
 
     /**
+     * @param ignore Transaction to ignore.
+     * @return Not null topology version if current thread holds lock preventing topology change.
+     */
+    @Nullable public AffinityTopologyVersion lockedTopologyVersion(IgniteInternalTx ignore) {
+        long threadId = Thread.currentThread().getId();
+
+        IgniteInternalTx tx = txMgr.anyActiveThreadTx(threadId, ignore);
+
+        AffinityTopologyVersion topVer = null;
+
+        if (tx != null && tx.topologyVersionSnapshot() != null)
+            topVer = tx.topologyVersionSnapshot();
+
+        if (topVer == null)
+            topVer = mvccMgr.lastExplicitLockTopologyVersion(threadId);
+
+        return topVer;
+    }
+
+    /**
      * Nulling references to potentially leak-prone objects.
      */
     public void cleanup() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/CacheDistributedGetFutureAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/CacheDistributedGetFutureAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/CacheDistributedGetFutureAdapter.java
index 320c3c2..cfbc21b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/CacheDistributedGetFutureAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/CacheDistributedGetFutureAdapter.java
@@ -87,7 +87,7 @@ public abstract class CacheDistributedGetFutureAdapter<K, V> extends GridCompoun
     protected IgniteCacheExpiryPolicy expiryPlc;
 
     /** Flag indicating that get should be done on a locked topology version. */
-    protected final boolean canRemap;
+    protected boolean canRemap;
 
     /** */
     protected final boolean needVer;

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
index 6867e21..e8aaca0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
@@ -133,10 +133,19 @@ public class GridPartitionedGetFuture<K, V> extends CacheDistributedGetFutureAda
      * Initializes future.
      */
     public void init() {
-        AffinityTopologyVersion topVer = this.topVer.topologyVersion() > 0 ? this.topVer :
-            canRemap ? cctx.affinity().affinityTopologyVersion() : cctx.shared().exchange().readyAffinityVersion();
+        AffinityTopologyVersion lockedTopVer = cctx.shared().lockedTopologyVersion(null);
 
-        map(keys, Collections.<ClusterNode, LinkedHashMap<KeyCacheObject, Boolean>>emptyMap(), topVer);
+        if (lockedTopVer != null) {
+            canRemap = false;
+
+            map(keys, Collections.<ClusterNode, LinkedHashMap<KeyCacheObject, Boolean>>emptyMap(), lockedTopVer);
+        }
+        else {
+            AffinityTopologyVersion topVer = this.topVer.topologyVersion() > 0 ? this.topVer :
+                canRemap ? cctx.affinity().affinityTopologyVersion() : cctx.shared().exchange().readyAffinityVersion();
+
+            map(keys, Collections.<ClusterNode, LinkedHashMap<KeyCacheObject, Boolean>>emptyMap(), topVer);
+        }
 
         markInitialized();
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedSingleGetFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedSingleGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedSingleGetFuture.java
index 5d0814f..29971fd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedSingleGetFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedSingleGetFuture.java
@@ -156,6 +156,14 @@ public class GridPartitionedSingleGetFuture extends GridFutureAdapter<Object> im
     ) {
         assert key != null;
 
+        AffinityTopologyVersion lockedTopVer = cctx.shared().lockedTopologyVersion(null);
+
+        if (lockedTopVer != null) {
+            topVer = lockedTopVer;
+
+            canRemap = false;
+        }
+
         this.cctx = cctx;
         this.key = key;
         this.readThrough = readThrough;

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
index b384bab..eefdc73 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
@@ -278,15 +278,7 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
      * Performs future mapping.
      */
     public void map() {
-        AffinityTopologyVersion topVer = null;
-
-        IgniteInternalTx tx = cctx.tm().anyActiveThreadTx(null);
-
-        if (tx != null && tx.topologyVersionSnapshot() != null)
-            topVer = tx.topologyVersionSnapshot();
-
-        if (topVer == null)
-            topVer = cctx.mvcc().lastExplicitLockTopologyVersion(Thread.currentThread().getId());
+        AffinityTopologyVersion topVer = cctx.shared().lockedTopologyVersion(null);
 
         if (topVer == null)
             mapOnTopology();

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
index d3028ca..22b329c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
@@ -597,7 +597,7 @@ public final class GridDhtColocatedLockFuture extends GridCompoundIdentityFuture
 
         // If there is another system transaction in progress, use it's topology version to prevent deadlock.
         if (topVer == null && tx != null && tx.system()) {
-            IgniteInternalTx tx0 = cctx.tm().anyActiveThreadTx(tx);
+            IgniteInternalTx tx0 = cctx.tm().anyActiveThreadTx(Thread.currentThread().getId(), tx);
 
             if (tx0 != null)
                 topVer = tx0.topologyVersionSnapshot();

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
index cb866e3..a121af9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
@@ -142,11 +142,20 @@ public final class GridNearGetFuture<K, V> extends CacheDistributedGetFutureAdap
      * Initializes future.
      */
     public void init() {
-        AffinityTopologyVersion topVer = tx == null ?
-            (canRemap ? cctx.affinity().affinityTopologyVersion() : cctx.shared().exchange().readyAffinityVersion()) :
-            tx.topologyVersion();
+        AffinityTopologyVersion lockedTopVer = cctx.shared().lockedTopologyVersion(null);
 
-        map(keys, Collections.<ClusterNode, LinkedHashMap<KeyCacheObject, Boolean>>emptyMap(), topVer);
+        if (lockedTopVer != null) {
+            canRemap = false;
+
+            map(keys, Collections.<ClusterNode, LinkedHashMap<KeyCacheObject, Boolean>>emptyMap(), lockedTopVer);
+        }
+        else {
+            AffinityTopologyVersion topVer = tx == null ?
+                (canRemap ? cctx.affinity().affinityTopologyVersion() : cctx.shared().exchange().readyAffinityVersion()) :
+                tx.topologyVersion();
+
+            map(keys, Collections.<ClusterNode, LinkedHashMap<KeyCacheObject, Boolean>>emptyMap(), topVer);
+        }
 
         markInitialized();
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
index 4cb7248..23e0f6b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
@@ -56,8 +56,10 @@ import org.apache.ignite.internal.util.future.GridEmbeddedFuture;
 import org.apache.ignite.internal.util.future.GridFutureAdapter;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 import org.apache.ignite.internal.util.tostring.GridToStringInclude;
+import org.apache.ignite.internal.util.typedef.C1;
 import org.apache.ignite.internal.util.typedef.C2;
 import org.apache.ignite.internal.util.typedef.CI1;
+import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -163,6 +165,7 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
      * @param accessTtl TTL for read operation.
      * @param filter Filter.
      * @param skipStore skipStore
+     * @param keepBinary Keep binary flag.
      */
     public GridNearLockFuture(
         GridCacheContext<?, ?> cctx,
@@ -678,7 +681,22 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
 
     /** {@inheritDoc} */
     @Override public String toString() {
-        return S.toString(GridNearLockFuture.class, this, "inTx", inTx(), "super", super.toString());
+        Collection<String> futs = F.viewReadOnly(futures(), new C1<IgniteInternalFuture<?>, String>() {
+            @Override public String apply(IgniteInternalFuture<?> f) {
+                if (isMini(f)) {
+                    MiniFuture m = (MiniFuture)f;
+
+                    return "[node=" + m.node().id() + ", loc=" + m.node().isLocal() + ", done=" + f.isDone() + "]";
+                }
+                else
+                    return "[loc=true, done=" + f.isDone() + "]";
+            }
+        });
+
+        return S.toString(GridNearLockFuture.class, this,
+            "innerFuts", futs,
+            "inTx", inTx(),
+            "super", super.toString());
     }
 
     /**
@@ -700,11 +718,13 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
      */
     void map() {
         // Obtain the topology version to use.
-        AffinityTopologyVersion topVer = cctx.mvcc().lastExplicitLockTopologyVersion(Thread.currentThread().getId());
+        long threadId = Thread.currentThread().getId();
+
+        AffinityTopologyVersion topVer = cctx.mvcc().lastExplicitLockTopologyVersion(threadId);
 
         // If there is another system transaction in progress, use it's topology version to prevent deadlock.
         if (topVer == null && tx != null && tx.system()) {
-            IgniteInternalTx tx0 = cctx.tm().anyActiveThreadTx(tx);
+            IgniteInternalTx tx0 = cctx.tm().anyActiveThreadTx(threadId, tx);
 
             if (tx0 != null)
                 topVer = tx0.topologyVersionSnapshot();
@@ -1273,8 +1293,6 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
                     cctx.io().send(node, req, cctx.ioPolicy());
                 }
                 catch (ClusterTopologyCheckedException ex) {
-                    assert fut != null;
-
                     fut.onResult(ex);
                 }
             }
@@ -1288,8 +1306,6 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
                             cctx.io().send(node, req, cctx.ioPolicy());
                         }
                         catch (ClusterTopologyCheckedException ex) {
-                            assert fut != null;
-
                             fut.onResult(ex);
                         }
                         catch (IgniteCheckedException e) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFutureAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFutureAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFutureAdapter.java
index 5c7553f..b3eab34 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFutureAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFutureAdapter.java
@@ -50,11 +50,13 @@ public abstract class GridNearOptimisticTxPrepareFutureAdapter extends GridNearT
     /** {@inheritDoc} */
     @Override public final void prepare() {
         // Obtain the topology version to use.
-        AffinityTopologyVersion topVer = cctx.mvcc().lastExplicitLockTopologyVersion(Thread.currentThread().getId());
+        long threadId = Thread.currentThread().getId();
+
+        AffinityTopologyVersion topVer = cctx.mvcc().lastExplicitLockTopologyVersion(threadId);
 
         // If there is another system transaction in progress, use it's topology version to prevent deadlock.
         if (topVer == null && tx != null && tx.system()) {
-            IgniteInternalTx tx0 = cctx.tm().anyActiveThreadTx(tx);
+            IgniteInternalTx tx0 = cctx.tm().anyActiveThreadTx(threadId, tx);
 
             if (tx0 != null)
                 topVer = tx0.topologyVersionSnapshot();

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index 243c4cb..d2b803a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -605,11 +605,11 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
     }
 
     /**
+     * @param threadId Thread ID.
+     * @param ignore Transaction to ignore.
      * @return Any transaction associated with the current thread.
      */
-    public IgniteInternalTx anyActiveThreadTx(IgniteInternalTx ignore) {
-        long threadId = Thread.currentThread().getId();
-
+    public IgniteInternalTx anyActiveThreadTx(long threadId, IgniteInternalTx ignore) {
         IgniteInternalTx tx = threadMap.get(threadId);
 
         if (tx != null && tx.topologyVersionSnapshot() != null)

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java
index d6f0257..100acfe 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java
@@ -35,6 +35,8 @@ import org.apache.ignite.plugin.extensions.communication.Message;
 import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.transactions.Transaction;
 
@@ -45,6 +47,9 @@ import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_REA
  *
  */
 public class IgniteCacheNearLockValueSelfTest extends GridCommonAbstractTest {
+    /** */
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
         startGridsMultiThreaded(2);
@@ -61,7 +66,7 @@ public class IgniteCacheNearLockValueSelfTest extends GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        cfg.setDiscoverySpi(new TcpDiscoverySpi().setForceServerMode(true));
+        cfg.setDiscoverySpi(new TcpDiscoverySpi().setForceServerMode(true).setIpFinder(IP_FINDER));
 
         if (getTestGridName(0).equals(gridName))
             cfg.setClientMode(true);
@@ -126,7 +131,7 @@ public class IgniteCacheNearLockValueSelfTest extends GridCommonAbstractTest {
         private Collection<GridNearLockRequest> reqs = new ConcurrentLinkedDeque<>();
 
         /** {@inheritDoc} */
-        @Override public void sendMessage(ClusterNode node, Message msg, IgniteInClosure<IgniteException> ackClosure)
+        @Override public void sendMessage(ClusterNode node, Message msg, IgniteInClosure<IgniteException> ackC)
             throws IgniteSpiException {
             if (msg instanceof GridIoMessage) {
                 GridIoMessage ioMsg = (GridIoMessage)msg;
@@ -135,7 +140,7 @@ public class IgniteCacheNearLockValueSelfTest extends GridCommonAbstractTest {
                     reqs.add((GridNearLockRequest)ioMsg.message());
             }
 
-            super.sendMessage(node, msg, ackClosure);
+            super.sendMessage(node, msg, ackC);
         }
 
         /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStoreValueAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStoreValueAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStoreValueAbstractTest.java
index 70c5dc3..c0fb11d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStoreValueAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStoreValueAbstractTest.java
@@ -107,7 +107,7 @@ public abstract class IgniteCacheStoreValueAbstractTest extends IgniteCacheAbstr
 
     /** {@inheritDoc} */
     @Override protected long getTestTimeout() {
-        return 2 * 60_000;
+        return 3 * 60_000;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteStartCacheInTransactionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteStartCacheInTransactionSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteStartCacheInTransactionSelfTest.java
index 1e10a03..6212c4e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteStartCacheInTransactionSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteStartCacheInTransactionSelfTest.java
@@ -31,10 +31,10 @@ import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.transactions.Transaction;
-import org.apache.ignite.transactions.TransactionConcurrency;
-import org.apache.ignite.transactions.TransactionIsolation;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
+import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
+import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
 
 /**
  * Check starting cache in transaction.
@@ -43,6 +43,9 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
     /** */
     private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
+    /** */
+    private static final String EXPECTED_MSG = "Cannot start/stop cache within lock or transaction.";
+
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg =  super.getConfiguration(gridName);
@@ -97,8 +100,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
         final String key = "key";
         final String val = "val";
 
-        try (Transaction tx = ignite.transactions().txStart(
-            TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ)){
+        try (Transaction tx = ignite.transactions().txStart(PESSIMISTIC, REPEATABLE_READ)){
             ignite.cache(null).put(key, val);
 
             GridTestUtils.assertThrows(log, new Callable<Object>() {
@@ -107,7 +109,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
 
                     return null;
                 }
-            }, IgniteException.class, "Cannot start/stop cache within transaction.");
+            }, IgniteException.class, EXPECTED_MSG);
 
             tx.commit();
         }
@@ -122,8 +124,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
         final String key = "key";
         final String val = "val";
 
-        try (Transaction tx = ignite.transactions().txStart(
-            TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ)){
+        try (Transaction tx = ignite.transactions().txStart(PESSIMISTIC, REPEATABLE_READ)){
             ignite.cache(null).put(key, val);
 
             GridTestUtils.assertThrows(log, new Callable<Object>() {
@@ -132,7 +133,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
 
                     return null;
                 }
-            }, IgniteException.class, "Cannot start/stop cache within transaction.");
+            }, IgniteException.class, EXPECTED_MSG);
 
             tx.commit();
         }
@@ -147,8 +148,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
         final String key = "key";
         final String val = "val";
 
-        try (Transaction tx = ignite.transactions().txStart(
-            TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ)){
+        try (Transaction tx = ignite.transactions().txStart(PESSIMISTIC, REPEATABLE_READ)){
             ignite.cache(null).put(key, val);
 
             GridTestUtils.assertThrows(log, new Callable<Object>() {
@@ -157,7 +157,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
 
                     return null;
                 }
-            }, IgniteException.class, "Cannot start/stop cache within transaction.");
+            }, IgniteException.class, EXPECTED_MSG);
 
             tx.commit();
         }
@@ -172,8 +172,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
         final String key = "key";
         final String val = "val";
 
-        try (Transaction tx = ignite.transactions().txStart(
-            TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ)){
+        try (Transaction tx = ignite.transactions().txStart(PESSIMISTIC, REPEATABLE_READ)){
             ignite.cache(null).put(key, val);
 
             GridTestUtils.assertThrows(log, new Callable<Object>() {
@@ -182,7 +181,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
 
                     return null;
                 }
-            }, IgniteException.class, "Cannot start/stop cache within transaction.");
+            }, IgniteException.class, EXPECTED_MSG);
 
             tx.commit();
         }
@@ -197,8 +196,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
         final String key = "key";
         final String val = "val";
 
-        try (Transaction tx = ignite.transactions().txStart(
-            TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ)){
+        try (Transaction tx = ignite.transactions().txStart(PESSIMISTIC, REPEATABLE_READ)){
             ignite.cache(null).put(key, val);
 
             GridTestUtils.assertThrows(log, new Callable<Object>() {
@@ -207,7 +205,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
 
                     return null;
                 }
-            }, IgniteException.class, "Cannot start/stop cache within transaction.");
+            }, IgniteException.class, EXPECTED_MSG);
 
             tx.commit();
         }
@@ -222,8 +220,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
         final String key = "key";
         final String val = "val";
 
-        try (Transaction tx = ignite.transactions().txStart(
-            TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ)){
+        try (Transaction tx = ignite.transactions().txStart(PESSIMISTIC, REPEATABLE_READ)){
             ignite.cache(null).put(key, val);
 
             GridTestUtils.assertThrows(log, new Callable<Object>() {
@@ -232,7 +229,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
 
                     return null;
                 }
-            }, IgniteException.class, "Cannot start/stop cache within transaction.");
+            }, IgniteException.class, EXPECTED_MSG);
 
             tx.commit();
         }
@@ -259,7 +256,7 @@ public class IgniteStartCacheInTransactionSelfTest extends GridCommonAbstractTes
 
                 return null;
             }
-        }, IgniteException.class, "Cannot start/stop cache within lock.");
+        }, IgniteException.class, EXPECTED_MSG);
 
         lock.unlock();
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheGetInsideLockChangingTopologyTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheGetInsideLockChangingTopologyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheGetInsideLockChangingTopologyTest.java
new file mode 100644
index 0000000..7073a94
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheGetInsideLockChangingTopologyTest.java
@@ -0,0 +1,475 @@
+/*
+ * 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.cache.distributed;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.locks.Lock;
+import javax.cache.CacheException;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.processors.cache.GridCacheAlwaysEvictionPolicy;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.apache.ignite.transactions.Transaction;
+import org.apache.ignite.transactions.TransactionConcurrency;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
+import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
+import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
+import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC;
+import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
+import static org.apache.ignite.transactions.TransactionIsolation.READ_COMMITTED;
+import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
+
+/**
+ *
+ */
+public class CacheGetInsideLockChangingTopologyTest extends GridCommonAbstractTest {
+    /** */
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+
+    /** */
+    private static ThreadLocal<Boolean> client = new ThreadLocal<>();
+
+    /** */
+    private static final int SRVS = 3;
+
+    /** */
+    private static final int CLIENTS = 2;
+
+    /** */
+    private static final String TX_CACHE1 = "tx1";
+
+    /** */
+    private static final String TX_CACHE2 = "tx2";
+
+    /** */
+    private static final String ATOMIC_CACHE = "atomic";
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        ((TcpCommunicationSpi)cfg.getCommunicationSpi()).setSharedMemoryPort(-1);
+
+        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
+
+        Boolean clientMode = client.get();
+
+        client.set(null);
+
+        if (clientMode != null && clientMode)
+            cfg.setClientMode(true);
+        else {
+            cfg.setCacheConfiguration(cacheConfiguration(TX_CACHE1, TRANSACTIONAL),
+                cacheConfiguration(TX_CACHE2, TRANSACTIONAL),
+                cacheConfiguration(ATOMIC_CACHE, ATOMIC));
+        }
+
+        return cfg;
+    }
+
+    /**
+     * @param name Cache name.
+     * @param atomicityMode Atomicity mode.
+     * @return Cache configuration.
+     */
+    private CacheConfiguration cacheConfiguration(String name, CacheAtomicityMode atomicityMode) {
+        CacheConfiguration ccfg = new CacheConfiguration();
+
+        ccfg.setName(name);
+        ccfg.setAtomicityMode(atomicityMode);
+        ccfg.setWriteSynchronizationMode(FULL_SYNC);
+        ccfg.setBackups(1);
+
+        return ccfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void beforeTestsStarted() throws Exception {
+        super.beforeTestsStarted();
+
+        startGridsMultiThreaded(SRVS);
+
+        client.set(true);
+
+        Ignite client1 = startGrid(SRVS);
+
+        assertTrue(client1.configuration().isClientMode());
+
+        client.set(true);
+
+        Ignite client2 = startGrid(SRVS + 1);
+
+        assertTrue(client2.configuration().isClientMode());
+
+        client2.createNearCache(TX_CACHE1,
+            new NearCacheConfiguration<>().setNearEvictionPolicy(new GridCacheAlwaysEvictionPolicy<>()));
+
+        client2.createNearCache(TX_CACHE2,
+            new NearCacheConfiguration<>().setNearEvictionPolicy(new GridCacheAlwaysEvictionPolicy<>()));
+
+        client2.createNearCache(ATOMIC_CACHE,
+            new NearCacheConfiguration<>().setNearEvictionPolicy(new GridCacheAlwaysEvictionPolicy<>()));
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTestsStopped() throws Exception {
+        stopAllGrids();
+
+        super.afterTestsStopped();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testTxGetInsideLockStopPrimary() throws Exception {
+        getInsideLockStopPrimary(ignite(SRVS), TX_CACHE1);
+        getInsideLockStopPrimary(ignite(SRVS + 1), TX_CACHE1);
+
+        getInsideLockStopPrimary(ignite(SRVS), TX_CACHE2);
+        getInsideLockStopPrimary(ignite(SRVS + 1), TX_CACHE2);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testAtomicGetInsideLockStopPrimary() throws Exception {
+        getInsideLockStopPrimary(ignite(SRVS), ATOMIC_CACHE);
+
+        getInsideLockStopPrimary(ignite(SRVS + 1), ATOMIC_CACHE);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testAtomicGetInsideTxStopPrimary() throws Exception {
+        getInsideTxStopPrimary(ignite(SRVS), ATOMIC_CACHE);
+
+        getInsideTxStopPrimary(ignite(SRVS + 1), ATOMIC_CACHE);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testReadCommittedPessimisticStopPrimary() throws Exception {
+        getReadCommittedStopPrimary(ignite(SRVS), TX_CACHE1, PESSIMISTIC);
+        getReadCommittedStopPrimary(ignite(SRVS + 1), TX_CACHE1, PESSIMISTIC);
+
+        getReadCommittedStopPrimary(ignite(SRVS), TX_CACHE2, PESSIMISTIC);
+        getReadCommittedStopPrimary(ignite(SRVS + 1), TX_CACHE2, PESSIMISTIC);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testReadCommittedOptimisticStopPrimary() throws Exception {
+        getReadCommittedStopPrimary(ignite(SRVS), TX_CACHE1, OPTIMISTIC);
+        getReadCommittedStopPrimary(ignite(SRVS + 1), TX_CACHE1, OPTIMISTIC);
+
+        getReadCommittedStopPrimary(ignite(SRVS), TX_CACHE2, OPTIMISTIC);
+        getReadCommittedStopPrimary(ignite(SRVS + 1), TX_CACHE2, OPTIMISTIC);
+    }
+
+    /**
+     * @param ignite Node.
+     * @param cacheName Cache name.
+     * @param concurrency Transaction concurrency.
+     * @throws Exception If failed.
+     */
+    private void getReadCommittedStopPrimary(Ignite ignite,
+        String cacheName,
+        TransactionConcurrency concurrency) throws Exception {
+        IgniteCache<Integer, Integer> txCache = ignite.cache(TX_CACHE1);
+
+        IgniteCache<Integer, Integer> getCache = ignite.cache(cacheName);
+
+        final int NEW_NODE = SRVS + CLIENTS;
+
+        Ignite srv = startGrid(NEW_NODE);
+
+        try {
+            Integer key = primaryKey(srv.cache(cacheName));
+
+            Integer txKey = nearKey(srv.cache(cacheName));
+
+            srv.cache(cacheName).put(key, 1);
+
+            IgniteInternalFuture<?> stopFut = GridTestUtils.runAsync(new Callable<Void>() {
+                @Override public Void call() throws Exception {
+                    U.sleep(500);
+
+                    log.info("Stop node.");
+
+                    stopGrid(NEW_NODE);
+
+                    log.info("Node stopped.");
+
+                    return null;
+                }
+            }, "stop-thread");
+
+            try (Transaction tx = ignite.transactions().txStart(concurrency, READ_COMMITTED)) {
+                txCache.put(txKey, 1);
+
+                while (!stopFut.isDone())
+                    assertEquals(1, (Object)getCache.get(key));
+
+                tx.commit();
+            }
+        }
+        finally {
+            stopGrid(NEW_NODE);
+        }
+    }
+
+    /**
+     * @param ignite Node.
+     * @param cacheName Cache name.
+     * @throws Exception If failed.
+     */
+    private void getInsideLockStopPrimary(Ignite ignite, String cacheName) throws Exception {
+        IgniteCache<Integer, Integer> lockCache = ignite.cache(TX_CACHE1);
+
+        IgniteCache<Integer, Integer> getCache = ignite.cache(cacheName);
+
+        final int NEW_NODE = SRVS + CLIENTS;
+
+        Ignite srv = startGrid(NEW_NODE);
+
+        try {
+            Integer key = primaryKey(srv.cache(cacheName));
+
+            getCache.put(key, 1);
+
+            IgniteInternalFuture<?> stopFut = GridTestUtils.runAsync(new Callable<Void>() {
+                @Override public Void call() throws Exception {
+                    U.sleep(500);
+
+                    log.info("Stop node.");
+
+                    stopGrid(NEW_NODE);
+
+                    log.info("Node stopped.");
+
+                    return null;
+                }
+            }, "stop-thread");
+
+            Lock lock = lockCache.lock(key + 1);
+
+            lock.lock();
+
+            try {
+                while (!stopFut.isDone())
+                    assertEquals(1, (Object)getCache.get(key));
+            }
+            finally {
+                lock.unlock();
+            }
+
+            stopFut.get();
+        }
+        finally {
+            stopGrid(NEW_NODE);
+        }
+    }
+
+    /**
+     * @param ignite Node.
+     * @param cacheName Cache name.
+     * @throws Exception If failed.
+     */
+    private void getInsideTxStopPrimary(Ignite ignite, String cacheName) throws Exception {
+        IgniteCache<Integer, Integer> txCache = ignite.cache(TX_CACHE1);
+
+        IgniteCache<Integer, Integer> getCache = ignite.cache(cacheName);
+
+        final int NEW_NODE = SRVS + CLIENTS;
+
+        Ignite srv = startGrid(NEW_NODE);
+
+        try {
+            Integer key = primaryKey(srv.cache(cacheName));
+
+            getCache.put(key, 1);
+
+            IgniteInternalFuture<?> stopFut = GridTestUtils.runAsync(new Callable<Void>() {
+                @Override public Void call() throws Exception {
+                    U.sleep(500);
+
+                    log.info("Stop node.");
+
+                    stopGrid(NEW_NODE);
+
+                    log.info("Node stopped.");
+
+                    return null;
+                }
+            }, "stop-thread");
+
+            try (Transaction tx = ignite.transactions().txStart(PESSIMISTIC, REPEATABLE_READ)) {
+                txCache.get(key + 1);
+
+                while (!stopFut.isDone())
+                    assertEquals(1, (Object)getCache.get(key));
+
+                tx.commit();
+            }
+        }
+        finally {
+            stopGrid(NEW_NODE);
+        }
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testMultithreaded() throws Exception {
+        final AtomicBoolean finished = new AtomicBoolean();
+
+        final int NEW_NODE = SRVS + CLIENTS;
+
+        final AtomicInteger stopIdx = new AtomicInteger();
+
+        IgniteInternalFuture<?> restartFut = GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
+            @Override public Object call() throws Exception {
+                int idx = stopIdx.getAndIncrement();
+
+                int node = NEW_NODE + idx;
+
+                while (!finished.get()) {
+                    log.info("Start node: " + node);
+
+                    startGrid(node);
+
+                    U.sleep(300);
+
+                    log.info("Stop node: " + node);
+
+                    stopGrid(node);
+                }
+
+                return null;
+            }
+        }, 2, "stop-thread");
+
+        try {
+            final long stopTime = System.currentTimeMillis() + 60_000;
+
+            final AtomicInteger idx = new AtomicInteger();
+
+            final int KEYS = 100_000;
+
+            GridTestUtils.runMultiThreaded(new Callable<Void>() {
+                @Override public Void call() throws Exception {
+                    int node = idx.getAndIncrement() % (SRVS + CLIENTS);
+
+                    Ignite ignite = ignite(node);
+
+                    IgniteCache<Integer, Integer> txCache1 = ignite.cache(TX_CACHE1);
+                    IgniteCache<Integer, Integer> txCache2 = ignite.cache(TX_CACHE2);
+                    IgniteCache<Integer, Integer> atomicCache = ignite.cache(ATOMIC_CACHE);
+
+                    ThreadLocalRandom rnd = ThreadLocalRandom.current();
+
+                    while (U.currentTimeMillis() < stopTime) {
+                        Integer lockKey = rnd.nextInt(KEYS, KEYS + 1000);
+
+                        Lock lock = txCache1.lock(lockKey);
+
+                        try {
+                            lock.lock();
+
+                            try {
+                                executeGet(txCache1);
+
+                                executeGet(txCache2);
+
+                                executeGet(atomicCache);
+                            } finally {
+                                lock.unlock();
+                            }
+
+                            try (Transaction tx = ignite.transactions().txStart(PESSIMISTIC, READ_COMMITTED)) {
+                                txCache1.put(lockKey, lockKey);
+
+                                executeGet(txCache1);
+
+                                executeGet(txCache2);
+
+                                executeGet(atomicCache);
+
+                                tx.commit();
+                            }
+                        }
+                        catch (IgniteException | CacheException e) {
+                            log.info("Error: " + e);
+                        }
+                    }
+
+                    return null;
+                }
+
+                private void executeGet(IgniteCache<Integer, Integer> cache) {
+                    ThreadLocalRandom rnd = ThreadLocalRandom.current();
+
+                    for (int i = 0; i < 100; i++)
+                        cache.get(rnd.nextInt(KEYS));
+
+                    Set<Integer> keys = new HashSet<>();
+
+                    for (int i = 0; i < 100; i++) {
+                        keys.add(rnd.nextInt(KEYS));
+
+                        if (keys.size() == 20) {
+                            cache.getAll(keys);
+
+                            keys.clear();
+                        }
+                    }
+
+                    cache.getAll(keys);
+                }
+            }, 10, "test-thread");
+
+            finished.set(true);
+
+            restartFut.get();
+        }
+        finally {
+            finished.set(true);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/96dc238f/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite3.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite3.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite3.java
index 4b04c05..85b6e93 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite3.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite3.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.testsuites;
 
 import junit.framework.TestSuite;
+import org.apache.ignite.internal.processors.cache.distributed.CacheGetInsideLockChangingTopologyTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCachePutRetryAtomicSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCachePutRetryTransactionalSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.IgniteCachePutRetryAtomicPrimaryWriteOrderSelfTest;
@@ -36,6 +37,7 @@ public class IgniteCacheFailoverTestSuite3 extends TestSuite {
         suite.addTestSuite(IgniteCachePutRetryAtomicSelfTest.class);
         suite.addTestSuite(IgniteCachePutRetryAtomicPrimaryWriteOrderSelfTest.class);
         suite.addTestSuite(IgniteCachePutRetryTransactionalSelfTest.class);
+        suite.addTestSuite(CacheGetInsideLockChangingTopologyTest.class);
 
         return suite;
     }


[06/24] ignite git commit: ignite-1.5 Fixed test to avoid timeout.

Posted by sb...@apache.org.
ignite-1.5 Fixed test to avoid timeout.


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

Branch: refs/heads/ignite-1.5.1
Commit: 85ec80870e640725d4e532f9a3c1b3de304fc6de
Parents: a586b49
Author: sboikov <sb...@gridgain.com>
Authored: Wed Dec 16 09:49:33 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Dec 16 09:49:33 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/CacheSerializableTransactionsTest.java  | 8 ++++++++
 1 file changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/85ec8087/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
index f4533f2..9906ad3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
@@ -2832,6 +2832,8 @@ public class CacheSerializableTransactionsTest extends GridCommonAbstractTest {
     public void testRandomOperations() throws Exception {
         Ignite ignite0 = ignite(0);
 
+        long stopTime = U.currentTimeMillis() + getTestTimeout() - 30_000;
+
         for (CacheConfiguration<Integer, Integer> ccfg : cacheConfigurations()) {
             logCacheInfo(ccfg);
 
@@ -2869,6 +2871,9 @@ public class CacheSerializableTransactionsTest extends GridCommonAbstractTest {
 
                             tx.commit();
                         }
+
+                        if (i % 100 == 0 && U.currentTimeMillis() > stopTime)
+                            break;
                     }
 
                     for (int key = 0; key < KEYS; key++) {
@@ -2877,6 +2882,9 @@ public class CacheSerializableTransactionsTest extends GridCommonAbstractTest {
                         for (int node = 1; node < SRVS + CLIENTS; node++)
                             assertEquals(val, ignite(node).cache(cache.getName()).get(key));
                     }
+
+                    if (U.currentTimeMillis() > stopTime)
+                        break;
                 }
             }
             finally {