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/09/28 14:55:53 UTC

[1/8] ignite git commit: ignite-808 Fixed GridDhtTxPrepareFuture.onEntriesLocked

Repository: ignite
Updated Branches:
  refs/heads/ignite-1279 7d251a9b8 -> c9b7f4211


ignite-808 Fixed GridDhtTxPrepareFuture.onEntriesLocked


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

Branch: refs/heads/ignite-1279
Commit: 8fea96ea1bba43bdc702e6096bb5492bdb745b67
Parents: dc379fe
Author: sboikov <sb...@gridgain.com>
Authored: Mon Sep 28 11:44:12 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Sep 28 11:44:12 2015 +0300

----------------------------------------------------------------------
 .../distributed/dht/GridDhtTxPrepareFuture.java |  6 ++-
 .../IgniteTxPreloadAbstractTest.java            | 43 ++++++++++++--------
 .../replicated/GridReplicatedTxPreloadTest.java |  2 -
 .../testsuites/IgniteCacheTestSuite4.java       |  7 ++++
 4 files changed, 37 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/8fea96ea/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index 81cc272..761bbb0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@ -318,7 +318,11 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
     private void onEntriesLocked() {
         ret = new GridCacheReturn(null, tx.localResult(), null, true);
 
-        for (IgniteTxEntry txEntry : tx.optimisticLockEntries()) {
+        for (IgniteTxEntry writeEntry : writes) {
+            IgniteTxEntry txEntry = tx.entry(writeEntry.txKey());
+
+            assert txEntry != null : writeEntry;
+
             GridCacheContext cacheCtx = txEntry.context();
 
             GridCacheEntryEx cached = txEntry.cached();

http://git-wip-us.apache.org/repos/asf/ignite/blob/8fea96ea/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxPreloadAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxPreloadAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxPreloadAbstractTest.java
index 939b4a6..0a7845b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxPreloadAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxPreloadAbstractTest.java
@@ -24,6 +24,7 @@ import java.util.Set;
 import java.util.concurrent.Callable;
 import java.util.concurrent.atomic.AtomicInteger;
 import javax.cache.processor.EntryProcessor;
+import javax.cache.processor.EntryProcessorResult;
 import javax.cache.processor.MutableEntry;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteTransactions;
@@ -65,6 +66,7 @@ public abstract class IgniteTxPreloadAbstractTest extends GridCacheAbstractSelfT
 
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
+        // No-op.
     }
 
     /** {@inheritDoc} */
@@ -78,7 +80,7 @@ public abstract class IgniteTxPreloadAbstractTest extends GridCacheAbstractSelfT
     public void testRemoteTxPreloading() throws Exception {
         IgniteCache<String, Integer> cache = jcache(0);
 
-        for (int i = 0; i < 10000; i++)
+        for (int i = 0; i < 10_000; i++)
             cache.put(String.valueOf(i), 0);
 
         final AtomicInteger gridIdx = new AtomicInteger(1);
@@ -104,31 +106,36 @@ public abstract class IgniteTxPreloadAbstractTest extends GridCacheAbstractSelfT
         for (int i = 0; i < 10; i++)
             keys.add(String.valueOf(i * 1000));
 
-        cache.invokeAll(keys, new EntryProcessor<String, Integer, Void>() {
-            @Override public Void process(MutableEntry<String, Integer> e, Object... args) {
-                Integer val = e.getValue();
+        Map<String, EntryProcessorResult<Integer>> resMap = cache.invokeAll(keys,
+            new EntryProcessor<String, Integer, Integer>() {
+                @Override public Integer process(MutableEntry<String, Integer> e, Object... args) {
+                    Integer val = e.getValue();
 
-                if (val == null) {
-                    keyNotLoaded = true;
+                    if (val == null) {
+                        keyNotLoaded = true;
 
-                    e.setValue(1);
+                        e.setValue(1);
 
-                    return null;
-                }
+                        return null;
+                    }
 
-                e.setValue(val + 1);
+                    e.setValue(val + 1);
 
-                return null;
+                    return val;
+                }
             }
-        });
+        );
 
         assertFalse(keyNotLoaded);
 
-        fut.get();
+        for (String key : keys) {
+            EntryProcessorResult<Integer> res = resMap.get(key);
 
-        for (int i = 0; i < GRID_CNT; i++)
-            // Wait for preloader.
-            jcache(i).rebalance().get();
+            assertNotNull(res);
+            assertEquals(0, (Object)res.get());
+        }
+
+        fut.get();
 
         for (int i = 0; i < GRID_CNT; i++) {
             for (String key : keys)
@@ -217,10 +224,10 @@ public abstract class IgniteTxPreloadAbstractTest extends GridCacheAbstractSelfT
         CacheConfiguration cfg = super.cacheConfiguration(gridName);
 
         cfg.setRebalanceMode(ASYNC);
-
         cfg.setWriteSynchronizationMode(FULL_SYNC);
-
         cfg.setCacheStoreFactory(null);
+        cfg.setReadThrough(false);
+        cfg.setWriteThrough(false);
 
         return cfg;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8fea96ea/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridReplicatedTxPreloadTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridReplicatedTxPreloadTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridReplicatedTxPreloadTest.java
index e3ce612..4da7734 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridReplicatedTxPreloadTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridReplicatedTxPreloadTest.java
@@ -24,8 +24,6 @@ import static org.apache.ignite.cache.CacheMode.REPLICATED;
 
 /**
  * Tests cache transaction during preloading.
- *
- * TODO: IGNITE-808.
  */
 public class GridReplicatedTxPreloadTest extends IgniteTxPreloadAbstractTest {
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/8fea96ea/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index 289da3d..0ebcc81 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@ -76,9 +76,12 @@ import org.apache.ignite.internal.processors.cache.IgniteStartCacheInTransaction
 import org.apache.ignite.internal.processors.cache.IgniteSystemCacheOnClientTest;
 import org.apache.ignite.internal.processors.cache.distributed.CacheAffinityEarlyTest;
 import org.apache.ignite.internal.processors.cache.distributed.CacheNoValueClassOnServerNodeTest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheDhtTxPreloadSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCacheLockFailoverSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCacheMultiTxLockSelfTest;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheNearTxPreloadSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheNearReadCommittedTest;
+import org.apache.ignite.internal.processors.cache.distributed.replicated.GridReplicatedTxPreloadTest;
 import org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicLoadAllTest;
 import org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicLoaderWriterTest;
 import org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicLocalLoadAllTest;
@@ -261,6 +264,10 @@ public class IgniteCacheTestSuite4 extends TestSuite {
 
         suite.addTestSuite(CacheSwapUnswapGetTest.class);
 
+        suite.addTestSuite(GridCacheDhtTxPreloadSelfTest.class);
+        suite.addTestSuite(GridCacheNearTxPreloadSelfTest.class);
+        suite.addTestSuite(GridReplicatedTxPreloadTest.class);
+
         return suite;
     }
 }
\ No newline at end of file


[7/8] ignite git commit: Merge remote-tracking branch 'origin/master'

Posted by sb...@apache.org.
Merge remote-tracking branch 'origin/master'


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

Branch: refs/heads/ignite-1279
Commit: 04930caa238ae974e037d9705e7b329fbde9ae52
Parents: 040f0f3 13629ce
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Mon Sep 28 15:31:03 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Mon Sep 28 15:31:03 2015 +0300

----------------------------------------------------------------------
 .../managers/discovery/CustomEventListener.java |  4 +++-
 .../discovery/GridDiscoveryManager.java         |  2 +-
 .../cache/DynamicCacheChangeRequest.java        | 19 +++++++++++++++++++
 .../cache/DynamicCacheDescriptor.java           | 19 +++++++++++++++++++
 .../GridCachePartitionExchangeManager.java      | 20 +++++++++++++++++---
 .../processors/cache/GridCacheProcessor.java    | 15 +++++++++++----
 .../continuous/CacheContinuousQueryHandler.java | 10 +++-------
 .../continuous/GridContinuousProcessor.java     | 17 +++++++++++++----
 .../datastructures/DataStructuresProcessor.java |  6 +++++-
 ...omicOffheapQueueCreateMultiNodeSelfTest.java |  5 -----
 ...ionedAtomicQueueCreateMultiNodeSelfTest.java |  5 -----
 ...PartitionedQueueCreateMultiNodeSelfTest.java | 16 ++++++++++------
 12 files changed, 101 insertions(+), 37 deletions(-)
----------------------------------------------------------------------



[3/8] ignite git commit: IGNITE-1557

Posted by sb...@apache.org.
IGNITE-1557


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

Branch: refs/heads/ignite-1279
Commit: 00e61e52678aefc2fcad0179fb3e05b46265b102
Parents: 8fea96e
Author: Anton Vinogradov <av...@apache.org>
Authored: Mon Sep 28 14:00:23 2015 +0300
Committer: Anton Vinogradov <av...@apache.org>
Committed: Mon Sep 28 14:00:23 2015 +0300

----------------------------------------------------------------------
 pom.xml | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/00e61e52/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index fad8807..5194a72 100644
--- a/pom.xml
+++ b/pom.xml
@@ -897,6 +897,22 @@
                     </execution>
                 </executions>
             </plugin>
+
+            <plugin><!-- skipping generates dependencies licenses -->
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-remote-resources-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>ignite-dependencies</id>
+                        <goals>
+                            <goal>process</goal>
+                        </goals>
+                        <configuration>
+                           <skip>true</skip>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
 </project>


[6/8] ignite git commit: minor (blank line)

Posted by sb...@apache.org.
minor (blank line)


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

Branch: refs/heads/ignite-1279
Commit: 040f0f33994533b8acdaad5c41a6fa37c105e658
Parents: c001d47
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Mon Sep 28 15:30:37 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Mon Sep 28 15:30:37 2015 +0300

----------------------------------------------------------------------
 .../apache/ignite/examples/computegrid/ComputeClosureExample.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/040f0f33/examples/src/main/java/org/apache/ignite/examples/computegrid/ComputeClosureExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/computegrid/ComputeClosureExample.java b/examples/src/main/java/org/apache/ignite/examples/computegrid/ComputeClosureExample.java
index eaa54a4..43a18e2 100644
--- a/examples/src/main/java/org/apache/ignite/examples/computegrid/ComputeClosureExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/computegrid/ComputeClosureExample.java
@@ -76,4 +76,4 @@ public class ComputeClosureExample {
             System.out.println(">>> Check all nodes for output (this node is also part of the cluster).");
         }
     }
-}
\ No newline at end of file
+}


[5/8] ignite git commit: ignite-80 Fixed dynamic cache start future completion

Posted by sb...@apache.org.
ignite-80 Fixed dynamic cache start future completion


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

Branch: refs/heads/ignite-1279
Commit: 13629ce89c71e5a1e1c447885ce0be9d3efb5a6c
Parents: c001d47
Author: sboikov <sb...@gridgain.com>
Authored: Mon Sep 28 15:17:15 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Sep 28 15:17:15 2015 +0300

----------------------------------------------------------------------
 .../managers/discovery/CustomEventListener.java |  4 +++-
 .../discovery/GridDiscoveryManager.java         |  2 +-
 .../cache/DynamicCacheChangeRequest.java        | 19 +++++++++++++++++++
 .../cache/DynamicCacheDescriptor.java           | 19 +++++++++++++++++++
 .../GridCachePartitionExchangeManager.java      | 20 +++++++++++++++++---
 .../processors/cache/GridCacheProcessor.java    | 15 +++++++++++----
 .../continuous/CacheContinuousQueryHandler.java | 10 +++-------
 .../continuous/GridContinuousProcessor.java     | 17 +++++++++++++----
 .../datastructures/DataStructuresProcessor.java |  6 +++++-
 ...omicOffheapQueueCreateMultiNodeSelfTest.java |  5 -----
 ...ionedAtomicQueueCreateMultiNodeSelfTest.java |  5 -----
 ...PartitionedQueueCreateMultiNodeSelfTest.java | 16 ++++++++++------
 12 files changed, 101 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/13629ce8/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/CustomEventListener.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/CustomEventListener.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/CustomEventListener.java
index ab143fb..8db4e67 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/CustomEventListener.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/CustomEventListener.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.managers.discovery;
 
 import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 
 /**
  * Listener interface.
@@ -26,6 +27,7 @@ public interface CustomEventListener<T extends DiscoveryCustomMessage> {
     /**
      * @param snd Sender.
      * @param msg Message.
+     * @param topVer Current topology version.
      */
-    public void onCustomEvent(ClusterNode snd, T msg);
+    public void onCustomEvent(ClusterNode snd, T msg, AffinityTopologyVersion topVer);
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/13629ce8/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index 3a09b2c..785613d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -527,7 +527,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
                         if (list != null) {
                             for (CustomEventListener<DiscoveryCustomMessage> lsnr : list) {
                                 try {
-                                    lsnr.onCustomEvent(node, customMsg);
+                                    lsnr.onCustomEvent(node, customMsg, nextTopVer);
                                 }
                                 catch (Exception e) {
                                     U.error(log, "Failed to notify direct custom event listener: " + customMsg, e);

http://git-wip-us.apache.org/repos/asf/ignite/blob/13629ce8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java
index 583e346..b23be41 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java
@@ -21,9 +21,11 @@ import java.io.Serializable;
 import java.util.UUID;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.lang.IgniteUuid;
+import org.jetbrains.annotations.Nullable;
 
 /**
  * Cache start/stop request.
@@ -69,6 +71,9 @@ public class DynamicCacheChangeRequest implements Serializable {
     /** */
     private transient boolean exchangeNeeded;
 
+    /** */
+    private transient AffinityTopologyVersion cacheFutTopVer;
+
     /**
      * Constructor creates cache stop request.
      *
@@ -88,6 +93,20 @@ public class DynamicCacheChangeRequest implements Serializable {
     }
 
     /**
+     * @param cacheFutTopVer Ready topology version when dynamic cache future should be completed.
+     */
+    public void cacheFutureTopologyVersion(AffinityTopologyVersion cacheFutTopVer) {
+        this.cacheFutTopVer = cacheFutTopVer;
+    }
+
+    /**
+     * @return Ready topology version when dynamic cache future should be completed.
+     */
+    @Nullable public AffinityTopologyVersion cacheFutureTopologyVersion() {
+        return cacheFutTopVer;
+    }
+
+    /**
      * @param exchangeNeeded {@code True} if request should trigger partition exchange.
      */
     public void exchangeNeeded(boolean exchangeNeeded) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/13629ce8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
index 3cfc34e..24df7e4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
@@ -22,11 +22,13 @@ import java.util.Map;
 import java.util.UUID;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.internal.GridKernalContext;
+import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.processors.plugin.CachePluginManager;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteUuid;
+import org.jetbrains.annotations.Nullable;
 
 /**
  * Cache start descriptor.
@@ -63,6 +65,9 @@ public class DynamicCacheDescriptor {
     /** */
     private boolean updatesAllowed = true;
 
+    /** */
+    private AffinityTopologyVersion startTopVer;
+
     /**
      * @param ctx Context.
      * @param cacheCfg Cache configuration.
@@ -84,6 +89,20 @@ public class DynamicCacheDescriptor {
     }
 
     /**
+     * @return Start topology version.
+     */
+    @Nullable public AffinityTopologyVersion startTopologyVersion() {
+        return startTopVer;
+    }
+
+    /**
+     * @param startTopVer Start topology version.
+     */
+    public void startTopologyVersion(AffinityTopologyVersion startTopVer) {
+        this.startTopVer = startTopVer;
+    }
+
+    /**
      * @return {@code True} if this is template configuration.
      */
     public boolean template() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/13629ce8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index eb76233..3e77e0d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -199,11 +199,25 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
                         Collection<DynamicCacheChangeRequest> valid = new ArrayList<>(batch.requests().size());
 
                         // Validate requests to check if event should trigger partition exchange.
-                        for (DynamicCacheChangeRequest req : batch.requests()) {
+                        for (final DynamicCacheChangeRequest req : batch.requests()) {
                             if (req.exchangeNeeded())
                                 valid.add(req);
-                            else
-                                cctx.cache().completeStartFuture(req);
+                            else {
+                                IgniteInternalFuture<?> fut = null;
+
+                                if (req.cacheFutureTopologyVersion() != null)
+                                    fut = affinityReadyFuture(req.cacheFutureTopologyVersion());
+
+                                if (fut == null || fut.isDone())
+                                    cctx.cache().completeStartFuture(req);
+                                else {
+                                    fut.listen(new CI1<IgniteInternalFuture<?>>() {
+                                        @Override public void apply(IgniteInternalFuture<?> fut) {
+                                            cctx.cache().completeStartFuture(req);
+                                        }
+                                    });
+                                }
+                            }
                         }
 
                         if (!F.isEmpty(valid)) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/13629ce8/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 74124bf..c86dfd9 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
@@ -115,7 +115,6 @@ import org.apache.ignite.lang.IgniteUuid;
 import org.apache.ignite.lifecycle.LifecycleAware;
 import org.apache.ignite.marshaller.Marshaller;
 import org.apache.ignite.marshaller.jdk.JdkMarshaller;
-import org.apache.ignite.internal.portable.api.PortableMarshaller;
 import org.apache.ignite.spi.IgniteNodeValidationResult;
 import org.jetbrains.annotations.Nullable;
 
@@ -615,8 +614,10 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
         ctx.discovery().setCustomEventListener(DynamicCacheChangeBatch.class,
             new CustomEventListener<DynamicCacheChangeBatch>() {
-                @Override public void onCustomEvent(ClusterNode snd, DynamicCacheChangeBatch msg) {
-                    onCacheChangeRequested(msg);
+                @Override public void onCustomEvent(ClusterNode snd,
+                    DynamicCacheChangeBatch msg,
+                    AffinityTopologyVersion topVer) {
+                    onCacheChangeRequested(msg, topVer);
                 }
             });
 
@@ -2363,8 +2364,9 @@ public class GridCacheProcessor extends GridProcessorAdapter {
      * Callback invoked from discovery thread when cache deployment request is received.
      *
      * @param batch Change request batch.
+     * @param topVer Current topology version.
      */
-    private void onCacheChangeRequested(DynamicCacheChangeBatch batch) {
+    private void onCacheChangeRequested(DynamicCacheChangeBatch batch, AffinityTopologyVersion topVer) {
         for (DynamicCacheChangeRequest req : batch.requests()) {
             if (req.template()) {
                 CacheConfiguration ccfg = req.startCacheConfiguration();
@@ -2421,6 +2423,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                         DynamicCacheDescriptor startDesc =
                             new DynamicCacheDescriptor(ctx, ccfg, req.cacheType(), false, req.deploymentId());
 
+                        startDesc.startTopologyVersion(topVer);
+
                         DynamicCacheDescriptor old = registeredCaches.put(maskNull(ccfg.getName()), startDesc);
 
                         assert old == null :
@@ -2469,6 +2473,9 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                         }
                     }
                 }
+
+                if (!needExchange && desc != null)
+                    req.cacheFutureTopologyVersion(desc.startTopologyVersion());
             }
             else {
                 assert req.stop() ^ req.close() : req;

http://git-wip-us.apache.org/repos/asf/ignite/blob/13629ce8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
index c99e07f..1990e18 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
@@ -30,7 +30,6 @@ import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.cache.CacheEntryEventSerializableFilter;
-import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.events.CacheQueryExecutedEvent;
 import org.apache.ignite.events.CacheQueryReadEvent;
 import org.apache.ignite.internal.GridKernalContext;
@@ -234,13 +233,10 @@ class CacheContinuousQueryHandler<K, V> implements GridContinuousHandler {
                         locLsnr.onUpdated(F.<CacheEntryEvent<? extends K, ? extends V>>asList(evt));
                     else {
                         try {
-                            ClusterNode node = ctx.discovery().node(nodeId);
-
-                            if (ctx.config().isPeerClassLoadingEnabled() && node != null) {
+                            if (ctx.config().isPeerClassLoadingEnabled() && ctx.discovery().node(nodeId) != null) {
                                 evt.entry().prepareMarshal(cctx);
 
-                                GridCacheDeploymentManager depMgr =
-                                    ctx.cache().internalCache(cacheName).context().deploy();
+                                GridCacheDeploymentManager depMgr = cctx.deploy();
 
                                 depMgr.prepare(evt.entry());
                             }
@@ -320,7 +316,7 @@ class CacheContinuousQueryHandler<K, V> implements GridContinuousHandler {
         assert routineId != null;
         assert ctx != null;
 
-        GridCacheAdapter<K, V> cache = ctx.cache().<K, V>internalCache(cacheName);
+        GridCacheAdapter<K, V> cache = ctx.cache().internalCache(cacheName);
 
         if (cache != null)
             cache.context().continuousQueries().unregisterListener(internal, routineId);

http://git-wip-us.apache.org/repos/asf/ignite/blob/13629ce8/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
index e29bdd4..d1cb3a9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
@@ -51,6 +51,7 @@ import org.apache.ignite.internal.managers.deployment.GridDeploymentInfoBean;
 import org.apache.ignite.internal.managers.discovery.CustomEventListener;
 import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener;
 import org.apache.ignite.internal.processors.GridProcessorAdapter;
+import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.processors.cache.GridCacheContext;
 import org.apache.ignite.internal.processors.timeout.GridTimeoutObject;
 import org.apache.ignite.internal.util.future.GridFinishedFuture;
@@ -186,7 +187,9 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
 
         ctx.discovery().setCustomEventListener(StartRoutineDiscoveryMessage.class,
             new CustomEventListener<StartRoutineDiscoveryMessage>() {
-                @Override public void onCustomEvent(ClusterNode snd, StartRoutineDiscoveryMessage msg) {
+                @Override public void onCustomEvent(ClusterNode snd,
+                    StartRoutineDiscoveryMessage msg,
+                    AffinityTopologyVersion topVer) {
                     if (!snd.id().equals(ctx.localNodeId()) && !ctx.isStopping())
                         processStartRequest(snd, msg);
                 }
@@ -194,7 +197,9 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
 
         ctx.discovery().setCustomEventListener(StartRoutineAckDiscoveryMessage.class,
             new CustomEventListener<StartRoutineAckDiscoveryMessage>() {
-                @Override public void onCustomEvent(ClusterNode snd, StartRoutineAckDiscoveryMessage msg) {
+                @Override public void onCustomEvent(ClusterNode snd,
+                    StartRoutineAckDiscoveryMessage msg,
+                    AffinityTopologyVersion topVer) {
                     StartFuture fut = startFuts.remove(msg.routineId());
 
                     if (fut != null) {
@@ -213,7 +218,9 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
 
         ctx.discovery().setCustomEventListener(StopRoutineDiscoveryMessage.class,
             new CustomEventListener<StopRoutineDiscoveryMessage>() {
-                @Override public void onCustomEvent(ClusterNode snd, StopRoutineDiscoveryMessage msg) {
+                @Override public void onCustomEvent(ClusterNode snd,
+                    StopRoutineDiscoveryMessage msg,
+                    AffinityTopologyVersion topVer) {
                     if (!snd.id().equals(ctx.localNodeId())) {
                         UUID routineId = msg.routineId();
 
@@ -231,7 +238,9 @@ public class GridContinuousProcessor extends GridProcessorAdapter {
 
         ctx.discovery().setCustomEventListener(StopRoutineAckDiscoveryMessage.class,
             new CustomEventListener<StopRoutineAckDiscoveryMessage>() {
-                @Override public void onCustomEvent(ClusterNode snd, StopRoutineAckDiscoveryMessage msg) {
+                @Override public void onCustomEvent(ClusterNode snd,
+                    StopRoutineAckDiscoveryMessage msg,
+                    AffinityTopologyVersion topVer) {
                     StopFuture fut = stopFuts.remove(msg.routineId());
 
                     if (fut != null)

http://git-wip-us.apache.org/repos/asf/ignite/blob/13629ce8/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
index a5561e9..ef2c543 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
@@ -883,7 +883,9 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
      * @throws IgniteCheckedException If failed.
      */
     private String compatibleConfiguration(CollectionConfiguration cfg) throws IgniteCheckedException {
-        List<CacheCollectionInfo> caches = utilityDataCache.localPeek(DATA_STRUCTURES_CACHE_KEY, null, null);
+        List<CacheCollectionInfo> caches = utilityDataCache.context().affinityNode() ?
+            utilityDataCache.localPeek(DATA_STRUCTURES_CACHE_KEY, null, null) :
+            utilityDataCache.get(DATA_STRUCTURES_CACHE_KEY);
 
         String cacheName = findCompatibleConfiguration(cfg, caches);
 
@@ -897,6 +899,8 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
         if (ctx.cache().cache(cacheName) == null)
             ctx.cache().dynamicStartCache(newCfg, cacheName, null, CacheType.INTERNAL, false, true).get();
 
+        assert ctx.cache().cache(cacheName) != null : cacheName;
+
         return cacheName;
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/13629ce8/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicOffheapQueueCreateMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicOffheapQueueCreateMultiNodeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicOffheapQueueCreateMultiNodeSelfTest.java
index 7a31363..49d5092 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicOffheapQueueCreateMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicOffheapQueueCreateMultiNodeSelfTest.java
@@ -26,11 +26,6 @@ import static org.apache.ignite.cache.CacheMemoryMode.OFFHEAP_TIERED;
 public class GridCachePartitionedAtomicOffheapQueueCreateMultiNodeSelfTest
     extends GridCachePartitionedAtomicQueueCreateMultiNodeSelfTest {
     /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        fail("https://issues.apache.org/jira/browse/IGNITE-80");
-    }
-
-    /** {@inheritDoc} */
     @Override protected CacheMemoryMode collectionMemoryMode() {
         return OFFHEAP_TIERED;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/13629ce8/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicQueueCreateMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicQueueCreateMultiNodeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicQueueCreateMultiNodeSelfTest.java
index e334ad6..caeb9b6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicQueueCreateMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicQueueCreateMultiNodeSelfTest.java
@@ -29,11 +29,6 @@ import static org.apache.ignite.cache.CacheMemoryMode.ONHEAP_TIERED;
 public class GridCachePartitionedAtomicQueueCreateMultiNodeSelfTest
     extends GridCachePartitionedQueueCreateMultiNodeSelfTest {
     /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        fail("https://issues.apache.org/jira/browse/IGNITE-80");
-    }
-
-    /** {@inheritDoc} */
     @Override protected CacheMemoryMode collectionMemoryMode() {
         return ONHEAP_TIERED;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/13629ce8/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
index 181682f..2146fc1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedQueueCreateMultiNodeSelfTest.java
@@ -32,6 +32,7 @@ import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.processors.cache.datastructures.IgniteCollectionAbstractTest;
+import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.transactions.Transaction;
 
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
@@ -48,11 +49,6 @@ import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_REA
  */
 public class GridCachePartitionedQueueCreateMultiNodeSelfTest extends IgniteCollectionAbstractTest {
     /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        fail("https://issues.apache.org/jira/browse/IGNITE-80");
-    }
-
-    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 1;
     }
@@ -127,7 +123,7 @@ public class GridCachePartitionedQueueCreateMultiNodeSelfTest extends IgniteColl
 
                     Thread.currentThread().setName("createQueue-" + idx0);
 
-                    Ignite ignite = startGrid(idx0);
+                    final Ignite ignite = startGrid(idx0);
 
                     UUID locNodeId = ignite.cluster().localNode().id();
 
@@ -135,6 +131,14 @@ public class GridCachePartitionedQueueCreateMultiNodeSelfTest extends IgniteColl
 
                     info("Creating queue: " + locNodeId);
 
+                    GridTestUtils.runMultiThreaded(new Callable<Void>() {
+                        @Override public Void call() throws Exception {
+                            ignite.queue("queue", 1, config(true));
+
+                            return null;
+                        }
+                    }, 10, "create-queue-" + ignite.name());
+
                     IgniteQueue<String> q = ignite.queue("queue", 1, config(true));
 
                     assert q != null;


[8/8] ignite git commit: Merge remote-tracking branch 'remotes/origin/master' into ignite-1279

Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/master' into ignite-1279


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

Branch: refs/heads/ignite-1279
Commit: c9b7f4211091fedd54723a6318ea40076b658989
Parents: 7d251a9 04930ca
Author: sboikov <sb...@gridgain.com>
Authored: Mon Sep 28 15:55:37 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Sep 28 15:55:37 2015 +0300

----------------------------------------------------------------------
 .../computegrid/ComputeClosureExample.java      |   2 +-
 .../managers/discovery/CustomEventListener.java |   4 +-
 .../discovery/GridDiscoveryManager.java         |   2 +-
 .../cache/DynamicCacheChangeRequest.java        |  19 +++
 .../cache/DynamicCacheDescriptor.java           |  19 +++
 .../GridCachePartitionExchangeManager.java      |  20 ++-
 .../processors/cache/GridCacheProcessor.java    |  15 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |   6 +-
 .../continuous/CacheContinuousQueryHandler.java |  10 +-
 .../continuous/GridContinuousProcessor.java     |  17 ++-
 .../datastructures/DataStructuresProcessor.java |   6 +-
 .../cache/IgniteDynamicCacheFilterTest.java     | 150 +++++++++++++++++++
 ...omicOffheapQueueCreateMultiNodeSelfTest.java |   5 -
 ...ionedAtomicQueueCreateMultiNodeSelfTest.java |   5 -
 ...PartitionedQueueCreateMultiNodeSelfTest.java |  16 +-
 .../IgniteTxPreloadAbstractTest.java            |  43 +++---
 .../replicated/GridReplicatedTxPreloadTest.java |   2 -
 .../testsuites/IgniteCacheTestSuite4.java       |  10 ++
 pom.xml                                         |  16 ++
 19 files changed, 308 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c9b7f421/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index cfa3cd3,959ceb1..80d53e9
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@@ -262,8 -265,12 +266,14 @@@ public class IgniteCacheTestSuite4 exte
  
          suite.addTestSuite(CacheSwapUnswapGetTest.class);
  
+         suite.addTestSuite(GridCacheDhtTxPreloadSelfTest.class);
+         suite.addTestSuite(GridCacheNearTxPreloadSelfTest.class);
+         suite.addTestSuite(GridReplicatedTxPreloadTest.class);
+ 
+         suite.addTestSuite(IgniteDynamicCacheFilterTest.class);
+ 
 +        suite.addTestSuite(CrossCacheLockTest.class);
 +
          return suite;
      }
  }


[2/8] ignite git commit: Added test.

Posted by sb...@apache.org.
Added test.


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

Branch: refs/heads/ignite-1279
Commit: 2575cf33a4b8389aa84e9cf0ee68d48c3a48bfa7
Parents: 8fea96e
Author: sboikov <sb...@gridgain.com>
Authored: Mon Sep 28 13:07:59 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Sep 28 13:07:59 2015 +0300

----------------------------------------------------------------------
 .../cache/IgniteDynamicCacheFilterTest.java     | 150 +++++++++++++++++++
 .../testsuites/IgniteCacheTestSuite4.java       |   3 +
 2 files changed, 153 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/2575cf33/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheFilterTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheFilterTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheFilterTest.java
new file mode 100644
index 0000000..4d543e0
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheFilterTest.java
@@ -0,0 +1,150 @@
+/*
+ * 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 java.util.HashMap;
+import java.util.Map;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.lang.IgnitePredicate;
+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 static org.apache.ignite.cache.CacheMode.REPLICATED;
+import static org.apache.ignite.cache.CacheRebalanceMode.SYNC;
+import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
+
+/**
+ *
+ */
+public class IgniteDynamicCacheFilterTest extends GridCommonAbstractTest {
+    /** */
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+
+    /** */
+    private static final String ATTR_NAME = "cacheAttr";
+
+    /** */
+    private String attrVal;
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
+
+        CacheConfiguration ccfg = new CacheConfiguration();
+
+        ccfg.setWriteSynchronizationMode(FULL_SYNC);
+        ccfg.setCacheMode(REPLICATED);
+        ccfg.setRebalanceMode(SYNC);
+
+        ccfg.setNodeFilter(new TestNodeFilter("A"));
+
+        if (attrVal != null) {
+            Map<String, Object> attrs = new HashMap<>();
+
+            attrs.put(ATTR_NAME, attrVal);
+
+            cfg.setUserAttributes(attrs);
+        }
+
+        cfg.setCacheConfiguration(ccfg);
+
+        return cfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        super.afterTest();
+
+        stopAllGrids();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testCofiguredCacheFilter() throws Exception {
+        attrVal = "A";
+
+        Ignite ignite0 = startGrid(0);
+
+        IgniteCache<Integer, Integer> cache0 = ignite0.cache(null);
+
+        assertNotNull(cache0);
+
+        cache0.put(1, 1);
+
+        attrVal = null;
+
+        Ignite ignite1 = startGrid(1);
+
+        IgniteCache<Integer, Integer> cache1 = ignite1.cache(null);
+
+        assertNotNull(cache1);
+
+        attrVal = "B";
+
+        Ignite ignite2 = startGrid(2);
+
+        IgniteCache<Integer, Integer> cache2 = ignite2.cache(null);
+
+        assertNotNull(cache2);
+
+        attrVal = "A";
+
+        Ignite ignite3 = startGrid(3);
+
+        IgniteCache<Integer, Integer> cache3 = ignite3.cache(null);
+
+        assertNotNull(cache3);
+
+        assertNotNull(cache0.localPeek(1));
+        assertNotNull(cache3.localPeek(1));
+
+        assertNull(cache1.localPeek(1));
+        assertNull(cache2.localPeek(1));
+    }
+
+    /**
+     *
+     */
+    private static class TestNodeFilter implements IgnitePredicate<ClusterNode> {
+        /** */
+        private String val;
+
+        /**
+         * @param val Attribute value.
+         */
+        public TestNodeFilter(String val) {
+            assert val != null;
+
+            this.val = val;
+        }
+
+        /** {@inheritDoc} */
+        @Override public boolean apply(ClusterNode node) {
+            return val.equals(node.attribute(ATTR_NAME));
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/2575cf33/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index 0ebcc81..959ceb1 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@ -65,6 +65,7 @@ import org.apache.ignite.internal.processors.cache.IgniteCacheTxPeekModesTest;
 import org.apache.ignite.internal.processors.cache.IgniteCacheTxPreloadNoWriteTest;
 import org.apache.ignite.internal.processors.cache.IgniteCacheTxReplicatedPeekModesTest;
 import org.apache.ignite.internal.processors.cache.IgniteCacheTxStoreValueTest;
+import org.apache.ignite.internal.processors.cache.IgniteDynamicCacheFilterTest;
 import org.apache.ignite.internal.processors.cache.IgniteDynamicCacheStartNoExchangeTimeoutTest;
 import org.apache.ignite.internal.processors.cache.IgniteDynamicCacheStartSelfTest;
 import org.apache.ignite.internal.processors.cache.IgniteDynamicCacheWithConfigStartSelfTest;
@@ -268,6 +269,8 @@ public class IgniteCacheTestSuite4 extends TestSuite {
         suite.addTestSuite(GridCacheNearTxPreloadSelfTest.class);
         suite.addTestSuite(GridReplicatedTxPreloadTest.class);
 
+        suite.addTestSuite(IgniteDynamicCacheFilterTest.class);
+
         return suite;
     }
 }
\ No newline at end of file


[4/8] ignite git commit: Merge remote-tracking branch 'origin/master'

Posted by sb...@apache.org.
Merge remote-tracking branch 'origin/master'


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

Branch: refs/heads/ignite-1279
Commit: c001d47206ec4c63d757925742b7083854bd9c2f
Parents: 00e61e5 2575cf3
Author: Anton Vinogradov <av...@apache.org>
Authored: Mon Sep 28 14:00:45 2015 +0300
Committer: Anton Vinogradov <av...@apache.org>
Committed: Mon Sep 28 14:00:45 2015 +0300

----------------------------------------------------------------------
 .../cache/IgniteDynamicCacheFilterTest.java     | 150 +++++++++++++++++++
 .../testsuites/IgniteCacheTestSuite4.java       |   3 +
 2 files changed, 153 insertions(+)
----------------------------------------------------------------------