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(+)
----------------------------------------------------------------------