You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2016/03/18 22:54:55 UTC
[09/11] incubator-geode git commit: GEODE-1050: add JUnit 4 versions
of DistributedTestCase and CacheTestCase
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/cache30/RegionTestCase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/cache30/RegionTestCase.java b/geode-core/src/test/java/com/gemstone/gemfire/cache30/RegionTestCase.java
index ed89a13..ce705ea 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/cache30/RegionTestCase.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/cache30/RegionTestCase.java
@@ -111,7 +111,7 @@ public abstract class RegionTestCase extends CacheTestCase {
}
@Override
- protected final void postTearDownCacheTestCase() throws Exception {
+ public final void postTearDownCacheTestCase() throws Exception {
cleanup();
Invoke.invokeInEveryVM(getClass(), "cleanup");
postTearDownRegionTestCase();
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/cache30/RemoveAllMultiVmDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/cache30/RemoveAllMultiVmDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/cache30/RemoveAllMultiVmDUnitTest.java
index cfd1ce8..f219539 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/cache30/RemoveAllMultiVmDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/cache30/RemoveAllMultiVmDUnitTest.java
@@ -62,8 +62,7 @@ public class RemoveAllMultiVmDUnitTest extends DistributedTestCase {
static CacheTransactionManager cacheTxnMgr;
@Override
- public void setUp() throws Exception {
- super.setUp();
+ public final void postSetUp() throws Exception {
Host host = Host.getHost(0);
VM vm0 = host.getVM(0);
VM vm1 = host.getVM(1);
@@ -72,7 +71,7 @@ public class RemoveAllMultiVmDUnitTest extends DistributedTestCase {
}
@Override
- protected final void preTearDown() throws Exception {
+ public final void preTearDown() throws Exception {
Host host = Host.getHost(0);
VM vm0 = host.getVM(0);
VM vm1 = host.getVM(1);
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/cache30/SearchAndLoadDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/cache30/SearchAndLoadDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/cache30/SearchAndLoadDUnitTest.java
index f26f94a..d564fca 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/cache30/SearchAndLoadDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/cache30/SearchAndLoadDUnitTest.java
@@ -77,7 +77,7 @@ public class SearchAndLoadDUnitTest extends CacheTestCase {
}
@Override
- protected final void preTearDownCacheTestCase() throws Exception {
+ public final void preTearDownCacheTestCase() throws Exception {
for (int h = 0; h < Host.getHostCount(); h++) {
Host host = Host.getHost(h);
for (int v = 0; v < host.getVMCount(); v++) {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/cache30/SlowRecDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/cache30/SlowRecDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/cache30/SlowRecDUnitTest.java
index 899fbb1..b08fb73 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/cache30/SlowRecDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/cache30/SlowRecDUnitTest.java
@@ -66,17 +66,14 @@ public class SlowRecDUnitTest extends CacheTestCase {
// the setUp and tearDown methods need to make sure we don't
// use the ds from previous test and that we don't leave ours around
// for the next test to use.
-
- public void setUp() throws Exception {
- try {
- disconnectAllFromDS();
- } finally {
- super.setUp();
- }
+
+ @Override
+ public final void preSetUp() throws Exception {
+ disconnectAllFromDS();
}
@Override
- protected final void postTearDownCacheTestCase() throws Exception {
+ public final void postTearDownCacheTestCase() throws Exception {
disconnectAllFromDS();
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/cache30/TXDistributedDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/cache30/TXDistributedDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/cache30/TXDistributedDUnitTest.java
index 720da56..604ca8a 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/cache30/TXDistributedDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/cache30/TXDistributedDUnitTest.java
@@ -1077,8 +1077,8 @@ public class TXDistributedDUnitTest extends CacheTestCase {
*/
public static Serializable getSystemId() {
Serializable ret = null;
- if (DistributedTestCase.system != null) {
- ret = DistributedTestCase.system.getDistributionManager().getId();
+ if (getSystemStatic() != null) {
+ ret = getSystemStatic().getDistributionManager().getId();
}
return ret;
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/distributed/DistributedMemberDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/DistributedMemberDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/DistributedMemberDUnitTest.java
index 3dc6d75..d66fded 100755
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/DistributedMemberDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/DistributedMemberDUnitTest.java
@@ -16,6 +16,8 @@
*/
package com.gemstone.gemfire.distributed;
+import static com.gemstone.gemfire.test.dunit.Assert.*;
+
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Arrays;
@@ -31,14 +33,14 @@ import com.gemstone.gemfire.distributed.internal.DM;
import com.gemstone.gemfire.distributed.internal.DistributionConfig;
import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
-import com.gemstone.gemfire.test.dunit.Assert;
-import com.gemstone.gemfire.test.dunit.DistributedTestCase;
import com.gemstone.gemfire.test.dunit.Host;
import com.gemstone.gemfire.test.dunit.SerializableCallable;
import com.gemstone.gemfire.test.dunit.SerializableRunnable;
import com.gemstone.gemfire.test.dunit.VM;
-
-import junit.framework.AssertionFailedError;
+import com.gemstone.gemfire.test.dunit.internal.JUnit4DistributedTestCase;
+import com.gemstone.gemfire.test.junit.categories.DistributedTest;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Tests the functionality of the {@link DistributedMember} class.
@@ -46,13 +48,10 @@ import junit.framework.AssertionFailedError;
* @author Kirk Lund
* @since 5.0
*/
-public class DistributedMemberDUnitTest extends DistributedTestCase {
+@Category(DistributedTest.class)
+public class DistributedMemberDUnitTest extends JUnit4DistributedTestCase {
- public DistributedMemberDUnitTest(String name) {
- super(name);
- }
-
- protected void sleep(long millis) {
+ protected void sleep(long millis) { // TODO: replace with Awaitility
try {
Thread.sleep(millis);
}
@@ -64,6 +63,7 @@ public class DistributedMemberDUnitTest extends DistributedTestCase {
/**
* Tests default settings.
*/
+ @Test
public void testDefaults() {
Properties config = new Properties();
config.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
@@ -94,6 +94,7 @@ public class DistributedMemberDUnitTest extends DistributedTestCase {
}
}
+ @Test
public void testNonDefaultName() {
Properties config = new Properties();
config.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
@@ -118,6 +119,7 @@ public class DistributedMemberDUnitTest extends DistributedTestCase {
* Tests the configuration of many Roles and groups in one vm.
* Confirms no runtime distinction between roles and groups.
*/
+ @Test
public void testRolesInOneVM() {
final String rolesProp = "A,B,C";
final String groupsProp = "D,E,F,G";
@@ -152,6 +154,7 @@ public class DistributedMemberDUnitTest extends DistributedTestCase {
}
}
+ @Test
public void testTwoMembersSameName() {
disconnectFromDS(); // or assertion on # members fails when run-dunit-tests
Host.getHost(0).getVM(0).invoke(new SerializableRunnable() {
@@ -185,7 +188,8 @@ public class DistributedMemberDUnitTest extends DistributedTestCase {
* Tests the configuration of one unique Role in each of four vms. Verifies
* that each vm is aware of the other vms' Roles.
*/
- public void testRolesInAllVMs() {
+ @Test
+ public void testRolesInAllVMs() {
disconnectAllFromDS(); // or assertion on # members fails when run-dunit-tests
// connect all four vms...
@@ -227,7 +231,7 @@ public class DistributedMemberDUnitTest extends DistributedTestCase {
assertEquals(3, members.size());
break;
}
- catch (AssertionFailedError e) {
+ catch (AssertionError e) { // TODO: delete this
if (i < 3) {
sleep(200);
} else {
@@ -268,7 +272,8 @@ public class DistributedMemberDUnitTest extends DistributedTestCase {
* Tests the configuration of one unique group in each of four vms. Verifies
* that each vm is aware of the other vms' groups.
*/
- public void testGroupsInAllVMs() {
+ @Test
+ public void testGroupsInAllVMs() {
disconnectFromDS(); // or assertion on # members fails when run-dunit-tests
// connect all four vms...
@@ -307,7 +312,7 @@ public class DistributedMemberDUnitTest extends DistributedTestCase {
assertEquals(3, members.size());
break;
}
- catch (AssertionFailedError e) {
+ catch (AssertionError e) { // TODO: delete this
if (i < 3) {
sleep(200);
} else {
@@ -359,6 +364,7 @@ public class DistributedMemberDUnitTest extends DistributedTestCase {
* Changing the id can result in bad keys in JMX and can result in numerous
* errors in Admin/JMX tests.
*/
+ @Test
public void testGetId() {
Properties config = new Properties();
config.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
@@ -378,7 +384,8 @@ public class DistributedMemberDUnitTest extends DistributedTestCase {
system.disconnect();
}
}
-
+
+ @Test
public void testFindMemberByName() {
disconnectAllFromDS(); // or assertion on # members fails when run-dunit-tests
VM vm0 = Host.getHost(0).getVM(0);
@@ -408,7 +415,7 @@ public class DistributedMemberDUnitTest extends DistributedTestCase {
assertTrue("Expected" + expected + " got " + members, members.containsAll(expected));
assertEquals(4, members.size());
} catch (UnknownHostException e) {
- Assert.fail("Unable to get IpAddress", e);
+ fail("Unable to get IpAddress", e);
}
}
});
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/distributed/DistributedSystemDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/DistributedSystemDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/DistributedSystemDUnitTest.java
index 610be11..f34fd7e 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/DistributedSystemDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/DistributedSystemDUnitTest.java
@@ -16,6 +16,8 @@
*/
package com.gemstone.gemfire.distributed;
+import static com.gemstone.gemfire.test.dunit.Assert.*;
+
import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
@@ -26,7 +28,6 @@ import java.util.concurrent.TimeoutException;
import com.gemstone.gemfire.CancelException;
import com.gemstone.gemfire.GemFireConfigException;
-import com.gemstone.gemfire.SystemConnectException;
import com.gemstone.gemfire.cache.AttributesFactory;
import com.gemstone.gemfire.cache.Cache;
import com.gemstone.gemfire.cache.CacheFactory;
@@ -44,11 +45,14 @@ import com.gemstone.gemfire.distributed.internal.membership.gms.mgr.GMSMembershi
import com.gemstone.gemfire.internal.AvailablePort;
import com.gemstone.gemfire.internal.AvailablePortHelper;
import com.gemstone.gemfire.internal.SocketCreator;
-import com.gemstone.gemfire.test.dunit.DistributedTestCase;
import com.gemstone.gemfire.test.dunit.DistributedTestUtils;
import com.gemstone.gemfire.test.dunit.Host;
import com.gemstone.gemfire.test.dunit.LogWriterUtils;
import com.gemstone.gemfire.test.dunit.VM;
+import com.gemstone.gemfire.test.dunit.internal.JUnit4DistributedTestCase;
+import com.gemstone.gemfire.test.junit.categories.DistributedTest;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
/**
* Tests the functionality of the {@link DistributedSystem} class.
@@ -57,23 +61,18 @@ import com.gemstone.gemfire.test.dunit.VM;
*
* @author David Whitlock
*/
-public class DistributedSystemDUnitTest extends DistributedTestCase {
+@Category(DistributedTest.class)
+public class DistributedSystemDUnitTest extends JUnit4DistributedTestCase {
- public DistributedSystemDUnitTest(String name) {
- super(name);
- }
-
- public void setUp() throws Exception {
- super.setUp();
+ public void postSetUp() throws Exception {
disconnectAllFromDS();
}
- //////// Test methods
-
/**
* ensure that waitForMemberDeparture correctly flushes the serial message queue for
* the given member
*/
+ @Test
public void testWaitForDeparture() throws Exception {
disconnectAllFromDS();
int locatorPort = AvailablePort.getRandomAvailablePort(AvailablePort.SOCKET);
@@ -109,7 +108,7 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
}
}
- static class FakeMessage extends SerialDistributionMessage {
+ private static class FakeMessage extends SerialDistributionMessage {
volatile boolean[] blocked;
volatile boolean processed;
@@ -143,12 +142,9 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
* Tests that we can get a DistributedSystem with the same
* configuration twice.
*/
+ @Test
public void testGetSameSystemTwice() {
Properties config = new Properties();
-
-// int unusedPort = AvailablePort.getRandomAvailablePort(AvailablePort.JGROUPS);
-// config.setProperty("mcast-port", String.valueOf(unusedPort));
- // a loner is all this test needs
config.setProperty("mcast-port", "0");
config.setProperty("locators", "");
// set a flow-control property for the test (bug 37562)
@@ -165,12 +161,9 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
* different configuration after one has already been obtained
* throws an exception.
*/
+ @Test
public void testGetDifferentSystem() {
Properties config = new Properties();
-
-// int unusedPort = AvailablePort.getRandomAvailablePort(AvailablePort.JGROUPS);
-// config.setProperty("mcast-port", String.valueOf(unusedPort));
- // a loner is all this test needs
config.setProperty("mcast-port", "0");
config.setProperty("locators", "");
config.setProperty("mcast-flow-control", "3000000,0.20,3000");
@@ -196,12 +189,9 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
* Tests getting a system with a different configuration after
* another system has been closed.
*/
+ @Test
public void testGetDifferentSystemAfterClose() {
Properties config = new Properties();
-
-// int unusedPort = AvailablePort.getRandomAvailablePort(AvailablePort.JGROUPS);
-// config.setProperty("mcast-port", String.valueOf(unusedPort));
- // a loner is all this test needs
config.setProperty("mcast-port", "0");
config.setProperty("locators", "");
@@ -213,13 +203,11 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
DistributedSystem system2 = DistributedSystem.connect(config);
system2.disconnect();
}
-
-
+
+
+ @Test
public void testGetProperties() {
Properties config = new Properties();
-
-// int unusedPort = AvailablePort.getRandomAvailablePort(AvailablePort.JGROUPS);
-// config.setProperty("mcast-port", String.valueOf(unusedPort));
// a loner is all this test needs
int unusedPort = 0;
config.setProperty("mcast-port", "0");
@@ -235,13 +223,14 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
assertTrue(config != system1.getProperties());
assertEquals(unusedPort, Integer.parseInt(system1.getProperties().getProperty("mcast-port")));
}
-
-
+
+
+ @Test
public void testIsolatedDistributedSystem() throws Exception {
Properties config = new Properties();
config.setProperty("mcast-port", "0");
config.setProperty("locators", "");
- system = (InternalDistributedSystem)DistributedSystem.connect(config);
+ getSystem(config);
try {
// make sure isolated distributed system can still create a cache and region
Cache cache = CacheFactory.create(getSystem());
@@ -255,12 +244,13 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
/** test the ability to set the port used to listen for tcp/ip connections */
+ @Test
public void testSpecificTcpPort() throws Exception {
Properties config = new Properties();
int tcpPort = AvailablePort.getRandomAvailablePort(AvailablePort.SOCKET);
config.put("locators", "localhost["+DistributedTestUtils.getDUnitLocatorPort()+"]");
config.setProperty("tcp-port", String.valueOf(tcpPort));
- system = (InternalDistributedSystem)DistributedSystem.connect(config);
+ InternalDistributedSystem system = getSystem(config);
DistributionManager dm = (DistributionManager)system.getDistributionManager();
GMSMembershipManager mgr = (GMSMembershipManager)dm.getMembershipManager();
int actualPort = mgr.getDirectChannelPort();
@@ -269,6 +259,7 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
}
/** test that loopback cannot be used as a bind address when a locator w/o a bind address is being used */
+ @Test
public void testLoopbackNotAllowed() throws Exception {
// DISABLED for bug #49926
InetAddress loopback = null;
@@ -291,7 +282,7 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
config.setProperty(DistributionConfig.BIND_ADDRESS_NAME, loopback.getHostAddress());
LogWriterUtils.getLogWriter().info("attempting to connect with " + loopback +" and locators=" + locators);
try {
- system = (InternalDistributedSystem)DistributedSystem.connect(config);
+ InternalDistributedSystem system = getSystem(config);
system.disconnect();
fail("expected a configuration exception disallowing use of loopback address");
} catch (GemFireConfigException e) {
@@ -302,14 +293,15 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
}
}
+ @Test
public void testUDPPortRange() throws Exception {
Properties config = new Properties();
int unicastPort = AvailablePort.getRandomAvailablePort(AvailablePort.SOCKET);
config.put("locators", "localhost["+DistributedTestUtils.getDUnitLocatorPort()+"]");
// Minimum 3 ports required in range for UDP, FD_SOCK and TcpConduit.
config.setProperty(DistributionConfig.MEMBERSHIP_PORT_RANGE_NAME,
- ""+unicastPort+"-"+(unicastPort+2));
- system = (InternalDistributedSystem)DistributedSystem.connect(config);
+ ""+unicastPort+"-"+(unicastPort+2));
+ InternalDistributedSystem system = getSystem(config);
DistributionManager dm = (DistributionManager)system.getDistributionManager();
InternalDistributedMember idm = dm.getDistributionManagerId();
system.disconnect();
@@ -345,6 +337,7 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
return startPort;
}
+ @Test
public void testMembershipPortRangeWithExactThreeValues() throws Exception {
Properties config = new Properties();
config.setProperty("locators", "localhost[" + DistributedTestUtils.getDUnitLocatorPort() + "]");
@@ -352,7 +345,7 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
int portStartRange = getPortRange(portRange);
int portEndRange = portStartRange + portRange - 1;
config.setProperty(DistributionConfig.MEMBERSHIP_PORT_RANGE_NAME, "" + (portStartRange) + "-" + (portEndRange));
- system = (InternalDistributedSystem) DistributedSystem.connect(config);
+ InternalDistributedSystem system = getSystem(config);
Cache cache = CacheFactory.create(system);
cache.addCacheServer();
DistributionManager dm = (DistributionManager) system.getDistributionManager();
@@ -364,6 +357,7 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
assertTrue(idm.getDirectChannelPort() >= portStartRange);
}
+ @Test
public void testConflictingUDPPort() throws Exception {
final Properties config = new Properties();
final int mcastPort = AvailablePort.getRandomAvailablePort(AvailablePort.MULTICAST);
@@ -373,7 +367,7 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
config.setProperty("start-locator", "localhost["+socketPorts[1]+"]");
config.setProperty(DistributionConfig.MEMBERSHIP_PORT_RANGE_NAME,
""+unicastPort+"-"+(unicastPort+2));
- system = (InternalDistributedSystem)DistributedSystem.connect(config);
+ InternalDistributedSystem system = (InternalDistributedSystem)DistributedSystem.connect(config);
try {
DistributionManager dm = (DistributionManager)system.getDistributionManager();
InternalDistributedMember idm = dm.getDistributionManagerId();
@@ -402,13 +396,9 @@ public class DistributedSystemDUnitTest extends DistributedTestCase {
*
* @since 4.0
*/
+ @Test
public void testEmptyCacheXmlFile() throws Exception {
Properties config = new Properties();
-
-// int unusedPort =
-// AvailablePort.getRandomAvailablePort(AvailablePort.JGROUPS);
-// config.setProperty("mcast-port", String.valueOf(unusedPort));
- // a loner is all this test needs
config.setProperty("mcast-port", "0");
config.setProperty("locators", "");
config.setProperty(DistributionConfig.CACHE_XML_FILE_NAME, "");
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/distributed/HostedLocatorsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/HostedLocatorsDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/HostedLocatorsDUnitTest.java
index fe2202f..f874417 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/HostedLocatorsDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/HostedLocatorsDUnitTest.java
@@ -50,13 +50,14 @@ public class HostedLocatorsDUnitTest extends DistributedTestCase {
protected transient volatile int locatorPort;
protected transient volatile LocatorLauncher launcher;
-
- public void setUp() throws Exception {
+
+ @Override
+ public final void postSetUp() throws Exception {
disconnectAllFromDS();
}
@Override
- protected final void preTearDown() throws Exception {
+ public final void preTearDown() throws Exception {
disconnectAllFromDS();
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorDUnitTest.java
index 5969c51..f6dfde4 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorDUnitTest.java
@@ -75,6 +75,8 @@ import com.gemstone.gemfire.test.dunit.WaitCriterion;
*/
public class LocatorDUnitTest extends DistributedTestCase {
+ private static volatile InternalDistributedSystem system = null;
+
static TestHook hook;
/**
@@ -93,15 +95,14 @@ public class LocatorDUnitTest extends DistributedTestCase {
private int port2;
@Override
- public void setUp() throws Exception {
- super.setUp();
+ public final void postSetUp() throws Exception {
port1 = -1;
port2 = -1;
IgnoredException.addIgnoredException("Removing shunned member");
}
@Override
- protected final void preTearDown() throws Exception {
+ public final void preTearDown() throws Exception {
if (Locator.hasLocator()) {
Locator.getLocator().stop();
}
@@ -115,6 +116,14 @@ public class LocatorDUnitTest extends DistributedTestCase {
}
}
+ @Override
+ public final void postTearDown() throws Exception {
+ if (system != null) {
+ system.disconnect();
+ system = null;
+ }
+ }
+
//////// Test Methods
/**
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/distributed/SystemAdminDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/SystemAdminDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/SystemAdminDUnitTest.java
index 64014de..73c9c8c 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/SystemAdminDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/SystemAdminDUnitTest.java
@@ -1,19 +1,19 @@
-/*
- * 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.
- */
+/*
+ * 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 com.gemstone.gemfire.distributed;
import java.io.BufferedReader;
@@ -28,9 +28,9 @@ import java.util.Properties;
import com.gemstone.gemfire.distributed.internal.DistributionManager;
import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
-import com.gemstone.gemfire.internal.SystemAdmin;
-import com.gemstone.gemfire.test.dunit.DistributedTestCase;
-import com.gemstone.gemfire.test.dunit.DistributedTestUtils;
+import com.gemstone.gemfire.internal.SystemAdmin;
+import com.gemstone.gemfire.test.dunit.DistributedTestCase;
+import com.gemstone.gemfire.test.dunit.DistributedTestUtils;
import com.gemstone.gemfire.test.dunit.LogWriterUtils;
public class SystemAdminDUnitTest extends DistributedTestCase {
@@ -40,19 +40,18 @@ public class SystemAdminDUnitTest extends DistributedTestCase {
}
@Override
- public void setUp() throws Exception {
- super.setUp();
+ public final void postSetUp() throws Exception {
disconnect();
}
- @Override
- protected final void preTearDown() throws Exception {
+ @Override
+ public final void preTearDown() throws Exception {
disconnect();
}
public void disconnect() {
// get rid of the command-line distributed system created by SystemAdmin
- system = null;
+ nullSystem();
InternalDistributedSystem sys = InternalDistributedSystem.getAnyInstance();
if (sys != null && sys.isConnected()) {
LogWriterUtils.getLogWriter().info("disconnecting(3)");
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/Bug40751DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/Bug40751DUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/Bug40751DUnitTest.java
index e98c608..d906c09 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/Bug40751DUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/Bug40751DUnitTest.java
@@ -48,7 +48,7 @@ public class Bug40751DUnitTest extends CacheTestCase {
}
@Override
- protected final void postTearDownCacheTestCase() throws Exception {
+ public final void postTearDownCacheTestCase() throws Exception {
disconnectAllFromDS();
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ConsoleDistributionManagerDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ConsoleDistributionManagerDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ConsoleDistributionManagerDUnitTest.java
index 847edb5..2aa9d27 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ConsoleDistributionManagerDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ConsoleDistributionManagerDUnitTest.java
@@ -71,7 +71,8 @@ public class ConsoleDistributionManagerDUnitTest
// this.lastAlert = alert;
}
- public void setUp() throws Exception {
+ @Override
+ public final void postSetUp() throws Exception {
boolean finishedSetup = false;
IgnoredException.addIgnoredException("Error occurred while reading system log");
try {
@@ -83,7 +84,6 @@ public class ConsoleDistributionManagerDUnitTest
DistributionManager.isDedicatedAdminVM = true;
- super.setUp();
populateCache();
RemoteTransportConfig transport = null;
@@ -145,12 +145,12 @@ public class ConsoleDistributionManagerDUnitTest
}
@Override
- protected final void preTearDownCacheTestCase() throws Exception {
+ public final void preTearDownCacheTestCase() throws Exception {
this.agent.disconnect();
}
@Override
- protected final void postTearDownCacheTestCase() throws Exception {
+ public final void postTearDownCacheTestCase() throws Exception {
try {
disconnectFromDS(); //make sure there's no ldm lying around
} finally {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionAdvisorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionAdvisorDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionAdvisorDUnitTest.java
index d11d22b..391cec9 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionAdvisorDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionAdvisorDUnitTest.java
@@ -41,9 +41,9 @@ public class DistributionAdvisorDUnitTest extends DistributedTestCase {
public DistributionAdvisorDUnitTest(String name) {
super(name);
}
-
- public void setUp() throws Exception {
- super.setUp();
+
+ @Override
+ public final void postSetUp() throws Exception {
// connect to distributed system in every VM
Invoke.invokeInEveryVM(new SerializableRunnable("DistributionAdvisorDUnitTest: SetUp") {
public void run() {
@@ -84,7 +84,7 @@ public class DistributionAdvisorDUnitTest extends DistributedTestCase {
}
@Override
- protected final void preTearDown() throws Exception {
+ public final void preTearDown() throws Exception {
this.advisor.close();
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionManagerDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionManagerDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionManagerDUnitTest.java
index 25eec69..81d35d4 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionManagerDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionManagerDUnitTest.java
@@ -46,6 +46,7 @@ import com.gemstone.gemfire.distributed.internal.membership.gms.MembershipManage
import com.gemstone.gemfire.distributed.internal.membership.gms.interfaces.Manager;
import com.gemstone.gemfire.distributed.internal.membership.gms.mgr.GMSMembershipManager;
import com.gemstone.gemfire.internal.logging.LogService;
+import com.gemstone.gemfire.test.dunit.internal.JUnit3DistributedTestCase;
import com.gemstone.gemfire.test.dunit.DistributedTestCase;
import com.gemstone.gemfire.test.dunit.Host;
import com.gemstone.gemfire.test.dunit.IgnoredException;
@@ -75,9 +76,8 @@ public class DistributionManagerDUnitTest extends DistributedTestCase {
}
@Override
- public void setUp() throws Exception {
+ public void preSetUp() throws Exception {
disconnectAllFromDS();
- super.setUp();
}
//////// Test Methods
@@ -310,18 +310,18 @@ public class DistributionManagerDUnitTest extends DistributedTestCase {
rgn.put("bomb", "pow!"); // this will hang until vm1 responds
rgn.getCache().close();
- system.disconnect();
+ basicGetSystem().disconnect();
vm1.invoke(new SerializableRunnable("disconnect from ds") {
public void run() {
if (!myCache.isClosed()) {
- if (system.isConnected()) {
- system.disconnect();
+ if (basicGetSystem().isConnected()) {
+ basicGetSystem().disconnect();
}
myCache = null;
}
- if (system.isConnected()) {
- system.disconnect();
+ if (basicGetSystem().isConnected()) {
+ basicGetSystem().disconnect();
}
synchronized(alertGuard) {
assertTrue(alertReceived);
@@ -347,8 +347,8 @@ public class DistributionManagerDUnitTest extends DistributedTestCase {
public void afterCreate(EntryEvent event) {
try {
if (playDead) {
- MembershipManagerHelper.beSickMember(system);
- MembershipManagerHelper.playDead(system);
+ MembershipManagerHelper.beSickMember(getSystemStatic());
+ MembershipManagerHelper.playDead(getSystemStatic());
}
Thread.sleep(15000);
}
@@ -373,7 +373,7 @@ public class DistributionManagerDUnitTest extends DistributedTestCase {
static void createAlertListener() throws Exception {
DistributedSystemConfig config =
- AdminDistributedSystemFactory.defineDistributedSystem(system, null);
+ AdminDistributedSystemFactory.defineDistributedSystem(getSystemStatic(), null);
adminSystem =
AdminDistributedSystemFactory.getDistributedSystem(config);
adminSystem.setAlertLevel(AlertLevel.SEVERE);
@@ -423,13 +423,13 @@ public class DistributionManagerDUnitTest extends DistributedTestCase {
.setScope(Scope.DISTRIBUTED_ACK)
.setDataPolicy(DataPolicy.REPLICATE)
.create("testRegion");
- system.getLogWriter().info("<ExpectedException action=add>sec have elapsed while waiting for replies</ExpectedException>");
+ basicGetSystem().getLogWriter().info("<ExpectedException action=add>sec have elapsed while waiting for replies</ExpectedException>");
vm1.invoke(new SerializableRunnable("Connect to distributed system") {
public void run() {
props.setProperty(DistributionConfig.NAME_NAME, "sleeper");
getSystem(props);
- LogWriter log = system.getLogWriter();
+ LogWriter log = basicGetSystem().getLogWriter();
log.info("<ExpectedException action=add>service failure</ExpectedException>");
log.info("<ExpectedException action=add>com.gemstone.gemfire.ForcedDisconnectException</ExpectedException>");
RegionFactory rf = new RegionFactory();
@@ -449,15 +449,15 @@ public class DistributionManagerDUnitTest extends DistributedTestCase {
rgn.getCache().close();
- system.getLogWriter().info("<ExpectedException action=remove>sec have elapsed while waiting for replies</ExpectedException>");
- system.disconnect();
+ basicGetSystem().getLogWriter().info("<ExpectedException action=remove>sec have elapsed while waiting for replies</ExpectedException>");
+ basicGetSystem().disconnect();
vm1.invoke(new SerializableRunnable("wait for forced disconnect") {
public void run() {
// wait a while for the DS to finish disconnecting
WaitCriterion ev = new WaitCriterion() {
public boolean done() {
- return !system.isConnected();
+ return !basicGetSystem().isConnected();
}
public String description() {
return null;
@@ -477,14 +477,14 @@ public class DistributionManagerDUnitTest extends DistributedTestCase {
Wait.waitForCriterion(ev, 20 * 1000, 200, false);
if (!myCache.isClosed()) {
- if (system.isConnected()) {
- system.disconnect();
+ if (basicGetSystem().isConnected()) {
+ basicGetSystem().disconnect();
}
myCache = null;
throw new RuntimeException("Test Failed - vm1's cache is not closed");
}
- if (system.isConnected()) {
- system.disconnect();
+ if (basicGetSystem().isConnected()) {
+ basicGetSystem().disconnect();
throw new RuntimeException("Test Failed - vm1's system should have been disconnected");
}
@@ -545,7 +545,7 @@ public class DistributionManagerDUnitTest extends DistributedTestCase {
public void testWaitForViewInstallation() {
getSystem(new Properties());
- MembershipManager mgr = system.getDM().getMembershipManager();
+ MembershipManager mgr = basicGetSystem().getDM().getMembershipManager();
final NetView v = mgr.getView();
@@ -553,7 +553,7 @@ public class DistributionManagerDUnitTest extends DistributedTestCase {
Thread t = new Thread("wait for view installation") {
public void run() {
try {
- ((DistributionManager)system.getDM()).waitForViewInstallation(v.getViewId()+1);
+ ((DistributionManager)basicGetSystem().getDM()).waitForViewInstallation(v.getViewId()+1);
synchronized(passed) {
passed[0] = true;
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ProductUseLogDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ProductUseLogDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ProductUseLogDUnitTest.java
index 149d6d8..e2217b5 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ProductUseLogDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ProductUseLogDUnitTest.java
@@ -1,19 +1,19 @@
-/*
- * 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.
- */
+/*
+ * 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 com.gemstone.gemfire.distributed.internal;
import java.io.BufferedReader;
@@ -27,24 +27,24 @@ import com.gemstone.gemfire.cache.CacheFactory;
import com.gemstone.gemfire.cache.server.CacheServer;
import com.gemstone.gemfire.distributed.Locator;
import com.gemstone.gemfire.internal.AvailablePort;
-import com.gemstone.gemfire.internal.cache.CacheServerImpl;
-import com.gemstone.gemfire.test.dunit.Assert;
-import com.gemstone.gemfire.test.dunit.DistributedTestCase;
-import com.gemstone.gemfire.test.dunit.Host;
-import com.gemstone.gemfire.test.dunit.SerializableRunnable;
+import com.gemstone.gemfire.internal.cache.CacheServerImpl;
+import com.gemstone.gemfire.test.dunit.Assert;
+import com.gemstone.gemfire.test.dunit.DistributedTestCase;
+import com.gemstone.gemfire.test.dunit.Host;
+import com.gemstone.gemfire.test.dunit.SerializableRunnable;
import com.gemstone.gemfire.test.dunit.VM;
public class ProductUseLogDUnitTest extends DistributedTestCase {
public ProductUseLogDUnitTest(String name) {
super(name);
- }
-
- @Override
- public Properties getDistributedSystemProperties() {
- Properties p = super.getDistributedSystemProperties();
- p.put(DistributionConfig.USE_CLUSTER_CONFIGURATION_NAME, "false");
- return p;
+ }
+
+ @Override
+ public Properties getDistributedSystemProperties() {
+ Properties p = super.getDistributedSystemProperties();
+ p.put(DistributionConfig.USE_CLUSTER_CONFIGURATION_NAME, "false");
+ return p;
}
public void testMembershipMonitoring() throws Exception {
@@ -54,8 +54,8 @@ public class ProductUseLogDUnitTest extends DistributedTestCase {
// use a locator so we will monitor server load and record member->server mappings
int locatorPort = AvailablePort.getRandomAvailablePort(AvailablePort.SOCKET);
Properties p = new Properties();
- p.put(DistributionConfig.START_LOCATOR_NAME, "localhost["+locatorPort+"],peer=false");
- p.put(DistributionConfig.USE_CLUSTER_CONFIGURATION_NAME, "false");
+ p.put(DistributionConfig.START_LOCATOR_NAME, "localhost["+locatorPort+"],peer=false");
+ p.put(DistributionConfig.USE_CLUSTER_CONFIGURATION_NAME, "false");
InternalDistributedSystem system = getSystem(p);
InternalLocator locator = (InternalLocator)Locator.getLocator();
@@ -71,7 +71,7 @@ public class ProductUseLogDUnitTest extends DistributedTestCase {
public void run() {
InternalDistributedSystem system = getSystem();
Cache cache = CacheFactory.create(system);
- CacheServer server = cache.addCacheServer();
+ CacheServer server = cache.addCacheServer();
server.setPort(0);
try {
server.start();
@@ -101,8 +101,8 @@ public class ProductUseLogDUnitTest extends DistributedTestCase {
return sb.toString();
}
- @Override
- protected final void preTearDown() throws Exception {
+ @Override
+ public final void preTearDown() throws Exception {
disconnectAllFromDS();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/GemFireDeadlockDetectorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/GemFireDeadlockDetectorDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/GemFireDeadlockDetectorDUnitTest.java
index bc3bee6..9120366 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/GemFireDeadlockDetectorDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/GemFireDeadlockDetectorDUnitTest.java
@@ -53,7 +53,7 @@ public class GemFireDeadlockDetectorDUnitTest extends CacheTestCase {
@Override
- protected final void preTearDownCacheTestCase() throws Exception {
+ public final void preTearDownCacheTestCase() throws Exception {
disconnectAllFromDS();
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/tcpserver/TcpServerBackwardCompatDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/tcpserver/TcpServerBackwardCompatDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/tcpserver/TcpServerBackwardCompatDUnitTest.java
index 3685ac4..3ca83fb 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/tcpserver/TcpServerBackwardCompatDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/tcpserver/TcpServerBackwardCompatDUnitTest.java
@@ -67,8 +67,7 @@ public class TcpServerBackwardCompatDUnitTest extends DistributedTestCase {
}
@Override
- public void setUp() throws Exception {
- super.setUp();
+ public final void postSetUp() throws Exception {
disconnectAllFromDS();
Invoke.invokeInEveryVM(new CacheSerializableRunnable("Set TcpServer.isTesting true") {
@@ -80,7 +79,7 @@ public class TcpServerBackwardCompatDUnitTest extends DistributedTestCase {
}
@Override
- protected final void preTearDown() throws Exception {
+ public final void preTearDown() throws Exception {
Invoke.invokeInEveryVM(new CacheSerializableRunnable("Set TcpServer.isTesting true") {
@Override
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/disttx/CacheMapDistTXDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/disttx/CacheMapDistTXDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/disttx/CacheMapDistTXDUnitTest.java
index c0e8268..f0ea16d 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/disttx/CacheMapDistTXDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/disttx/CacheMapDistTXDUnitTest.java
@@ -32,21 +32,32 @@ public class CacheMapDistTXDUnitTest extends CacheMapTxnDUnitTest {
super(name);
}
- public void setUp() throws Exception {
+ @Override
+ public final void preSetUp() throws Exception {
Host host = Host.getHost(0);
VM vm0 = host.getVM(0);
VM vm1 = host.getVM(1);
vm0.invoke(() -> CacheMapDistTXDUnitTest.setDistributedTX());
vm1.invoke(() -> CacheMapDistTXDUnitTest.setDistributedTX());
+ }
- super.setUp(); // creates cache
+ @Override
+ public final void postSetUpCacheMapTxnDUnitTest() throws Exception {
+ Host host = Host.getHost(0);
+ VM vm0 = host.getVM(0);
+ VM vm1 = host.getVM(1);
- // make sure that "distributed-transactions" is true
+ // make sure that "distributed-transactions" is true
vm0.invoke(() -> CacheMapDistTXDUnitTest.checkIsDistributedTX());
vm1.invoke(() -> CacheMapDistTXDUnitTest.checkIsDistributedTX());
}
+ @Override
+ public final void postTearDown() throws Exception {
+ props.clear();
+ }
+
public static void setDistributedTX() {
props.setProperty(DistributionConfig.DISTRIBUTED_TRANSACTIONS_NAME, "true");
// props.setProperty(DistributionConfig.LOG_LEVEL_NAME, "fine");
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/57c8600b/geode-core/src/test/java/com/gemstone/gemfire/disttx/DistTXDebugDUnitDisabledTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/disttx/DistTXDebugDUnitDisabledTest.java b/geode-core/src/test/java/com/gemstone/gemfire/disttx/DistTXDebugDUnitDisabledTest.java
new file mode 100644
index 0000000..dbd5d3c
--- /dev/null
+++ b/geode-core/src/test/java/com/gemstone/gemfire/disttx/DistTXDebugDUnitDisabledTest.java
@@ -0,0 +1,1016 @@
+/*
+ * 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 com.gemstone.gemfire.disttx;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.Serializable;
+import java.util.HashMap;
+
+import com.gemstone.gemfire.DataSerializable;
+import com.gemstone.gemfire.DataSerializer;
+import com.gemstone.gemfire.cache.AttributesFactory;
+import com.gemstone.gemfire.cache.CacheException;
+import com.gemstone.gemfire.cache.CacheTransactionManager;
+import com.gemstone.gemfire.cache.DataPolicy;
+import com.gemstone.gemfire.cache.EntryOperation;
+import com.gemstone.gemfire.cache.PartitionAttributes;
+import com.gemstone.gemfire.cache.PartitionAttributesFactory;
+import com.gemstone.gemfire.cache.PartitionResolver;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.Scope;
+import com.gemstone.gemfire.cache30.CacheTestCase;
+import com.gemstone.gemfire.internal.cache.PartitionedRegion;
+import com.gemstone.gemfire.internal.cache.control.InternalResourceManager;
+import com.gemstone.gemfire.internal.cache.execute.CustomerIDPartitionResolver;
+import com.gemstone.gemfire.test.dunit.Host;
+import com.gemstone.gemfire.test.dunit.Invoke;
+import com.gemstone.gemfire.test.dunit.LogWriterUtils;
+import com.gemstone.gemfire.test.dunit.SerializableCallable;
+import com.gemstone.gemfire.test.dunit.SerializableRunnable;
+import com.gemstone.gemfire.test.dunit.VM;
+
+/**
+ * TODO: reenable this test and fix it when work on Dist TX resumes -- it fails with no members to host buckets
+ */
+public class DistTXDebugDUnitDisabledTest extends CacheTestCase {
+ VM accessor = null;
+ VM dataStore1 = null;
+ VM dataStore2 = null;
+ VM dataStore3 = null;
+
+ public DistTXDebugDUnitDisabledTest(String name) {
+ super(name);
+ }
+
+ @Override
+ public final void postSetUp() throws Exception {
+ Host host = Host.getHost(0);
+ dataStore1 = host.getVM(0);
+ dataStore2 = host.getVM(1);
+ dataStore3 = host.getVM(2);
+ accessor = host.getVM(3);
+ postSetUpDistTXDebugDUnitTest();
+ }
+
+ protected void postSetUpDistTXDebugDUnitTest() throws Exception {
+ }
+
+ @Override
+ public final void postTearDownCacheTestCase() throws Exception {
+ Invoke.invokeInEveryVM(new SerializableRunnable() {
+ public void run() {
+ InternalResourceManager.setResourceObserver(null);
+ }
+ });
+ InternalResourceManager.setResourceObserver(null);
+ }
+
+ public static void createCacheInVm() {
+ new DistTXDebugDUnitDisabledTest("temp").getCache();
+ }
+
+ protected void createCacheInAllVms() {
+ dataStore1.invoke(() -> DistTXDebugDUnitDisabledTest.createCacheInVm());
+ dataStore2.invoke(() -> DistTXDebugDUnitDisabledTest.createCacheInVm());
+ dataStore3.invoke(() -> DistTXDebugDUnitDisabledTest.createCacheInVm());
+ accessor.invoke(() -> DistTXDebugDUnitDisabledTest.createCacheInVm());
+ }
+
+ public static void createPR(String partitionedRegionName, Integer redundancy,
+ Integer localMaxMemory, Integer totalNumBuckets, Object colocatedWith,
+ Boolean isPartitionResolver) {
+ createPR(partitionedRegionName, redundancy, localMaxMemory,
+ totalNumBuckets, colocatedWith, isPartitionResolver,
+ Boolean.TRUE/*Concurrency checks; By default is false*/);
+ }
+
+ public static void createPR(String partitionedRegionName, Integer redundancy,
+ Integer localMaxMemory, Integer totalNumBuckets, Object colocatedWith,
+ Boolean isPartitionResolver, Boolean concurrencyChecks) {
+ PartitionAttributesFactory paf = new PartitionAttributesFactory();
+
+ paf.setRedundantCopies(redundancy.intValue());
+ if (localMaxMemory != null) {
+ paf.setLocalMaxMemory(localMaxMemory.intValue());
+ }
+ if (totalNumBuckets != null) {
+ paf.setTotalNumBuckets(totalNumBuckets.intValue());
+ }
+ if (colocatedWith != null) {
+ paf.setColocatedWith((String) colocatedWith);
+ }
+ if (isPartitionResolver.booleanValue()) {
+ paf.setPartitionResolver(new CustomerIDPartitionResolver(
+ "CustomerIDPartitionResolver"));
+ }
+ PartitionAttributes prAttr = paf.create();
+ AttributesFactory attr = new AttributesFactory();
+ attr.setPartitionAttributes(prAttr);
+ attr.setConcurrencyChecksEnabled(concurrencyChecks);
+ // assertNotNull(basicGetCache());
+ // Region pr = basicGetCache().createRegion(partitionedRegionName,
+ // attr.create());
+ assertNotNull(basicGetCache());
+ Region pr = basicGetCache().createRegion(partitionedRegionName, attr.create());
+ assertNotNull(pr);
+ LogWriterUtils.getLogWriter().info(
+ "Partitioned Region " + partitionedRegionName
+ + " created Successfully :" + pr.toString());
+ }
+
+ protected void createPartitionedRegion(Object[] attributes) {
+ dataStore1.invoke(DistTXDebugDUnitDisabledTest.class, "createPR", attributes);
+ dataStore2.invoke(DistTXDebugDUnitDisabledTest.class, "createPR", attributes);
+ dataStore3.invoke(DistTXDebugDUnitDisabledTest.class, "createPR", attributes);
+ // make Local max memory = o for accessor
+ attributes[2] = new Integer(0);
+ accessor.invoke(DistTXDebugDUnitDisabledTest.class, "createPR", attributes);
+ }
+
+ public static void destroyPR(String partitionedRegionName) {
+ // assertNotNull(basicGetCache());
+ // Region pr = basicGetCache().getRegion(partitionedRegionName);
+
+ assertNotNull(basicGetCache());
+ Region pr = basicGetCache().getRegion(partitionedRegionName);
+ assertNotNull(pr);
+ LogWriterUtils.getLogWriter().info(
+ "Destroying Partitioned Region " + partitionedRegionName);
+ pr.destroyRegion();
+ }
+
+ public static void createRR(String replicatedRegionName, boolean empty) {
+ AttributesFactory af = new AttributesFactory();
+ af.setScope(Scope.DISTRIBUTED_ACK);
+ if (empty) {
+ af.setDataPolicy(DataPolicy.EMPTY);
+ } else {
+ af.setDataPolicy(DataPolicy.REPLICATE);
+ }
+ // Region rr = basicGetCache().createRegion(replicatedRegionName,
+ // af.create());
+ Region rr = basicGetCache().createRegion(replicatedRegionName, af.create());
+ assertNotNull(rr);
+ LogWriterUtils.getLogWriter().info(
+ "Replicated Region " + replicatedRegionName + " created Successfully :"
+ + rr.toString());
+ }
+
+ protected void createReplicatedRegion(Object[] attributes) {
+ dataStore1.invoke(DistTXDebugDUnitDisabledTest.class, "createRR", attributes);
+ dataStore2.invoke(DistTXDebugDUnitDisabledTest.class, "createRR", attributes);
+ dataStore3.invoke(DistTXDebugDUnitDisabledTest.class, "createRR", attributes);
+ // DataPolicy.EMPTY for accessor
+ attributes[1] = Boolean.TRUE;
+ accessor.invoke(DistTXDebugDUnitDisabledTest.class, "createRR", attributes);
+ }
+
+ public void testTXPR() throws Exception {
+ createCacheInAllVms();
+ Object[] prAttrs = new Object[] { "pregion1", 1, null, 3, null,
+ Boolean.FALSE, Boolean.FALSE };
+ createPartitionedRegion(prAttrs);
+
+ SerializableCallable TxOps = new SerializableCallable("TxOps") {
+ @Override
+ public Object call() throws CacheException {
+ // PartitionedRegion pr1 = (PartitionedRegion)
+ // basicGetCache().getRegion(
+ // "pregion1");
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ // put some data (non tx ops)
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.put");
+ pr1.put(dummy, "1_entry__" + i);
+ }
+
+ // put in tx and commit
+ // CacheTransactionManager ctx = basicGetCache()
+ // .getCacheTransactionManager();
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ ctx.setDistributed(true);
+ ctx.begin();
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.put in tx 1");
+ pr1.put(dummy, "2_entry__" + i);
+ }
+ ctx.commit();
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.get");
+ assertEquals("2_entry__" + i, pr1.get(dummy));
+ }
+
+ // put data in tx and rollback
+ ctx.begin();
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.put in tx 2");
+ pr1.put(dummy, "3_entry__" + i);
+ }
+ ctx.rollback();
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.get");
+ assertEquals("2_entry__" + i, pr1.get(dummy));
+ }
+
+ // destroy data in tx and commit
+ ctx.begin();
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.destroy in tx 3");
+ pr1.destroy(dummy);
+ }
+ ctx.commit();
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.get");
+ assertEquals(null, pr1.get(dummy));
+ }
+
+ // verify data size on all replicas
+ SerializableCallable verifySize = new SerializableCallable("getOps") {
+ @Override
+ public Object call() throws CacheException {
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache()
+ .getRegion("pregion1");
+ LogWriterUtils.getLogWriter().info(
+ " calling pr.getLocalSize " + pr1.getLocalSize());
+ assertEquals(0, pr1.getLocalSize());
+ return null;
+ }
+ };
+ dataStore1.invoke(verifySize);
+ dataStore2.invoke(verifySize);
+ dataStore3.invoke(verifySize);
+
+ return null;
+ }
+ };
+
+ accessor.invoke(TxOps);
+
+ accessor.invoke(() -> DistTXDebugDUnitDisabledTest.destroyPR( "pregion1" ));
+ }
+
+ public void testTXDestroy_invalidate() throws Exception {
+ createCacheInAllVms();
+ Object[] prAttrs = new Object[] { "pregion1", 1, null, 3, null,
+ Boolean.FALSE, Boolean.FALSE };
+ createPartitionedRegion(prAttrs);
+
+ Object[] rrAttrs = new Object[] { "rregion1", Boolean.FALSE };
+ createReplicatedRegion(rrAttrs);
+
+ SerializableCallable TxOps = new SerializableCallable("TxOps") {
+ @Override
+ public Object call() throws CacheException {
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ Region rr1 = basicGetCache().getRegion("rregion1");
+
+ // put some data (non tx ops)
+ for (int i = 1; i <= 6; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling non-tx put");
+ pr1.put(dummy, "1_entry__" + i);
+ rr1.put(dummy, "1_entry__" + i);
+ }
+
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ ctx.setDistributed(true);
+ // destroy data in tx and commit
+ ctx.begin();
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(
+ " calling pr1.destroy in tx key=" + dummy);
+ pr1.destroy(dummy);
+ LogWriterUtils.getLogWriter().info(" calling rr1.destroy in tx key=" + i);
+ rr1.destroy(dummy);
+ }
+ for (int i = 4; i <= 6; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(
+ " calling pr1.invalidate in tx key=" + dummy);
+ pr1.invalidate(dummy);
+ LogWriterUtils.getLogWriter().info(" calling rr1.invalidate in tx key=" + i);
+ rr1.invalidate(dummy);
+ }
+ ctx.commit();
+
+ // verify the data
+ for (int i = 1; i <= 6; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr1.get");
+ assertEquals(null, pr1.get(dummy));
+ LogWriterUtils.getLogWriter().info(" calling rr1.get");
+ assertEquals(null, rr1.get(i));
+ }
+ return null;
+ }
+ };
+
+ accessor.invoke(TxOps);
+
+ // verify data size on all replicas
+ SerializableCallable verifySize = new SerializableCallable("getOps") {
+ @Override
+ public Object call() throws CacheException {
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ Region rr1 = basicGetCache().getRegion("rregion1");
+ LogWriterUtils.getLogWriter().info(
+ " calling pr1.getLocalSize " + pr1.getLocalSize());
+ assertEquals(2, pr1.getLocalSize());
+ LogWriterUtils.getLogWriter().info(" calling rr1.size " + rr1.size());
+ assertEquals(3, rr1.size());
+ return null;
+ }
+ };
+ dataStore1.invoke(verifySize);
+ dataStore2.invoke(verifySize);
+ dataStore3.invoke(verifySize);
+
+ accessor.invoke(() -> DistTXDebugDUnitDisabledTest.destroyPR( "pregion1" ));
+ }
+
+ public void testTXPR_RR() throws Exception {
+ createCacheInAllVms();
+ Object[] prAttrs = new Object[] { "pregion1", 1, null, 3, null,
+ Boolean.FALSE, Boolean.FALSE };
+ createPartitionedRegion(prAttrs);
+
+ Object[] rrAttrs = new Object[] { "rregion1", Boolean.FALSE };
+ createReplicatedRegion(rrAttrs);
+
+ SerializableCallable TxOps = new SerializableCallable("TxOps") {
+ @Override
+ public Object call() throws CacheException {
+ // PartitionedRegion pr1 = (PartitionedRegion)
+ // basicGetCache().getRegion(
+ // "pregion1");
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ // Region rr1 = basicGetCache().getRegion("rregion1");
+ Region rr1 = basicGetCache().getRegion("rregion1");
+ // put some data (non tx ops)
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.put non-tx PR1_entry__" + i);
+ pr1.put(dummy, "PR1_entry__" + i);
+ LogWriterUtils.getLogWriter().info(" calling rr.put non-tx RR1_entry__" + i);
+ rr1.put(new Integer(i), "RR1_entry__" + i);
+ }
+
+ // put in tx and commit
+ // CacheTransactionManager ctx = basicGetCache()
+ // .getCacheTransactionManager();
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ ctx.setDistributed(true);
+ ctx.begin();
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.put in tx PR2_entry__" + i);
+ pr1.put(dummy, "PR2_entry__" + i);
+ LogWriterUtils.getLogWriter().info(" calling rr.put in tx RR2_entry__" + i);
+ rr1.put(new Integer(i), "RR2_entry__" + i);
+ }
+ ctx.commit();
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.get PR2_entry__" + i);
+ assertEquals("PR2_entry__" + i, pr1.get(dummy));
+ LogWriterUtils.getLogWriter().info(" calling rr.get RR2_entry__" + i);
+ assertEquals("RR2_entry__" + i, rr1.get(new Integer(i)));
+ }
+ return null;
+ }
+ };
+
+ accessor.invoke(TxOps);
+
+ // verify data size on all replicas
+ SerializableCallable verifySize = new SerializableCallable("getOps") {
+ @Override
+ public Object call() throws CacheException {
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ LogWriterUtils.getLogWriter().info(
+ " calling pr.getLocalSize " + pr1.getLocalSize());
+ assertEquals(2, pr1.getLocalSize());
+
+ Region rr1 = basicGetCache().getRegion("rregion1");
+ LogWriterUtils.getLogWriter()
+ .info(" calling rr.getLocalSize " + rr1.size());
+ assertEquals(3, rr1.size());
+ return null;
+ }
+ };
+ dataStore1.invoke(verifySize);
+ dataStore2.invoke(verifySize);
+ dataStore3.invoke(verifySize);
+
+ accessor.invoke(() -> DistTXDebugDUnitDisabledTest.destroyPR( "pregion1" ));
+ }
+
+ public void testTXPR2() throws Exception {
+ createCacheInAllVms();
+ Object[] prAttrs = new Object[] { "pregion1", 1, null, 3, null,
+ Boolean.FALSE, Boolean.FALSE };
+ createPartitionedRegion(prAttrs);
+
+ SerializableCallable TxOps = new SerializableCallable("TxOps") {
+ @Override
+ public Object call() throws CacheException {
+ // PartitionedRegion pr1 = (PartitionedRegion)
+ // basicGetCache().getRegion(
+ // "pregion1");
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+
+ // put in tx and commit
+ // CacheTransactionManager ctx = basicGetCache()
+ // .getCacheTransactionManager();
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ ctx.setDistributed(true);
+ ctx.begin();
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.put in tx 1");
+ pr1.put(dummy, "2_entry__" + i);
+ }
+ ctx.commit();
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.get " + pr1.get(dummy));
+ assertEquals("2_entry__" + i, pr1.get(dummy));
+ }
+ return null;
+ }
+ };
+
+ accessor.invoke(TxOps);
+
+ SerializableCallable TxGetOps = new SerializableCallable("TxGetOps") {
+ @Override
+ public Object call() throws CacheException {
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ LogWriterUtils.getLogWriter().info(
+ " calling pr.getLocalSize " + pr1.getLocalSize());
+ assertEquals(2, pr1.getLocalSize());
+ return null;
+ }
+ };
+
+ dataStore1.invoke(TxGetOps);
+ dataStore2.invoke(TxGetOps);
+ dataStore3.invoke(TxGetOps);
+
+ SerializableCallable TxRollbackOps = new SerializableCallable("TxOps") {
+ @Override
+ public Object call() throws CacheException {
+ // PartitionedRegion pr1 = (PartitionedRegion)
+ // basicGetCache().getRegion(
+ // "pregion1");
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+
+ // put in tx and commit
+ // CacheTransactionManager ctx = basicGetCache()
+ // .getCacheTransactionManager();
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ ctx.setDistributed(true);
+ ctx.begin();
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(
+ " calling pr.put in tx for rollback no_entry__" + i);
+ pr1.put(dummy, "no_entry__" + i);
+ }
+ ctx.rollback();
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(
+ " calling pr.get after rollback " + pr1.get(dummy));
+ assertEquals("2_entry__" + i, pr1.get(dummy));
+ }
+ return null;
+ }
+ };
+
+ accessor.invoke(TxRollbackOps);
+
+ accessor.invoke(() -> DistTXDebugDUnitDisabledTest.destroyPR( "pregion1" ));
+ }
+
+ public void testTXPRRR2_create() throws Exception {
+ createCacheInAllVms();
+ Object[] prAttrs = new Object[] { "pregion1", 1, null, 3, null,
+ Boolean.FALSE, Boolean.FALSE };
+ createPartitionedRegion(prAttrs);
+
+ Object[] rrAttrs = new Object[] { "rregion1", Boolean.FALSE };
+ createReplicatedRegion(rrAttrs);
+
+ SerializableCallable TxOps = new SerializableCallable("TxOps") {
+ @Override
+ public Object call() throws CacheException {
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ Region rr1 = basicGetCache().getRegion("rregion1");
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ ctx.setDistributed(true);
+ ctx.begin();
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.create in tx 1");
+ pr1.create(dummy, "2_entry__" + i);
+
+ LogWriterUtils.getLogWriter().info(" calling rr.create " + "2_entry__" + i);
+ rr1.create(new Integer(i), "2_entry__" + i);
+ }
+ ctx.commit();
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.get " + pr1.get(dummy));
+ assertEquals("2_entry__" + i, pr1.get(dummy));
+
+ LogWriterUtils.getLogWriter().info(
+ " calling rr.get " + rr1.get(new Integer(i)));
+ assertEquals("2_entry__" + i, rr1.get(new Integer(i)));
+ }
+ return null;
+ }
+ };
+
+ accessor.invoke(TxOps);
+
+ // verify data size on all replicas
+ SerializableCallable verifySize = new SerializableCallable("getOps") {
+ @Override
+ public Object call() throws CacheException {
+ Region rr1 = basicGetCache().getRegion("rregion1");
+ LogWriterUtils.getLogWriter()
+ .info(" calling rr.getLocalSize " + rr1.size());
+ assertEquals(3, rr1.size());
+
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ LogWriterUtils.getLogWriter().info(
+ " calling pr.getLocalSize " + pr1.getLocalSize());
+ assertEquals(2, pr1.getLocalSize());
+ return null;
+ }
+ };
+ dataStore1.invoke(verifySize);
+ dataStore2.invoke(verifySize);
+ dataStore3.invoke(verifySize);
+ }
+
+ public void testTXPRRR2_putall() throws Exception {
+ createCacheInAllVms();
+ Object[] prAttrs = new Object[] { "pregion1", 1, null, 3, null,
+ Boolean.FALSE, Boolean.FALSE };
+ createPartitionedRegion(prAttrs);
+
+ Object[] rrAttrs = new Object[] { "rregion1", Boolean.FALSE };
+ createReplicatedRegion(rrAttrs);
+
+ SerializableCallable TxOps = new SerializableCallable("TxOps") {
+ @Override
+ public Object call() throws CacheException {
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ Region rr1 = basicGetCache().getRegion("rregion1");
+
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ ctx.setDistributed(true);
+ ctx.begin();
+ HashMap<DummyKeyBasedRoutingResolver, String> phm = new HashMap<DummyKeyBasedRoutingResolver, String>();
+ HashMap<Integer, String> rhm = new HashMap<Integer, String>();
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ phm.put(dummy, "2_entry__" + i);
+ rhm.put(i, "2_entry__" + i);
+ }
+ pr1.putAll(phm);
+ rr1.putAll(rhm);
+ ctx.commit();
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.get " + pr1.get(dummy));
+ assertEquals("2_entry__" + i, pr1.get(dummy));
+
+ LogWriterUtils.getLogWriter().info(
+ " calling rr.get " + rr1.get(new Integer(i)));
+ assertEquals("2_entry__" + i, rr1.get(new Integer(i)));
+ }
+ return null;
+ }
+ };
+
+ accessor.invoke(TxOps);
+
+ // verify data size on all replicas
+ SerializableCallable verifySize = new SerializableCallable("getOps") {
+ @Override
+ public Object call() throws CacheException {
+ Region rr1 = basicGetCache().getRegion("rregion1");
+ LogWriterUtils.getLogWriter()
+ .info(" calling rr.getLocalSize " + rr1.size());
+ assertEquals(3, rr1.size());
+
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ LogWriterUtils.getLogWriter().info(
+ " calling pr.getLocalSize " + pr1.getLocalSize());
+ assertEquals(2, pr1.getLocalSize());
+ return null;
+ }
+ };
+ dataStore1.invoke(verifySize);
+ dataStore2.invoke(verifySize);
+ dataStore3.invoke(verifySize);
+
+// accessor.invoke(TxOps);
+ }
+
+ public void testTXPR_putall() throws Exception {
+ createCacheInAllVms();
+ Object[] prAttrs = new Object[] { "pregion1", 1, null, 3, null,
+ Boolean.FALSE, Boolean.FALSE };
+ createPartitionedRegion(prAttrs);
+
+ SerializableCallable TxOps = new SerializableCallable("TxOps") {
+ @Override
+ public Object call() throws CacheException {
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ ctx.setDistributed(true);
+ ctx.begin();
+ HashMap<DummyKeyBasedRoutingResolver, String> phm = new HashMap<DummyKeyBasedRoutingResolver, String>();
+ HashMap<Integer, String> rhm = new HashMap<Integer, String>();
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ phm.put(dummy, "2_entry__" + i);
+ }
+ pr1.putAll(phm);
+ ctx.commit();
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.get " + pr1.get(dummy));
+ assertEquals("2_entry__" + i, pr1.get(dummy));
+
+ }
+ return null;
+ }
+ };
+
+// dataStore1.invoke(TxOps);
+ accessor.invoke(TxOps);
+
+ // verify data size on all replicas
+ SerializableCallable verifySize = new SerializableCallable("getOps") {
+ @Override
+ public Object call() throws CacheException {
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ LogWriterUtils.getLogWriter().info(
+ " calling pr.getLocalSize " + pr1.getLocalSize());
+ assertEquals(2, pr1.getLocalSize());
+ return null;
+ }
+ };
+ dataStore1.invoke(verifySize);
+ dataStore2.invoke(verifySize);
+ dataStore3.invoke(verifySize);
+
+// accessor.invoke(TxOps);
+ }
+
+
+ public void testTXRR_removeAll() throws Exception {
+ performRR_removeAllTest(false);
+ }
+
+ public void testTXRR_removeAll_dataNodeAsCoordinator() throws Exception {
+ performRR_removeAllTest(true);
+ }
+
+ /**
+ * @param dataNodeAsCoordinator TODO
+ *
+ */
+ private void performRR_removeAllTest(boolean dataNodeAsCoordinator) {
+ createCacheInAllVms();
+ Object[] rrAttrs = new Object[] { "rregion1", Boolean.FALSE };
+ createReplicatedRegion(rrAttrs);
+
+ SerializableCallable TxOps = new SerializableCallable("TxOps") {
+ @Override
+ public Object call() throws CacheException {
+ Region rr1 = basicGetCache().getRegion("rregion1");
+ //put some data
+ HashMap<Integer, String> rhm = new HashMap<Integer, String>();
+ for (int i = 1; i <= 3; i++) {
+ rhm.put(i, "2_entry__" + i);
+ }
+ rr1.putAll(rhm);
+
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ ctx.setDistributed(true);
+ ctx.begin();
+ rr1.removeAll(rhm.keySet());
+
+ ctx.commit();
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ LogWriterUtils.getLogWriter().info(
+ " calling rr.get " + rr1.get(new Integer(i)));
+ assertEquals(null, rr1.get(new Integer(i)));
+ }
+ return null;
+ }
+ };
+
+ if (dataNodeAsCoordinator) {
+ dataStore1.invoke(TxOps);
+ } else {
+ accessor.invoke(TxOps);
+ }
+
+ // verify data size on all replicas
+ SerializableCallable verifySize = new SerializableCallable("getOps") {
+ @Override
+ public Object call() throws CacheException {
+ Region rr1 = basicGetCache().getRegion("rregion1");
+ LogWriterUtils.getLogWriter()
+ .info(" calling rr.getLocalSize " + rr1.size());
+ assertEquals(0, rr1.size());
+ return null;
+ }
+ };
+ dataStore1.invoke(verifySize);
+ dataStore2.invoke(verifySize);
+ dataStore3.invoke(verifySize);
+
+// accessor.invoke(TxOps);
+ }
+
+ public void testTXPR_removeAll() throws Exception {
+ createCacheInAllVms();
+ Object[] prAttrs = new Object[] { "pregion1", 1, null, 3, null,
+ Boolean.FALSE, Boolean.FALSE };
+ createPartitionedRegion(prAttrs);
+
+ SerializableCallable TxOps = new SerializableCallable("TxOps") {
+ @Override
+ public Object call() throws CacheException {
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ HashMap<DummyKeyBasedRoutingResolver, String> phm = new HashMap<DummyKeyBasedRoutingResolver, String>();
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ phm.put(dummy, "2_entry__" + i);
+ }
+ pr1.putAll(phm);
+
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ ctx.setDistributed(true);
+ ctx.begin();
+ pr1.removeAll(phm.keySet());
+ ctx.commit();
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ DummyKeyBasedRoutingResolver dummy = new DummyKeyBasedRoutingResolver(
+ i);
+ LogWriterUtils.getLogWriter().info(" calling pr.get " + pr1.get(dummy));
+ assertEquals(null, pr1.get(dummy));
+ }
+ return null;
+ }
+ };
+
+ accessor.invoke(TxOps);
+
+ // verify data size on all replicas
+ SerializableCallable verifySize = new SerializableCallable("getOps") {
+ @Override
+ public Object call() throws CacheException {
+ PartitionedRegion pr1 = (PartitionedRegion) basicGetCache().getRegion("pregion1");
+ LogWriterUtils.getLogWriter().info(
+ " calling pr.getLocalSize " + pr1.getLocalSize());
+ assertEquals(0, pr1.getLocalSize());
+ return null;
+ }
+ };
+ dataStore1.invoke(verifySize);
+ dataStore2.invoke(verifySize);
+ dataStore3.invoke(verifySize);
+
+// accessor.invoke(TxOps);
+ }
+
+
+ public void performTXRRtestOps(boolean makeDatNodeAsCoordinator) {
+ createCacheInAllVms();
+ Object[] prAttrs = new Object[] { "pregion1", 1, null, 3, null,
+ Boolean.FALSE, Boolean.FALSE };
+ createPartitionedRegion(prAttrs);
+
+ Object[] rrAttrs = new Object[] { "rregion1", Boolean.FALSE };
+ createReplicatedRegion(rrAttrs);
+
+ SerializableCallable TxOps = new SerializableCallable("TxOps") {
+ @Override
+ public Object call() throws CacheException {
+ Region rr1 = basicGetCache().getRegion("rregion1");
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ ctx.setDistributed(true);
+ ctx.begin();
+ for (int i = 1; i <= 3; i++) {
+ LogWriterUtils.getLogWriter().info(" calling rr.put " + "2_entry__" + i);
+ rr1.put(new Integer(i), "2_entry__" + i);
+ }
+ ctx.commit();
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ LogWriterUtils.getLogWriter().info(
+ " calling rr.get " + rr1.get(new Integer(i)));
+ assertEquals("2_entry__" + i, rr1.get(new Integer(i)));
+ }
+ return null;
+ }
+ };
+
+ if (makeDatNodeAsCoordinator) {
+ dataStore1.invoke(TxOps);
+ } else {
+ accessor.invoke(TxOps);
+ }
+
+ // verify data size on all replicas
+ SerializableCallable verifySize = new SerializableCallable("getOps") {
+ @Override
+ public Object call() throws CacheException {
+ Region rr1 = basicGetCache().getRegion("rregion1");
+ LogWriterUtils.getLogWriter()
+ .info(" calling rr.getLocalSize " + rr1.size());
+ assertEquals(3, rr1.size());
+ return null;
+ }
+ };
+ dataStore1.invoke(verifySize);
+ dataStore2.invoke(verifySize);
+ dataStore3.invoke(verifySize);
+
+ SerializableCallable TxRollbackOps = new SerializableCallable("TxOps") {
+ @Override
+ public Object call() throws CacheException {
+ Region rr1 = basicGetCache().getRegion("rregion1");
+ CacheTransactionManager ctx = basicGetCache().getCacheTransactionManager();
+ ctx.setDistributed(true);
+ ctx.begin();
+ for (int i = 1; i <= 3; i++) {
+ LogWriterUtils.getLogWriter().info(
+ " calling rr.put for rollback no_entry__" + i);
+ rr1.put(new Integer(i), "no_entry__" + i);
+ }
+ ctx.rollback();
+ ;
+
+ // verify the data
+ for (int i = 1; i <= 3; i++) {
+ LogWriterUtils.getLogWriter().info(
+ " calling rr.get after rollback "
+ + rr1.get(new Integer(i)));
+ assertEquals("2_entry__" + i, rr1.get(new Integer(i)));
+ }
+ return null;
+ }
+ };
+
+ if (makeDatNodeAsCoordinator) {
+ dataStore1.invoke(TxRollbackOps);
+ } else {
+ accessor.invoke(TxRollbackOps);
+ }
+ }
+
+
+ public void testTXRR2() throws Exception {
+ performTXRRtestOps(false); // actual test
+ }
+
+ public void testTXRR2_dataNodeAsCoordinator() throws Exception {
+ performTXRRtestOps(true);
+ }
+}
+
+class DummyKeyBasedRoutingResolver implements PartitionResolver,
+ DataSerializable {
+ Integer dummyID;
+
+ public DummyKeyBasedRoutingResolver() {
+ }
+
+ public DummyKeyBasedRoutingResolver(int id) {
+ this.dummyID = new Integer(id);
+ }
+
+ public String getName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Serializable getRoutingObject(EntryOperation opDetails) {
+ return (Serializable) opDetails.getKey();
+ }
+
+ public void close() {
+ // TODO Auto-generated method stub
+ }
+
+ public void fromData(DataInput in) throws IOException, ClassNotFoundException {
+ this.dummyID = DataSerializer.readInteger(in);
+ }
+
+ public void toData(DataOutput out) throws IOException {
+ DataSerializer.writeInteger(this.dummyID, out);
+ }
+
+ @Override
+ public int hashCode() {
+ int i = this.dummyID.intValue();
+ return i;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o)
+ return true;
+
+ if (!(o instanceof DummyKeyBasedRoutingResolver))
+ return false;
+
+ DummyKeyBasedRoutingResolver otherDummyID = (DummyKeyBasedRoutingResolver) o;
+ return (otherDummyID.dummyID.equals(dummyID));
+
+ }
+}