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/06/26 15:26:49 UTC
[3/4] incubator-ignite git commit: # ignite-648: fix testUnswapShort
and good refactoring
# ignite-648: fix testUnswapShort and good refactoring
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/7cf3a66f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/7cf3a66f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/7cf3a66f
Branch: refs/heads/ignite-648-failover
Commit: 7cf3a66f8daef34de6a4450f407686d6461241fe
Parents: ff4f257
Author: ashutak <as...@gridgain.com>
Authored: Fri Jun 26 11:30:16 2015 +0300
Committer: ashutak <as...@gridgain.com>
Committed: Fri Jun 26 11:30:16 2015 +0300
----------------------------------------------------------------------
.../affinity/fair/FairAffinityFunction.java | 4 +--
.../cache/GridCacheAbstractFullApiSelfTest.java | 37 +++++++-------------
.../cache/GridCacheAbstractSelfTest.java | 16 ++++-----
...achePartitionedMultiNodeFullApiSelfTest.java | 12 ++++---
.../testframework/junits/GridAbstractTest.java | 31 +++++++++-------
.../junits/multijvm/IgniteNodeRunner.java | 20 ++++++++++-
.../junits/multijvm/IgniteProcessProxy.java | 2 +-
7 files changed, 66 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7cf3a66f/modules/core/src/main/java/org/apache/ignite/cache/affinity/fair/FairAffinityFunction.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/affinity/fair/FairAffinityFunction.java b/modules/core/src/main/java/org/apache/ignite/cache/affinity/fair/FairAffinityFunction.java
index 0253e62..15c5a3d 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/affinity/fair/FairAffinityFunction.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/affinity/fair/FairAffinityFunction.java
@@ -19,7 +19,7 @@ package org.apache.ignite.cache.affinity.fair;
import org.apache.ignite.cache.affinity.*;
import org.apache.ignite.cluster.*;
-import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.*;
import org.apache.ignite.events.*;
import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
@@ -31,7 +31,7 @@ import java.util.*;
* Fair affinity function which tries to ensure that all nodes get equal number of partitions with
* minimum amount of reassignments between existing nodes.
* <p>
- * Cache affinity can be configured for individual caches via {@link CacheConfiguration#getAffinity()} method.
+ * Cache affinity can be configured for individual caches via {@link CacheConfiguration#setAffinity(AffinityFunction)} method.
*/
@AffinityCentralizedFunction
public class FairAffinityFunction implements AffinityFunction {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7cf3a66f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
index 606f64a..2986e02 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
@@ -288,7 +288,6 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
assert jcache(i).localSize() != 0 || F.isEmpty(keysCol);
}
- // TODO
for (int i = 0; i < gridCount(); i++) {
if (!isMultiJvmAndNodeIsRemote(i)) {
GridCacheContext<String, Integer> ctx = context(i);
@@ -302,23 +301,20 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
assertEquals("Incorrect key size on cache #" + i, sum, jcache(i).localSize(ALL));
}
else {
- final int finalI = i;
- final UUID id = grid(i).localNode().id();
+ final int iCopy = i;
((IgniteProcessProxy)grid(i)).remoteCompute().run(new IgniteRunnable() {
@Override public void run() {
- Ignite grid = Ignition.ignite(id);
-
- GridCacheContext<String, Integer> ctx =
- ((IgniteKernal)grid).<String, Integer>internalCache().context();
+ GridCacheContext<String, Integer> ctx = context(iCopy);
int sum = 0;
for (String key : map.keySet())
- if (ctx.affinity().localNode(key, new AffinityTopologyVersion(ctx.discovery().topologyVersion())))
+ if (ctx.affinity().localNode(key,
+ new AffinityTopologyVersion(ctx.discovery().topologyVersion())))
sum++;
- assertEquals("Incorrect key size on cache #" + finalI, sum, grid.cache(null).localSize(ALL));
+ assertEquals("Incorrect key size on cache #" + iCopy, sum, jcache(iCopy).localSize(ALL));
}
});
}
@@ -3885,15 +3881,11 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
assertEquals("Incorrect size on cache #" + i, size, jcache(i).localSize(ALL));
}
else {
- final UUID id = grid(i).localNode().id();
+ final int iCopy = i;
- final int finalI = i;
((IgniteProcessProxy)grid(i)).remoteCompute().run(new IgniteRunnable() {
@Override public void run() {
- Ignite grid = Ignition.ignite(id);
-
- GridCacheContext<String, Integer> ctx =
- ((IgniteKernal)grid).<String, Integer>internalCache().context();
+ GridCacheContext<String, Integer> ctx = context(iCopy);
if (ctx.cache().configuration().getMemoryMode() == OFFHEAP_TIERED)
return;
@@ -3905,14 +3897,15 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
GridCacheEntryEx e =
ctx.isNear() ? ctx.near().dht().peekEx(key) : ctx.cache().peekEx(key);
- assert e != null : "Entry is null [idx=" + finalI + ", key=" + key + ", ctx=" + ctx + ']';
+ assert e != null : "Entry is null [idx=" + iCopy + ", key=" + key
+ + ", ctx=" + ctx + ']';
assert !e.deleted() : "Entry is deleted: " + e;
size++;
}
}
- assertEquals("Incorrect size on cache #" + finalI, size, grid.cache(null).localSize(ALL));
+ assertEquals("Incorrect size on cache #" + iCopy, size, jcache(iCopy).localSize(ALL));
}
});
}
@@ -3942,15 +3935,11 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
assertEquals("Incorrect key size on cache #" + i, size, jcache(i).localSize(ALL));
}
else {
- final int finI = i;
- final UUID id = grid(i).localNode().id();
+ final int iCopy = i;
((IgniteProcessProxy)grid(i)).remoteCompute().run(new IgniteRunnable() {
@Override public void run() {
- Ignite grid = Ignition.ignite(id);
-
- GridCacheContext<String, Integer> ctx =
- ((IgniteKernal)grid).<String, Integer>internalCache().context();
+ GridCacheContext<String, Integer> ctx = context(iCopy);
int size = 0;
@@ -3958,7 +3947,7 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
if (ctx.affinity().localNode(key, ctx.discovery().topologyVersionEx()))
size++;
- assertEquals("Incorrect key size on cache #" + finI, size, grid.cache(null).localSize(ALL));
+ assertEquals("Incorrect key size on cache #" + iCopy, size, jcache(iCopy).localSize(ALL));
}
});
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7cf3a66f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
index 2a84be9..bb207fc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java
@@ -32,7 +32,6 @@ import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
import org.apache.ignite.testframework.*;
import org.apache.ignite.testframework.junits.common.*;
-import org.apache.ignite.testframework.junits.multijvm.*;
import org.apache.ignite.transactions.*;
import org.jetbrains.annotations.*;
import org.jsr166.*;
@@ -357,11 +356,7 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest {
*/
@SuppressWarnings({"unchecked"})
@Override protected IgniteCache<String, Integer> jcache(int idx) {
- if (!isMultiJvmAndNodeIsRemote(idx))
- return ignite(idx).cache(null);
- else
- return IgniteProcessProxy.get(getTestGridName(idx)).cache(null);
-
+ return ignite(idx).cache(null);
}
/**
@@ -369,10 +364,11 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest {
* @return Cache context.
*/
protected GridCacheContext<String, Integer> context(final int idx) {
- if (!isMultiJvmAndNodeIsRemote(idx))
- return ((IgniteKernal)grid(idx)).<String, Integer>internalCache().context();
- else
- throw new UnsupportedOperationException("Operation cant be supported for multi jvm mode.");
+ if (isMultiJvmAndNodeIsRemote(idx) && !weAreOnRemoteJvm())
+ throw new UnsupportedOperationException("Operation can't be done automatically via proxy. " +
+ "Send task with this logic on remote jvm.");
+
+ return ((IgniteKernal)grid(idx)).<String, Integer>internalCache().context();
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7cf3a66f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeFullApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeFullApiSelfTest.java
index 9445f9c..6e694d9 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeFullApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeFullApiSelfTest.java
@@ -28,7 +28,6 @@ import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.lang.*;
import java.util.*;
-import java.util.concurrent.atomic.*;
import static org.apache.ignite.cache.CacheMode.*;
import static org.apache.ignite.cache.CachePeekMode.*;
@@ -179,21 +178,24 @@ public class GridCachePartitionedMultiNodeFullApiSelfTest extends GridCacheParti
if (memoryMode() == CacheMemoryMode.OFFHEAP_TIERED)
return;
- final AtomicInteger swapEvts = new AtomicInteger(0);
- final AtomicInteger unswapEvts = new AtomicInteger(0);
+ final IgniteAtomicLong swapEvts = grid(0).atomicLong("swapEvts", 0, true);
+
+ final IgniteAtomicLong unswapEvts = grid(0).atomicLong("unswapEvts", 0, true);
for (int i = 0; i < gridCount(); i++) {
+ final int iCopy = i;
+
grid(i).events().localListen(new IgnitePredicate<Event>() {
@Override public boolean apply(Event evt) {
info("Received event: " + evt);
switch (evt.type()) {
case EVT_CACHE_OBJECT_SWAPPED:
- swapEvts.incrementAndGet();
+ grid(iCopy).atomicLong("swapEvts", 0, false).incrementAndGet();
break;
case EVT_CACHE_OBJECT_UNSWAPPED:
- unswapEvts.incrementAndGet();
+ grid(iCopy).atomicLong("unswapEvts", 0, false).incrementAndGet();
break;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7cf3a66f/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
index 8802362..2f52224 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
@@ -223,6 +223,9 @@ public abstract class GridAbstractTest extends TestCase {
* @return logger.
*/
protected IgniteLogger log() {
+ if (weAreOnRemoteJvm())
+ return IgniteNodeRunner.startedInstance().log();
+
return log;
}
@@ -878,8 +881,12 @@ public abstract class GridAbstractTest extends TestCase {
protected IgniteEx grid(String name) {
if (!isMultiJvmAndNodeIsRemote(name))
return (IgniteEx)G.ignite(name);
- else
- return IgniteProcessProxy.get(name);
+ else {
+ if (weAreOnRemoteJvm())
+ return IgniteNodeRunner.startedInstance();
+ else
+ return IgniteProcessProxy.ignite(name);
+ }
}
/**
@@ -889,11 +896,7 @@ public abstract class GridAbstractTest extends TestCase {
* @return Grid instance.
*/
protected IgniteEx grid(int idx) {
- if (!isMultiJvmAndNodeIsRemote(idx))
- return (IgniteEx)G.ignite(getTestGridName(idx));
- else
- return IgniteProcessProxy.get(getTestGridName(idx));
-
+ return grid(getTestGridName(idx));
}
/**
@@ -901,12 +904,7 @@ public abstract class GridAbstractTest extends TestCase {
* @return Ignite instance.
*/
protected Ignite ignite(int idx) {
- String gridName = getTestGridName(idx);
-
- if (!isMultiJvmAndNodeIsRemote(idx))
- return G.ignite(gridName);
- else
- return IgniteProcessProxy.get(gridName);
+ return grid(idx);
}
/**
@@ -1402,6 +1400,13 @@ public abstract class GridAbstractTest extends TestCase {
}
/**
+ * @return <code>True</code> if current jvm contains remote started node.
+ */
+ protected boolean weAreOnRemoteJvm() {
+ return IgniteNodeRunner.hasStartedInstance();
+ }
+
+ /**
* @return Test counters.
*/
protected synchronized TestCounters getTestCounters() throws IgniteCheckedException {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7cf3a66f/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java
index 0dec37b..e8b9be2 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java
@@ -20,6 +20,7 @@ package org.apache.ignite.testframework.junits.multijvm;
import com.thoughtworks.xstream.*;
import org.apache.ignite.*;
import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.*;
import org.apache.ignite.internal.processors.cache.*;
import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.typedef.*;
@@ -38,6 +39,9 @@ public class IgniteNodeRunner {
private static final String IGNITE_CONFIGURATION_FILE = System.getProperty("java.io.tmpdir") +
File.separator + "igniteConfiguration.tmp_";
+ /** */
+ private static volatile Ignite ignite;
+
/**
* Starts {@link Ignite} instance accorging to given arguments.
*
@@ -51,7 +55,21 @@ public class IgniteNodeRunner {
IgniteConfiguration cfg = readCfgFromFileAndDeleteFile(args[0]);
- Ignition.start(cfg);
+ ignite = Ignition.start(cfg);
+ }
+
+ /**
+ * @return Ignite instance started at main.
+ */
+ public static IgniteEx startedInstance(){
+ return (IgniteEx)ignite;
+ }
+
+ /**
+ * @return <code>True</code> if there is ignite node started via {@link IgniteNodeRunner} at this jvm.
+ */
+ public static boolean hasStartedInstance() {
+ return ignite != null;
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7cf3a66f/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
index 51b910a..42436e5 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
@@ -120,7 +120,7 @@ public class IgniteProcessProxy implements IgniteEx {
* @param gridName Grid name.
* @return Instance by name or exception wiil be thrown.
*/
- public static IgniteProcessProxy get(String gridName) {
+ public static IgniteProcessProxy ignite(String gridName) {
IgniteProcessProxy res = gridProxies.get(gridName);
if (res == null)