You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ja...@apache.org on 2016/04/01 19:32:09 UTC

[1/7] incubator-geode git commit: GEODE-1062: Refactor of WANTestBase

Repository: incubator-geode
Updated Branches:
  refs/heads/develop 7c777b1b3 -> 65d7a6f1d


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANStatsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANStatsDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANStatsDUnitTest.java
index 6602104..0220459 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANStatsDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANStatsDUnitTest.java
@@ -49,12 +49,10 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -64,8 +62,7 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         testName + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         testName + "_RR", "ln", isOffHeap()  ));
@@ -98,15 +95,13 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
   }
   
   public void testReplicatedSerialPropagationWithMultipleDispatchers() throws Exception {
-	Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
-	Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
+	 Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
+	 Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-	vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2);
+    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-	vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-	vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-	vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-	vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
 	vm4.invoke(() -> WANTestBase.createSenderWithMultipleDispatchers( "ln", 2,
 		false, 100, 10, false, false, null, true, 2, OrderPolicy.KEY ));
@@ -116,10 +111,9 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
 	vm2.invoke(() -> WANTestBase.createReplicatedRegion(
 		testName + "_RR", null, isOffHeap()  ));
 
-	vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-	vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
-	vm4.invoke(() -> WANTestBase.createReplicatedRegion(
+    vm4.invoke(() -> WANTestBase.createReplicatedRegion(
 		testName + "_RR", "ln", isOffHeap()  ));
 	vm5.invoke(() -> WANTestBase.createReplicatedRegion(
 		testName + "_RR", "ln", isOffHeap()  ));
@@ -155,13 +149,12 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
     Integer tkPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 3, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(tkPort, vm3);
     vm3.invoke(() -> WANTestBase.createReceiver( tkPort ));
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "lnSerial1",
         2, false, 100, 10, false, false, null, true ));
@@ -178,11 +171,8 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         testName + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "lnSerial1" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnSerial1" ));
-
-    vm4.invoke(() -> WANTestBase.startSender( "lnSerial2" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnSerial2" ));
+    startSenderInVMs("lnSerial1", vm4, vm5);
+    startSenderInVMs("lnSerial2", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         testName + "_RR", "lnSerial1,lnSerial2", isOffHeap()  ));
@@ -229,6 +219,7 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    vm2.invoke(() -> WANTestBase.createCache( nyPort ));
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     vm4.invoke(() -> WANTestBase.createCache(lnPort ));
@@ -244,8 +235,7 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         testName + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         testName + "_RR", "ln", isOffHeap()  ));
@@ -287,14 +277,11 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //these are part of remote site
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //these are part of local site
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //senders are created on local site
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
@@ -315,8 +302,7 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
         testName + "_RR_2", null, isOffHeap()  ));
     
     //start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     //create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
@@ -380,6 +366,7 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //these are part of remote site
+    vm2.invoke(() -> WANTestBase.createCache( nyPort ));
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     //these are part of local site
@@ -399,8 +386,7 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
         testName + "_RR_1", null, isOffHeap()  ));
 
     //start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     //create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
@@ -446,13 +432,10 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(2,lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false,
@@ -470,8 +453,7 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         testName, "ln", 1, 100, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         testName, null, 1, 100, isOffHeap()  ));
@@ -504,13 +486,10 @@ public class SerialWANStatsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, true, false, null, true ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/management/WANManagementDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/management/WANManagementDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/management/WANManagementDUnitTest.java
index 1f0f3bd..48aff88 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/management/WANManagementDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/management/WANManagementDUnitTest.java
@@ -79,12 +79,11 @@ public class WANManagementDUnitTest extends ManagementTestBase {
     puneSender.invoke(() -> WANTestBase.createPartitionedRegion( getTestMethodName() + "_PR", "pn", 1, 100, false ));
     managing.invoke(() -> WANTestBase.createPartitionedRegion( getTestMethodName() + "_PR", "pn", 1, 100, false ));
     
-    nyReceiver.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    nyReceiver.invoke(() -> WANTestBase.createCache( nyPort ));
     nyReceiver.invoke(() -> WANTestBase.createPartitionedRegion( getTestMethodName() + "_PR", null, 1, 100, false ));
+    nyReceiver.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    puneSender.invoke(() -> WANTestBase.startSender( "pn" ));
-    managing.invoke(() -> WANTestBase.startSender( "pn" ));
-
+    WANTestBase.startSenderInVMs("pn", puneSender, managing);
 
     // make sure all the senders are running before doing any puts
     puneSender.invoke(() -> WANTestBase.waitForSenderRunningState( "pn" ));
@@ -122,9 +121,10 @@ public class WANManagementDUnitTest extends ManagementTestBase {
 
     puneSender.invoke(() -> WANTestBase.createCache( punePort ));
 
-    nyReceiver.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    nyReceiver.invoke(() -> WANTestBase.createCache( nyPort ));
     nyReceiver.invoke(() -> WANTestBase.createPartitionedRegion( getTestMethodName() + "_PR", null, 1, 100, false ));
-    
+    nyReceiver.invoke(() -> WANTestBase.createReceiver( nyPort ));
+
     // keep a larger batch to minimize number of exception occurrences in the
     // log
     puneSender.invoke(() -> WANTestBase.createSender( "pn",
@@ -183,10 +183,10 @@ public class WANManagementDUnitTest extends ManagementTestBase {
     managing.invoke(() -> WANTestBase.createReplicatedRegionWithAsyncEventQueue(
       getTestMethodName() + "_RR", "pn", false ));
 
-    
-    nyReceiver.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    WANTestBase.createCacheInVMs(nyPort, nyReceiver);
     nyReceiver.invoke(() -> WANTestBase.createPartitionedRegion( getTestMethodName() + "_PR", null, 1, 100, false ));
-    
+    nyReceiver.invoke(() -> WANTestBase.createReceiver( nyPort ));
+
     checkAsyncQueueMBean(puneSender);
     checkAsyncQueueMBean(managing);
     

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/management/internal/pulse/TestRemoteClusterDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/management/internal/pulse/TestRemoteClusterDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/management/internal/pulse/TestRemoteClusterDUnitTest.java
index 672cbf7..1827fc1 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/management/internal/pulse/TestRemoteClusterDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/management/internal/pulse/TestRemoteClusterDUnitTest.java
@@ -83,11 +83,11 @@ public class TestRemoteClusterDUnitTest extends ManagementTestBase {
     managing.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "pn", 1, 100, false ));
 
+    WANTestBase.createCacheInVMs(nyPort, nyReceiver);
     nyReceiver.invoke(() -> WANTestBase.createReceiver( nyPort ));
     nyReceiver.invoke(() -> WANTestBase.createPartitionedRegion( getTestMethodName() + "_PR", null, 1, 100, false ));
 
-    puneSender.invoke(() -> WANTestBase.startSender( "pn" ));
-    managing.invoke(() -> WANTestBase.startSender( "pn" ));
+    WANTestBase.startSenderInVMs("pn", puneSender, managing);
 
     // make sure all the senders are running before doing any puts
     puneSender.invoke(() -> WANTestBase.waitForSenderRunningState( "pn" ));


[4/7] incubator-geode git commit: GEODE-1062: Refactor of WANTestBase

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/PDXNewWanDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/PDXNewWanDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/PDXNewWanDUnitTest.java
index dd9ab09..1782309 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/PDXNewWanDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/PDXNewWanDUnitTest.java
@@ -44,10 +44,10 @@ public class PDXNewWanDUnitTest extends WANTestBase{
   public void testWANPDX_RR_SerialSender() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
-
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm3.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm3);
 
     vm3.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -221,6 +221,9 @@ public class PDXNewWanDUnitTest extends WANTestBase{
     
     Integer tkPort = (Integer)vm2.invoke(() -> WANTestBase.createFirstRemoteLocator( 3, lnPort ));
 
+    createCacheInVMs(lnPort, vm3);
+    createCacheInVMs(nyPort, vm4);
+    createCacheInVMs(tkPort, vm5);
     vm3.invoke(() -> WANTestBase.createReceiver( lnPort ));
     vm4.invoke(() -> WANTestBase.createReceiver( nyPort ));
     vm5.invoke(() -> WANTestBase.createReceiver( tkPort ));
@@ -290,9 +293,10 @@ public class PDXNewWanDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm3.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm3);
 
     vm3.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -330,15 +334,16 @@ public class PDXNewWanDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
+    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName() + "_PR", null, 0, 2, isOffHeap() ));
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm3.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm3);
 
     vm3.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
 
-    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName() + "_PR", null, 0, 2, isOffHeap() ));
 
     vm3.invoke(() -> WANTestBase.startSender( "ln" ));
 
@@ -396,17 +401,16 @@ public class PDXNewWanDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
+    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName() + "_PR", null,1, 5, isOffHeap() ));
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm3.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    
+    createCacheInVMs(lnPort, vm3, vm4);
+
     vm3.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
 
-    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName() + "_PR", null,1, 5, isOffHeap() ));
-
     vm3.invoke(() -> WANTestBase.startSender( "ln" ));
 
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
@@ -468,6 +472,7 @@ public class PDXNewWanDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     vm3.invoke(() -> WANTestBase.createCache( lnPort ));
@@ -494,9 +499,12 @@ public class PDXNewWanDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
+    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName() + "_PR", null, 0, 1, isOffHeap() ));
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm3.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm3);
 
     vm3.invoke(() -> WANTestBase.createSender( "ln", 2, true,
         100, 10, false, false, null, true ));
@@ -504,16 +512,11 @@ public class PDXNewWanDUnitTest extends WANTestBase{
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 0, 1, isOffHeap() ));
 
-    vm3.invoke(() -> WANTestBase.unsetRemoveFromQueueOnException( "ln" ));
-
     vm3.invoke(() -> WANTestBase.startSender( "ln" ));
 
     vm3.invoke(() -> WANTestBase.doPutsPDXSerializable(
         getTestMethodName() + "_PR", 1 ));
 
-    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName() + "_PR", null, 0, 1, isOffHeap() ));
-
     vm2.invoke(() -> WANTestBase.validateRegionSize_PDX(
         getTestMethodName() + "_PR", 1 ));
   }
@@ -552,10 +555,10 @@ public class PDXNewWanDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm3.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm3, vm4);
 
     vm3.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -569,10 +572,9 @@ public class PDXNewWanDUnitTest extends WANTestBase{
       getTestMethodName() + "_PR", "ln", 0, 2, isOffHeap() ));
     vm4.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", "ln", 0, 2, isOffHeap() ));
-    
-    vm3.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+
+    startSenderInVMs("ln", vm3, vm4);
+
     vm3.invoke(() -> WANTestBase.doPutsPDXSerializable( getTestMethodName() + "_PR",
         10 ));
 
@@ -605,17 +607,8 @@ public class PDXNewWanDUnitTest extends WANTestBase{
     vm3.invoke(() -> WANTestBase.doPutsPDXSerializable( getTestMethodName() + "_PR",
         10 ));
 
-    AsyncInvocation inv1 = vm3.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    AsyncInvocation inv2 = vm4.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    
-    try{
-      inv1.join();
-      inv2.join();
-    }
-    catch(InterruptedException ie) {
-      fail("Caught interrupted exception");
-    }
-    
+    startSenderInVMsAsync("ln", vm3, vm4);
+
     vm4.invoke(() -> WANTestBase.doPutsPDXSerializable( getTestMethodName() + "_PR",
       40 ));
     
@@ -628,9 +621,10 @@ public class PDXNewWanDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm3.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm3);
 
     vm3.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, new PDXGatewayEventFilter(), true ));
@@ -657,10 +651,10 @@ public class PDXNewWanDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm3.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm3, vm4);
 
     vm3.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, new PDXGatewayEventFilter(), true ));
@@ -674,10 +668,9 @@ public class PDXNewWanDUnitTest extends WANTestBase{
       getTestMethodName() + "_PR", "ln", 0, 2, isOffHeap() ));
     vm4.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", "ln", 0, 2, isOffHeap() ));
-    
-    vm3.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+
+    startSenderInVMs("ln", vm3, vm4);
+
     vm3.invoke(() -> WANTestBase.doPutsPDXSerializable( getTestMethodName() + "_PR",
         10 ));
 
@@ -697,9 +690,10 @@ public class PDXNewWanDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm3.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm3);
 
     vm3.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -719,10 +713,9 @@ public class PDXNewWanDUnitTest extends WANTestBase{
         getTestMethodName() + "_PR", 1 ));
     
     vm2.invoke(() -> WANTestBase.killSender());
-    
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm4.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    
+
+    createReceiverInVMs(nyPort, vm2, vm4);
+
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", null, 1, 2, isOffHeap() ));
     vm4.invoke(() -> WANTestBase.createPartitionedRegion(

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/ReplicatedRegion_ParallelWANPersistenceDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/ReplicatedRegion_ParallelWANPersistenceDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/ReplicatedRegion_ParallelWANPersistenceDUnitTest.java
index 8ad8a46..b0a14af 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/ReplicatedRegion_ParallelWANPersistenceDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/ReplicatedRegion_ParallelWANPersistenceDUnitTest.java
@@ -51,8 +51,8 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
       getTestMethodName() + "_RR", null, isOffHeap() ));
@@ -60,10 +60,7 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
       getTestMethodName() + "_RR", null, isOffHeap() ));
     
     //create cache in local site
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //create senders with disk store
     String diskStore1 = (String) vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, true, 100, 10, false, true, null, null, true ));
@@ -82,11 +79,8 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
     vm7.invoke(() -> WANTestBase.createReplicatedRegion(
       getTestMethodName() + "_RR", "ln", isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm5.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm6.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -154,11 +148,8 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
     
     //start the senders in async mode. This will ensure that the 
     //node of shadow PR that went down last will come up first
-    vm4.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm5.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm6.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm7.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
     //wait for senders running
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -198,19 +189,15 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
-
+    createCacheInVMs(nyPort, vm2, vm3);
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
       getTestMethodName() + "_RR", null, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
       getTestMethodName() + "_RR", null, isOffHeap() ));
-    
+    createReceiverInVMs(nyPort, vm2, vm3);
+
     //create cache in local site
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //create senders with disk store
     String diskStore1 = (String) vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, true, 100, 10, false, true, null, null, true ));
@@ -229,11 +216,8 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
     vm7.invoke(() -> WANTestBase.createReplicatedRegion( getTestMethodName() + "_RR", "ln",
             Scope.DISTRIBUTED_ACK, DataPolicy.PERSISTENT_REPLICATE, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm5.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm6.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -300,11 +284,8 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
     
     //start the senders in async mode. This will ensure that the 
     //node of shadow PR that went down last will come up first
-    vm4.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm5.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm6.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm7.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
     //wait for senders running
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -359,6 +340,8 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
+    vm2.invoke(() -> WANTestBase.createCache( nyPort ));
+    vm3.invoke(() -> WANTestBase.createCache( nyPort ));
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
     vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
@@ -403,12 +386,9 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
     vm5.invoke(() -> WANTestBase.createPersistentPartitionedRegion( getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
     vm6.invoke(() -> WANTestBase.createPersistentPartitionedRegion( getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
     vm7.invoke(() -> WANTestBase.createPersistentPartitionedRegion( getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
-    
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm5.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm6.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -498,11 +478,8 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
     
     //start the senders in async mode. This will ensure that the 
     //node of shadow PR that went down last will come up first
-    vm4.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm5.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm6.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm7.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
     //wait for senders running
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -576,13 +553,10 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
     Integer lnPort = (Integer) vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer) vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     // create senders with disk store
     String diskStore1 = (String) vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, true, 100, 10,
@@ -611,10 +585,7 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
         getTestMethodName() + "_RR", "ln", Scope.DISTRIBUTED_ACK,
         DataPolicy.PERSISTENT_REPLICATE, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -672,8 +643,7 @@ public class ReplicatedRegion_ParallelWANPersistenceDUnitTest extends WANTestBas
       fail();
     }
 
-    vm4.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm5.invokeAsync(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMsAsync("ln", vm4, vm5);
 
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
     // wait for senders running

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/ReplicatedRegion_ParallelWANPropogationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/ReplicatedRegion_ParallelWANPropogationDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/ReplicatedRegion_ParallelWANPropogationDUnitTest.java
index 83bf1e5..3387249 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/ReplicatedRegion_ParallelWANPropogationDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/ReplicatedRegion_ParallelWANPropogationDUnitTest.java
@@ -67,11 +67,12 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
       Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+      createCacheInVMs(nyPort, vm2);
       vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
       vm2.invoke(() -> WANTestBase.createReplicatedRegion(
           getTestMethodName() + "_RR", null, isOffHeap() ));
 
-      vm4.invoke(() -> WANTestBase.createCache( lnPort ));
+      createCacheInVMs(lnPort, vm4);
 
       vm4.invoke(() -> WANTestBase.createReplicatedRegion(
           getTestMethodName() + "_RR", "ln1", isOffHeap() ));
@@ -275,8 +276,7 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
         vm5.invoke(() -> WANTestBase.createSender( "ln1", 2,
             true, 10, 100, false, false, null, true ));
 
-        vm4.invoke(() -> WANTestBase.startSender( "ln1" ));
-        vm5.invoke(() -> WANTestBase.startSender( "ln1" ));
+        startSenderInVMs("ln1", vm4, vm5);
 
         vm4.invoke(() -> WANTestBase.doPuts(
             getTestMethodName() + "_RR", 1000 ));
@@ -342,12 +342,13 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
       Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+      createCacheInVMs(nyPort, vm2);
       vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
       vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
-      
-      vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-      
+
+      createCacheInVMs(lnPort, vm4);
+
       vm4.invoke(() -> WANTestBase.createReplicatedRegion(
           getTestMethodName() + "_RR", "ln1", isOffHeap()  ));
       
@@ -385,12 +386,12 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
       Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-      vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+      createCacheInVMs(nyPort, vm2);
       vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
-      
-      vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm5.invoke(() -> WANTestBase.createCache( lnPort ));
+      vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+
+      createCacheInVMs(lnPort, vm4, vm5);
       
       vm4.invoke(() -> WANTestBase.createReplicatedRegion(
           getTestMethodName() + "_RR", "ln1", isOffHeap()  ));
@@ -402,8 +403,7 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       vm5.invoke(() -> WANTestBase.createSender( "ln1", 2,
       true, 10, 100, false, false, null, true));
 
-      vm4.invoke(() -> WANTestBase.startSender( "ln1"));
-      vm5.invoke(() -> WANTestBase.startSender( "ln1"));
+      startSenderInVMs("ln1", vm4, vm5);
       
       vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         1000 ));
@@ -438,10 +438,11 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
       Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-      vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+      vm2.invoke(() -> WANTestBase.createCache( nyPort ));
       vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
-      
+      vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+
       vm4.invoke(() -> WANTestBase.createCache( lnPort ));
       vm5.invoke(() -> WANTestBase.createCache( lnPort ));
       
@@ -455,8 +456,7 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       vm5.invoke(() -> WANTestBase.createSender( "ln1", 2,
       true, 10, 100, false, false, null, true));
 
-      vm4.invoke(() -> WANTestBase.startSender( "ln1"));
-      vm5.invoke(() -> WANTestBase.startSender( "ln1"));
+      startSenderInVMs("ln1", vm4, vm5);
       
       vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         1000 ));
@@ -491,6 +491,7 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
       Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+      createCacheInVMs(nyPort, vm2, vm3);
       vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
       vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
       
@@ -503,11 +504,8 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap()  ));
       vm3.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap()  ));
-      
-      vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+
+      createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
       
       vm4.invoke(() -> WANTestBase.createPartitionedRegion(
           getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap()  ));
@@ -536,11 +534,8 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       vm7.invoke(() -> WANTestBase.createSender( "ln", 2,
           true, 10, 100, false, false, null, true ));
 
-      vm4.invoke(() -> WANTestBase.startSender( "ln"));
-      vm5.invoke(() -> WANTestBase.startSender( "ln"));
-      vm6.invoke(() -> WANTestBase.startSender( "ln"));
-      vm7.invoke(() -> WANTestBase.startSender( "ln"));
-      
+      startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
       vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
       vm5.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
       vm6.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -594,14 +589,12 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
       Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+      createCacheInVMs(nyPort, vm2);
       vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
       vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
-      
-      vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+
+      createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
       
       vm4.invoke(() -> WANTestBase.createSender( "ln1", 2,
           true, 10, 100, false, false, null, false ));
@@ -671,13 +664,10 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
       Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-      vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-      vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+      createCacheInVMs(nyPort, vm2, vm3);
+      createReceiverInVMs(nyPort, vm2, vm3);
 
-      vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+      createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
       vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
           true, 100, 10, false, false, null, true ));
@@ -697,10 +687,7 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       vm7.invoke(() -> WANTestBase.createReplicatedRegion(
           getTestMethodName() + "_RR", "ln", isOffHeap()  ));
 
-      vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-      vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-      vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-      vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+      startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
       vm2.invoke(() -> WANTestBase.createReplicatedRegion(
           getTestMethodName() + "_RR", null, isOffHeap()  ));
@@ -732,10 +719,7 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
         exp1.remove();
       }*/
 
-      vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+      createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
       vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
           true, 100, 10, false, false, null, true ));
@@ -755,10 +739,7 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       vm7.invoke(() -> WANTestBase.createReplicatedRegion(
           getTestMethodName() + "_RR", "ln", isOffHeap()  ));
 
-      vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-      vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-      vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-      vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+      startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
       vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
       vm5.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -804,12 +785,12 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
       Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-      vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+      createCacheInVMs(nyPort, vm2);
       vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
-      
-      vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-      vm5.invoke(() -> WANTestBase.createCache( lnPort ));
+      vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+
+      createCacheInVMs(lnPort, vm4, vm5);
       
       vm4.invoke(() -> WANTestBase.createReplicatedRegion( getTestMethodName() + "_RR", "ln1",
               Scope.DISTRIBUTED_NO_ACK, DataPolicy.REPLICATE, isOffHeap()  ));
@@ -821,9 +802,8 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
       vm5.invoke(() -> WANTestBase.createSender( "ln1", 2,
       true, 10, 100, false, false, null, true));
 
-      vm4.invoke(() -> WANTestBase.startSender( "ln1"));
-      vm5.invoke(() -> WANTestBase.startSender( "ln1"));
-      
+      startSenderInVMs("ln1", vm4, vm5);
+
       vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         1000 ));
      
@@ -857,11 +837,10 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2, true,
         100, 10, false, false, null, true ));
@@ -873,8 +852,7 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
     vm5.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap()  ));
@@ -930,13 +908,10 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2, true,
         100, 10, false, false, null, true ));
@@ -956,10 +931,7 @@ public class ReplicatedRegion_ParallelWANPropogationDUnitTest extends WANTestBas
     vm7.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap()  ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WANSSLDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WANSSLDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WANSSLDUnitTest.java
index 7331147..5f81d1f 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WANSSLDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WANSSLDUnitTest.java
@@ -97,6 +97,7 @@ public class WANSSLDUnitTest extends WANTestBase{
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
       Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+      createCacheInVMs(nyPort, vm2);
       vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
       vm4.invoke(() -> WANTestBase.createCacheWithSSL( lnPort ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanValidationsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanValidationsDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanValidationsDUnitTest.java
index dbe9844..cb013ef 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanValidationsDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanValidationsDUnitTest.java
@@ -58,9 +58,8 @@ public class WanValidationsDUnitTest extends WANTestBase {
     try {
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1));
       Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(2, lnPort));
-      
-      vm4.invoke(createCacheRunnable(lnPort));
-      vm5.invoke(createCacheRunnable(lnPort));
+
+      createCacheInVMs(lnPort, vm4, vm5);
 
       vm4.invoke(() -> WANTestBase.createSender("ln1", 2, false, 10, 100, false, false, null, true));
       vm4.invoke(() -> WANTestBase.createSender("ln2", 2, false, 10, 100, false, false, null, true));
@@ -85,9 +84,6 @@ public class WanValidationsDUnitTest extends WANTestBase {
     }
   }
 
-  protected SerializableRunnableIF createCacheRunnable(Integer lnPort) {
-    return () -> WANTestBase.createCache(lnPort );
-  }
 
   /**
    * Validate that ParallelGatewaySender can be added to Distributed region
@@ -107,8 +103,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
       Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-      vm4.invoke(createCacheRunnable(lnPort));
-      vm5.invoke(createCacheRunnable(lnPort));
+      createCacheInVMs(lnPort, vm4, vm5);
 
       vm4.invoke(() -> WANTestBase.createSender( "ln1", 2,
           true, 10, 100, false, false, null, false ));
@@ -138,9 +133,8 @@ public class WanValidationsDUnitTest extends WANTestBase {
     try {
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1));
 
-      vm4.invoke(createCacheRunnable(lnPort));
-      vm5.invoke(createCacheRunnable(lnPort));
-      
+      createCacheInVMs(lnPort, vm4, vm5);
+
       vm4.invoke(() -> WANTestBase.createSender("ln1", 2, false, 10, 100, false, false, null, true));
       vm4.invoke(() -> WANTestBase.createSender("ln2", 2, false, 10, 100, false, false, null, true));
       
@@ -169,8 +163,8 @@ public class WanValidationsDUnitTest extends WANTestBase {
     try {
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-      vm4.invoke(createCacheRunnable(lnPort));
-      vm5.invoke(createCacheRunnable(lnPort));
+      createCacheInVMs(lnPort, vm4, vm5);
+
 
       vm4.invoke(() -> WANTestBase.createReplicatedRegionWithAsyncEventQueue(
               getTestMethodName() + "_RR", "ln1", isOffHeap()  ));
@@ -198,9 +192,8 @@ public class WanValidationsDUnitTest extends WANTestBase {
     try {
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1));
 
-      vm4.invoke(createCacheRunnable(lnPort));
-      vm5.invoke(createCacheRunnable(lnPort));
-      
+      createCacheInVMs(lnPort, vm4, vm5);
+
       vm4.invoke(() -> WANTestBase.createSender("ln1", 2, true, 10, 100, false, false, null, true));
       vm4.invoke(() -> WANTestBase.createSender("ln2", 2, true, 10, 100, false, false, null, true));
       
@@ -235,8 +228,8 @@ public class WanValidationsDUnitTest extends WANTestBase {
     try {
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-      vm1.invoke(createCacheRunnable(lnPort));
-      
+      createCacheInVMs(lnPort, vm1);
+
       vm1.invoke(() -> WANTestBase.createSender("ln1_Parallel", 2, true, 10, 100, false, false, null, true));
       vm1.invoke(() -> WANTestBase.createSender("ln2_Parallel", 2, true, 10, 100, false, false, null, true));
       
@@ -261,8 +254,8 @@ public class WanValidationsDUnitTest extends WANTestBase {
     try {
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-      vm1.invoke(createCacheRunnable(lnPort));
-      
+      createCacheInVMs(lnPort, vm1);
+
       vm1.invoke(() -> WANTestBase.createSender("ln1_Parallel", 2, true, 10, 100, false, false, null, true));
       vm1.invoke(() -> WANTestBase.createSender("ln2_Parallel", 2, true, 10, 100, false, false, null, true));
       
@@ -295,8 +288,8 @@ public class WanValidationsDUnitTest extends WANTestBase {
     try {
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-      vm1.invoke(createCacheRunnable(lnPort));
-      
+      createCacheInVMs(lnPort, vm1);
+
       vm1.invoke(() -> WANTestBase.createSender("ln1_Parallel", 2, true, 10, 100, false, false, null, true));
       vm1.invoke(() -> WANTestBase.createSender("ln2_Parallel", 2, true, 10, 100, false, false, null, true));
       
@@ -322,7 +315,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
     try {
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-      vm1.invoke(createCacheRunnable(lnPort));
+      createCacheInVMs(lnPort, vm1);
 
       vm1.invoke(() -> WANTestBase.createSender(
           "ln1_Parallel", 2, true, 10, 100, false, false, null, true ));
@@ -350,7 +343,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
     try {
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-      vm1.invoke(createCacheRunnable(lnPort));
+      createCacheInVMs(lnPort, vm1);
 
       vm1.invoke(() -> WANTestBase.createSender("ln1_Parallel", 2, true, 10, 100, false, false, null, true));
       vm1.invoke(() -> WANTestBase.createSender("ln2_Parallel", 2, true, 10, 100, false, false, null, true));
@@ -379,7 +372,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testSerialGatewaySenderAndParallelGatewaySenderWithSameName() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1);
 
     vm1.invoke(() -> WANTestBase.createSenderForValidations(
         "ln", 2, false, 100, false, false, null, null, true, false ));
@@ -400,8 +393,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testSameRemoteDSAcrossSameSender() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     vm1.invoke(() -> WANTestBase.createSenderForValidations(
         "ln", 2, false, 100, false, false, null, null,
@@ -426,8 +418,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testSerialSenderOnBothCache() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     vm1.invoke(() -> WANTestBase.createSenderForValidations(
         "ln", 2, false, 100, false, false, null, null,
@@ -451,8 +442,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testParallelSenderOnBothCache(){
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     vm1.invoke(() -> WANTestBase.createSenderForValidations( "ln", 2,
         true, 100,false, false,
@@ -477,8 +467,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testBatchConflation() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     vm1.invoke(() -> WANTestBase.createSenderForValidations( "ln", 2,
         false, 100, false, false,
@@ -503,8 +492,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testisPersistentEnabled() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     vm1.invoke(() -> WANTestBase.createSenderForValidations( "ln", 2,
         false, 100, false, false,
@@ -525,8 +513,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testAlertThreshold() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     vm1.invoke(() -> WANTestBase.createSenderForValidations( "ln", 2,
         false, 100, false, false,
@@ -547,8 +534,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testManualStart() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     vm1.invoke(() -> WANTestBase.createSenderForValidations( "ln", 2,
         false, 100, false, false,
@@ -569,8 +555,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testGatewayEventFilters() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     ArrayList<GatewayEventFilter> eventFiletrs = new ArrayList<GatewayEventFilter>();
     eventFiletrs.add(new MyGatewayEventFilter());
@@ -597,8 +582,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testGatewayEventFilters2() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     ArrayList<GatewayEventFilter> eventFiletrs = new ArrayList<GatewayEventFilter>();
     eventFiletrs.add(new MyGatewayEventFilter());
@@ -626,8 +610,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testGatewayTransportFilters() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     ArrayList<GatewayTransportFilter> transportFiletrs = new ArrayList<GatewayTransportFilter>();
     transportFiletrs.add(new MyGatewayTransportFilter1());
@@ -656,8 +639,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testGatewayTransportFiltersOrder() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     ArrayList<GatewayTransportFilter> transportFiletrs = new ArrayList<GatewayTransportFilter>();
     transportFiletrs.add(new MyGatewayTransportFilter1());
@@ -712,8 +694,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testIsDiskSynchronous() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     vm1.invoke(() -> WANTestBase.createSenderForValidations(
         "ln", 2, false, 100, false, false, null,
@@ -741,7 +722,8 @@ public class WanValidationsDUnitTest extends WANTestBase {
    */
   public void test_GetCacheServersDoesNotReturnReceivers() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
-    
+
+    createCacheInVMs(lnPort, vm4);
     vm4.invoke(() -> WANTestBase.createReceiver( lnPort ));
     
     vm4.invoke(() -> WANTestBase.createCacheServer( ));
@@ -760,9 +742,9 @@ public class WanValidationsDUnitTest extends WANTestBase {
    */
   public void test_GetCacheServersDoesNotReturnReceivers_Scenario2() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
-    
+    createCacheInVMs(lnPort, vm4);
     vm4.invoke(() -> WANTestBase.createReceiver( lnPort ));
-    vm5.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm5);
     
     vm5.invoke(() -> WANTestBase.createCacheServer( ));
     
@@ -786,8 +768,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void DISABLED_testDispatcherThreadsForParallelGatewaySender() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     vm1.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
       true, 100, 10, false, false, null, true, 5, OrderPolicy.KEY ));
@@ -816,8 +797,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void DISABLED_testOrderPolicyForParallelGatewaySender() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm1.invoke(createCacheRunnable(lnPort));
-    vm2.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm1, vm2);
 
     vm1.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
       true, 100, 10, false, false, null, true, 5, OrderPolicy.KEY ));
@@ -840,13 +820,11 @@ public class WanValidationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(createReceiverReplicatedRegion());
+    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -881,10 +859,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testBug50434_RR_SerialAsyncEventQueue() throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createAsyncEventQueue( "ln",
         false, 100, 100, false, false, null, false ));
@@ -927,13 +902,11 @@ public class WanValidationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(createReceiverReplicatedRegion());
+    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -969,10 +942,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testBug50434_RR_SerialAsyncEventQueue_Pass() throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createAsyncEventQueue( "ln",
         false, 100, 100, false, false, null, false ));
@@ -1010,14 +980,12 @@ public class WanValidationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_RR", null, 1, 100, isOffHeap() ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -1027,12 +995,9 @@ public class WanValidationsDUnitTest extends WANTestBase {
       false, 100, 10, false, false, null, true ));
     vm7.invoke(() -> WANTestBase.createSender( "ln", 2,
       false, 100, 10, false, false, null, true ));
-    
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     vm4.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
     vm5.invoke(() -> WANTestBase.createPartitionedRegion(
@@ -1067,10 +1032,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testBug50434_PR_SerialAsyncEventQueue() throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createAsyncEventQueue( "ln",
         false, 100, 100, false, false, null, false ));
@@ -1111,14 +1073,12 @@ public class WanValidationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -1128,12 +1088,9 @@ public class WanValidationsDUnitTest extends WANTestBase {
       false, 100, 10, false, false, null, true ));
     vm7.invoke(() -> WANTestBase.createSender( "ln", 2,
       false, 100, 10, false, false, null, true ));
-    
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     vm4.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
     vm5.invoke(() -> WANTestBase.createPartitionedRegion(
@@ -1167,10 +1124,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testBug50434_PR_SerialAsyncEventQueue_Pass() throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createAsyncEventQueue( "ln",
         false, 100, 100, false, false, null, false ));
@@ -1212,22 +1166,19 @@ public class WanValidationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", null, 1, 10, isOffHeap()));
+    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
     vm5.invoke(() -> WANTestBase.createSender( "ln", 2,
       true, 100, 10, false, false, null, true ));
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMs("ln", vm4, vm5);
+
     vm4.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 10, isOffHeap()));
     vm5.invoke(() -> WANTestBase.createPartitionedRegion(
@@ -1261,10 +1212,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testBug50434_PR_ParallelAsyncEventQueue() throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createAsyncEventQueue( "ln",
         true, 100, 100, false, false, null, false ));
@@ -1305,14 +1253,12 @@ public class WanValidationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", null, 1, 10, isOffHeap()));
+    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -1332,10 +1278,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", null, 1, 10, isOffHeap()));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
     
     vm4.invoke(() -> WANTestBase.addSenderThroughAttributesMutator(
       getTestMethodName() + "_PR", "ln"));
@@ -1356,10 +1299,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
   public void testBug50434_PR_ParallelAsyncEventQueue_Pass() throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createAsyncEventQueue( "ln",
         true, 100, 100, false, false, null, false ));
@@ -1412,9 +1352,8 @@ public class WanValidationsDUnitTest extends WANTestBase {
     IgnoredException.addIgnoredException("could not get remote locator information");
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    
+    createCacheInVMs(lnPort, vm4, vm5);
+
     try {
       vm4.invoke(() -> WANTestBase.createSender( "ln1", 2,
           true, 10, 100, false, false, null, false ));
@@ -1459,10 +1398,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     // ------------ START - CREATE CACHE, REGION ON LOCAL SITE ------------//
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -1478,8 +1414,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createAsyncEventQueue(
         "lnAsync", false, 100, 100, false, false, null, false ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegionWithSenderAndAsyncEventQueue(
             getTestMethodName() + "_RR", "ln", "lnAsync", isOffHeap() ));
@@ -1492,8 +1427,8 @@ public class WanValidationsDUnitTest extends WANTestBase {
     // ------------- END - CREATE CACHE, REGION ON LOCAL SITE -------------//
 
     // ------------- START - CREATE CACHE ON REMOTE SITE ---------------//
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     vm2.invoke(() -> WANTestBase.createSender( "ny", 1,
         false, 100, 10, false, false, null, true ));
@@ -1505,8 +1440,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createAsyncEventQueue(
         "nyAsync", false, 100, 100, false, false, null, false ));
 
-    vm2.invoke(() -> WANTestBase.startSender( "ny" ));
-    vm3.invoke(() -> WANTestBase.startSender( "ny" ));
+    startSenderInVMs("ny", vm2, vm3);
 
     vm2.invoke(() -> WANTestBase.createReplicatedRegionWithSenderAndAsyncEventQueue(
             getTestMethodName() + "_RR", "ny", "nyAsync", isOffHeap() ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
index 57eb3de..3f0329a 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
@@ -175,11 +175,10 @@ public class ParallelGatewaySenderOperationsDUnitTest extends WANTestBase {
     Integer lnPort = locatorPorts[0];
     Integer nyPort = locatorPorts[1];
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -195,9 +194,8 @@ public class ParallelGatewaySenderOperationsDUnitTest extends WANTestBase {
       getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
-  
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+
+    startSenderInVMs("ln", vm4, vm5);
 
     //wait till the senders are running
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -283,7 +281,7 @@ public class ParallelGatewaySenderOperationsDUnitTest extends WANTestBase {
     vm2.invoke(() -> WANTestBase.validateRegionSizeRemainsSame(getTestMethodName() + "_PR", 200 ));
     
     //start the senders again
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     //Region size on remote site should remain same and below the number of puts done in the FIRST RUN
     vm2.invoke(() -> WANTestBase.validateRegionSizeRemainsSame(getTestMethodName() + "_PR", 200 ));
@@ -349,10 +347,7 @@ public class ParallelGatewaySenderOperationsDUnitTest extends WANTestBase {
 
     LogWriterUtils.getLogWriter().info("Starting the senders at the same time");
     //when puts are happening by another thread, start the senders
-    vm4.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm5.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm6.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm7.invokeAsync(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
 
     LogWriterUtils.getLogWriter().info("All the senders are started");
     
@@ -399,7 +394,7 @@ public class ParallelGatewaySenderOperationsDUnitTest extends WANTestBase {
     vm2.invoke(() -> WANTestBase.validateRegionSizeRemainsSame(getTestMethodName() + "_PR", 200 ));
     
     //start the senders again
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     //Region size on remote site should remain same and below the number of puts done in the FIRST RUN
     vm2.invoke(() -> WANTestBase.validateRegionSizeRemainsSame(getTestMethodName() + "_PR", 200 ));
@@ -435,10 +430,7 @@ public class ParallelGatewaySenderOperationsDUnitTest extends WANTestBase {
     //During sender start, it will wait until those buckets are created for shadowPR as well.
     //Start the senders in async threads, so colocation of shadowPR will be complete and 
     //missing buckets will be created in PRHARedundancyProvider.createMissingBuckets().
-    vm4.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm5.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm6.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm7.invokeAsync(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
 
     waitForSendersRunning();
     
@@ -581,8 +573,9 @@ public class ParallelGatewaySenderOperationsDUnitTest extends WANTestBase {
     // Start receiver
     IgnoredException ignoredMTLE = IgnoredException.addIgnoredException(MessageTooLargeException.class.getName(), vm4);
     IgnoredException ignoredGIOE = IgnoredException.addIgnoredException(GemFireIOException.class.getName(), vm4);
-    vm2.invoke(() -> createReceiver( nyPort ));
+    vm2.invoke(() -> createCache( nyPort ));
     vm2.invoke(() -> createPartitionedRegion( regionName, null, 0, 100, isOffHeap() ));
+    vm2.invoke(() -> createReceiver( nyPort ));
     validateRegionSizes( regionName, numPuts, vm2 );
 
     vm4.invoke(() -> {
@@ -607,20 +600,17 @@ public class ParallelGatewaySenderOperationsDUnitTest extends WANTestBase {
     createPartitionedRegions(createAccessors);
 
     if (startSenders) {
-      startSenders();
+      startSenderInVMs("ln", vm4, vm5, vm6, vm7);
     }
   }
 
   private void createSendersAndReceivers(Integer lnPort, Integer nyPort) {
     // Note: This is a test-specific method used by several test to create
     // receivers and senders.
-    vm2.invoke(() -> createReceiver(nyPort));
-    vm3.invoke(() -> createReceiver(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> createCache(lnPort));
-    vm5.invoke(() -> createCache(lnPort));
-    vm6.invoke(() -> createCache(lnPort));
-    vm7.invoke(() -> createCache(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> createSender("ln", 2, true, 100, 10, false, false, null, true));
     vm5.invoke(() -> createSender("ln", 2, true, 100, 10, false, false, null, true));
@@ -647,13 +637,6 @@ public class ParallelGatewaySenderOperationsDUnitTest extends WANTestBase {
     vm3.invoke(() -> createPartitionedRegion(regionName, "ln", 1, 100, isOffHeap()));
   }
 
-  private void startSenders() {
-    vm4.invoke(() -> startSender("ln"));
-    vm5.invoke(() -> startSender("ln"));
-    vm6.invoke(() -> startSender("ln"));
-    vm7.invoke(() -> startSender("ln"));
-  }
-
   private void stopSenders() {
     vm4.invoke(() -> stopSender("ln"));
     vm5.invoke(() -> stopSender("ln"));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderQueueOverflowDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderQueueOverflowDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderQueueOverflowDUnitTest.java
index 615bba9..07c2610 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderQueueOverflowDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderQueueOverflowDUnitTest.java
@@ -60,13 +60,10 @@ public class ParallelGatewaySenderQueueOverflowDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSenderWithoutDiskStore( "ln", 2,
         true, 10, 10, false, false, null, true ));
@@ -86,10 +83,7 @@ public class ParallelGatewaySenderQueueOverflowDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
     
     vm4.invoke(() -> WANTestBase.pauseSender( "ln" ));
     vm5.invoke(() -> WANTestBase.pauseSender( "ln" ));
@@ -146,13 +140,10 @@ public class ParallelGatewaySenderQueueOverflowDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 10, 10, false, false, null, true ));
@@ -172,10 +163,7 @@ public class ParallelGatewaySenderQueueOverflowDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
     
     vm4.invoke(() -> WANTestBase.pauseSender( "ln" ));
     vm5.invoke(() -> WANTestBase.pauseSender( "ln" ));
@@ -233,13 +221,10 @@ public class ParallelGatewaySenderQueueOverflowDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 10, 10, false, false, null, true ));
@@ -259,11 +244,8 @@ public class ParallelGatewaySenderQueueOverflowDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     vm4.invoke(() -> WANTestBase.pauseSender( "ln" ));
     vm5.invoke(() -> WANTestBase.pauseSender( "ln" ));
     vm6.invoke(() -> WANTestBase.pauseSender( "ln" ));
@@ -320,13 +302,10 @@ public class ParallelGatewaySenderQueueOverflowDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 10, 10, false, false, null, true ));
@@ -346,10 +325,7 @@ public class ParallelGatewaySenderQueueOverflowDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
     
     vm4.invoke(() -> WANTestBase.pauseSender( "ln" ));
     vm5.invoke(() -> WANTestBase.pauseSender( "ln" ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANConflationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANConflationDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANConflationDUnitTest.java
index ab96947..ab261fd 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANConflationDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANConflationDUnitTest.java
@@ -88,8 +88,8 @@ public class ParallelWANConflationDUnitTest extends WANTestBase {
     true, 100, 50, false, false, null, true ));
   
     createSenderPRs();
-    
-    startSenders();
+
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
     
     pauseSenders();
     
@@ -424,7 +424,7 @@ public class ParallelWANConflationDUnitTest extends WANTestBase {
   }
 
   protected void startPausedSenders() {
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     pauseSenders();
   }
@@ -435,13 +435,6 @@ public class ParallelWANConflationDUnitTest extends WANTestBase {
     vm6.invoke(() ->pauseSender( "ln" ));
     vm7.invoke(() ->pauseSender( "ln" ));
   }
-
-  protected void startSenders() {
-    vm4.invoke(() ->startSender( "ln" ));
-    vm5.invoke(() ->startSender( "ln" ));
-    vm6.invoke(() ->startSender( "ln" ));
-    vm7.invoke(() ->startSender( "ln" ));
-  }
   
   protected void createSenderPRs() {
     createSenderPRs(0);
@@ -462,13 +455,10 @@ public class ParallelWANConflationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() ->createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() ->createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() ->createReceiver( nyPort ));
-    vm3.invoke(() ->createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() ->createCache(lnPort ));
-    vm5.invoke(() ->createCache(lnPort ));
-    vm6.invoke(() ->createCache(lnPort ));
-    vm7.invoke(() ->createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
   }
   
   protected void createSendersNoConflation() {


[5/7] incubator-geode git commit: GEODE-1062: Refactor of WANTestBase

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderDUnitTest.java
index d7e0d4f..4669ac9 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderDUnitTest.java
@@ -53,13 +53,10 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 5, OrderPolicy.PARTITION ));
@@ -79,10 +76,7 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
@@ -139,13 +133,10 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 5, OrderPolicy.PARTITION ));
@@ -165,10 +156,7 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
@@ -204,13 +192,14 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
+    vm3.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 7, OrderPolicy.PARTITION ));
@@ -230,15 +219,7 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-
-    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
-    vm3.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     //before doing any puts, let the senders be running in order to ensure that
     //not a single event will be lost
@@ -269,11 +250,8 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
   public void testParallelPropagation_withoutRemoteSite() throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
-    
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //keep a larger batch to minimize number of exception occurrences in the log
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
@@ -294,16 +272,8 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", false ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", false ));
-    vm6.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", false ));
-    vm7.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", false ));
-    
     //make sure all the senders are running before doing any puts
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm5.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -313,15 +283,14 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_PR",
       1000 ));
 
-    
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    
+    createCacheInVMs(nyPort, vm2, vm3);
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
-    
+
+    createReceiverInVMs(nyPort, vm2, vm3);
+
     //verify all buckets drained on all sender nodes.
     vm4.invoke(() -> WANTestBase.validateParallelSenderQueueAllBucketsDrained("ln"));
     vm5.invoke(() -> WANTestBase.validateParallelSenderQueueAllBucketsDrained("ln"));
@@ -343,13 +312,10 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 5, OrderPolicy.PARTITION ));
@@ -369,12 +335,9 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
             "ln", 1, 100, isOffHeap() ));
     vm7.invoke(() -> WANTestBase.createCustomerOrderShipmentPartitionedRegion( null,
             "ln", 1, 100, isOffHeap() ));
-    
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createCustomerOrderShipmentPartitionedRegion( null,
             "ln", 1, 100, isOffHeap() ));
@@ -417,13 +380,10 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 6, OrderPolicy.PARTITION ));
@@ -443,10 +403,7 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
@@ -488,11 +445,6 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
         true, 100, 10, false, false, null, true, 6, OrderPolicy.PARTITION ));
     vm7.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 6, OrderPolicy.PARTITION ));
-
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm6.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm7.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
     
     vm4.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
@@ -503,10 +455,7 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm5.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -541,13 +490,10 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 7, OrderPolicy.KEY ));
@@ -563,10 +509,7 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     vm6.invoke(() -> WANTestBase.createColocatedPartitionedRegions( getTestMethodName(), "ln", 1, 100, isOffHeap() ));
     vm7.invoke(() -> WANTestBase.createColocatedPartitionedRegions( getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createColocatedPartitionedRegions( getTestMethodName(), null, 1, 100, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createColocatedPartitionedRegions( getTestMethodName(), null, 1, 100, isOffHeap() ));
@@ -593,13 +536,10 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 7, OrderPolicy.PARTITION ));
@@ -615,10 +555,7 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     vm6.invoke(() -> WANTestBase.createColocatedPartitionedRegions( getTestMethodName(), "ln", 1, 100, isOffHeap() ));
     vm7.invoke(() -> WANTestBase.createColocatedPartitionedRegions( getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createColocatedPartitionedRegions( getTestMethodName(), null, 1, 100, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createColocatedPartitionedRegions( getTestMethodName(), null, 1, 100, isOffHeap() ));
@@ -640,13 +577,10 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 6, OrderPolicy.KEY ));
@@ -656,11 +590,6 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
         true, 100, 10, false, false, null, true, 6, OrderPolicy.KEY ));
     vm7.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 6, OrderPolicy.KEY ));
-
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm6.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm7.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
     
     vm4.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 2, 100, isOffHeap() ));
@@ -671,11 +600,8 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 2, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
@@ -711,10 +637,10 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm3.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm3, vm4);
 
     vm3.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 5, OrderPolicy.KEY ));
@@ -728,10 +654,9 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
       getTestMethodName() + "_PR", "ln", 0, 2, isOffHeap()));
     vm4.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", "ln", 0, 2, isOffHeap()));
-    
-    vm3.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+
+    startSenderInVMs("ln", vm3, vm4);
+
     vm3.invoke(() -> WANTestBase.doPutsPDXSerializable( getTestMethodName() + "_PR",
         10 ));
 
@@ -764,17 +689,8 @@ public class ConcurrentParallelGatewaySenderDUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.doPutsPDXSerializable( getTestMethodName() + "_PR",
         10 ));
 
-    AsyncInvocation inv1 = vm3.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    AsyncInvocation inv2 = vm4.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    
-    try{
-      inv1.join();
-      inv2.join();
-    }
-    catch(InterruptedException ie) {
-      fail("Caught interrupted exception");
-    }
-    
+    startSenderInVMsAsync("ln", vm3, vm4);
+
     vm4.invoke(() -> WANTestBase.doPutsPDXSerializable( getTestMethodName() + "_PR",
       40 ));
     

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_1_DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_1_DUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_1_DUnitTest.java
index 8c4f142..ddcb3d6 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_1_DUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_1_DUnitTest.java
@@ -44,13 +44,10 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 6, OrderPolicy.KEY ));
@@ -93,13 +90,10 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 7, OrderPolicy.KEY ));
@@ -125,13 +119,8 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
     
     //start the senders
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-    
-    Wait.pause(2000);
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     vm6.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm7.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
 
@@ -153,13 +142,10 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 5, OrderPolicy.KEY ));
@@ -179,10 +165,7 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
@@ -219,13 +202,10 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 8, OrderPolicy.KEY ));
@@ -245,10 +225,7 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
@@ -302,9 +279,10 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
+    createCacheInVMs(nyPort, vm4, vm5);
     vm4.invoke(() -> WANTestBase.createCache( lnPort ));
     vm5.invoke(() -> WANTestBase.createCache( lnPort ));
 
@@ -322,9 +300,8 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
       getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
-  
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+
+    startSenderInVMs("ln", vm4, vm5);
 
     //wait till the senders are running
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -360,13 +337,14 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
+    vm3.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 3, OrderPolicy.KEY ));
@@ -386,15 +364,7 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-
-    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
-    vm3.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     //make sure all the senders are running before doing any puts
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -425,13 +395,14 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
+    vm3.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 4, OrderPolicy.KEY ));
@@ -451,15 +422,8 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
-    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
-    vm3.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
 
     //make sure all the senders are running before doing any puts
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -527,13 +491,14 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
+    vm3.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 7, OrderPolicy.KEY ));
@@ -553,15 +518,7 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-
-    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
-    vm3.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     //make sure all the senders are running before doing any puts
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -598,10 +555,7 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
 
     LogWriterUtils.getLogWriter().info("Starting the senders at the same time");
     //when puts are happening by another thread, start the senders
-    vm4.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm5.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm6.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm7.invokeAsync(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
 
     LogWriterUtils.getLogWriter().info("All the senders are started");
     
@@ -627,13 +581,10 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         true, 100, 10, false, false, null, true, 4, OrderPolicy.KEY ));
@@ -653,10 +604,7 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     vm7.invoke(() -> WANTestBase.createPartitionedRegionAsAccessor(
         getTestMethodName() + "_PR", "ln", 1, 100));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
@@ -723,13 +671,10 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     LogWriterUtils.getLogWriter().info("Created cache on local site");
     
@@ -768,11 +713,8 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
     //During sender start, it will wait until those buckets are created for shadowPR as well.
     //Start the senders in async threads, so colocation of shadowPR will be complete and 
     //missing buckets will be created in PRHARedundancyProvider.createMissingBuckets().
-    vm4.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm5.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm6.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm7.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
+
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm5.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm6.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_2_DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_2_DUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_2_DUnitTest.java
index b4fa925..552da9e 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_2_DUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_2_DUnitTest.java
@@ -228,8 +228,11 @@ public class ConcurrentParallelGatewaySenderOperation_2_DUnitTest extends WANTes
     Integer tkPort = (Integer)vm2.invoke(() -> createFirstRemoteLocator(3, lnPort));
     Integer pnPort = (Integer)vm3.invoke(() -> createFirstRemoteLocator(4, lnPort));
 
+    createCacheInVMs(nyPort, vm4);
     vm4.invoke(() -> createReceiver(nyPort));
+    createCacheInVMs(tkPort, vm5);
     vm5.invoke(() -> createReceiver(tkPort));
+    createCacheInVMs(pnPort, vm6);
     vm6.invoke(() -> createReceiver(pnPort));
 
     try {
@@ -279,6 +282,7 @@ public class ConcurrentParallelGatewaySenderOperation_2_DUnitTest extends WANTes
     Integer lnPort = locatorPorts[0];
     Integer nyPort = locatorPorts[1];
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> createReceiver(nyPort));
 
     try {
@@ -319,7 +323,9 @@ public class ConcurrentParallelGatewaySenderOperation_2_DUnitTest extends WANTes
     Integer nyPort = locatorPorts[1];
     Integer tkPort = (Integer)vm2.invoke(() -> createFirstRemoteLocator(3, lnPort));
 
+    createCacheInVMs(nyPort, vm6);
     vm6.invoke(() -> createReceiver(nyPort));
+    createCacheInVMs(tkPort, vm7);
     vm7.invoke(() -> createReceiver(tkPort));
 
     try {
@@ -364,6 +370,7 @@ public class ConcurrentParallelGatewaySenderOperation_2_DUnitTest extends WANTes
     Integer lnPort = locatorPorts[0];
     Integer nyPort = locatorPorts[1];
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> createReceiver(nyPort));
 
     try {
@@ -401,6 +408,7 @@ public class ConcurrentParallelGatewaySenderOperation_2_DUnitTest extends WANTes
     Integer lnPort = locatorPorts[0];
     Integer nyPort = locatorPorts[1];
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     try {
@@ -478,6 +486,7 @@ public class ConcurrentParallelGatewaySenderOperation_2_DUnitTest extends WANTes
   protected void createReceiverAndDoPutsInPausedSender(int port) {
     // Note: This is a test-specific method used by several tests to do puts from vm4 to vm2.
     String regionName = getTestMethodName() + "_PR";
+    createCacheInVMs(port, vm2);
     vm2.invoke(() -> createReceiver(port));
     vm2.invoke(() -> createPartitionedRegion(regionName, null, 1, 10, isOffHeap()));
     vm4.invoke(() -> doPuts(regionName, 10));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_1_DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_1_DUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_1_DUnitTest.java
index 6cd1ae3..b95437c 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_1_DUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_1_DUnitTest.java
@@ -52,11 +52,7 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
 
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //keep the batch size high enough to reduce the number of exceptions in the log
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
@@ -64,8 +60,7 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
     vm5.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         false, 100, 400, false, false, null, true, 4, OrderPolicy.KEY ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -81,9 +76,8 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
 
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
       1000 ));
-    
-    vm2.invoke(() -> WANTestBase.createCache( nyPort ));
-    vm3.invoke(() -> WANTestBase.createCache( nyPort ));
+
+    createCacheInVMs(nyPort, vm2, vm3);
 
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
       getTestMethodName() + "_RR", null, isOffHeap() ));
@@ -105,13 +99,10 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         false, 100, 10, false, false, null, true, 5, OrderPolicy.THREAD ));
@@ -123,8 +114,7 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -152,13 +142,10 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         false, 100, 10, false, false, null, true, 5, OrderPolicy.THREAD ));
@@ -170,8 +157,7 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -194,19 +180,13 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
     Integer regionSize = 
       (Integer) vm2.invoke(() -> WANTestBase.getRegionSize(getTestMethodName() + "_RR" ));
     LogWriterUtils.getLogWriter().info("Region size on remote is: " + regionSize);
-    
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
       false, 100, 10, false, false, null, true, 5, OrderPolicy.THREAD ));
     vm5.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
       false, 100, 10, false, false, null, true, 5, OrderPolicy.THREAD ));
-  
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
     
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
       getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -216,10 +196,9 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
       getTestMethodName() + "_RR", "ln", isOffHeap() ));
     vm7.invoke(() -> WANTestBase.createReplicatedRegion(
       getTestMethodName() + "_RR", "ln", isOffHeap() ));
-    
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+
+    startSenderInVMs("ln", vm4, vm5);
+
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm5.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     
@@ -250,14 +229,10 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //these are part of remote site
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
-
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
     //these are part of local site
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //senders are created on local site
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
@@ -278,8 +253,7 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
         getTestMethodName() + "_RR_2", null, isOffHeap() ));
     
     //start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     //create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
@@ -335,14 +309,12 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //these are part of remote site
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+
 
     //these are part of local site
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //senders are created on local site
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
@@ -357,8 +329,7 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
         getTestMethodName() + "_RR_1", null, isOffHeap() ));
 
     //start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     //create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
@@ -407,14 +378,11 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //these are part of remote site
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //these are part of local site
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //senders are created on local site
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
@@ -435,8 +403,7 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
         getTestMethodName() + "_RR_2", null, isOffHeap() ));
     
     //start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     //create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
@@ -485,22 +452,20 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
 
   public void testReplicatedSerialPropagationWithRemoteRegionDestroy3()
       throws Exception {
+    final String senderId = "ln";
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
     // these are part of remote site
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     // these are part of local site
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     // senders are created on local site
-    vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
+    vm4.invoke(() -> WANTestBase.createConcurrentSender(  senderId, 2,
         false, 100, 200, false, false, null, true, 5, OrderPolicy.THREAD ));
-    vm5.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
+    vm5.invoke(() -> WANTestBase.createConcurrentSender( senderId, 2,
         false, 100, 200, false, false, null, true, 5, OrderPolicy.THREAD ));
 
     // create one RR (RR_1) on remote site
@@ -515,33 +480,29 @@ public class ConcurrentWANPropogation_1_DUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR_2", null, isOffHeap() ));
 
-    // start the senders on local site
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
 
     // start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     // create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR_1", "ln", isOffHeap() ));
+        getTestMethodName() + "_RR_1", senderId, isOffHeap() ));
     vm5.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR_1", "ln", isOffHeap() ));
+        getTestMethodName() + "_RR_1", senderId, isOffHeap() ));
     vm6.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR_1", "ln", isOffHeap() ));
+        getTestMethodName() + "_RR_1", senderId, isOffHeap() ));
     vm7.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR_1", "ln", isOffHeap() ));
+        getTestMethodName() + "_RR_1", senderId, isOffHeap() ));
 
     // create another RR (RR_2) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR_2", "ln", isOffHeap() ));
+        getTestMethodName() + "_RR_2", senderId, isOffHeap() ));
     vm5.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR_2", "ln", isOffHeap() ));
+        getTestMethodName() + "_RR_2", senderId, isOffHeap() ));
     vm6.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR_2", "ln", isOffHeap() ));
+        getTestMethodName() + "_RR_2", senderId, isOffHeap() ));
     vm7.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR_2", "ln", isOffHeap() ));
+        getTestMethodName() + "_RR_2", senderId, isOffHeap() ));
 
     IgnoredException.addIgnoredException(BatchException70.class.getName());
     IgnoredException.addIgnoredException(ServerOperationException.class.getName());

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_2_DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_2_DUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_2_DUnitTest.java
index b306fab..a9b4b9d 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_2_DUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_2_DUnitTest.java
@@ -48,13 +48,10 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver(nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver(nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //keep the maxQueueMemory low enough to trigger eviction
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
@@ -67,8 +64,7 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -93,13 +89,10 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         false, 100, 10, false, true, null, true, 5, OrderPolicy.THREAD ));
@@ -111,8 +104,7 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -139,13 +131,12 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
     Integer tkPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 3, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
+    createCacheInVMs(tkPort, vm3);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
     vm3.invoke(() -> WANTestBase.createReceiver( tkPort ));
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "lnSerial1",
         2, false, 100, 10, false, false, null, true, 5, OrderPolicy.THREAD ));
@@ -162,11 +153,9 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "lnSerial1" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnSerial1" ));
+    startSenderInVMs("lnSerial1", vm4, vm5);
 
-    vm4.invoke(() -> WANTestBase.startSender( "lnSerial2" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnSerial2" ));
+    startSenderInVMs("lnSerial2", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "lnSerial1,lnSerial2", isOffHeap() ));
@@ -194,13 +183,10 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         false, 100, 10, false, false, null, true, 5, OrderPolicy.THREAD ));
@@ -212,8 +198,7 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -242,13 +227,10 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         false, 100, 1000, true, false, null, true, 5, OrderPolicy.THREAD ));
@@ -260,8 +242,7 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -287,13 +268,10 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(2,lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         false, 100, 10, false, false, null, true, 4, OrderPolicy.THREAD ));
@@ -305,8 +283,7 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -331,13 +308,10 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(2,lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         false, 100, 10, false, false,
@@ -355,8 +329,7 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), null, 1, 100, isOffHeap() ));
@@ -374,13 +347,14 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    vm2.invoke(() -> WANTestBase.createReplicatedRegion(
+      getTestMethodName(), null, isOffHeap() ));
+    vm3.invoke(() -> WANTestBase.createReplicatedRegion(
+      getTestMethodName(), null, isOffHeap() ));
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         false, 100, 10, false, false,
@@ -389,13 +363,7 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
         false, 100, 10, false, false,
         new MyGatewayEventFilter(), true, 5, OrderPolicy.THREAD ));
 
-    vm2.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName(), null, isOffHeap() ));
-    vm3.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName(), null, isOffHeap() ));
-
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName(), "ln", isOffHeap() ));
@@ -418,22 +386,20 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    vm2.invoke(() -> WANTestBase.createCache(nyPort));
+    vm2.invoke(() -> WANTestBase.createReplicatedRegion(
+      getTestMethodName() + "_RR", null, isOffHeap() ));
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
+    WANTestBase.createCacheInVMs(lnPort, vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         false, 100, 10, false, false, null, true, 5, OrderPolicy.THREAD ));
     vm5.invoke(() -> WANTestBase.createConcurrentSender( "ln", 2,
         false, 100, 10, false, false, null, true, 5, OrderPolicy.THREAD ));
 
-    vm2.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    Wait.pause(500);
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createNormalRegion(
         getTestMethodName() + "_RR", "ln" ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/disttx/DistTXWANDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/disttx/DistTXWANDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/disttx/DistTXWANDUnitTest.java
index cfa2dc0..3de19e2 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/disttx/DistTXWANDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/disttx/DistTXWANDUnitTest.java
@@ -55,13 +55,10 @@ public class DistTXWANDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -77,8 +74,7 @@ public class DistTXWANDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
@@ -98,13 +94,10 @@ public class DistTXWANDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -120,8 +113,7 @@ public class DistTXWANDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
@@ -140,13 +132,10 @@ public class DistTXWANDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -166,10 +155,7 @@ public class DistTXWANDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap()  ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/CommonParallelGatewaySenderDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/CommonParallelGatewaySenderDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/CommonParallelGatewaySenderDUnitTest.java
index be5bea7..cba42df 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/CommonParallelGatewaySenderDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/CommonParallelGatewaySenderDUnitTest.java
@@ -80,13 +80,10 @@ public class CommonParallelGatewaySenderDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -115,10 +112,7 @@ public class CommonParallelGatewaySenderDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR2", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR1", null, 1, 100, isOffHeap() ));
@@ -166,13 +160,10 @@ public class CommonParallelGatewaySenderDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, true, null, true ));
@@ -201,10 +192,7 @@ public class CommonParallelGatewaySenderDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR2", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR1", null, 1, 100, isOffHeap() ));
@@ -260,14 +248,11 @@ public class CommonParallelGatewaySenderDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //create cache in local site
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //create senders with disk store
     String diskStore1 = (String) vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, true, 100, 10, false, true, null, null, true ));
@@ -311,11 +296,8 @@ public class CommonParallelGatewaySenderDUnitTest extends WANTestBase {
 
     
     //start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     //wait for senders to become running
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm5.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
@@ -400,11 +382,8 @@ public class CommonParallelGatewaySenderDUnitTest extends WANTestBase {
     
     //start the senders in async mode. This will ensure that the 
     //node of shadow PR that went down last will come up first
-    vm4.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm5.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm6.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    vm7.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
     //wait for senders running
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/NewWANConcurrencyCheckForDestroyDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/NewWANConcurrencyCheckForDestroyDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/NewWANConcurrencyCheckForDestroyDUnitTest.java
index 0d7216d..680f6bc 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/NewWANConcurrencyCheckForDestroyDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/NewWANConcurrencyCheckForDestroyDUnitTest.java
@@ -60,14 +60,17 @@ public class NewWANConcurrencyCheckForDestroyDUnitTest extends WANTestBase {
 
     // Site 1
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
+    createCacheInVMs(lnPort, vm1);
     Integer lnRecPort = (Integer) vm1.invoke(() -> WANTestBase.createReceiver( lnPort ));
     
     //Site 2
     Integer nyPort = (Integer)vm2.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
+    createCacheInVMs(nyPort, vm3);
     Integer nyRecPort = (Integer) vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     //Site 3
     Integer tkPort = (Integer)vm4.invoke(() -> WANTestBase.createFirstRemoteLocator( 3, lnPort ));
+    createCacheInVMs(tkPort, vm5);
     Integer tkRecPort = (Integer) vm5.invoke(() -> WANTestBase.createReceiver( tkPort ));
 
     LogWriterUtils.getLogWriter().info("Created locators and receivers in 3 distributed systems");
@@ -141,10 +144,12 @@ public class NewWANConcurrencyCheckForDestroyDUnitTest extends WANTestBase {
 
     // Site 1
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
+    vm1.invoke(() -> WANTestBase.createCache(lnPort));
     Integer lnRecPort = (Integer) vm1.invoke(() -> WANTestBase.createReceiver( lnPort ));
     
     //Site 2
     Integer nyPort = (Integer)vm2.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
+    vm3.invoke(() -> WANTestBase.createCache(nyPort));
     Integer nyRecPort = (Integer) vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     LogWriterUtils.getLogWriter().info("Created locators and receivers in 2 distributed systems");
@@ -244,10 +249,12 @@ public void testPutAllEventSequenceOnSerialGatewaySenderWithPR() {
 
     // Site 1
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
+    createCacheInVMs(lnPort, vm1);
     Integer lnRecPort = (Integer) vm1.invoke(() -> WANTestBase.createReceiver( lnPort ));
     
     //Site 2
     Integer nyPort = (Integer)vm2.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
+    createCacheInVMs(nyPort, vm3);
     Integer nyRecPort = (Integer) vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     LogWriterUtils.getLogWriter().info("Created locators and receivers in 2 distributed systems");
@@ -349,10 +356,12 @@ public void testPutAllEventSequenceOnSerialGatewaySenderWithPR() {
 
     // Site 1
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
+    createCacheInVMs(lnPort, vm1);
     Integer lnRecPort = (Integer) vm1.invoke(() -> WANTestBase.createReceiver( lnPort ));
-    
+
     //Site 2
     Integer nyPort = (Integer)vm2.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
+    createCacheInVMs(nyPort, vm3);
     Integer nyRecPort = (Integer) vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
     
     LogWriterUtils.getLogWriter().info("Created locators and receivers in 2 distributed systems");


[3/7] incubator-geode git commit: GEODE-1062: Refactor of WANTestBase

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPersistenceEnabledGatewaySenderDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPersistenceEnabledGatewaySenderDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPersistenceEnabledGatewaySenderDUnitTest.java
index fd1f0ee..8139dca 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPersistenceEnabledGatewaySenderDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPersistenceEnabledGatewaySenderDUnitTest.java
@@ -86,13 +86,10 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, true, null, true ));
@@ -112,10 +109,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     vm7.invoke(() -> WANTestBase.createPersistentPartitionedRegion(
         getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createPersistentPartitionedRegion(
         getTestMethodName(), null, 1, 100, isOffHeap() ));
@@ -131,15 +125,6 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
 
   }
 
-  protected SerializableCallableIF<Integer> createReceiverRunnable(
-      Integer nyPort) {
-    return () -> WANTestBase.createReceiver( nyPort );
-  }
-
-  protected SerializableRunnableIF createCacheRunnable(Integer lnPort) {
-    return () -> WANTestBase.createCache( lnPort );
-  }
-
   /**
    * Enable persistence for the GatewaySender but not the region
    */
@@ -147,15 +132,11 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
     
     LogWriterUtils.getLogWriter().info("Created remote receivers");
-    
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
     
     LogWriterUtils.getLogWriter().info("Created local site cache");
 
@@ -176,13 +157,9 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     vm7.invoke(createPartitionedRegionRunnable());
 
     LogWriterUtils.getLogWriter().info("Created local site persistent PR");
-    
-    vm4.invoke(startSenderRunnable());
-    LogWriterUtils.getLogWriter().info("Started sender on vm4");
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-    
+
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Started the senders");
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
@@ -203,11 +180,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
         getTestMethodName(), "ln", 1, 100, isOffHeap() );
   }
 
-  protected SerializableRunnableIF startSenderRunnable() {
-    return () -> WANTestBase.startSender( "ln" );
-  }
-  
-  
+
+
   
   /**
    * Enable persistence for GatewaySender.
@@ -223,14 +197,11 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //create cache in local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //create senders with disk store
     String diskStore1 = (String) vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, true, 100, 10, false, true, null, null, true ));
@@ -253,10 +224,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     vm7.invoke(createPartitionedRegionRunnable());
 
     //start the senders on local site
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
     
     //wait for senders to become running
     vm4.invoke(waitForSenderRunnable());
@@ -284,11 +252,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     LogWriterUtils.getLogWriter().info("Killed all the senders.");
     
     //restart the vm
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
-    
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Created back the cache");
     
    //create senders with disk store
@@ -318,10 +283,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     
     //start the senders in async mode. This will ensure that the 
     //node of shadow PR that went down last will come up first
-    vm4.invokeAsync(startSenderRunnable());
-    vm5.invokeAsync(startSenderRunnable());
-    vm6.invokeAsync(startSenderRunnable());
-    vm7.invokeAsync(startSenderRunnable());
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
     
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
     //wait for senders running
@@ -366,14 +328,11 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //create cache in local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //create senders with disk store
     String diskStore1 = (String) vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, true, 100, 10, false, true, null, null, true ));
@@ -400,11 +359,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
       getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
     //start the senders on local site
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     //wait for senders to become running
     vm4.invoke(waitForSenderRunnable());
     vm5.invoke(waitForSenderRunnable());
@@ -431,11 +387,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     LogWriterUtils.getLogWriter().info("Killed all the senders.");
     
     //restart the vm
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
-    
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Created back the cache");
     
    //create senders with disk store
@@ -469,11 +422,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     
     //start the senders in async mode. This will ensure that the 
     //node of shadow PR that went down last will come up first
-    vm4.invokeAsync(startSenderRunnable());
-    vm5.invokeAsync(startSenderRunnable());
-    vm6.invokeAsync(startSenderRunnable());
-    vm7.invokeAsync(startSenderRunnable());
-    
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
     //wait for senders running
     vm4.invoke(waitForSenderRunnable());
@@ -505,10 +455,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create cache in local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //create senders with disk store
     String diskStore1 = (String) vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, true, 100, 10, false, true, null, null, false ));
@@ -529,10 +476,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
       getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
     //start the senders on local site
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
     
     //wait for senders to become running
     vm4.invoke(waitForSenderRunnable());
@@ -560,11 +504,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     LogWriterUtils.getLogWriter().info("Killed all the senders.");
     
     //restart the vm
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
-    
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Created back the cache");
     
   //create senders with disk store
@@ -596,18 +537,10 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     }
     
     LogWriterUtils.getLogWriter().info("Created back the partitioned regions");
-    
-    vm4.invoke(() -> WANTestBase.unsetRemoveFromQueueOnException( "ln" ));
-    vm5.invoke(() -> WANTestBase.unsetRemoveFromQueueOnException( "ln" ));
-    vm6.invoke(() -> WANTestBase.unsetRemoveFromQueueOnException( "ln" ));
-    vm7.invoke(() -> WANTestBase.unsetRemoveFromQueueOnException( "ln" ));
 
     //start the senders in async mode. This will ensure that the 
     //node of shadow PR that went down last will come up first
-    vm4.invokeAsync(startSenderRunnable());
-    vm5.invokeAsync(startSenderRunnable());
-    vm6.invokeAsync(startSenderRunnable());
-    vm7.invokeAsync(startSenderRunnable());
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
     
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
     //wait for senders running
@@ -619,8 +552,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
 
     LogWriterUtils.getLogWriter().info("Creating the receiver.");
     //create receiver on remote site
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
     //create PR on remote site
     
     LogWriterUtils.getLogWriter().info("Creating the partitioned region at receiver. ");
@@ -628,6 +560,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
       getTestMethodName(), null, 1, 100, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createPersistentPartitionedRegion(
       getTestMethodName(), null, 1, 100, isOffHeap() ));
+    createReceiverInVMs(nyPort, vm2, vm3);
+
     vm4.invoke(pauseSenderRunnable());
     vm5.invoke(pauseSenderRunnable());
     vm6.invoke(pauseSenderRunnable());
@@ -665,14 +599,10 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    //create cache in local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //create senders with disk store
     String diskStore1 = (String) vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, true, 100, 10, false, true, null, null, true ));
@@ -699,11 +629,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
       getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
     //start the senders on local site
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     //wait for senders to become running
     vm4.invoke(waitForSenderRunnable());
     vm5.invoke(waitForSenderRunnable());
@@ -730,11 +657,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     LogWriterUtils.getLogWriter().info("Killed all the senders.");
     
     //restart the vm
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
-    
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Created back the cache");
     
    //create senders with disk store
@@ -769,10 +693,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     
     //start the senders in async mode. This will ensure that the 
     //node of shadow PR that went down last will come up first
-    vm4.invokeAsync(startSenderRunnable());
-    vm5.invokeAsync(startSenderRunnable());
-    vm6.invokeAsync(startSenderRunnable());
-    vm7.invokeAsync(startSenderRunnable());
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
     
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
     //wait for senders running
@@ -813,14 +734,11 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //create cache in local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //create senders with disk store
     String diskStore1 = (String) vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, true, 100, 10, false, true, null, null, true ));
@@ -847,10 +765,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
       getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
     //start the senders on local site
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
     
     //wait for senders to become running
     vm4.invoke(waitForSenderRunnable());
@@ -878,11 +793,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     LogWriterUtils.getLogWriter().info("Killed all the senders.");
     
     //restart the vm
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
-    
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Created back the cache");
     
   //create senders with disk store
@@ -917,11 +829,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     
     //start the senders in async mode. This will ensure that the 
     //node of shadow PR that went down last will come up first
-    vm4.invokeAsync(startSenderRunnable());
-    vm5.invokeAsync(startSenderRunnable());
-    vm6.invokeAsync(startSenderRunnable());
-    vm7.invokeAsync(startSenderRunnable());
-    
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
     //wait for senders running
     vm4.invoke(waitForSenderRunnable());
@@ -953,14 +862,10 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    //create cache in local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //create senders with disk store
     String diskStore1 = (String) vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, true, 100, 10, false, true, null, null, true ));
@@ -987,11 +892,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
       getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
     //start the senders on local site
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     //wait for senders to become running
     vm4.invoke(waitForSenderRunnable());
     vm5.invoke(waitForSenderRunnable());
@@ -1018,11 +920,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     LogWriterUtils.getLogWriter().info("Killed all the senders.");
     
     //restart the vm
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
-    
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Created back the cache");
     
   //create senders with disk store
@@ -1043,11 +942,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     
     //start the senders in async mode. This will ensure that the 
     //node of shadow PR that went down last will come up first
-    vm4.invokeAsync(startSenderRunnable());
-    vm5.invokeAsync(startSenderRunnable());
-    vm6.invokeAsync(startSenderRunnable());
-    vm7.invokeAsync(startSenderRunnable());
-    
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
     //wait for senders running
     vm4.invoke(waitForSenderRunnable());
@@ -1089,10 +985,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
     // create cache in local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     // create PR on local site
     vm4.invoke(() -> WANTestBase.createPersistentPartitionedRegion( getTestMethodName(), "ln", 1, 100, isOffHeap() ));
@@ -1116,10 +1009,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     LogWriterUtils.getLogWriter().info("Killed all the senders.");
 
     // restart the vm
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     LogWriterUtils.getLogWriter().info("Created back the cache");
 
@@ -1182,14 +1072,11 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //create cache in local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //create senders with disk store
     String diskStore1 = (String) vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, true, 100, 10, false, true, null, null, true ));
@@ -1216,11 +1103,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
       getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
     //start the senders on local site
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     //wait for senders to become running
     vm4.invoke(waitForSenderRunnable());
     vm5.invoke(waitForSenderRunnable());
@@ -1247,11 +1131,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     LogWriterUtils.getLogWriter().info("Killed all the senders.");
     
     //restart the vm
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
-    
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Created back the cache");
     
     
@@ -1265,11 +1146,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     
     
     //start the senders. NOTE that the senders are not associated with partitioned region
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Started the senders.");
     
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
@@ -1302,14 +1180,11 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //create cache in local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //create senders with disk store
     String diskStore1 = (String) vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, true, 100, 10, false, true, null, null, true ));
@@ -1332,11 +1207,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     vm7.invoke(createPartitionedRegionRunnable());
 
     //start the senders on local site
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     //wait for senders to become running
     vm4.invoke(waitForSenderRunnable());
     vm5.invoke(waitForSenderRunnable());
@@ -1362,11 +1234,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     LogWriterUtils.getLogWriter().info("Killed all the senders. The local site has been brought down.");
     
     //restart the vm
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
-    
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Created back the cache");
     
   //create senders with disk store
@@ -1386,11 +1255,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     LogWriterUtils.getLogWriter().info("Created back the partitioned regions");
     
     //start the senders
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Started the senders.");
     
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
@@ -1426,14 +1292,11 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //create cache in local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
       true, 100, 10, false, false, null, true ));
@@ -1461,11 +1324,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
       getTestMethodName(), "ln", 1, 100, isOffHeap() ));
     
     //start the senders on local site
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     //wait for senders to become running
     vm4.invoke(waitForSenderRunnable());
     vm5.invoke(waitForSenderRunnable());
@@ -1492,11 +1352,8 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     LogWriterUtils.getLogWriter().info("Killed all the senders.");
     
     //restart the vm
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
-    
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Created back the cache");
     
    //create back the senders
@@ -1511,17 +1368,9 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     
     LogWriterUtils.getLogWriter().info("Created the senders again");
     
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm6.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm7.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    
     //start the senders
-    vm4.invokeAsync(startSenderRunnable());
-    vm5.invokeAsync(startSenderRunnable());
-    vm6.invokeAsync(startSenderRunnable());
-    vm7.invokeAsync(startSenderRunnable());
-    
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
+
     LogWriterUtils.getLogWriter().info("Started the senders.");
     
     LogWriterUtils.getLogWriter().info("Waiting for senders running.");
@@ -1581,14 +1430,11 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on remote site
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //create cache in local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
     
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
       true, 100, 10, false, true, null, true ));
@@ -1612,12 +1458,9 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
       getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
-    
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-    
+
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     //start puts in region on local site
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_PR", 1000 ));
     LogWriterUtils.getLogWriter().info("Completed puts in the region");
@@ -1640,13 +1483,10 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
       Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
       Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-      vm2.invoke(createReceiverRunnable(nyPort));
-      vm3.invoke(createReceiverRunnable(nyPort));
+      createCacheInVMs(nyPort, vm2, vm3);
+      createReceiverInVMs(nyPort, vm2, vm3);
 
-      vm4.invoke(createCacheRunnable(lnPort));
-      vm5.invoke(createCacheRunnable(lnPort));
-      vm6.invoke(createCacheRunnable(lnPort));
-      vm7.invoke(createCacheRunnable(lnPort));
+      createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
       vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, true, null, true ));
@@ -1666,10 +1506,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
       vm7.invoke(() -> WANTestBase.createPersistentPartitionedRegion(
         getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
-      vm4.invoke(startSenderRunnable());
-      vm5.invoke(startSenderRunnable());
-      vm6.invoke(startSenderRunnable());
-      vm7.invoke(startSenderRunnable());
+      startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
       vm2.invoke(() -> WANTestBase.createPersistentPartitionedRegion(
         getTestMethodName(), null, 1, 100, isOffHeap() ));
@@ -1694,10 +1531,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
       vm6.invoke(ParallelWANPersistenceEnabledGatewaySenderDUnitTest.class, "setIgnoreQueue" , new Object[] { true});
       vm7.invoke(ParallelWANPersistenceEnabledGatewaySenderDUnitTest.class, "setIgnoreQueue" , new Object[] { true});
 
-      vm4.invoke(createCacheRunnable(lnPort));
-      vm5.invoke(createCacheRunnable(lnPort));
-      vm6.invoke(createCacheRunnable(lnPort));
-      vm7.invoke(createCacheRunnable(lnPort));
+      createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
       AsyncInvocation async4 = vm4.invokeAsync(() -> WANTestBase.createPersistentPartitionedRegion(
         getTestMethodName(), null, 1, 100, isOffHeap() ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationClientServerDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationClientServerDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationClientServerDUnitTest.java
index 594514b..52169ba 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationClientServerDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationClientServerDUnitTest.java
@@ -63,12 +63,9 @@ public class ParallelWANPropagationClientServerDUnitTest extends WANTestBase {
 
     vm7.invoke(() -> WANTestBase.createClientWithLocator(
       lnPort, "localhost", getTestMethodName() + "_PR" ));
-    
-    AsyncInvocation inv1 = vm5.invokeAsync(() -> WANTestBase.startSender( "ln" ));
-    AsyncInvocation inv2 = vm6.invokeAsync(() -> WANTestBase.startSender( "ln" ));
 
-    inv1.join();
-    inv2.join();
+    startSenderInVMsAsync("ln", vm5, vm6);
+
     // before doing any puts, let the senders be running in order to ensure that
     // not a single event will be lost
     

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationConcurrentOpsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationConcurrentOpsDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationConcurrentOpsDUnitTest.java
index 8ae5d0b..2c0d693 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationConcurrentOpsDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationConcurrentOpsDUnitTest.java
@@ -41,11 +41,10 @@ public class ParallelWANPropagationConcurrentOpsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5);
  
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -56,10 +55,9 @@ public class ParallelWANPropagationConcurrentOpsDUnitTest extends WANTestBase {
         getTestMethodName() + "_PR", "ln", 1, 1, isOffHeap() ));
     vm5.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 1, isOffHeap() ));
- 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
- 
+
+    startSenderInVMs("ln", vm4, vm5);
+
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 1, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
@@ -107,11 +105,10 @@ public class ParallelWANPropagationConcurrentOpsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5);
  
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -122,10 +119,9 @@ public class ParallelWANPropagationConcurrentOpsDUnitTest extends WANTestBase {
         getTestMethodName() + "_PR", "ln", 1, 10, isOffHeap() ));
     vm5.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 10, isOffHeap() ));
- 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
- 
+
+    startSenderInVMs("ln", vm4, vm5);
+
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 10, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
@@ -154,17 +150,15 @@ public class ParallelWANPropagationConcurrentOpsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", null, 3, 4, isOffHeap() ));
   
     vm2.invoke(() -> WANTestBase.addListenerOnRegion(getTestMethodName() + "_PR"));
-  
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -183,11 +177,8 @@ public class ParallelWANPropagationConcurrentOpsDUnitTest extends WANTestBase {
         getTestMethodName() + "_PR", "ln", 3, 4, isOffHeap() ));
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 3, 4, isOffHeap() ));
-    
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
+
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.addQueueListener( "ln", true));
     vm5.invoke(() -> WANTestBase.addQueueListener( "ln", true));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationDUnitTest.java
index d8d2585..6d4b03a 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationDUnitTest.java
@@ -82,11 +82,8 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
   public void testParallelPropagation_withoutRemoteSite() throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
-    
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //keep a larger batch to minimize number of exception occurrences in the log
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
@@ -103,15 +100,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm6.invoke(createPartitionedRegionRedundancy1Runnable());
     vm7.invoke(createPartitionedRegionRedundancy1Runnable());
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", false ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", false));
-    vm6.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", false ));
-    vm7.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", false ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
     
     //make sure all the senders are running before doing any puts
     vm4.invoke(waitForSenderRunnable());
@@ -122,12 +111,10 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_PR",
       1000 ));
 
-    
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-    
+    createCacheInVMs(nyPort, vm2, vm3);
     vm2.invoke(createReceiverPartitionedRegionRedundancy1());
     vm3.invoke(createReceiverPartitionedRegionRedundancy1());
+    createReceiverInVMs(nyPort, vm2, vm3);
     
     //verify all buckets drained on all sender nodes.
     vm4.invoke(() -> WANTestBase.validateParallelSenderQueueAllBucketsDrained("ln"));
@@ -142,10 +129,6 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm2.invoke(() -> WANTestBase.validateRegionSize(
         getTestMethodName() + "_PR", 1000 ));
   }
-
-  protected SerializableRunnableIF createCacheRunnable(Integer lnPort) {
-    return () -> WANTestBase.createCache( lnPort );
-  }
   
   /**
    * Normal happy scenario test case.
@@ -155,13 +138,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -177,10 +156,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm6.invoke(createPartitionedRegionRedundancy1Runnable());
     vm7.invoke(createPartitionedRegionRedundancy1Runnable());
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(createReceiverPartitionedRegionRedundancy1());
     vm3.invoke(createReceiverPartitionedRegionRedundancy1());
@@ -215,10 +191,6 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap()  );
   }
 
-  protected SerializableRunnableIF startSenderRunnable() {
-    return () -> WANTestBase.startSender( "ln" );
-  }
-
   protected SerializableRunnableIF waitForSenderRunnable() {
     return () -> WANTestBase.waitForSenderRunningState( "ln" );
   }
@@ -227,13 +199,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, false ));
@@ -280,13 +248,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -304,21 +268,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
 
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_PR",
       1000 ));
-    
-    AsyncInvocation inv1 = vm4.invokeAsync(startSenderRunnable());
-    AsyncInvocation inv2 = vm5.invokeAsync(startSenderRunnable());
-    AsyncInvocation inv3 = vm6.invokeAsync(startSenderRunnable());
-    AsyncInvocation inv4 = vm7.invokeAsync(startSenderRunnable());
 
-    try{
-      inv1.join();
-      inv2.join();
-      inv3.join();
-      inv4.join();
-    }
-    catch(InterruptedException ie) {
-      fail("Caught interrupted exception");
-    }
+    startSenderInVMsAsync("ln", vm4, vm5, vm6, vm7);
+
     vm2.invoke(createReceiverPartitionedRegionRedundancy1());
     vm3.invoke(createReceiverPartitionedRegionRedundancy1());
 
@@ -349,13 +301,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -371,10 +319,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm6.invoke(createPartitionedRegionRedundancy1Runnable());
     vm7.invoke(createPartitionedRegionRedundancy1Runnable());
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(createReceiverPartitionedRegionRedundancy1());
     vm3.invoke(createReceiverPartitionedRegionRedundancy1());
@@ -400,11 +345,8 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer regionSize = 
       (Integer) vm2.invoke(() -> WANTestBase.getRegionSize(getTestMethodName() + "_PR" ));
     LogWriterUtils.getLogWriter().info("Region size on remote is: " + regionSize);
-    
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
     
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -415,20 +357,12 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
 
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm6.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm7.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    
     vm4.invoke(createPartitionedRegionRedundancy1Runnable());
     vm5.invoke(createPartitionedRegionRedundancy1Runnable());
     vm6.invoke(createPartitionedRegionRedundancy1Runnable());
     vm7.invoke(createPartitionedRegionRedundancy1Runnable());
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm4.invoke(waitForSenderRunnable());
     vm5.invoke(waitForSenderRunnable());
@@ -458,13 +392,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -480,10 +410,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm6.invoke(() -> WANTestBase.createColocatedPartitionedRegions( getTestMethodName(), "ln", 1, 100, isOffHeap()  ));
     vm7.invoke(() -> WANTestBase.createColocatedPartitionedRegions( getTestMethodName(), "ln", 1, 100, isOffHeap()  ));
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createColocatedPartitionedRegions( getTestMethodName(), null, 1, 100, isOffHeap()  ));
     vm3.invoke(() -> WANTestBase.createColocatedPartitionedRegions( getTestMethodName(), null, 1, 100, isOffHeap()  ));
@@ -512,13 +439,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -534,10 +457,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm6.invoke(() -> WANTestBase.createColocatedPartitionedRegions2( getTestMethodName(), "ln", 1, 100, isOffHeap()  ));
     vm7.invoke(() -> WANTestBase.createColocatedPartitionedRegions2( getTestMethodName(), "ln", 1, 100, isOffHeap()  ));
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createColocatedPartitionedRegions2( getTestMethodName(), null, 1, 100, isOffHeap()  ));
     vm3.invoke(() -> WANTestBase.createColocatedPartitionedRegions2( getTestMethodName(), null, 1, 100, isOffHeap()  ));
@@ -565,13 +485,13 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName(), null, 1, 100, isOffHeap()  ));
+    vm3.invoke(() -> WANTestBase.createPartitionedRegion(
+      getTestMethodName(), null, 1, 100, isOffHeap()  ));
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -591,15 +511,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), "ln", 1, 100, isOffHeap()  ));
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-
-    vm2.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName(), null, 1, 100, isOffHeap()  ));
-    vm3.invoke(() -> WANTestBase.createPartitionedRegion(
-        getTestMethodName(), null, 1, 100, isOffHeap()  ));
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     //let all the senders start before doing any puts to ensure that none of the events is lost
     vm4.invoke(waitForSenderRunnable());
@@ -625,13 +537,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "lnSerial",
         2, false, 100, 10, false, false, null, true ));
@@ -673,13 +581,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "lnParallel", 1, 100, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "lnSerial" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnSerial" ));
+    startSenderInVMs("lnSerial", vm4, vm5);
 
-    vm4.invoke(() -> WANTestBase.startSender( "lnParallel" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnParallel" ));
-    vm6.invoke(() -> WANTestBase.startSender( "lnParallel" ));
-    vm7.invoke(() -> WANTestBase.startSender( "lnParallel" ));
+    startSenderInVMs("lnParallel", vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         1000 ));
@@ -704,13 +608,15 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
     Integer tkPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 3, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(tkPort));
+    createCacheInVMs(nyPort, vm2);
+    vm2.invoke(createReceiverPartitionedRegionRedundancy1());
+    createReceiverInVMs(nyPort, vm2);
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(tkPort, vm3);
+    vm3.invoke(createReceiverPartitionedRegionRedundancy1());
+    createReceiverInVMs(tkPort, vm3);
+
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "lnParallel1",
         2, true, 100, 10, false, false, null, true ));
@@ -739,18 +645,10 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "lnParallel1,lnParallel2", 1, 100, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "lnParallel1" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnParallel1" ));
-    vm6.invoke(() -> WANTestBase.startSender( "lnParallel1" ));
-    vm7.invoke(() -> WANTestBase.startSender( "lnParallel1" ));
+    startSenderInVMs("lnParallel1", vm4, vm5, vm6, vm7);
 
-    vm4.invoke(() -> WANTestBase.startSender( "lnParallel2" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnParallel2" ));
-    vm6.invoke(() -> WANTestBase.startSender( "lnParallel2" ));
-    vm7.invoke(() -> WANTestBase.startSender( "lnParallel2" ));
+    startSenderInVMs("lnParallel2", vm4, vm5, vm6, vm7);
 
-    vm2.invoke(createReceiverPartitionedRegionRedundancy1());
-    vm3.invoke(createReceiverPartitionedRegionRedundancy1());
 
     //before doing puts, make sure that the senders are started.
     //this will ensure that not a single events is lost
@@ -793,13 +691,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -810,10 +704,6 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
 
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm6.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm7.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
     
     vm4.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 2, 100, isOffHeap()  ));
@@ -824,11 +714,8 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 2, 100, isOffHeap()  ));
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
-    
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
+
     vm2.invoke(createReceiverPartitionedRegionRedundancy1());
     vm3.invoke(createReceiverPartitionedRegionRedundancy1());
 
@@ -862,13 +749,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false,
@@ -892,10 +775,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), "ln", 1, 100, isOffHeap()  ));
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), null, 1, 100, isOffHeap()  ));
@@ -921,13 +801,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -943,10 +819,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm6.invoke(createPartitionedRegionRedundancy1Runnable());
     vm7.invoke(createPartitionedRegionRedundancy1Runnable());
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(createReceiverPartitionedRegionRedundancy1());
     vm3.invoke(createReceiverPartitionedRegionRedundancy1());
@@ -983,13 +856,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 100, false, false, null, true ));
@@ -1005,10 +874,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm6.invoke(createPartitionedRegionRedundancy1Runnable());
     vm7.invoke(createPartitionedRegionRedundancy1Runnable());
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
-    vm6.invoke(startSenderRunnable());
-    vm7.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm2.invoke(createReceiverPartitionedRegionRedundancy1());
     vm3.invoke(createReceiverPartitionedRegionRedundancy1());
@@ -1064,11 +930,9 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createReceiverRunnable(nyPort));
-    vm3.invoke(createReceiverRunnable(nyPort));
-
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5);
     //vm6.invoke(() -> WANTestBase.createCache( lnPort ));
     //vm7.invoke(() -> WANTestBase.createCache( lnPort ));
 
@@ -1088,8 +952,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
 //    vm7.invoke(() -> WANTestBase.createPartitionedRegion(
 //        testName + "_PR", "ln", true, 1, 100, isOffHeap()  ));
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5);
 //    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
 //    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
 
@@ -1118,11 +981,11 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
   public void disable_testParallelGatewaySenderQueueLocalSize() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
-    
-    vm2.invoke(createReceiverRunnable(nyPort));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2);
+    createCacheInVMs(nyPort, vm2);
+    createReceiverInVMs(nyPort, vm2);
+    createCacheInVMs(lnPort, vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -1132,8 +995,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm4.invoke(createPartitionedRegionRedundancy1Runnable());
     vm5.invoke(createPartitionedRegionRedundancy1Runnable());
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(waitForSenderRunnable());
     vm5.invoke(waitForSenderRunnable());
@@ -1171,11 +1033,10 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     IgnoredException.addIgnoredException("Unexpected IOException");
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
-    
-    vm2.invoke(createReceiverRunnable(nyPort));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(nyPort, vm2);
+    createReceiverInVMs(nyPort, vm2);
+    createCacheInVMs(lnPort, vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false, null, true ));
@@ -1185,8 +1046,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm4.invoke(createPartitionedRegionRedundancy1Runnable());
     vm5.invoke(createPartitionedRegionRedundancy1Runnable());
 
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(waitForSenderRunnable());
     vm5.invoke(waitForSenderRunnable());
@@ -1225,22 +1085,22 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
    * Added for defect #50364 Can't colocate region that has AEQ with a region that does not have that same AEQ
    */
   public void testParallelSenderAttachedToChildRegionButNotToParentRegion() {
-	Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
-	Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
-	    
-	//create cache and receiver on site2
-	vm2.invoke(createReceiverRunnable(nyPort));
-
-	//create cache on site1
-	vm3.invoke(createCacheRunnable(lnPort));   
-	
-	//create sender on site1
+    Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
+    Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
+
+	  //create cache and receiver on site2
+    createCacheInVMs(nyPort, vm2);
+    createReceiverInVMs(nyPort, vm2);
+	  //create cache on site1
+    createCacheInVMs(lnPort, vm3);
+
+	  //create sender on site1
     vm3.invoke(() -> WANTestBase.createSender( "ln", 2,
       true, 100, 10, false, false, null, true ));
     
     //start sender on site1
-    vm3.invoke(startSenderRunnable());
-    
+    startSenderInVMs("ln", vm3);
+
     //create leader (parent) PR on site1
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "PARENT_PR", null, 0, 100, isOffHeap() ));
@@ -1269,13 +1129,10 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm6.invoke(createReceiverRunnable(nyPort));
-    vm7.invoke(createReceiverRunnable(nyPort));
+    createCacheInVMs(nyPort, vm6, vm7);
+    createReceiverInVMs(nyPort, vm6, vm7);
 
-    vm2.invoke(createCacheRunnable(lnPort));
-    vm3.invoke(createCacheRunnable(lnPort));
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm2, vm3, vm4, vm5);
 
     vm2.invoke(() -> WANTestBase.createSender( "ln", 2, true,
         100, 10, false, false, new MyGatewayEventFilter_AfterAck(), true ));
@@ -1295,10 +1152,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
     vm5.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), "ln", 1, 100, isOffHeap() ));
 
-    vm2.invoke(startSenderRunnable());
-    vm3.invoke(startSenderRunnable());
-    vm4.invoke(startSenderRunnable());
-    vm5.invoke(startSenderRunnable());
+    startSenderInVMs("ln", vm2, vm3, vm4, vm5);
 
     vm6.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), null, 1, 100, isOffHeap() ));
@@ -1347,8 +1201,4 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
         
   }
 
-  protected SerializableCallableIF<Integer> createReceiverRunnable(
-      Integer nyPort) {
-    return () -> WANTestBase.createReceiver( nyPort );
-  } 
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java
index b921c88..7adba41 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java
@@ -42,15 +42,11 @@ public class ParallelWANPropagationLoopBackDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //create receiver on site1 and site2
+    createCacheInVMs(lnPort, vm2, vm4, vm5);
     vm2.invoke(() -> WANTestBase.createReceiver( lnPort ));
+    createCacheInVMs(nyPort, vm3, vm6, vm7);
     vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    //create cache on site1 and site2
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( nyPort ));
-    vm7.invoke(() -> WANTestBase.createCache( nyPort ));
-
     //create senders on site1
     vm2.invoke(() -> WANTestBase.createSender( "ln", 2,
       true, 100, 10, false, false, null, true ));
@@ -84,15 +80,13 @@ public class ParallelWANPropagationLoopBackDUnitTest extends WANTestBase {
       getTestMethodName() + "_PR", "ny", 0, 100, isOffHeap()  ));
     
     //start sender on site1
-    vm2.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMs("ln", vm2, vm4, vm5);
+
+
     //start sender on site2
-    vm3.invoke(() -> WANTestBase.startSender( "ny" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ny" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ny" ));
-    
+    startSenderInVMs("ny", vm3, vm6, vm7);
+
+
     //pause senders on site1
     vm2.invoke(() -> WANTestBase.pauseSender( "ln" ));
     vm4.invoke(() -> WANTestBase.pauseSender( "ln" ));
@@ -162,13 +156,14 @@ public class ParallelWANPropagationLoopBackDUnitTest extends WANTestBase {
     Integer tkPort = (Integer)vm2.invoke(() -> WANTestBase.createFirstRemoteLocator( 3, lnPort ));
     
     //create cache and receivers on all the 3 sites
-    vm3.invoke(() -> WANTestBase.createReceiver( lnPort ));
-    vm4.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm5.invoke(() -> WANTestBase.createReceiver( tkPort ));
-    
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( nyPort ));
-    
+    createCacheInVMs(lnPort, vm3, vm6);
+    createReceiverInVMs(lnPort, vm3, vm6);
+    createCacheInVMs(nyPort, vm4, vm7);
+    createReceiverInVMs(nyPort, vm4, vm7);
+    createCacheInVMs(tkPort, vm5);
+    createReceiverInVMs(tkPort, vm5);
+
+
     //create senders on all the 3 sites
     vm3.invoke(() -> WANTestBase.createSender( "ln", 2,
       true, 100, 10, false, false, null, true ));
@@ -198,12 +193,10 @@ public class ParallelWANPropagationLoopBackDUnitTest extends WANTestBase {
       getTestMethodName() + "_PR", "tk", 0, 100, isOffHeap() ));
     
     //start senders on all the sites 
-    vm3.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    
-    vm4.invoke(() -> WANTestBase.startSender( "ny" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ny" ));
-    
+    startSenderInVMs("ln", vm3, vm6);
+
+    startSenderInVMs("ny", vm4, vm7);
+
     vm5.invoke(() -> WANTestBase.startSender( "tk" ));
     
     //pause senders on site1 and site3. Site2 has the sender running to pass along events
@@ -265,14 +258,14 @@ public class ParallelWANPropagationLoopBackDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
     Integer tkPort = (Integer)vm2.invoke(() -> WANTestBase.createFirstRemoteLocator( 3, lnPort ));
-    
+
+    createCacheInVMs(lnPort, vm3, vm6);
+    createCacheInVMs(nyPort, vm4, vm7);
+    createCacheInVMs(tkPort, vm5);
     vm3.invoke(() -> WANTestBase.createReceiver( lnPort ));
     vm4.invoke(() -> WANTestBase.createReceiver( nyPort ));
     vm5.invoke(() -> WANTestBase.createReceiver( tkPort ));
-    
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( nyPort ));
-    
+
     //site1
     vm3.invoke(() -> WANTestBase.createSender( "ln1", 2,
       true, 100, 10, false, false, null, true ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANStatsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANStatsDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANStatsDUnitTest.java
index 55fd5ad..9d9c074 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANStatsDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANStatsDUnitTest.java
@@ -47,8 +47,8 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceiver(vm2, nyPort);
-    createReceiver(vm3, nyPort);
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     createSendersWithConflation(lnPort);
 
@@ -79,16 +79,16 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceiver(vm2, nyPort);
-   
+    createCacheInVMs(nyPort, vm2);
+    createReceiverInVMs(nyPort, vm2);
 
     createSenders(lnPort);
 
     createReceiverPR(vm2, 0);
    
     createSenderPRs(0);
-    
-    startSenders();
+
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.doPuts( testName,
         NUM_PUTS ));
@@ -116,15 +116,16 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceiver(vm2, nyPort);
+    createCacheInVMs(nyPort, vm2);
+    createReceiverInVMs(nyPort, vm2);
 
     createSenders(lnPort);
 
     createReceiverPR(vm2, 0);
 
     createSenderPRs(3);
-    
-    startSenders();
+
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.doPuts( testName,
         NUM_PUTS ));
@@ -152,8 +153,10 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
     Integer nyPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
     Integer tkPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 3, lnPort ));
 
-    createReceiver(vm2, nyPort);
-    createReceiver(vm3, tkPort);
+    createCacheInVMs(nyPort, vm2);
+    createCacheInVMs(tkPort, vm3);
+    createReceiverInVMs(nyPort, vm2);
+    createReceiverInVMs(tkPort, vm3);
 
     vm4.invoke(() -> WANTestBase.createCache(lnPort ));
 
@@ -207,16 +210,16 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceiver(vm2, nyPort);
-    
+    createCacheInVMs(nyPort, vm2);
+    createReceiverInVMs(nyPort, vm2);
 
     createSenders(lnPort);
     
     createReceiverPR(vm2, 0);
     
     createSenderPRs(3);
-    
-    startSenders();
+
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     AsyncInvocation inv1 = vm5.invokeAsync(() -> WANTestBase.doPuts( testName, 1000 ));
     pause(200);
@@ -256,7 +259,8 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceiver(vm2, nyPort);
+    createCacheInVMs(nyPort, vm2);
+    createReceiverInVMs(nyPort, vm2);
 
     createSenders(lnPort);
 
@@ -267,7 +271,7 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
 
     createSenderPRs(0);
 
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     //start puts in RR_1 in another thread
     vm4.invoke(() -> WANTestBase.doPuts( testName, 2000 ));
@@ -291,12 +295,10 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(2,lnPort ));
 
-    createReceiver(vm2, nyPort);
+    createCacheInVMs(nyPort, vm2);
+    createReceiverInVMs(nyPort, vm2);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, false, false,
@@ -313,7 +315,7 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
   
     createSenderPRs(0);
 
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
 
     createReceiverPR(vm2, 1);
     
@@ -342,7 +344,8 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceiver(vm2, nyPort);
+    createCacheInVMs(nyPort, vm2);
+    createReceiverInVMs(nyPort, vm2);
 
     createSendersWithConflation(lnPort);
 
@@ -433,7 +436,7 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
   }
 
   protected void startPausedSenders() {
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5, vm6, vm7);
     
     vm4.invoke(() ->pauseSender( "ln" ));
     vm5.invoke(() ->pauseSender( "ln" ));
@@ -441,22 +444,8 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
     vm7.invoke(() ->pauseSender( "ln" ));
   }
 
-  protected void createReceiver(VM vm, Integer nyPort) {
-    vm.invoke(() -> WANTestBase.createReceiver( nyPort ));
-  }
-  
-  protected void startSenders() {
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm6.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm7.invoke(() -> WANTestBase.startSender( "ln" ));
-  }
-
   protected void createSendersWithConflation(Integer lnPort) {
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         true, 100, 10, true, false, null, true ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java
index 7a05644..7f69904 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java
@@ -58,8 +58,7 @@ public class SerialGatewaySenderEventListenerDUnitTest extends WANTestBase {
     vm5.invoke(() -> WANTestBase.createSenderWithListener( "ln", 2,
         false, 100, 10, false, false, null, false, true));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -98,13 +97,11 @@ public class SerialGatewaySenderEventListenerDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSenderWithListener( "ln", 2,
         false, 100, 10, false, false, null, false, true));
@@ -116,8 +113,7 @@ public class SerialGatewaySenderEventListenerDUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -158,13 +154,10 @@ public class SerialGatewaySenderEventListenerDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSenderWithListener( "ln", 2,
         false, 100, 10, false, false, null, true, true));
@@ -176,8 +169,7 @@ public class SerialGatewaySenderEventListenerDUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -213,10 +205,10 @@ public class SerialGatewaySenderEventListenerDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver(nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver(nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4);
 
     vm4.invoke(() -> WANTestBase.createSenderWithListener( "ln", 2,
         false, 100, 10, false, false, null, false, false ));



[6/7] incubator-geode git commit: GEODE-1062: Refactor of WANTestBase

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/WANTestBase.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/WANTestBase.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/WANTestBase.java
index d73084b..6685451 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/WANTestBase.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/WANTestBase.java
@@ -26,6 +26,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -132,15 +133,15 @@ public class WANTestBase extends DistributedTestCase{
 
   protected static Cache cache;
   protected static Region region;
-  
+
   protected static PartitionedRegion customerRegion;
   protected static PartitionedRegion orderRegion;
   protected static PartitionedRegion shipmentRegion;
-  
+
   protected static final String customerRegionName = "CUSTOMER";
   protected static final String orderRegionName = "ORDER";
   protected static final String shipmentRegionName = "SHIPMENT";
-  
+
   protected static VM vm0;
   protected static VM vm1;
   protected static VM vm2;
@@ -149,26 +150,26 @@ public class WANTestBase extends DistributedTestCase{
   protected static VM vm5;
   protected static VM vm6;
   protected static VM vm7;
-  
+
   protected static QueueListener listener1;
   protected static QueueListener listener2;
-  
+
   protected static List<QueueListener> gatewayListeners;
-  
+
   protected static AsyncEventListener eventListener1 ;
   protected static AsyncEventListener eventListener2 ;
 
   private static final long MAX_WAIT = 10000;
-  
+
   protected static GatewayEventFilter eventFilter;
-  
+
   protected static boolean destroyFlag = false;
-  
-  protected static List<Integer> dispatcherThreads = 
+
+  protected static List<Integer> dispatcherThreads =
 	  new ArrayList<Integer>(Arrays.asList(1, 3, 5));
   //this will be set for each test method run with one of the values from above list
   protected static int numDispatcherThreadsForTheRun = 1;
-  
+
   public WANTestBase(String name) {
     super(name);
   }
@@ -201,15 +202,15 @@ public class WANTestBase extends DistributedTestCase{
 
   protected void postSetUpWANTestBase() throws Exception {
   }
-  
+
   public static void shuffleNumDispatcherThreads() {
-	  Collections.shuffle(dispatcherThreads);  
+	  Collections.shuffle(dispatcherThreads);
   }
-  
+
   public static void setNumDispatcherThreadsForTheRun(int numThreads) {
 	  numDispatcherThreadsForTheRun = numThreads;
   }
-  
+
   public static void stopOldLocator() {
     if (Locator.hasLocator()) {
       Locator.getLocator().stop();
@@ -225,19 +226,19 @@ public class WANTestBase extends DistributedTestCase{
     localLocatorBuffer.deleteCharAt(0);
     localLocatorBuffer.deleteCharAt(localLocatorBuffer.lastIndexOf("]"));
     String localLocator = localLocatorBuffer.toString();
-    localLocator = localLocator.replace(" ", ""); 
-    
+    localLocator = localLocator.replace(" ", "");
+
     props.setProperty(DistributionConfig.LOCATORS_NAME, localLocator);
     props.setProperty(DistributionConfig.START_LOCATOR_NAME, "localhost[" + port + "],server=true,peer=true,hostname-for-clients=localhost");
     StringBuffer remoteLocatorBuffer = new StringBuffer(remoteLocatorsList.toString());
     remoteLocatorBuffer.deleteCharAt(0);
     remoteLocatorBuffer.deleteCharAt(remoteLocatorBuffer.lastIndexOf("]"));
     String remoteLocator = remoteLocatorBuffer.toString();
-    remoteLocator = remoteLocator.replace(" ", ""); 
+    remoteLocator = remoteLocator.replace(" ", "");
     props.setProperty(DistributionConfig.REMOTE_LOCATORS_NAME, remoteLocator);
     test.getSystem(props);
   }
-  
+
   public static Integer createFirstLocatorWithDSId(int dsId) {
     stopOldLocator();
     WANTestBase test = new WANTestBase(getTestMethodName());
@@ -250,7 +251,7 @@ public class WANTestBase extends DistributedTestCase{
     test.getSystem(props);
     return port;
   }
-  
+
   public static Integer createFirstPeerLocator(int dsId) {
     stopOldLocator();
     WANTestBase test = new WANTestBase(getTestMethodName());
@@ -263,7 +264,7 @@ public class WANTestBase extends DistributedTestCase{
     test.getSystem(props);
     return port;
   }
-  
+
   public static Integer createSecondLocator(int dsId, int locatorPort) {
     stopOldLocator();
     WANTestBase test = new WANTestBase(getTestMethodName());
@@ -289,7 +290,7 @@ public class WANTestBase extends DistributedTestCase{
     test.getSystem(props);
     return port;
   }
-  
+
   public static Integer createFirstRemoteLocator(int dsId, int remoteLocPort) {
     stopOldLocator();
     WANTestBase test = new WANTestBase(getTestMethodName());
@@ -303,7 +304,7 @@ public class WANTestBase extends DistributedTestCase{
     test.getSystem(props);
     return port;
   }
-  
+
   public static void bringBackLocatorOnOldPort(int dsId, int remoteLocPort, int oldPort) {
     WANTestBase test = new WANTestBase(getTestMethodName());
     Properties props = test.getDistributedSystemProperties();
@@ -316,8 +317,8 @@ public class WANTestBase extends DistributedTestCase{
     test.getSystem(props);
     return;
   }
-  
-  
+
+
   public static Integer createFirstRemotePeerLocator(int dsId, int remoteLocPort) {
     stopOldLocator();
     WANTestBase test = new WANTestBase(getTestMethodName());
@@ -331,7 +332,7 @@ public class WANTestBase extends DistributedTestCase{
     test.getSystem(props);
     return port;
   }
-  
+
   public static Integer createSecondRemoteLocator(int dsId, int localPort,
       int remoteLocPort) {
     stopOldLocator();
@@ -346,7 +347,7 @@ public class WANTestBase extends DistributedTestCase{
     test.getSystem(props);
     return port;
   }
-  
+
   public static Integer createSecondRemotePeerLocator(int dsId, int localPort,
       int remoteLocPort) {
     stopOldLocator();
@@ -361,7 +362,7 @@ public class WANTestBase extends DistributedTestCase{
     test.getSystem(props);
     return port;
   }
-  
+
   public static void createReplicatedRegion(String regionName, String senderIds, Boolean offHeap){
     IgnoredException exp = IgnoredException.addIgnoredException(ForceReattemptException.class
         .getName());
@@ -409,7 +410,7 @@ public class WANTestBase extends DistributedTestCase{
     Region r = cache.createRegionFactory(fact.create()).create(regionName);
     assertNotNull(r);
   }
-  
+
 //  public static void createReplicatedRegion_PDX(String regionName, String senderId, DataPolicy policy, InterestPolicy intPolicy){
 //    AttributesFactory fact = new AttributesFactory();
 //    if(senderId!= null){
@@ -427,7 +428,7 @@ public class WANTestBase extends DistributedTestCase{
 //    assertNotNull(r);
 //    assertTrue(r.size() == 0);
 //  }
-  
+
   public static void createPersistentReplicatedRegion(String regionName, String senderIds, Boolean offHeap){
     AttributesFactory fact = new AttributesFactory();
     if(senderIds!= null){
@@ -444,7 +445,7 @@ public class WANTestBase extends DistributedTestCase{
     Region r = cache.createRegionFactory(fact.create()).create(regionName);
     assertNotNull(r);
   }
-  
+
 //  public static void createReplicatedRegionWithParallelSenderId(String regionName, String senderId){
 //    AttributesFactory fact = new AttributesFactory();
 //    if(senderId!= null){
@@ -458,14 +459,14 @@ public class WANTestBase extends DistributedTestCase{
 //    Region r = cache.createRegionFactory(fact.create()).create(regionName);
 //    assertNotNull(r);
 //  }
-  
+
 //  public static void createReplicatedRegion(String regionName){
 //    AttributesFactory fact = new AttributesFactory();
 //    fact.setDataPolicy(DataPolicy.REPLICATE);
 //    Region r = cache.createRegionFactory(fact.create()).create(regionName);
 //    assertNotNull(r);
 //  }
-  
+
   public static void createReplicatedRegionWithAsyncEventQueue(
       String regionName, String asyncQueueIds, Boolean offHeap) {
     IgnoredException exp1 = IgnoredException.addIgnoredException(ForceReattemptException.class
@@ -489,10 +490,10 @@ public class WANTestBase extends DistributedTestCase{
       exp1.remove();
     }
   }
-  
+
   public static void createPersistentReplicatedRegionWithAsyncEventQueue(
       String regionName, String asyncQueueIds) {
-        
+
     AttributesFactory fact = new AttributesFactory();
     if(asyncQueueIds != null){
       StringTokenizer tokenizer = new StringTokenizer(asyncQueueIds, ",");
@@ -506,9 +507,9 @@ public class WANTestBase extends DistributedTestCase{
     Region r = regionFactory.create(regionName);
     assertNotNull(r);
   }
-  
-  
-  
+
+
+
   public static void createReplicatedRegionWithSenderAndAsyncEventQueue(
       String regionName, String senderIds, String asyncChannelId, Boolean offHeap) {
     IgnoredException exp = IgnoredException.addIgnoredException(ForceReattemptException.class
@@ -535,7 +536,7 @@ public class WANTestBase extends DistributedTestCase{
       exp.remove();
     }
   }
-  
+
   public static void createReplicatedRegion(String regionName, String senderIds, Scope scope, DataPolicy policy, Boolean offHeap){
     AttributesFactory fact = new AttributesFactory();
     if(senderIds!= null){
@@ -553,12 +554,12 @@ public class WANTestBase extends DistributedTestCase{
     Region r = cache.createRegionFactory(fact.create()).create(regionName);
     assertNotNull(r);
   }
-  
+
   public static void createAsyncEventQueue(
-      String asyncChannelId, boolean isParallel, 
-      Integer maxMemory, Integer batchSize, boolean isConflation, 
+      String asyncChannelId, boolean isParallel,
+      Integer maxMemory, Integer batchSize, boolean isConflation,
       boolean isPersistent, String diskStoreName, boolean isDiskSynchronous) {
-    
+
     if (diskStoreName != null) {
       File directory = new File(asyncChannelId + "_disk_"
           + System.currentTimeMillis() + "_" + VM.getCurrentVMNum());
@@ -568,9 +569,9 @@ public class WANTestBase extends DistributedTestCase{
       dsf.setDiskDirs(dirs1);
       DiskStore ds = dsf.create(diskStoreName);
     }
-    
+
     AsyncEventListener asyncEventListener = new MyAsyncEventListener();
-    
+
     AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory();
     factory.setBatchSize(batchSize);
     factory.setPersistent(isPersistent);
@@ -583,11 +584,11 @@ public class WANTestBase extends DistributedTestCase{
     factory.setDispatcherThreads(numDispatcherThreadsForTheRun);
     AsyncEventQueue asyncChannel = factory.create(asyncChannelId, asyncEventListener);
   }
-  
+
   public static void createAsyncEventQueueWithListener2(String asyncChannelId,
       boolean isParallel, Integer maxMemory, Integer batchSize,
       boolean isPersistent, String diskStoreName) {
-    
+
     if (diskStoreName != null) {
       File directory = new File(asyncChannelId + "_disk_"
           + System.currentTimeMillis() + "_" + VM.getCurrentVMNum());
@@ -597,7 +598,7 @@ public class WANTestBase extends DistributedTestCase{
       dsf.setDiskDirs(dirs1);
       DiskStore ds = dsf.create(diskStoreName);
     }
-    
+
     AsyncEventListener asyncEventListener = new MyAsyncEventListener2();
 
     AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory();
@@ -611,12 +612,12 @@ public class WANTestBase extends DistributedTestCase{
     AsyncEventQueue asyncChannel = factory.create(asyncChannelId,
         asyncEventListener);
   }
-  
+
   public static void createAsyncEventQueue(
-    String asyncChannelId, boolean isParallel, Integer maxMemory, 
-    Integer batchSize, boolean isConflation, boolean isPersistent, 
+    String asyncChannelId, boolean isParallel, Integer maxMemory,
+    Integer batchSize, boolean isConflation, boolean isPersistent,
     String diskStoreName, boolean isDiskSynchronous, String asyncListenerClass) throws Exception {
-	    
+
 	if (diskStoreName != null) {
 	  File directory = new File(asyncChannelId + "_disk_"
 		+ System.currentTimeMillis() + "_" + VM.getCurrentVMNum());
@@ -626,7 +627,7 @@ public class WANTestBase extends DistributedTestCase{
 	  dsf.setDiskDirs(dirs1);
 	  DiskStore ds = dsf.create(diskStoreName);
 	}
-	
+
 	String packagePrefix = "com.gemstone.gemfire.internal.cache.wan.";
 	String className = packagePrefix + asyncListenerClass;
 	AsyncEventListener asyncEventListener = null;
@@ -640,7 +641,7 @@ public class WANTestBase extends DistributedTestCase{
 	} catch (IllegalAccessException e) {
 	  throw e;
 	}
-	    
+
 	AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory();
 	factory.setBatchSize(batchSize);
 	factory.setPersistent(isPersistent);
@@ -653,7 +654,7 @@ public class WANTestBase extends DistributedTestCase{
 	factory.setDispatcherThreads(numDispatcherThreadsForTheRun);
 	AsyncEventQueue asyncChannel = factory.create(asyncChannelId, asyncEventListener);
   }
-  
+
   public static void createAsyncEventQueueWithCustomListener(
       String asyncChannelId, boolean isParallel, Integer maxMemory,
       Integer batchSize, boolean isConflation, boolean isPersistent,
@@ -661,7 +662,7 @@ public class WANTestBase extends DistributedTestCase{
     createAsyncEventQueueWithCustomListener(asyncChannelId, isParallel, maxMemory, batchSize,
         isConflation, isPersistent, diskStoreName, isDiskSynchronous, GatewaySender.DEFAULT_DISPATCHER_THREADS);
   }
-  
+
   public static void createAsyncEventQueueWithCustomListener(
       String asyncChannelId, boolean isParallel, Integer maxMemory,
       Integer batchSize, boolean isConflation, boolean isPersistent,
@@ -698,11 +699,11 @@ public class WANTestBase extends DistributedTestCase{
   }
 
   public static void createConcurrentAsyncEventQueue(
-      String asyncChannelId, boolean isParallel, 
-      Integer maxMemory, Integer batchSize, boolean isConflation, 
+      String asyncChannelId, boolean isParallel,
+      Integer maxMemory, Integer batchSize, boolean isConflation,
       boolean isPersistent, String diskStoreName, boolean isDiskSynchronous,
       int dispatcherThreads, OrderPolicy policy) {
-    
+
     if (diskStoreName != null) {
       File directory = new File(asyncChannelId + "_disk_"
           + System.currentTimeMillis() + "_" + VM.getCurrentVMNum());
@@ -712,9 +713,9 @@ public class WANTestBase extends DistributedTestCase{
       dsf.setDiskDirs(dirs1);
       DiskStore ds = dsf.create(diskStoreName);
     }
-    
+
     AsyncEventListener asyncEventListener = new MyAsyncEventListener();
-    
+
     AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory();
     factory.setBatchSize(batchSize);
     factory.setPersistent(isPersistent);
@@ -727,27 +728,27 @@ public class WANTestBase extends DistributedTestCase{
     factory.setOrderPolicy(policy);
     AsyncEventQueue asyncChannel = factory.create(asyncChannelId, asyncEventListener);
   }
-  
-  
+
+
   public static String createAsyncEventQueueWithDiskStore(
-      String asyncChannelId, boolean isParallel, 
-      Integer maxMemory, Integer batchSize, 
+      String asyncChannelId, boolean isParallel,
+      Integer maxMemory, Integer batchSize,
       boolean isPersistent, String diskStoreName) {
-    
+
     AsyncEventListener asyncEventListener = new MyAsyncEventListener();
-    
+
     File persistentDirectory = null;
     if (diskStoreName == null) {
       persistentDirectory = new File(asyncChannelId + "_disk_"
           + System.currentTimeMillis() + "_" + VM.getCurrentVMNum());
     } else {
-      persistentDirectory = new File(diskStoreName); 
+      persistentDirectory = new File(diskStoreName);
     }
     LogWriterUtils.getLogWriter().info("The ds is : " + persistentDirectory.getName());
     persistentDirectory.mkdir();
     DiskStoreFactory dsf = cache.createDiskStoreFactory();
     File [] dirs1 = new File[] {persistentDirectory};
-    
+
     AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory();
     factory.setBatchSize(batchSize);
     factory.setParallel(isParallel);
@@ -761,23 +762,23 @@ public class WANTestBase extends DistributedTestCase{
     AsyncEventQueue asyncChannel = factory.create(asyncChannelId, asyncEventListener);
     return persistentDirectory.getName();
   }
-  
+
   public static void pauseAsyncEventQueue(String asyncChannelId) {
     AsyncEventQueue theChannel = null;
-    
+
     Set<AsyncEventQueue> asyncEventChannels = cache.getAsyncEventQueues();
     for (AsyncEventQueue asyncChannel : asyncEventChannels) {
       if (asyncChannelId.equals(asyncChannel.getId())) {
         theChannel = asyncChannel;
       }
     }
-    
+
     ((AsyncEventQueueImpl)theChannel).getSender().pause();
  }
-  
+
   public static void pauseAsyncEventQueueAndWaitForDispatcherToPause(String asyncChannelId) {
     AsyncEventQueue theChannel = null;
-    
+
     Set<AsyncEventQueue> asyncEventChannels = cache.getAsyncEventQueues();
     for (AsyncEventQueue asyncChannel : asyncEventChannels) {
       if (asyncChannelId.equals(asyncChannel.getId())) {
@@ -785,39 +786,39 @@ public class WANTestBase extends DistributedTestCase{
         break;
       }
     }
-    
+
     ((AsyncEventQueueImpl)theChannel).getSender().pause();
-    
-    
+
+
     ((AbstractGatewaySender)((AsyncEventQueueImpl)theChannel).getSender()).getEventProcessor().waitForDispatcherToPause();
   }
-  
+
  public static void resumeAsyncEventQueue(String asyncQueueId) {
     AsyncEventQueue theQueue = null;
-    
+
     Set<AsyncEventQueue> asyncEventChannels = cache.getAsyncEventQueues();
     for (AsyncEventQueue asyncChannel : asyncEventChannels) {
       if (asyncQueueId.equals(asyncChannel.getId())) {
         theQueue = asyncChannel;
       }
     }
-    
+
     ((AsyncEventQueueImpl)theQueue).getSender().resume();
   }
-  
-  
+
+
   public static void checkAsyncEventQueueSize(String asyncQueueId, int numQueueEntries) {
     AsyncEventQueue theAsyncEventQueue = null;
-    
+
     Set<AsyncEventQueue> asyncEventChannels = cache.getAsyncEventQueues();
     for (AsyncEventQueue asyncChannel : asyncEventChannels) {
       if (asyncQueueId.equals(asyncChannel.getId())) {
         theAsyncEventQueue = asyncChannel;
       }
     }
-    
+
     GatewaySender sender = ((AsyncEventQueueImpl)theAsyncEventQueue).getSender();
-    
+
     if (sender.isParallel()) {
       Set<RegionQueue> queues = ((AbstractGatewaySender)sender).getQueues();
       assertEquals(numQueueEntries,
@@ -831,12 +832,12 @@ public class WANTestBase extends DistributedTestCase{
       assertEquals(numQueueEntries, size);
     }
   }
-  
+
   /**
    * This method verifies the queue size of a ParallelGatewaySender. For
    * ParallelGatewaySender conflation happens in a separate thread, hence test
    * code needs to wait for some time for expected result
-   * 
+   *
    * @param asyncQueueId
    *          Async Queue ID
    * @param numQueueEntries
@@ -881,7 +882,7 @@ public class WANTestBase extends DistributedTestCase{
 
     }
   }
-  
+
   public static void createPartitionedRegion(String regionName, String senderIds, Integer redundantCopies, Integer totalNumBuckets, Boolean offHeap){
     IgnoredException exp = IgnoredException.addIgnoredException(ForceReattemptException.class
         .getName());
@@ -912,7 +913,7 @@ public class WANTestBase extends DistributedTestCase{
       exp1.remove();
     }
   }
-  
+
   // TODO:OFFHEAP: add offheap flavor
   public static void createPartitionedRegionWithPersistence(String regionName,
       String senderIds, Integer redundantCopies, Integer totalNumBuckets) {
@@ -976,7 +977,7 @@ public class WANTestBase extends DistributedTestCase{
 		exp1.remove();
 	}
   }
-  
+
   public static void addSenderThroughAttributesMutator(String regionName,
       String senderIds){
     final Region r = cache.getRegion(Region.SEPARATOR + regionName);
@@ -984,7 +985,7 @@ public class WANTestBase extends DistributedTestCase{
     AttributesMutator mutator = r.getAttributesMutator();
     mutator.addGatewaySenderId(senderIds);
   }
-  
+
   public static void addAsyncEventQueueThroughAttributesMutator(
       String regionName, String queueId) {
     final Region r = cache.getRegion(Region.SEPARATOR + regionName);
@@ -992,7 +993,7 @@ public class WANTestBase extends DistributedTestCase{
     AttributesMutator mutator = r.getAttributesMutator();
     mutator.addAsyncEventQueueId(queueId);
   }
-  
+
   public static void createPartitionedRegionWithAsyncEventQueue(
       String regionName, String asyncEventQueueId, Boolean offHeap) {
     IgnoredException exp = IgnoredException.addIgnoredException(ForceReattemptException.class
@@ -1015,10 +1016,10 @@ public class WANTestBase extends DistributedTestCase{
       exp1.remove();
     }
   }
-  
+
   public static void createColocatedPartitionedRegionWithAsyncEventQueue(
     String regionName, String asyncEventQueueId, Integer totalNumBuckets, String colocatedWith) {
-	
+
 	IgnoredException exp = IgnoredException.addIgnoredException(ForceReattemptException.class
 	  .getName());
 	IgnoredException exp1 = IgnoredException.addIgnoredException(PartitionOfflineException.class
@@ -1039,7 +1040,7 @@ public class WANTestBase extends DistributedTestCase{
 	  exp1.remove();
 	}
   }
-  
+
   public static void createPersistentPartitionedRegionWithAsyncEventQueue(
       String regionName, String asyncEventQueueId) {
     AttributesFactory fact = new AttributesFactory();
@@ -1058,7 +1059,7 @@ public class WANTestBase extends DistributedTestCase{
     Region r = cache.createRegionFactory(fact.create()).create(regionName);
     assertNotNull(r);
   }
-  
+
   /**
    * Create PartitionedRegion with 1 redundant copy
    */
@@ -1083,7 +1084,7 @@ public class WANTestBase extends DistributedTestCase{
       exp.remove();
     }
   }
-  
+
   public static void createPartitionedRegionAccessorWithAsyncEventQueue(
       String regionName, String asyncEventQueueId) {
     AttributesFactory fact = new AttributesFactory();
@@ -1097,7 +1098,7 @@ public class WANTestBase extends DistributedTestCase{
     //fact.create()).create(regionName);
     assertNotNull(r);
   }
-  
+
   public static void createPartitionedRegionAsAccessor(
       String regionName, String senderIds, Integer redundantCopies, Integer totalNumBuckets){
     AttributesFactory fact = new AttributesFactory();
@@ -1118,7 +1119,7 @@ public class WANTestBase extends DistributedTestCase{
     Region r = cache.createRegionFactory(fact.create()).create(regionName);
     assertNotNull(r);
   }
-  
+
   public static void createPartitionedRegionWithSerialParallelSenderIds(String regionName, String serialSenderIds, String parallelSenderIds, String colocatedWith, Boolean offHeap){
     AttributesFactory fact = new AttributesFactory();
     if (serialSenderIds != null) {
@@ -1146,14 +1147,14 @@ public class WANTestBase extends DistributedTestCase{
     Region r = cache.createRegionFactory(fact.create()).create(regionName);
     assertNotNull(r);
   }
-  
+
   public static void createPersistentPartitionedRegion(
-      String regionName, 
-      String senderIds, 
-      Integer redundantCopies, 
+      String regionName,
+      String senderIds,
+      Integer redundantCopies,
       Integer totalNumBuckets,
       Boolean offHeap){
-    
+
     IgnoredException exp = IgnoredException.addIgnoredException(ForceReattemptException.class
         .getName());
     IgnoredException exp1 = IgnoredException.addIgnoredException(PartitionOfflineException.class
@@ -1184,7 +1185,7 @@ public class WANTestBase extends DistributedTestCase{
       exp1.remove();
     }
   }
-  
+
   public static void createCustomerOrderShipmentPartitionedRegion(
       String regionName, String senderIds, Integer redundantCopies,
       Integer totalNumBuckets, Boolean offHeap) {
@@ -1272,7 +1273,7 @@ public class WANTestBase extends DistributedTestCase{
       exp.remove();
     }
   }
-  
+
   public static void createColocatedPartitionedRegions(String regionName, String senderIds, Integer redundantCopies, Integer totalNumBuckets, Boolean offHeap){
     AttributesFactory fact = new AttributesFactory();
     if(senderIds!= null){
@@ -1291,17 +1292,17 @@ public class WANTestBase extends DistributedTestCase{
     fact.setOffHeap(offHeap);
     Region r = cache.createRegionFactory(fact.create()).create(regionName);
     assertNotNull(r);
-    
+
     pfact.setColocatedWith(r.getName());
     fact.setPartitionAttributes(pfact.create());
     fact.setOffHeap(offHeap);
     Region r1 = cache.createRegionFactory(fact.create()).create(regionName+"_child1");
-    assertNotNull(r1);    
-    
+    assertNotNull(r1);
+
     Region r2 = cache.createRegionFactory(fact.create()).create(regionName+"_child2");
     assertNotNull(r2);
   }
-  
+
   public static void createColocatedPartitionedRegions2 (String regionName, String senderIds, Integer redundantCopies, Integer totalNumBuckets, Boolean offHeap){
     AttributesFactory fact = new AttributesFactory();
     if(senderIds!= null){
@@ -1320,36 +1321,57 @@ public class WANTestBase extends DistributedTestCase{
     fact.setOffHeap(offHeap);
     Region r = cache.createRegionFactory(fact.create()).create(regionName);
     assertNotNull(r);
-    
-    
+
+
     fact = new AttributesFactory();
     pfact.setColocatedWith(r.getName());
     fact.setPartitionAttributes(pfact.create());
     fact.setOffHeap(offHeap);
     Region r1 = cache.createRegionFactory(fact.create()).create(regionName+"_child1");
-    assertNotNull(r1);    
-    
+    assertNotNull(r1);
+
     Region r2 = cache.createRegionFactory(fact.create()).create(regionName+"_child2");
     assertNotNull(r2);
   }
-  
+
+  public static void createCacheInVMs(Integer locatorPort, VM... vms) {
+    for (VM vm : vms) {
+      vm.invoke(() -> createCache(locatorPort));
+    }
+  }
+
+  public static void createCacheInVMsAsync(Integer locatorPort, VM... vms) {
+    List<AsyncInvocation> tasks = new LinkedList<>();
+    for (VM vm : vms) {
+      tasks.add(vm.invokeAsync(() -> createCache(locatorPort)));
+    }
+    for (AsyncInvocation invocation : tasks) {
+      try {
+        invocation.join(60000);
+      }
+      catch (InterruptedException e) {
+        fail("Failed starting up the cache");
+      }
+    }
+  }
+
   public static void createCache(Integer locPort){
     createCache(false, locPort);
   }
   public static void createManagementCache(Integer locPort){
     createCache(true, locPort);
   }
-  
+
   public static void createCacheConserveSockets(Boolean conserveSockets,Integer locPort){
     WANTestBase test = new WANTestBase(getTestMethodName());
     Properties props = test.getDistributedSystemProperties();
     props.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
     props.setProperty(DistributionConfig.LOCATORS_NAME, "localhost[" + locPort + "]");
-    props.setProperty(DistributionConfig.CONSERVE_SOCKETS_NAME, conserveSockets.toString());   
+    props.setProperty(DistributionConfig.CONSERVE_SOCKETS_NAME, conserveSockets.toString());
     InternalDistributedSystem ds = test.getSystem(props);
     cache = CacheFactory.create(ds);
   }
-  
+
   protected static void createCache(boolean management, Integer locPort) {
     WANTestBase test = new WANTestBase(getTestMethodName());
     Properties props = test.getDistributedSystemProperties();
@@ -1362,9 +1384,9 @@ public class WANTestBase extends DistributedTestCase{
     props.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
     props.setProperty(DistributionConfig.LOCATORS_NAME, "localhost[" + locPort + "]");
     InternalDistributedSystem ds = test.getSystem(props);
-    cache = CacheFactory.create(ds);    
+    cache = CacheFactory.create(ds);
   }
-  
+
   protected static void createCacheWithSSL(Integer locPort) {
     WANTestBase test = new WANTestBase(getTestMethodName());
 
@@ -1372,31 +1394,31 @@ public class WANTestBase extends DistributedTestCase{
     String  gatewaySslprotocols = "any";
     String  gatewaySslciphers = "any";
     boolean gatewaySslRequireAuth = true;
-    
+
     Properties gemFireProps = test.getDistributedSystemProperties();
     gemFireProps.put(DistributionConfig.LOG_LEVEL_NAME, LogWriterUtils.getDUnitLogLevel());
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_ENABLED_NAME, String.valueOf(gatewaySslenabled));
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_PROTOCOLS_NAME, gatewaySslprotocols);
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_CIPHERS_NAME, gatewaySslciphers);
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_REQUIRE_AUTHENTICATION_NAME, String.valueOf(gatewaySslRequireAuth));
-    
+
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_KEYSTORE_TYPE_NAME, "jks");
-    gemFireProps.put(DistributionConfig.GATEWAY_SSL_KEYSTORE_NAME, 
+    gemFireProps.put(DistributionConfig.GATEWAY_SSL_KEYSTORE_NAME,
         TestUtil.getResourcePath(WANTestBase.class, "/com/gemstone/gemfire/cache/client/internal/client.keystore"));
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_KEYSTORE_PASSWORD_NAME, "password");
-    gemFireProps.put(DistributionConfig.GATEWAY_SSL_TRUSTSTORE_NAME, 
+    gemFireProps.put(DistributionConfig.GATEWAY_SSL_TRUSTSTORE_NAME,
         TestUtil.getResourcePath(WANTestBase.class, "/com/gemstone/gemfire/cache/client/internal/client.truststore"));
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_TRUSTSTORE_PASSWORD_NAME, "password");
-    
+
     gemFireProps.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
     gemFireProps.setProperty(DistributionConfig.LOCATORS_NAME, "localhost[" + locPort + "]");
-    
+
     LogWriterUtils.getLogWriter().info("Starting cache ds with following properties \n" + gemFireProps);
-    
+
     InternalDistributedSystem ds = test.getSystem(gemFireProps);
-    cache = CacheFactory.create(ds);    
+    cache = CacheFactory.create(ds);
   }
-  
+
   public static void createCache_PDX(Integer locPort){
     WANTestBase test = new WANTestBase(getTestMethodName());
     Properties props = test.getDistributedSystemProperties();
@@ -1407,13 +1429,13 @@ public class WANTestBase extends DistributedTestCase{
     cacheConfig.setPdxPersistent(true);
     cacheConfig.setPdxDiskStore("PDX_TEST");
     cache = GemFireCacheImpl.create(ds, false, cacheConfig);
-    
+
     File pdxDir = new File(CacheTestCase.getDiskDir(), "pdx");
     DiskStoreFactory dsf = cache.createDiskStoreFactory();
     File [] dirs1 = new File[] {pdxDir};
     DiskStore store = dsf.setDiskDirs(dirs1).setMaxOplogSize(1).create("PDX_TEST");
   }
-  
+
   public static void createCache(Integer locPort1, Integer locPort2){
     WANTestBase test = new WANTestBase(getTestMethodName());
     Properties props = test.getDistributedSystemProperties();
@@ -1423,7 +1445,7 @@ public class WANTestBase extends DistributedTestCase{
     InternalDistributedSystem ds = test.getSystem(props);
     cache = CacheFactory.create(ds);
   }
-  
+
   public static void createCacheWithoutLocator(Integer mCastPort){
     WANTestBase test = new WANTestBase(getTestMethodName());
     Properties props = test.getDistributedSystemProperties();
@@ -1431,10 +1453,10 @@ public class WANTestBase extends DistributedTestCase{
     InternalDistributedSystem ds = test.getSystem(props);
     cache = CacheFactory.create(ds);
   }
-  
+
   /**
    * Method that creates a bridge server
-   * 
+   *
    * @return    Integer   Port on which the server is started.
    */
   public static Integer createCacheServer() {
@@ -1452,16 +1474,16 @@ public class WANTestBase extends DistributedTestCase{
 
     return new Integer(server1.getPort());
   }
-  
+
   /**
    * Returns a Map that contains the count for number of bridge server and number
    * of Receivers.
-   * 
+   *
    * @return    Map
    */
   public static Map getCacheServers() {
     List cacheServers = cache.getCacheServers();
-    
+
     Map cacheServersMap = new HashMap();
     Iterator itr = cacheServers.iterator();
     int bridgeServerCounter = 0;
@@ -1478,7 +1500,29 @@ public class WANTestBase extends DistributedTestCase{
     cacheServersMap.put("ReceiverServer", receiverServerCounter);
     return cacheServersMap;
   }
-  
+
+  public static void startSenderInVMs(String senderId, VM... vms) {
+    for (VM vm : vms) {
+      vm.invoke(() -> startSender(senderId));
+    }
+  }
+
+  public static void startSenderInVMsAsync(String senderId, VM... vms) {
+    List<AsyncInvocation> tasks = new LinkedList<>();
+    for (VM vm : vms) {
+      tasks.add(vm.invokeAsync(() -> startSender(senderId)));
+    }
+    for (AsyncInvocation invocation : tasks) {
+      try {
+        invocation.join(30000);
+      }
+      catch (InterruptedException e) {
+        fail("Starting senders was interrupted");
+      }
+    }
+  }
+
+
   public static void startSender(String senderId) {
     final IgnoredException exln = IgnoredException.addIgnoredException("Could not connect");
 
@@ -1503,7 +1547,7 @@ public class WANTestBase extends DistributedTestCase{
     }
 
   }
-  
+
   public static void enableConflation(String senderId) {
     Set<GatewaySender> senders = cache.getGatewaySenders();
     AbstractGatewaySender sender = null;
@@ -1515,7 +1559,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     sender.test_setBatchConflationEnabled(true);
   }
-  
+
   public static void startAsyncEventQueue(String senderId) {
     Set<AsyncEventQueue> queues = cache.getAsyncEventQueues();
     AsyncEventQueue q = null;
@@ -1528,8 +1572,8 @@ public class WANTestBase extends DistributedTestCase{
     //merge42180: There is no start method on AsyncEventQueue. Cheetah has this method. Yet the code for AsyncEvnt Queue is not properly merged from cheetah to cedar
     //q.start();
   }
-  
-  public static Map getSenderToReceiverConnectionInfo(String senderId){	
+
+  public static Map getSenderToReceiverConnectionInfo(String senderId){
 	  Set<GatewaySender> senders = cache.getGatewaySenders();
 	  GatewaySender sender = null;
 	  for(GatewaySender s : senders){
@@ -1541,14 +1585,14 @@ public class WANTestBase extends DistributedTestCase{
 	  Map connectionInfo = null;
 	  if (!sender.isParallel() && ((AbstractGatewaySender) sender).isPrimary()) {
 		  connectionInfo = new HashMap();
-		  GatewaySenderEventDispatcher dispatcher = 
+		  GatewaySenderEventDispatcher dispatcher =
 			  ((AbstractGatewaySender)sender).getEventProcessor().getDispatcher();
 		  if (dispatcher instanceof GatewaySenderEventRemoteDispatcher) {
-			  ServerLocation serverLocation = 
+			  ServerLocation serverLocation =
 				  ((GatewaySenderEventRemoteDispatcher) dispatcher).getConnection(false).getServer();
 			  connectionInfo.put("serverHost", serverLocation.getHostName());
 			  connectionInfo.put("serverPort", serverLocation.getPort());
-			  
+
 		  }
 	  }
 	  return connectionInfo;
@@ -1594,7 +1638,7 @@ public class WANTestBase extends DistributedTestCase{
     stats.add(statistics.getEventsConflatedFromBatches());
     return stats;
   }
-      
+
   public static void checkQueueStats(String senderId, final int queueSize,
       final int eventsReceived, final int eventsQueued,
       final int eventsDistributed) {
@@ -1606,7 +1650,7 @@ public class WANTestBase extends DistributedTestCase{
         break;
       }
     }
-    
+
     final GatewaySenderStats statistics = ((AbstractGatewaySender)sender).getStatistics();
     assertEquals(queueSize, statistics.getEventQueueSize());
     assertEquals(eventsReceived, statistics.getEventsReceived());
@@ -1626,12 +1670,12 @@ public class WANTestBase extends DistributedTestCase{
       }
     }
     final AsyncEventQueueStats statistics = ((AsyncEventQueueImpl)queue).getStatistics();
-    assertEquals(queueSize, statistics.getEventQueueSize()); 
+    assertEquals(queueSize, statistics.getEventQueueSize());
     assertEquals(eventsReceived, statistics.getEventsReceived());
     assertEquals(eventsQueued, statistics.getEventsQueued());
     assert(statistics.getEventsDistributed() >= eventsDistributed);
   }
-  
+
   public static void checkGatewayReceiverStats(int processBatches,
       int eventsReceived, int creates) {
     Set<GatewayReceiver> gatewayReceivers = cache.getGatewayReceivers();
@@ -1658,7 +1702,7 @@ public class WANTestBase extends DistributedTestCase{
     assertTrue(gatewayReceiverStats.getProcessBatchRequests() >= processBatches);
     assertTrue(gatewayReceiverStats.getEventsReceived()>= eventsReceived);
   }
-  
+
   public static void checkExcepitonStats(int exceptionsOccured) {
     Set<GatewayReceiver> gatewayReceivers = cache.getGatewayReceivers();
     GatewayReceiver receiver = (GatewayReceiver)gatewayReceivers.iterator().next();
@@ -1689,7 +1733,7 @@ public class WANTestBase extends DistributedTestCase{
     assertTrue(gatewayReceiverStats.getEventsReceived() >= eventsReceived);
     assertTrue(gatewayReceiverStats.getCreateRequest() >= creates);
   }
-  
+
   public static void checkEventFilteredStats(String senderId, final int eventsFiltered) {
     Set<GatewaySender> senders = cache.getGatewaySenders();
     GatewaySender sender = null;
@@ -1702,7 +1746,7 @@ public class WANTestBase extends DistributedTestCase{
     final GatewaySenderStats statistics = ((AbstractGatewaySender)sender).getStatistics();
     assertEquals(eventsFiltered, statistics.getEventsFiltered());
   }
-  
+
   public static void checkConflatedStats(String senderId, final int eventsConflated) {
     Set<GatewaySender> senders = cache.getGatewaySenders();
     GatewaySender sender = null;
@@ -1715,7 +1759,7 @@ public class WANTestBase extends DistributedTestCase{
     final GatewaySenderStats statistics = ((AbstractGatewaySender)sender).getStatistics();
     assertEquals(eventsConflated, statistics.getEventsNotQueuedConflated());
   }
-  
+
   public static void checkAsyncEventQueueConflatedStats(
       String asyncEventQueueId, final int eventsConflated) {
     Set<AsyncEventQueue> queues = cache.getAsyncEventQueues();
@@ -1730,7 +1774,7 @@ public class WANTestBase extends DistributedTestCase{
         .getStatistics();
     assertEquals(eventsConflated, statistics.getEventsNotQueuedConflated());
   }
-  
+
   public static void checkStats_Failover(String senderId,
       final int eventsReceived) {
     Set<GatewaySender> senders = cache.getGatewaySenders();
@@ -1749,7 +1793,7 @@ public class WANTestBase extends DistributedTestCase{
         + statistics.getUnprocessedTokensAddedByPrimary() + statistics
         .getUnprocessedEventsRemovedByPrimary()));
   }
-  
+
   public static void checkAsyncEventQueueStats_Failover(String asyncEventQueueId,
       final int eventsReceived) {
     Set<AsyncEventQueue> asyncEventQueues = cache.getAsyncEventQueues();
@@ -1783,7 +1827,7 @@ public class WANTestBase extends DistributedTestCase{
     assert (statistics.getBatchesDistributed() >= batches);
     assertEquals(0, statistics.getBatchesRedistributed());
   }
-  
+
   public static void checkAsyncEventQueueBatchStats(String asyncQueueId,
       final int batches) {
     Set<AsyncEventQueue> queues = cache.getAsyncEventQueues();
@@ -1835,7 +1879,7 @@ public class WANTestBase extends DistributedTestCase{
         (statistics.getUnprocessedEventsRemovedByPrimary() + statistics
             .getUnprocessedTokensAddedByPrimary()));
   }
-  
+
   public static void checkAsyncEventQueueUnprocessedStats(String asyncQueueId, int events) {
     Set<AsyncEventQueue> asyncQueues = cache.getAsyncEventQueues();
     AsyncEventQueue queue = null;
@@ -1853,34 +1897,7 @@ public class WANTestBase extends DistributedTestCase{
         (statistics.getUnprocessedEventsRemovedByPrimary() + statistics
             .getUnprocessedTokensAddedByPrimary()));
   }
-  
-  
-  public static void setRemoveFromQueueOnException(String senderId, boolean removeFromQueue){
-    Set<GatewaySender> senders = cache.getGatewaySenders();
-    GatewaySender sender = null;
-    for(GatewaySender s : senders){
-      if(s.getId().equals(senderId)){
-        sender = s;
-        break;
-      }
-    }
-    assertNotNull(sender);
-    ((AbstractGatewaySender)sender).setRemoveFromQueueOnException(removeFromQueue);
-  }
-  
-  public static void unsetRemoveFromQueueOnException(String senderId){
-    Set<GatewaySender> senders = cache.getGatewaySenders();
-    GatewaySender sender = null;
-    for(GatewaySender s : senders){
-      if(s.getId().equals(senderId)){
-        sender = s;
-        break;
-      }
-    }
-    assertNotNull(sender);
-    ((AbstractGatewaySender)sender).setRemoveFromQueueOnException(false);
-  }
-  
+
   public static void waitForSenderRunningState(String senderId){
     final IgnoredException exln = IgnoredException.addIgnoredException("Could not connect");
     try {
@@ -1904,7 +1921,7 @@ public class WANTestBase extends DistributedTestCase{
       exln.remove();
     }
   }
-  
+
   public static void waitForSenderToBecomePrimary(String senderId){
     Set<GatewaySender> senders = ((GemFireCacheImpl)cache).getAllGatewaySenders();
     final GatewaySender sender = getGatewaySenderById(senders, senderId);
@@ -1920,9 +1937,9 @@ public class WANTestBase extends DistributedTestCase{
         return "Expected sender primary state to be true but is false";
       }
     };
-    Wait.waitForCriterion(wc, 10000, 1000, true); 
+    Wait.waitForCriterion(wc, 10000, 1000, true);
   }
-  
+
   private static GatewaySender getGatewaySenderById(Set<GatewaySender> senders, String senderId) {
     for(GatewaySender s : senders){
       if(s.getId().equals(senderId)){
@@ -1932,7 +1949,7 @@ public class WANTestBase extends DistributedTestCase{
     //if none of the senders matches with the supplied senderid, return null
     return null;
   }
-  
+
   public static HashMap checkQueue(){
     HashMap listenerAttrs = new HashMap();
     listenerAttrs.put("Create", listener1.createList);
@@ -1940,13 +1957,13 @@ public class WANTestBase extends DistributedTestCase{
     listenerAttrs.put("Destroy", listener1.destroyList);
     return listenerAttrs;
   }
-  
+
   public static void checkQueueOnSecondary (final Map primaryUpdatesMap){
     final HashMap secondaryUpdatesMap = new HashMap();
     secondaryUpdatesMap.put("Create", listener1.createList);
     secondaryUpdatesMap.put("Update", listener1.updateList);
     secondaryUpdatesMap.put("Destroy", listener1.destroyList);
-    
+
     WaitCriterion wc = new WaitCriterion() {
       public boolean done() {
         secondaryUpdatesMap.put("Create", listener1.createList);
@@ -1962,9 +1979,9 @@ public class WANTestBase extends DistributedTestCase{
         return "Expected seconadry map to be " + primaryUpdatesMap + " but it is " + secondaryUpdatesMap;
       }
     };
-    Wait.waitForCriterion(wc, 300000, 500, true); 
+    Wait.waitForCriterion(wc, 300000, 500, true);
   }
-  
+
   public static HashMap checkQueue2(){
     HashMap listenerAttrs = new HashMap();
     listenerAttrs.put("Create", listener2.createList);
@@ -1972,18 +1989,18 @@ public class WANTestBase extends DistributedTestCase{
     listenerAttrs.put("Destroy", listener2.destroyList);
     return listenerAttrs;
   }
-  
+
   public static HashMap checkPR(String regionName){
     PartitionedRegion region = (PartitionedRegion)cache.getRegion(regionName);
     QueueListener listener = (QueueListener)region.getCacheListener();
-    
+
     HashMap listenerAttrs = new HashMap();
     listenerAttrs.put("Create", listener.createList);
     listenerAttrs.put("Update", listener.updateList);
     listenerAttrs.put("Destroy", listener.destroyList);
     return listenerAttrs;
   }
-  
+
   public static HashMap checkBR(String regionName, int numBuckets){
     PartitionedRegion region = (PartitionedRegion)cache.getRegion(regionName);
     HashMap listenerAttrs = new HashMap();
@@ -1996,7 +2013,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     return listenerAttrs;
   }
-  
+
   public static HashMap checkQueue_PR(String senderId){
     Set<GatewaySender> senders = cache.getGatewaySenders();
     GatewaySender sender = null;
@@ -2006,20 +2023,20 @@ public class WANTestBase extends DistributedTestCase{
         break;
       }
     }
-    
+
     RegionQueue parallelQueue = (RegionQueue)((AbstractGatewaySender)sender)
     .getQueues().toArray(new RegionQueue[1])[0];
-    
+
     PartitionedRegion region = (PartitionedRegion)parallelQueue.getRegion();
     QueueListener listener = (QueueListener)region.getCacheListener();
-    
+
     HashMap listenerAttrs = new HashMap();
     listenerAttrs.put("Create", listener.createList);
     listenerAttrs.put("Update", listener.updateList);
     listenerAttrs.put("Destroy", listener.destroyList);
     return listenerAttrs;
   }
-  
+
   public static HashMap checkQueue_BR(String senderId, int numBuckets){
     Set<GatewaySender> senders = cache.getGatewaySenders();
     GatewaySender sender = null;
@@ -2031,7 +2048,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     RegionQueue parallelQueue = (RegionQueue)((AbstractGatewaySender)sender)
     .getQueues().toArray(new RegionQueue[1])[0];
-    
+
     PartitionedRegion region = (PartitionedRegion)parallelQueue.getRegion();
     HashMap listenerAttrs = new HashMap();
     for (int i = 0; i < numBuckets; i++) {
@@ -2052,7 +2069,7 @@ public class WANTestBase extends DistributedTestCase{
     WANTestBase test = new WANTestBase(getTestMethodName());
     test.addCacheListenerOnBucketRegion(regionName, numBuckets);
   }
-  
+
   private void addCacheListenerOnBucketRegion(String regionName, int numBuckets){
     PartitionedRegion region = (PartitionedRegion)cache.getRegion(regionName);
     for (int i = 0; i < numBuckets; i++) {
@@ -2062,12 +2079,12 @@ public class WANTestBase extends DistributedTestCase{
       mutator.addCacheListener(listener1);
     }
   }
-  
+
   public static void addListenerOnQueueBucketRegion(String senderId, int numBuckets) {
     WANTestBase test = new WANTestBase(getTestMethodName());
     test.addCacheListenerOnQueueBucketRegion(senderId, numBuckets);
   }
-  
+
   private void addCacheListenerOnQueueBucketRegion(String senderId, int numBuckets){
     Set<GatewaySender> senders = cache.getGatewaySenders();
     GatewaySender sender = null;
@@ -2079,7 +2096,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     RegionQueue parallelQueue = (RegionQueue)((AbstractGatewaySender)sender)
     .getQueues().toArray(new RegionQueue[1])[0];
-    
+
     PartitionedRegion region = (PartitionedRegion)parallelQueue.getRegion();
     for (int i = 0; i < numBuckets; i++) {
       BucketRegion br = region.getBucketRegion(i);
@@ -2089,19 +2106,19 @@ public class WANTestBase extends DistributedTestCase{
         mutator.addCacheListener(listener);
       }
     }
-    
+
   }
-  
+
   public static void addQueueListener(String senderId, boolean isParallel){
     WANTestBase test = new WANTestBase(getTestMethodName());
     test.addCacheQueueListener(senderId, isParallel);
   }
-  
+
   public static void addSecondQueueListener(String senderId, boolean isParallel){
     WANTestBase test = new WANTestBase(getTestMethodName());
     test.addSecondCacheQueueListener(senderId, isParallel);
   }
-  
+
   public static void addListenerOnRegion(String regionName){
     WANTestBase test = new WANTestBase(getTestMethodName());
     test.addCacheListenerOnRegion(regionName);
@@ -2112,7 +2129,7 @@ public class WANTestBase extends DistributedTestCase{
     listener1 = new QueueListener();
     mutator.addCacheListener(listener1);
   }
-  
+
   private void addCacheQueueListener(String senderId, boolean isParallel) {
     Set<GatewaySender> senders = cache.getGatewaySenders();
     GatewaySender sender = null;
@@ -2158,7 +2175,7 @@ public class WANTestBase extends DistributedTestCase{
       parallelQueue.addCacheListener(listener2);
     }
   }
-  
+
   public static void pauseSender(String senderId) {
     final IgnoredException exln = IgnoredException.addIgnoredException("Could not connect");
     IgnoredException exp = IgnoredException.addIgnoredException(ForceReattemptException.class
@@ -2174,14 +2191,14 @@ public class WANTestBase extends DistributedTestCase{
       }
       sender.pause();
       ((AbstractGatewaySender) sender).getEventProcessor().waitForDispatcherToPause();
-      
+
     }
     finally {
       exp.remove();
       exln.remove();
     }
   }
-      
+
   public static void pauseSenderAndWaitForDispatcherToPause(String senderId) {
     final IgnoredException exln = IgnoredException.addIgnoredException("Could not connect");
     IgnoredException exp = IgnoredException.addIgnoredException(ForceReattemptException.class
@@ -2200,9 +2217,9 @@ public class WANTestBase extends DistributedTestCase{
     } finally {
       exp.remove();
       exln.remove();
-    }    
+    }
   }
-  
+
   public static void resumeSender(String senderId) {
     final IgnoredException exln = IgnoredException.addIgnoredException("Could not connect");
     IgnoredException exp = IgnoredException.addIgnoredException(ForceReattemptException.class
@@ -2223,7 +2240,7 @@ public class WANTestBase extends DistributedTestCase{
       exln.remove();
     }
   }
-  
+
   public static void stopSender(String senderId) {
     final IgnoredException exln = IgnoredException.addIgnoredException("Could not connect");
     IgnoredException exp = IgnoredException.addIgnoredException(ForceReattemptException.class
@@ -2242,7 +2259,7 @@ public class WANTestBase extends DistributedTestCase{
         eventProcessor = ((AbstractGatewaySender) sender).getEventProcessor();
       }
       sender.stop();
-      
+
       Set<RegionQueue> queues = null;
       if (eventProcessor instanceof ConcurrentSerialGatewaySenderEventProcessor) {
         queues = ((ConcurrentSerialGatewaySenderEventProcessor)eventProcessor).getQueues();
@@ -2258,14 +2275,14 @@ public class WANTestBase extends DistributedTestCase{
       exln.remove();
     }
   }
-  
+
   public static void stopReceivers() {
     Set<GatewayReceiver> receivers = cache.getGatewayReceivers();
     for (GatewayReceiver receiver : receivers) {
       receiver.stop();
     }
   }
-  
+
   public static void startReceivers() {
     Set<GatewayReceiver> receivers = cache.getGatewayReceivers();
     for (GatewayReceiver receiver : receivers) {
@@ -2276,12 +2293,12 @@ public class WANTestBase extends DistributedTestCase{
       }
     }
   }
-  
+
   public static GatewaySenderFactory configureGateway(DiskStoreFactory dsf, File[] dirs1, String dsName, int remoteDsId,
       boolean isParallel, Integer maxMemory,
       Integer batchSize, boolean isConflation, boolean isPersistent,
       GatewayEventFilter filter, boolean isManualStart, int numDispatchers, OrderPolicy policy) {
-    
+
     InternalGatewaySenderFactory gateway = (InternalGatewaySenderFactory)cache.createGatewaySenderFactory();
     gateway.setParallel(isParallel);
     gateway.setMaximumQueueMemory(maxMemory);
@@ -2305,7 +2322,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     return gateway;
   }
-  
+
   public static void createSender(String dsName, int remoteDsId,
       boolean isParallel, Integer maxMemory,
       Integer batchSize, boolean isConflation, boolean isPersistent,
@@ -2324,7 +2341,7 @@ public class WANTestBase extends DistributedTestCase{
       exln.remove();
     }
   }
-  
+
   public static void createSenderWithMultipleDispatchers(String dsName, int remoteDsId,
 	boolean isParallel, Integer maxMemory,
 	Integer batchSize, boolean isConflation, boolean isPersistent,
@@ -2343,12 +2360,12 @@ public class WANTestBase extends DistributedTestCase{
       exln.remove();
     }
   }
-  
+
   public static void createSenderWithoutDiskStore(String dsName, int remoteDsId,
       boolean isParallel, Integer maxMemory,
       Integer batchSize, boolean isConflation, boolean isPersistent,
       GatewayEventFilter filter, boolean isManulaStart) {
-    
+
       GatewaySenderFactory gateway = cache.createGatewaySenderFactory();
       gateway.setParallel(true);
       gateway.setMaximumQueueMemory(maxMemory);
@@ -2359,7 +2376,7 @@ public class WANTestBase extends DistributedTestCase{
       gateway.setBatchConflationEnabled(isConflation);
       gateway.create(dsName, remoteDsId);
   }
-  
+
   public static void createConcurrentSender(String dsName, int remoteDsId,
       boolean isParallel, Integer maxMemory, Integer batchSize,
       boolean isConflation, boolean isPersistent, GatewayEventFilter filter,
@@ -2373,16 +2390,16 @@ public class WANTestBase extends DistributedTestCase{
     GatewaySenderFactory gateway = configureGateway(dsf, dirs1, dsName, remoteDsId, isParallel, maxMemory, batchSize, isConflation, isPersistent, filter, isManualStart, concurrencyLevel, policy);
     gateway.create(dsName, remoteDsId);
   }
-  
+
 //  public static void createSender_PDX(String dsName, int remoteDsId,
 //      boolean isParallel, Integer maxMemory,
 //      Integer batchSize, boolean isConflation, boolean isPersistent,
 //      GatewayEventFilter filter, boolean isManulaStart) {
 //    File persistentDirectory = new File(dsName +"_disk_"+System.currentTimeMillis()+"_" + VM.getCurrentVMNum());
 //    persistentDirectory.mkdir();
-//    
+//
 //    File [] dirs1 = new File[] {persistentDirectory};
-//    
+//
 //    if(isParallel) {
 //      ParallelGatewaySenderFactory gateway = cache.createParallelGatewaySenderFactory();
 //      gateway.setMaximumQueueMemory(maxMemory);
@@ -2398,7 +2415,7 @@ public class WANTestBase extends DistributedTestCase{
 //      }
 //      gateway.setBatchConflationEnabled(isConflation);
 //      gateway.create(dsName, remoteDsId);
-//      
+//
 //    }else {
 //      SerialGatewaySenderFactory gateway = cache.createSerialGatewaySenderFactory();
 //      gateway.setMaximumQueueMemory(maxMemory);
@@ -2502,7 +2519,7 @@ public class WANTestBase extends DistributedTestCase{
       exp1.remove();
     }
   }
-  
+
   public static String createSenderWithDiskStore(String dsName, int remoteDsId,
       boolean isParallel, Integer maxMemory,
       Integer batchSize, boolean isConflation, boolean isPersistent,
@@ -2513,14 +2530,14 @@ public class WANTestBase extends DistributedTestCase{
           + System.currentTimeMillis() + "_" + VM.getCurrentVMNum());
     }
     else {
-      persistentDirectory = new File(dsStore);  
+      persistentDirectory = new File(dsStore);
     }
     LogWriterUtils.getLogWriter().info("The ds is : " + persistentDirectory.getName());
-    
+
     persistentDirectory.mkdir();
     DiskStoreFactory dsf = cache.createDiskStoreFactory();
     File [] dirs1 = new File[] {persistentDirectory};
-    
+
     if(isParallel) {
       GatewaySenderFactory gateway = cache.createGatewaySenderFactory();
       gateway.setParallel(true);
@@ -2546,7 +2563,7 @@ public class WANTestBase extends DistributedTestCase{
       }
       gateway.setBatchConflationEnabled(isConflation);
       gateway.create(dsName, remoteDsId);
-      
+
     }else {
       GatewaySenderFactory gateway = cache.createGatewaySenderFactory();
       gateway.setMaximumQueueMemory(maxMemory);
@@ -2565,15 +2582,15 @@ public class WANTestBase extends DistributedTestCase{
       }
       else {
         DiskStore store = dsf.setDiskDirs(dirs1).create(dsName);
-        
+
         gateway.setDiskStoreName(store.getName());
       }
       gateway.create(dsName, remoteDsId);
     }
     return persistentDirectory.getName();
   }
-  
-  
+
+
   public static void createSenderWithListener(String dsName, int remoteDsName,
       boolean isParallel, Integer maxMemory,
       Integer batchSize, boolean isConflation, boolean isPersistent,
@@ -2641,7 +2658,7 @@ public class WANTestBase extends DistributedTestCase{
       ((InternalGatewaySenderFactory)gateway).create(dsName);
     }
   }
-  
+
   public static void pauseWaitCriteria(final long millisec) {
     WaitCriterion wc = new WaitCriterion() {
       public boolean done() {
@@ -2652,18 +2669,31 @@ public class WANTestBase extends DistributedTestCase{
         return "Expected to wait for " + millisec + " millisec.";
       }
     };
-    Wait.waitForCriterion(wc, millisec, 500, false); 
+    Wait.waitForCriterion(wc, millisec, 500, false);
   }
-  
-  public static int createReceiver(int locPort) {
-    WANTestBase test = new WANTestBase(getTestMethodName());
-    Properties props = test.getDistributedSystemProperties();
-    props.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
-    props.setProperty(DistributionConfig.LOCATORS_NAME, "localhost[" + locPort
-        + "]");
 
-    InternalDistributedSystem ds = test.getSystem(props);
-    cache = CacheFactory.create(ds);    
+  public static void createReceiverInVMs(int locatorPort, VM... vms) {
+    for (VM vm : vms) {
+      vm.invoke(() -> createReceiver(locatorPort));
+    }
+  }
+
+  public static void createReceiverInVMsAsync(int locatorPort, VM... vms) {
+    List<AsyncInvocation> tasks = new LinkedList<>();
+    for (VM vm : vms) {
+      tasks.add(vm.invokeAsync(() -> createReceiver(locatorPort)));
+    }
+    for (AsyncInvocation invocation : tasks) {
+      try {
+        invocation.join(30000);
+      }
+      catch (InterruptedException e) {
+        fail("Failed starting up the receiver");
+      }
+    }
+  }
+
+  public static int createReceiver(int locPort) {
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
     int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
     fact.setStartPort(port);
@@ -2675,12 +2705,12 @@ public class WANTestBase extends DistributedTestCase{
     }
     catch (IOException e) {
       e.printStackTrace();
-      fail("Test " + test.getName()
+      fail("Test " + getTestMethodName()
           + " failed to start GatewayRecevier on port " + port);
     }
     return port;
   }
-  
+
   public static void createReceiverWithBindAddress(int locPort) {
     WANTestBase test = new WANTestBase(getTestMethodName());
     Properties props = test.getDistributedSystemProperties();
@@ -2690,7 +2720,7 @@ public class WANTestBase extends DistributedTestCase{
         + "]");
 
     InternalDistributedSystem ds = test.getSystem(props);
-    cache = CacheFactory.create(ds);    
+    cache = CacheFactory.create(ds);
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
     int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
     fact.setStartPort(port);
@@ -2718,7 +2748,7 @@ public class WANTestBase extends DistributedTestCase{
     String  gatewaySslprotocols = "any";
     String  gatewaySslciphers = "any";
     boolean gatewaySslRequireAuth = true;
-    
+
     Properties gemFireProps = test.getDistributedSystemProperties();
 
     gemFireProps.put(DistributionConfig.LOG_LEVEL_NAME, LogWriterUtils.getDUnitLogLevel());
@@ -2726,22 +2756,22 @@ public class WANTestBase extends DistributedTestCase{
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_PROTOCOLS_NAME, gatewaySslprotocols);
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_CIPHERS_NAME, gatewaySslciphers);
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_REQUIRE_AUTHENTICATION_NAME, String.valueOf(gatewaySslRequireAuth));
-    
+
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_KEYSTORE_TYPE_NAME, "jks");
-    gemFireProps.put(DistributionConfig.GATEWAY_SSL_KEYSTORE_NAME, 
+    gemFireProps.put(DistributionConfig.GATEWAY_SSL_KEYSTORE_NAME,
         TestUtil.getResourcePath(WANTestBase.class, "/com/gemstone/gemfire/cache/client/internal/cacheserver.keystore"));
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_KEYSTORE_PASSWORD_NAME, "password");
-    gemFireProps.put(DistributionConfig.GATEWAY_SSL_TRUSTSTORE_NAME, 
+    gemFireProps.put(DistributionConfig.GATEWAY_SSL_TRUSTSTORE_NAME,
         TestUtil.getResourcePath(WANTestBase.class, "/com/gemstone/gemfire/cache/client/internal/cacheserver.truststore"));
     gemFireProps.put(DistributionConfig.GATEWAY_SSL_TRUSTSTORE_PASSWORD_NAME, "password");
-    
+
     gemFireProps.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
     gemFireProps.setProperty(DistributionConfig.LOCATORS_NAME, "localhost[" + locPort + "]");
 
     LogWriterUtils.getLogWriter().info("Starting cache ds with following properties \n" + gemFireProps);
-    
+
     InternalDistributedSystem ds = test.getSystem(gemFireProps);
-    cache = CacheFactory.create(ds);    
+    cache = CacheFactory.create(ds);
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
     int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
     fact.setStartPort(port);
@@ -2758,16 +2788,16 @@ public class WANTestBase extends DistributedTestCase{
     }
     return port;
   }
-  
+
   public static String makePath(String[] strings) {
     StringBuilder sb = new StringBuilder();
     for(int i=0;i<strings.length;i++){
-      sb.append(strings[i]);      
+      sb.append(strings[i]);
       sb.append(File.separator);
     }
     return sb.toString();
   }
-  
+
   public static int createReceiverAfterCache(int locPort) {
     WANTestBase test = new WANTestBase(getTestMethodName());
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
@@ -2786,7 +2816,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     return port;
   }
-  
+
   public static void createReceiverAndServer(int locPort) {
     WANTestBase test = new WANTestBase(getTestMethodName());
     Properties props = test.getDistributedSystemProperties();
@@ -2795,7 +2825,7 @@ public class WANTestBase extends DistributedTestCase{
         + "]");
 
     InternalDistributedSystem ds = test.getSystem(props);
-    cache = CacheFactory.create(ds);    
+    cache = CacheFactory.create(ds);
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
     int receiverPort = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
     fact.setStartPort(receiverPort);
@@ -2821,7 +2851,7 @@ public class WANTestBase extends DistributedTestCase{
       com.gemstone.gemfire.test.dunit.Assert.fail("Failed to start server ", e);
     }
   }
-  
+
   public static int createReceiverInSecuredCache(int locPort) {
 	GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
 	int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
@@ -2838,7 +2868,7 @@ public class WANTestBase extends DistributedTestCase{
         }
 	return port;
   }
-  
+
   public static int createServer(int locPort) {
     WANTestBase test = new WANTestBase(getTestMethodName());
     Properties props = test.getDistributedSystemProperties();
@@ -2846,7 +2876,7 @@ public class WANTestBase extends DistributedTestCase{
     props.setProperty(DistributionConfig.LOCATORS_NAME, "localhost[" + locPort
         + "]");
     InternalDistributedSystem ds = test.getSystem(props);
-    cache = CacheFactory.create(ds);    
+    cache = CacheFactory.create(ds);
 
     CacheServer server = cache.addCacheServer();
     int port = AvailablePort.getRandomAvailablePort(AvailablePort.SOCKET);
@@ -2860,8 +2890,8 @@ public class WANTestBase extends DistributedTestCase{
     }
     return port;
   }
-  
-  public static void createClientWithLocator(int port0,String host, 
+
+  public static void createClientWithLocator(int port0,String host,
       String regionName) {
     WANTestBase test = new WANTestBase(getTestMethodName());
     Properties props = test.getDistributedSystemProperties();
@@ -2870,7 +2900,7 @@ public class WANTestBase extends DistributedTestCase{
 
     InternalDistributedSystem ds = test.getSystem(props);
     cache = CacheFactory.create(ds);
-    
+
     assertNotNull(cache);
     CacheServerTestUtil.disableShufflingOfEndpoints();
     Pool p;
@@ -2895,7 +2925,7 @@ public class WANTestBase extends DistributedTestCase{
         "Distributed Region " + regionName + " created Successfully :"
             + region.toString());
   }
-  
+
   public static int createReceiver_PDX(int locPort) {
     WANTestBase test = new WANTestBase(getTestMethodName());
     Properties props = test.getDistributedSystemProperties();
@@ -2927,7 +2957,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     return port;
   }
-  
+
   public static void createReceiver2(int locPort) {
     WANTestBase test = new WANTestBase(getTestMethodName());
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
@@ -2949,7 +2979,7 @@ public class WANTestBase extends DistributedTestCase{
   public static void doDistTXPuts(String regionName, int numPuts) {
     CacheTransactionManager txMgr = cache.getCacheTransactionManager();
     txMgr.setDistributed(true);
-    
+
     IgnoredException exp1 = IgnoredException.addIgnoredException(InterruptedException.class
         .getName());
     IgnoredException exp2 = IgnoredException.addIgnoredException(GatewaySenderException.class
@@ -3008,7 +3038,7 @@ public class WANTestBase extends DistributedTestCase{
 //      r.destroy(i);
 //    }
   }
-  
+
   /**
    * To be used for CacheLoader related tests
    */
@@ -3019,7 +3049,7 @@ public class WANTestBase extends DistributedTestCase{
 	  r.get(i);
 	}
   }
-  
+
   public static void doPutsAfter300(String regionName, int numPuts) {
     Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -3027,7 +3057,7 @@ public class WANTestBase extends DistributedTestCase{
       r.put(i, i);
     }
   }
-  
+
   public static void doPutsFrom(String regionName, int from, int numPuts) {
     Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -3043,7 +3073,7 @@ public class WANTestBase extends DistributedTestCase{
       r.destroy(i);
     }
   }
-  
+
   public static void doPutAll(String regionName, int numPuts, int size) {
     Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -3056,8 +3086,8 @@ public class WANTestBase extends DistributedTestCase{
       putAllMap.clear();
     }
   }
-  
-  
+
+
   public static void doPutsWithKeyAsString(String regionName, int numPuts) {
     Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -3065,7 +3095,7 @@ public class WANTestBase extends DistributedTestCase{
       r.put("Object_" + i, i);
     }
   }
-  
+
   public static void putGivenKeyValue(String regionName, Map keyValues) {
     Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -3073,11 +3103,11 @@ public class WANTestBase extends DistributedTestCase{
       r.put(key, keyValues.get(key));
     }
   }
-  
+
   public static void destroyRegion(String regionName) {
     destroyRegion(regionName, -1);
   }
-  
+
   public static void destroyRegion(String regionName, final int min) {
     final Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -3093,7 +3123,7 @@ public class WANTestBase extends DistributedTestCase{
         return "Looking for min size of region to be " + min;
       }
     };
-    Wait.waitForCriterion(wc, 30000, 5, false); 
+    Wait.waitForCriterion(wc, 30000, 5, false);
     r.destroyRegion();
   }
 
@@ -3112,11 +3142,11 @@ public class WANTestBase extends DistributedTestCase{
         return "Looking for min size of region to be " + min;
       }
     };
-    Wait.waitForCriterion(wc, 30000, 5, false); 
+    Wait.waitForCriterion(wc, 30000, 5, false);
     r.destroyRegion();
     destroyFlag = false;
   }
-  
+
   public static void localDestroyRegion(String regionName) {
     IgnoredException exp = IgnoredException.addIgnoredException(PRLocallyDestroyedException.class
         .getName());
@@ -3128,13 +3158,13 @@ public class WANTestBase extends DistributedTestCase{
       exp.remove();
     }
   }
-  
-  
+
+
   public static Map putCustomerPartitionedRegion(int numPuts) {
     String valueSuffix = "";
     return putCustomerPartitionedRegion(numPuts, valueSuffix);
   }
-  
+
   public static Map updateCustomerPartitionedRegion(int numPuts) {
     String valueSuffix = "_update";
     return putCustomerPartitionedRegion(numPuts, valueSuffix);
@@ -3189,7 +3219,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     return orderKeyValues;
   }
-  
+
   public static Map putOrderPartitionedRegionUsingCustId(int numPuts) {
     assertNotNull(cache);
     assertNotNull(orderRegion);
@@ -3240,7 +3270,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     return orderKeyValues;
   }
-  
+
   public static Map updateOrderPartitionedRegionUsingCustId(int numPuts) {
     assertNotNull(cache);
     assertNotNull(orderRegion);
@@ -3262,7 +3292,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     return orderKeyValues;
   }
-  
+
   public static Map putShipmentPartitionedRegion(int numPuts) {
     assertNotNull(cache);
     assertNotNull(shipmentRegion);
@@ -3294,7 +3324,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     return shipmentKeyValue;
   }
-  
+
   public static void putcolocatedPartitionedRegion(int numPuts) {
     assertNotNull(cache);
     assertNotNull(customerRegion);
@@ -3318,7 +3348,7 @@ public class WANTestBase extends DistributedTestCase{
       }
     }
   }
-  
+
   public static Map putShipmentPartitionedRegionUsingCustId(int numPuts) {
     assertNotNull(cache);
     assertNotNull(shipmentRegion);
@@ -3340,7 +3370,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     return shipmentKeyValue;
   }
-  
+
   public static Map updateShipmentPartitionedRegion(int numPuts) {
     assertNotNull(cache);
     assertNotNull(shipmentRegion);
@@ -3372,7 +3402,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     return shipmentKeyValue;
   }
-  
+
   public static Map updateShipmentPartitionedRegionUsingCustId(int numPuts) {
     assertNotNull(cache);
     assertNotNull(shipmentRegion);
@@ -3402,7 +3432,7 @@ public class WANTestBase extends DistributedTestCase{
       r.put("Key_" + i, new SimpleClass(i, (byte)i));
     }
   }
-  
+
   public static void doPutsPDXSerializable2(String regionName, int numPuts) {
     Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -3410,8 +3440,8 @@ public class WANTestBase extends DistributedTestCase{
       r.put("Key_" + i, new SimpleClass1(false, (short) i, "" + i, i,"" +i ,""+ i,i, i));
     }
   }
-  
-  
+
+
   public static void doTxPuts(String regionName, int numPuts) {
     Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -3423,7 +3453,7 @@ public class WANTestBase extends DistributedTestCase{
     r.put(200, 200);
     mgr.commit();
   }
-    
+
   public static void doNextPuts(String regionName, int start, int numPuts) {
     //waitForSitesToUpdate();
     IgnoredException exp = IgnoredException.addIgnoredException(CacheClosedException.class
@@ -3438,11 +3468,11 @@ public class WANTestBase extends DistributedTestCase{
       exp.remove();
     }
   }
-  
+
   public static void checkQueueSize(String senderId, int numQueueEntries) {
     Awaitility.await().atMost(10, TimeUnit.SECONDS).until(() -> testQueueSize(senderId, numQueueEntries));
   }
-  
+
   public static void testQueueSize(String senderId, int numQueueEntries) {
     GatewaySender sender = null;
     for (GatewaySender s : cache.getGatewaySenders()) {
@@ -3468,7 +3498,7 @@ public class WANTestBase extends DistributedTestCase{
       assertEquals(numQueueEntries, size);
     }
   }
-  
+
   /**
    * To be used only for ParallelGatewaySender.
    * @param senderId    Id of the ParallelGatewaySender
@@ -3487,7 +3517,7 @@ public class WANTestBase extends DistributedTestCase{
     if (sender.isParallel()) {
       int totalSize = 0;
       final Set<RegionQueue> queues = ((AbstractGatewaySender)sender).getQueues();
-      
+
       WaitCriterion wc = new WaitCriterion() {
         int size = 0;
         public boolean done() {
@@ -3505,13 +3535,13 @@ public class WANTestBase extends DistributedTestCase{
           return " Expected local queue entries: " + numQueueEntries
             + " but actual entries: " + size;
         }
-        
+
       };
-      
+
       Wait.waitForCriterion(wc, 120000, 500, true);
     }
   }
-  
+
   /**
    * To be used only for ParallelGatewaySender.
    * @param senderId    Id of the ParallelGatewaySender
@@ -3535,12 +3565,12 @@ public class WANTestBase extends DistributedTestCase{
     }
     return -1;
   }
-  
+
   public static void doUpdates(String regionName, int numUpdates) {
     Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
     for (int i = 0; i < numUpdates; i++) {
-      String s = "K"+i; 
+      String s = "K"+i;
       r.put(i, s);
     }
   }
@@ -3554,7 +3584,7 @@ public class WANTestBase extends DistributedTestCase{
       r.put(key, s);
     }
   }
-  
+
   public static void doRandomUpdates(String regionName, int numUpdates) {
     Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -3563,11 +3593,11 @@ public class WANTestBase extends DistributedTestCase{
       generatedKeys.add((new Random()).nextInt(r.size()));
     }
     for (Integer i: generatedKeys) {
-      String s = "K"+i; 
+      String s = "K"+i;
       r.put(i, s);
     }
   }
-  
+
   public static void doMultiThreadedPuts(String regionName, int numPuts) {
     final AtomicInteger ai = new AtomicInteger(-1);
     final ExecutorService execService = Executors.newFixedThreadPool(5,
@@ -3624,13 +3654,13 @@ public class WANTestBase extends DistributedTestCase{
               + " present region keyset " + r.keySet();
         }
       };
-      Wait.waitForCriterion(wc, 240000, 500, true);
+      Wait.waitForCriterion(wc, 30000, 500, true);
     } finally {
       exp.remove();
       exp1.remove();
     }
   }
-  
+
   /**
    * Validate whether all the attributes set on AsyncEventQueueFactory are set
    * on the sender underneath the AsyncEventQueue.
@@ -3662,7 +3692,7 @@ public class WANTestBase extends DistributedTestCase{
     assertEquals("batchConflation", batchConflationEnabled, theSender
         .isBatchConflationEnabled());
   }
-  
+
   public static void validateAsyncEventListener(String asyncQueueId, final int expectedSize) {
     AsyncEventListener theListener = null;
 
@@ -3690,7 +3720,7 @@ public class WANTestBase extends DistributedTestCase{
     };
     Wait.waitForCriterion(wc, 60000, 500, true); //TODO:Yogs 
   }
-  
+
    public static void validateCustomAsyncEventListener(String asyncQueueId,
       final int expectedSize) {
     AsyncEventListener theListener = null;
@@ -3718,14 +3748,14 @@ public class WANTestBase extends DistributedTestCase{
       }
     };
     Wait.waitForCriterion(wc, 60000, 500, true); // TODO:Yogs
-    
+
    Iterator<AsyncEvent> itr = eventsMap.values().iterator();
    while (itr.hasNext()) {
      AsyncEvent event = itr.next();
      assertTrue("possibleDuplicate should be true for event: " + event, event.getPossibleDuplicate());
    }
   }
-  
+
   public static void waitForAsyncQueueToGetEmpty(String asyncQueueId) {
     AsyncEventQueue theAsyncEventQueue = null;
 
@@ -3795,7 +3825,7 @@ public class WANTestBase extends DistributedTestCase{
       Wait.waitForCriterion(wc, 60000, 500, true);
     }
   }
-  
+
   public static void verifyAsyncEventListenerForPossibleDuplicates(
       String asyncEventQueueId, Set<Integer> bucketIds, int batchSize) {
     AsyncEventListener theListener = null;
@@ -3840,10 +3870,10 @@ public class WANTestBase extends DistributedTestCase{
     LogWriterUtils.getLogWriter().info("The events map size is " + eventsMap.size());
     return eventsMap.size();
   }
-  
+
   public static int getAsyncEventQueueSize(String asyncEventQueueId) {
     AsyncEventQueue theQueue = null;
-    
+
     Set<AsyncEventQueue> asyncEventQueues = cache.getAsyncEventQueues();
     for (AsyncEventQueue asyncQueue : asyncEventQueues) {
       if (asyncEventQueueId.equals(asyncQueue.getId())) {
@@ -3854,7 +3884,7 @@ public class WANTestBase extends DistributedTestCase{
     return theQueue.size();
   }
 
-  
+
   public static void validateRegionSize_PDX(String regionName, final int regionSize) {
     final Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -3867,11 +3897,11 @@ public class WANTestBase extends DistributedTestCase{
       }
 
       public String description() {
-        
+
         return "Expected region entries: " + regionSize + " but actual entries: " + r.keySet().size() + " present region keyset " + r.keySet()  ;
       }
     };
-    Wait.waitForCriterion(wc, 200000, 500, true); 
+    Wait.waitForCriterion(wc, 200000, 500, true);
     for(int i = 0 ; i < regionSize; i++){
       LogWriterUtils.getLogWriter().info("For Key : Key_"+i + " : Values : " + r.get("Key_" + i));
       assertEquals(new SimpleClass(i, (byte)i), r.get("Key_" + i));
@@ -3889,27 +3919,27 @@ public class WANTestBase extends DistributedTestCase{
       }
 
       public String description() {
-        
+
         return "Expected region entries: " + regionSize + " but actual entries: " + r.keySet().size() + " present region keyset " + r.keySet()  ;
       }
     };
-    Wait.waitForCriterion(wc, 200000, 500, true); 
+    Wait.waitForCriterion(wc, 200000, 500, true);
     for(int i = 0 ; i < regionSize; i++){
       LogWriterUtils.getLogWriter().info("For Key : Key_"+i + " : Values : " + r.get("Key_" + i));
       assertEquals(new SimpleClass1(false, (short) i, "" + i, i,"" +i ,""+ i,i, i), r.get("Key_" + i));
     }
   }
-  
+
   public static void validateQueueSizeStat(String id, final int queueSize) {
     final AbstractGatewaySender sender = (AbstractGatewaySender)  cache.getGatewaySender(id);
-    
+
     Wait.waitForCriterion(new WaitCriterion() {
-      
+
       @Override
       public boolean done() {
         return sender.getEventQueueSize() == queueSize;
       }
-      
+
       @Override
       public String description() {
         // TODO Auto-generated method stub
@@ -3921,9 +3951,9 @@ public class WANTestBase extends DistributedTestCase{
   /**
    * This method is specifically written for pause and stop operations.
    * This method validates that the region size remains same for at least minimum number of verification
-   * attempts and also it remains below a specified limit value. This validation will suffice for 
-   * testing of pause/stop operations.  
-   *  
+   * attempts and also it remains below a specified limit value. This validation will suffice for
+   * testing of pause/stop operations.
+   *
    * @param regionName
    * @param regionSizeLimit
    */
@@ -3944,8 +3974,8 @@ public class WANTestBase extends DistributedTestCase{
           } else {
             return false;
           }
-          
-        } else { //current regionSize is not same as recorded previous regionSize 
+
+        } else { //current regionSize is not same as recorded previous regionSize
           previousSize = r.keySet().size(); //update the previousSize variable with current region size
           sameRegionSizeCounter = 0;//reset the sameRegionSizeCounter
           return false;
@@ -3956,21 +3986,21 @@ public class WANTestBase extends DistributedTestCase{
         return "Expected region size to remain same below a specified limit but actual region size does not remain same or exceeded the specified limit " + sameRegionSizeCounter + " :regionSize " + previousSize;
       }
     };
-    Wait.waitForCriterion(wc, 200000, 500, true); 
+    Wait.waitForCriterion(wc, 200000, 500, true);
   }
-  
+
   public static String getRegionFullPath(String regionName) {
     final Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
     return r.getFullPath();
   }
-  
+
   public static Integer getRegionSize(String regionName) {
     final Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
     return r.keySet().size();
   }
-  
+
   public static void validateRegionContents(String regionName, final Map keyValues) {
     final Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -3991,9 +4021,9 @@ public class WANTestBase extends DistributedTestCase{
         return "Expected region entries doesn't match";
       }
     };
-    Wait.waitForCriterion(wc, 120000, 500, true); 
+    Wait.waitForCriterion(wc, 120000, 500, true);
   }
-  
+
   public static void CheckContent(String regionName, final int regionSize) {
     final Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -4001,7 +4031,7 @@ public class WANTestBase extends DistributedTestCase{
       assertEquals(i, r.get(i));
     }
   }
-  
+
   public static void validateRegionContentsForPR(String regionName,
       final int regionSize) {
     final Region r = cache.getRegion(Region.SEPARATOR + regionName);
@@ -4018,14 +4048,14 @@ public class WANTestBase extends DistributedTestCase{
         return "Expected region entries: " + regionSize + " but actual entries: " + r.keySet().size();
       }
     };
-    Wait.waitForCriterion(wc, 120000, 500, true); 
+    Wait.waitForCriterion(wc, 120000, 500, true);
   }
-  
+
   public static void verifyPrimaryStatus(final Boolean isPrimary) {
     final Set<GatewaySender> senders = cache.getGatewaySenders();
     assertEquals(senders.size(), 1);
     final AbstractGatewaySender sender = (AbstractGatewaySender)senders.iterator().next();
-    
+
     WaitCriterion wc = new WaitCriterion() {
       public boolean done() {
         if (sender.isPrimary() == isPrimary.booleanValue()) {
@@ -4040,7 +4070,7 @@ public class WANTestBase extends DistributedTestCase{
     };
     Wait.waitForCriterion(wc, 120000, 500, true);
   }
-  
+
   public static Boolean getPrimaryStatus(){
     Set<GatewaySender> senders = cache.getGatewaySenders();
     assertEquals(senders.size(), 1);
@@ -4060,12 +4090,12 @@ public class WANTestBase extends DistributedTestCase{
     Wait.waitForCriterion(wc, 10000, 500, false);
     return sender.isPrimary();
   }
-  
+
   public static Set<Integer> getAllPrimaryBucketsOnTheNode(String regionName) {
     PartitionedRegion region = (PartitionedRegion)cache.getRegion(regionName);
     return region.getDataStore().getAllLocalPrimaryBucketIds();
   }
-  
+
   public static void doHeavyPuts(String regionName, int numPuts) {
     Region r = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(r);
@@ -4075,7 +4105,7 @@ public class WANTestBase extends DistributedTestCase{
       r.put(i, new byte[1024*1024]);
     }
   }
-  
+
   public static void addListenerAndKillPrimary(){
     Set<GatewaySender> senders = ((GemFireCacheImpl)cache).getAllGatewaySenders();
     assertEquals(senders.size(), 1);
@@ -4084,7 +4114,7 @@ public class WANTestBase extends DistributedTestCase{
     assertNotNull(queue);
     CacheListenerAdapter cl = new CacheListenerAdapter() {
       public void afterCreate(EntryEvent event) {
-        if((Long)event.getKey() > 900){ 
+        if((Long)event.getKey() > 900){
           cache.getLogger().fine(" Gateway sender is killed by a test");
           cache.close();
           cache.getDistributedSystem().disconnect();
@@ -4093,28 +4123,28 @@ public class WANTestBase extends DistributedTestCase{
     };
     queue.getAttributesMutator().addCacheListener(cl);
   }
-  
+
   public static void addCacheListenerAndDestroyRegion(String regionName){
     final Region region = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(region);
     CacheListenerAdapter cl = new CacheListenerAdapter() {
       @Override
       public void afterCreate(EntryEvent event) {
-        if((Long)event.getKey() == 99){ 
+        if((Long)event.getKey() == 99){
           region.destroyRegion();
         }
       }
     };
     region.getAttributesMutator().addCacheListener(cl);
   }
-  
+
   public static void addCacheListenerAndCloseCache(String regionName){
     final Region region = cache.getRegion(Region.SEPARATOR + regionName);
     assertNotNull(region);
     CacheListenerAdapter cl = new CacheListenerAdapter() {
       @Override
       public void afterCreate(EntryEvent event) {
-        if((Long)event.getKey() == 900){ 
+        if((Long)event.getKey() == 900){
           cache.getLogger().fine(" Gateway sender is killed by a test");
           cache.close();
           cache.getDistributedSystem().disconnect();
@@ -4123,7 +4153,7 @@ public class WANTestBase extends DistributedTestCase{
     };
     region.getAttributesMutator().addCacheListener(cl);
   }
-  
+
   public static Boolean killSender(String senderId){
     final IgnoredException exln = IgnoredException.addIgnoredException("Could not connect");
     IgnoredException exp = IgnoredException.addIgnoredException(CacheClosedException.class
@@ -4149,9 +4179,9 @@ public class WANTestBase extends DistributedTestCase{
       exp.remove();
       exp1.remove();
       exln.remove();
-    }    
+    }
   }
-  
+
   public static Boolean killAsyncEventQueue(String asyncQueueId){
     Set<AsyncEventQueue> queues = cache.getAsyncEventQueues();
     AsyncEventQueueImpl queue = null;
@@ -4168,14 +4198,14 @@ public class WANTestBase extends DistributedTestCase{
     }
     return Boolean.FALSE;
   }
-  
+
   public static void killSender(){
-    LogWriterUtils.getLogWriter().info("Gateway sender is going to be killed by a test"); 
+    LogWriterUtils.getLogWriter().info("Gateway sender is going to be killed by a test");
     cache.close();
     cache.getDistributedSystem().disconnect();
     LogWriterUtils.getLogWriter().info("Gateway sender is killed by a test");
   }
-  
+
   static void waitForSitesToUpdate() {
     WaitCriterion wc = new WaitCriterion() {
       public boolean done() {
@@ -4187,21 +4217,21 @@ public class WANTestBase extends DistributedTestCase{
     };
     Wait.waitForCriterion(wc, 10000, 500, false);
   }
-  
-  public static void checkAllSiteMetaData(     
+
+  public static void checkAllSiteMetaData(
       Map<Integer, ArrayList<Integer>> dsVsPorts) {
     waitForSitesToUpdate();
     assertNotNull(getSystemStatic());
 //    Map<Integer,Set<DistributionLocatorId>> allSiteMetaData = ((DistributionConfigImpl)system
 //        .getConfig()).getAllServerLocatorsInfo();
-    
+
     List<Locator> locatorsConfigured = Locator.getLocators();
     Locator locator = locatorsConfigured.get(0);
     Map<Integer,Set<DistributionLocatorId>> allSiteMetaData = ((InternalLocator)locator).getlocatorMembershipListener().getAllLocatorsInfo();
     System.out.println("allSiteMetaData : " + allSiteMetaData);
     System.out.println("dsVsPorts : " + dsVsPorts);
     System.out.println("Server allSiteMetaData : " + ((InternalLocator)locator).getlocatorMembershipListener().getAllServerLocatorsInfo());
-    
+
     //assertEquals(dsVsPorts.size(), allSiteMetaData.size());
     for (Map.Entry<Integer, ArrayList<Integer>> entry : dsVsPorts.entrySet()) {
       Set<DistributionLocatorId> locators = allSiteMetaData.get(entry.getKey());
@@ -4219,9 +4249,9 @@ public class WANTestBase extends DistributedTestCase{
       }
     }
   }
-  
+
   public static Long checkAllSiteMetaDataFor3Sites(final Map<Integer, Set<String>> dsVsPort) {
-    
+
     WaitCriterion wc = new WaitCriterion() {
       public boolean done() {
         if (getSystemStatic() != null) {
@@ -4236,12 +4266,12 @@ public class WANTestBase extends DistributedTestCase{
         return "Making sure system is initialized";
       }
     };
-    Wait.waitForCriterion(wc, 50000, 1000, true); 
+    Wait.waitForCriterion(wc, 50000, 1000, true);
     assertNotNull(getSystemStatic());
-    
+
 //    final Map<Integer,Set<DistributionLocatorId>> allSiteMetaData = ((DistributionConfigImpl)system
 //        .getConfig()).getAllServerLocatorsInfo();
-    
+
     List<Locator> locatorsConfigured = Locator.getLocators();
     Locator locator = locatorsConfigured.get(0);
     LocatorMembershipListener listener = ((InternalLocator)locator).getlocatorMembershipListener();
@@ -4250,7 +4280,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     final Map<Integer,Set<DistributionLocatorId>> allSiteMetaData = listener.getAllLocatorsInfo();
     System.out.println("allSiteMetaData : " + allSiteMetaData);
-    
+
     wc = new WaitCriterion() {
       public boolean done() {
         if (dsVsPort.size() == allSiteMetaData.size()) {
@@ -4275,10 +4305,10 @@ public class WANTestBase extends DistributedTestCase{
             + " but actual meta data: " + allSiteMetaData;
       }
     };
-    Wait.waitForCriterion(wc, 300000, 500, true); 
+    Wait.waitForCriterion(wc, 300000, 500, true);
     return System.currentTimeMillis();
   }
-  
+
   public static void checkLocatorsinSender(String senderId, InetSocketAddress locatorToWaitFor)
       throws InterruptedException {
 
@@ -4290,17 +4320,17 @@ public class WANTestBase extends DistributedTestCase{
         break;
       }
     }
-    
+
     MyLocatorCallback callback = (MyLocatorCallbac

<TRUNCATED>


[2/7] incubator-geode git commit: GEODE-1062: Refactor of WANTestBase

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderOperationsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderOperationsDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderOperationsDUnitTest.java
index ed6dc29..6899101 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderOperationsDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderOperationsDUnitTest.java
@@ -69,7 +69,8 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceivers(nyPort);
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     createSenderCaches(lnPort);
 
@@ -115,11 +116,6 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createCache( lnPort ));
   }
 
-  protected void createReceivers(Integer nyPort) {
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
-  }
-
   protected void createSenderVM5() {
     vm5.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, true, null, true ));
@@ -135,7 +131,8 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceivers(nyPort);
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     createSenderCaches(lnPort);
 
@@ -149,7 +146,7 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         10 ));
 
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         100 ));
@@ -190,7 +187,8 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceivers(nyPort);
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     createSenderCaches(lnPort);
 
@@ -204,7 +202,7 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         20 ));
 
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         20 ));
@@ -270,16 +268,12 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     vm5.invoke(() -> WANTestBase.validateQueueSizeStat( "ln", 0 ));
   }
 
-  protected void startSenders() {
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-  }
-
   public void testStopOneSerialGatewaySenderBothPrimary() throws Throwable {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceivers(nyPort);
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     createSenderCaches(lnPort);
 
@@ -290,7 +284,7 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
 
     createSenderRegions();
 
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         100 ));
@@ -331,7 +325,8 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceivers(nyPort);
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     createSenderCaches(lnPort);
 
@@ -342,7 +337,7 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
 
     createSenderRegions();
 
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         10 ));
@@ -366,11 +361,12 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR", null, isOffHeap() ));
+      getTestMethodName() + "_RR", null, isOffHeap() ));
+    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4);
     createSenderVM4();
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -428,9 +424,11 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     vm4.invoke(() -> WANTestBase.stopSender( "ln" ));
 
     vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR", null, isOffHeap() ));
+      getTestMethodName() + "_RR", null, isOffHeap() ));
+    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+
     LogWriterUtils.getLogWriter().info("Completed puts in the region");
     vm2.invoke(() -> WANTestBase.validateRegionSize(
         getTestMethodName() + "_RR", 100 ));
@@ -454,7 +452,8 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceivers(nyPort);
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     createSenderCaches(lnPort);
 
@@ -465,7 +464,7 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
 
     createSenderRegions();
 
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         10 ));
@@ -491,7 +490,8 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceivers(nyPort);
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     createSenderCaches(lnPort);
 
@@ -502,7 +502,7 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
 
     createSenderRegions();
 
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         10 ));
@@ -526,7 +526,8 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    createReceivers(nyPort);
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     createSenderCaches(lnPort);
 
@@ -537,7 +538,7 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
 
     createSenderRegions();
 
-    startSenders();
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         10 ));
@@ -556,19 +557,17 @@ public class SerialGatewaySenderOperationsDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, true, null, true ));
     vm5.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, true, null, true ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     SerializableRunnable check = new SerializableRunnable("assert no cache servers") {
       public void run() {

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderQueueDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderQueueDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderQueueDUnitTest.java
index c4ceb21..d77fdcf 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderQueueDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderQueueDUnitTest.java
@@ -80,8 +80,7 @@ public class SerialGatewaySenderQueueDUnitTest extends WANTestBase{
     vm5.invoke(() -> WANTestBase.createSenderWithMultipleDispatchers( "ln", 2,
         false, 100, 10, false, false, null, true, 1, OrderPolicy.KEY ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
       getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -148,8 +147,9 @@ public class SerialGatewaySenderQueueDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
       getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
@@ -158,11 +158,8 @@ public class SerialGatewaySenderQueueDUnitTest extends WANTestBase{
   
     vm2.invoke(() -> WANTestBase.addListenerOnRegion(getTestMethodName() + "_PR"));
     vm3.invoke(() -> WANTestBase.addListenerOnRegion(getTestMethodName() + "_PR"));
-  
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSenderWithMultipleDispatchers( "ln", 2,
         false, 100, 10, false, false, null, true, 1, OrderPolicy.KEY ));
@@ -178,8 +175,7 @@ public class SerialGatewaySenderQueueDUnitTest extends WANTestBase{
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.addQueueListener( "ln", false));
     vm5.invoke(() -> WANTestBase.addQueueListener( "ln", false));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPersistenceEnabledGatewaySenderDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPersistenceEnabledGatewaySenderDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPersistenceEnabledGatewaySenderDUnitTest.java
index 4fac57f..9a818e0 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPersistenceEnabledGatewaySenderDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPersistenceEnabledGatewaySenderDUnitTest.java
@@ -43,13 +43,10 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, true, null, true ));
@@ -61,8 +58,7 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -92,13 +88,10 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -108,8 +101,7 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     vm2.invoke(() -> WANTestBase.createPersistentReplicatedRegion( getTestMethodName() + "_RR", null, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createPersistentReplicatedRegion( getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createPersistentReplicatedRegion( getTestMethodName() + "_RR", "ln", isOffHeap() ));
     vm5.invoke(() -> WANTestBase.createPersistentReplicatedRegion( getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -135,13 +127,10 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, true, null, true ));
@@ -151,8 +140,7 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     vm2.invoke(() -> WANTestBase.createPersistentReplicatedRegion( getTestMethodName() + "_RR", null, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createPersistentReplicatedRegion( getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createPersistentReplicatedRegion( getTestMethodName() + "_RR", "ln", isOffHeap() ));
     vm5.invoke(() -> WANTestBase.createPersistentReplicatedRegion( getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -177,13 +165,10 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     String firstDStore = (String)vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, false,
             100, 10, false, true, null, null, true ));
@@ -198,8 +183,7 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createPersistentReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -277,13 +261,10 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     String firstDStore = (String)vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, false,
             100, 10, false, true, null, null, true ));
@@ -298,8 +279,7 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createPersistentReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -370,13 +350,10 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2, false,
             100, 10, false, false, null, true ));
@@ -388,8 +365,7 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createPersistentReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -473,13 +449,10 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     String firstDStore = (String)vm4.invoke(() -> WANTestBase.createSenderWithDiskStore( "ln", 2, false,
             100, 10, false, true, null, null, true  ));
@@ -494,8 +467,7 @@ public class SerialWANPersistenceEnabledGatewaySenderDUnitTest extends
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createPersistentReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropagationLoopBackDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropagationLoopBackDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropagationLoopBackDUnitTest.java
index b1fb8d9..8cc50de 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropagationLoopBackDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropagationLoopBackDUnitTest.java
@@ -36,6 +36,8 @@ public class SerialWANPropagationLoopBackDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    vm2.invoke(() -> WANTestBase.createCache( lnPort ));
+    vm3.invoke(() -> WANTestBase.createCache( nyPort ));
     vm2.invoke(() -> WANTestBase.createReceiver( lnPort ));
     vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
@@ -125,13 +127,14 @@ public class SerialWANPropagationLoopBackDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
     Integer tkPort = (Integer)vm2.invoke(() -> WANTestBase.createFirstRemoteLocator( 3, lnPort ));
 
-    
+    createCacheInVMs(lnPort, vm3, vm6);
+    createCacheInVMs(nyPort, vm4, vm7);
+    createCacheInVMs(tkPort, vm5);
+
     vm3.invoke(() -> WANTestBase.createReceiver( lnPort ));
     vm4.invoke(() -> WANTestBase.createReceiver( nyPort ));
     vm5.invoke(() -> WANTestBase.createReceiver( tkPort ));
-    
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( nyPort ));
+
     // using vm5 for sender in ds 3. cache is already created.
     
     vm6.invoke(() -> WANTestBase.createSender( "ln", 2,
@@ -230,13 +233,14 @@ public class SerialWANPropagationLoopBackDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
     Integer tkPort = (Integer)vm2.invoke(() -> WANTestBase.createFirstRemoteLocator( 3, lnPort ));
 
-    
+    createCacheInVMs(lnPort, vm3, vm6);
+    createCacheInVMs(nyPort, vm4, vm7);
+    createCacheInVMs(tkPort, vm5);
+
     vm3.invoke(() -> WANTestBase.createReceiver( lnPort ));
     vm4.invoke(() -> WANTestBase.createReceiver( nyPort ));
     vm5.invoke(() -> WANTestBase.createReceiver( tkPort ));
     
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( nyPort ));
     // using vm5 for sender in ds 3. cache is already created.
     
     vm6.invoke(() -> WANTestBase.createSender( "ln1", 2,
@@ -373,7 +377,9 @@ public class SerialWANPropagationLoopBackDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
     Integer tkPort = (Integer)vm2.invoke(() -> WANTestBase.createFirstRemoteLocator( 3, lnPort ));
 
-    
+    vm3.invoke(() -> WANTestBase.createCache( lnPort ));
+    vm4.invoke(() -> WANTestBase.createCache( nyPort ));
+    vm5.invoke(() -> WANTestBase.createCache( tkPort ));
     vm3.invoke(() -> WANTestBase.createReceiver( lnPort ));
     vm4.invoke(() -> WANTestBase.createReceiver( nyPort ));
     vm5.invoke(() -> WANTestBase.createReceiver( tkPort ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationDUnitTest.java
index a272eeb..55f1ac1 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationDUnitTest.java
@@ -53,10 +53,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
   public void disabledtestReplicatedSerialPropagation_withoutRemoteLocator() throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //keep the batch size high enough to reduce the number of exceptions in the log
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
@@ -64,25 +61,23 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm5.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 400, false, false, null, true ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(createReplicatedRegionRunnable());
     vm5.invoke(createReplicatedRegionRunnable());
     vm6.invoke(createReplicatedRegionRunnable());
     vm7.invoke(createReplicatedRegionRunnable());
-    
+
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
       1000 ));
 
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(createCacheRunnable(nyPort));
-    vm3.invoke(createCacheRunnable(nyPort));
-  
+    createCacheInVMs(nyPort, vm2, vm3);
+
     vm2.invoke(() -> WANTestBase.createReceiver2(nyPort ));
     vm3.invoke(() -> WANTestBase.createReceiver2(nyPort ));
-    
+
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
@@ -102,20 +97,13 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
         getTestMethodName() + "_RR", "ln", isOffHeap()   );
   }
 
-  protected SerializableRunnableIF createCacheRunnable(Integer lnPort) {
-    return () -> WANTestBase.createCache(lnPort );
-  } 
-
   
   public void testReplicatedSerialPropagation_withoutRemoteSite() throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
-    
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //keep the batch size high enough to reduce the number of exceptions in the log
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
@@ -123,8 +111,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm5.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 400, false, false, null, true ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(createReplicatedRegionRunnable());
     vm5.invoke(createReplicatedRegionRunnable());
@@ -133,25 +120,21 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     
     IgnoredException.addIgnoredException(BatchException70.class.getName());
     IgnoredException.addIgnoredException(ServerOperationException.class.getName());
-
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException(
-      "ln", false ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException(
-      "ln", false ));
     
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
       1000 ));
-    
-    vm2.invoke(createCacheRunnable(nyPort));
-    vm3.invoke(createCacheRunnable(nyPort));
-  
-    vm2.invoke(() -> WANTestBase.createReceiver2(nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver2(nyPort ));
-    
+
+    createCacheInVMs(nyPort, vm2, vm3);
+
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR", null, isOffHeap()  ));
+      getTestMethodName() + "_RR", null, isOffHeap()  ));
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR", null, isOffHeap()  ));
+      getTestMethodName() + "_RR", null, isOffHeap()  ));
+
+    vm2.invoke(() -> WANTestBase.createReceiver2(nyPort ));
+    vm3.invoke(() -> WANTestBase.createReceiver2(nyPort ));
+
+    Thread.sleep(5000);
 
     vm4.invoke(() -> WANTestBase.validateRegionSize(
         getTestMethodName() + "_RR", 1000 ));
@@ -173,10 +156,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
 
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     // reduce the batch-size so maximum number of batches will be sent
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
@@ -184,8 +164,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm5.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 5, false, false, null, true ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(createReplicatedRegionRunnable());
     vm5.invoke(createReplicatedRegionRunnable());
@@ -195,10 +174,6 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     IgnoredException.addIgnoredException(BatchException70.class.getName());
     IgnoredException.addIgnoredException(ServerOperationException.class.getName());
     IgnoredException.addIgnoredException(IOException.class.getName());
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException(
-      "ln", false ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException(
-      "ln", false ));
     
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         10000 ));
@@ -206,8 +181,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     // pause for some time before starting up the remote site
     Wait.pause(10000);
 
-    vm2.invoke(createCacheRunnable(nyPort));
-    vm3.invoke(createCacheRunnable(nyPort));
+    createCacheInVMs(nyPort, vm2, vm3);
     
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
       getTestMethodName() + "_RR", null, isOffHeap()  ));
@@ -233,13 +207,10 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -251,8 +222,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(createReplicatedRegionRunnable());
     vm5.invoke(createReplicatedRegionRunnable());
@@ -272,13 +242,10 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -290,8 +257,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(createReplicatedRegionRunnable());
     vm5.invoke(createReplicatedRegionRunnable());
@@ -310,28 +276,21 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer regionSize = 
       (Integer) vm2.invoke(() -> WANTestBase.getRegionSize(getTestMethodName() + "_RR" ));
     LogWriterUtils.getLogWriter().info("Region size on remote is: " + regionSize);
-    
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
       false, 100, 10, false, false, null, true ));
     vm5.invoke(() -> WANTestBase.createSender( "ln", 2,
       false, 100, 10, false, false, null, true ));
-  
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
     
     vm4.invoke(createReplicatedRegionRunnable());
     vm5.invoke(createReplicatedRegionRunnable());
     vm6.invoke(createReplicatedRegionRunnable());
     vm7.invoke(createReplicatedRegionRunnable());
-    
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+
+    startSenderInVMs("ln", vm4, vm5);
+
     vm4.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     vm5.invoke(() -> WANTestBase.waitForSenderRunningState( "ln" ));
     
@@ -362,14 +321,11 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //these are part of remote site
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //these are part of local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //senders are created on local site
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
@@ -390,8 +346,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
         getTestMethodName() + "_RR_2", null, isOffHeap()  ));
     
     //start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     //create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
@@ -447,14 +402,11 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //these are part of remote site
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //these are part of local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //senders are created on local site
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
@@ -469,8 +421,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
         getTestMethodName() + "_RR_1", null, isOffHeap()  ));
 
     //start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     //create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
@@ -519,14 +470,11 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //these are part of remote site
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     //these are part of local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //senders are created on local site
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
@@ -547,8 +495,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
         getTestMethodName() + "_RR_2", null, isOffHeap()  ));
     
     //start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     //create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
@@ -594,25 +541,17 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
         getTestMethodName() + "_RR_1", 1000 ));
 
   }
-  
-  /**
-   * In this test the system property gemfire.GatewaySender.REMOVE_FROM_QUEUE_ON_EXCEPTION is set to true.
-   * This will ensure that other events which did not cause BatchException can reach remote site.
-   */
+
   public void testReplicatedSerialPropagationWithRemoteRegionDestroy3()
       throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
     // these are part of remote site
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
-
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     // these are part of local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     // senders are created on local site
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
@@ -633,12 +572,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
         getTestMethodName() + "_RR_2", null, isOffHeap()  ));
     
     // start the senders on local site
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    vm5.invoke(() -> WANTestBase.setRemoveFromQueueOnException( "ln", true ));
-    
-    // start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     // create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
@@ -716,14 +650,12 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     //these are part of remote site
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
     //vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     //these are part of local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     //senders are created on local site. Batch size is kept to a high (170) so 
     //there will be less number of exceptions (occur during dispatchBatch) in the log 
@@ -739,8 +671,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     //    testName + "_RR_1", null, isOffHeap()  ));
 
     //start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     //create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
@@ -777,11 +708,11 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer nyPort = (Integer) vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     // these are part of remote site
+    vm2.invoke(() -> WANTestBase.createCache( nyPort ));
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     // these are part of local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5);
 
     // senders are created on local site. Batch size is kept to a high (170) so
     // there will be less number of exceptions (occur during dispatchBatch) in
@@ -800,8 +731,6 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR_1", "ln", isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException(
-      "ln", false ));
     
     // start puts in RR_1 in another thread
     AsyncInvocation inv1 = vm4.invokeAsync(() -> WANTestBase.doPuts( getTestMethodName() + "_RR_1", 8000 ));
@@ -827,10 +756,10 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
 //    vm4.invoke(WANTestBase.class, "verifyRegionQueueNotEmpty",
 //        new Object[] { "ln" });
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR_1", null, isOffHeap()  ));
+    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     vm4.invoke(() -> WANTestBase.validateQueueContents( "ln",
         0 ));
@@ -844,11 +773,11 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer nyPort = (Integer) vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     // these are part of remote site
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     // these are part of local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5);
 
     // senders are created on local site. Batch size is kept to a high (170) so
     // there will be less number of exceptions (occur during dispatchBatch) in
@@ -862,15 +791,12 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm2.invoke(() -> WANTestBase.createPersistentReplicatedRegion( getTestMethodName() + "_RR_1", null, isOffHeap()  ));
 
     // start the senders on local site
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     // create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR_1", "ln", isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException(
-      "ln", false ));
     
     // start puts in RR_1 in another thread
     AsyncInvocation inv1 = vm4.invokeAsync(() -> WANTestBase.doPuts( getTestMethodName() + "_RR_1", 8000 ));
@@ -893,9 +819,9 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
 
     vm4.invoke(() -> WANTestBase.verifyRegionQueueNotEmpty( "ln" ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createPersistentReplicatedRegion( getTestMethodName() + "_RR_1", null, isOffHeap()  ));
+    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     vm4.invoke(() -> WANTestBase.validateQueueContents( "ln",
         0 ));
@@ -912,11 +838,11 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer nyPort = (Integer) vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     // these are part of remote site
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     // these are part of local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5);
 
     // senders are created on local site. Batch size is kept to a high (170) so
     // there will be less number of exceptions (occur during dispatchBatch) in
@@ -934,9 +860,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     // create one RR (RR_1) on local site
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR_1", "ln", isOffHeap()  ));
-    
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException(
-      "ln", false ));
+
     // start puts in RR_1 in another thread
     AsyncInvocation inv1 = vm4.invokeAsync(() -> WANTestBase.doPuts( getTestMethodName() + "_RR_1", 8000 ));
     // close cache in remote site. This will automatically kill the remote
@@ -964,10 +888,12 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm1.invoke(() -> WANTestBase.bringBackLocatorOnOldPort(
         2, lnPort, nyPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2);
 
     vm2.invoke(() -> WANTestBase.createPersistentReplicatedRegion(
-        getTestMethodName() + "_RR_1", null, isOffHeap()  ));
+      getTestMethodName() + "_RR_1", null, isOffHeap()  ));
+
+    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     vm4.invoke(() -> WANTestBase.validateQueueContents( "ln",
         0 ));
@@ -985,11 +911,11 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer nyPort2 = (Integer) vm3.invoke(() -> WANTestBase.createSecondRemoteLocator( 2, nyPort1, lnPort ));
 
     // these are part of remote site
+    createCacheInVMs(nyPort1, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort1 ));
 
     // these are part of local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5);
 
     // senders are created on local site. Batch size is kept to a high (170) so
     // there will be less number of exceptions (occur during dispatchBatch) in
@@ -1008,8 +934,6 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR_1", "ln", isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.setRemoveFromQueueOnException(
-      "ln", false ));
     // start puts in RR_1 in another thread
     AsyncInvocation inv1 = vm4.invokeAsync(() -> WANTestBase.doPuts( getTestMethodName() + "_RR_1", 8000 ));
     // close cache in remote site. This will automatically kill the remote
@@ -1032,10 +956,11 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
 
     vm4.invoke(() -> WANTestBase.verifyRegionQueueNotEmpty( "ln" ));
 
+    createCacheInVMs(nyPort2, vm6);
+    vm6.invoke(() -> WANTestBase.createReplicatedRegion(
+      getTestMethodName() + "_RR_1", null, isOffHeap()  ));
     vm6.invoke(() -> WANTestBase.createReceiver( nyPort2 ));
 
-    vm6.invoke(() -> WANTestBase.createReplicatedRegion(
-        getTestMethodName() + "_RR_1", null, isOffHeap()  ));
 
     vm4.invoke(() -> WANTestBase.validateQueueContents( "ln",
         0 ));
@@ -1049,12 +974,11 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer nyPort = (Integer) vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
     // these are part of remote site
+    createCacheInVMs(nyPort, vm2, vm3);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(createCacheRunnable(nyPort));
 
     // these are part of local site
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5);
 
     // senders are created on local site. Batch size is kept to a high (170) so
     // there will be less number of exceptions (occur during dispatchBatch) in
@@ -1098,9 +1022,10 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
 
     vm4.invoke(() -> WANTestBase.verifyRegionQueueNotEmpty( "ln" ));
 
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm3);
     vm3.invoke(() -> WANTestBase.createPersistentReplicatedRegion(
       getTestMethodName() + "_RR_1", null, isOffHeap()  ));
+    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
     vm4.invoke(() -> WANTestBase.validateQueueContents( "ln",
         0 ));
@@ -1116,13 +1041,12 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer nyPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
     Integer tkPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 3, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(tkPort, vm3);
     vm3.invoke(() -> WANTestBase.createReceiver( tkPort ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "lnSerial1",
         2, false, 100, 10, false, false, null, true ));
@@ -1139,11 +1063,8 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "lnSerial1" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnSerial1" ));
-
-    vm4.invoke(() -> WANTestBase.startSender( "lnSerial2" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnSerial2" ));
+    startSenderInVMs("lnSerial1", vm4, vm5);
+    startSenderInVMs("lnSerial2", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "lnSerial1,lnSerial2", isOffHeap()  ));
@@ -1168,13 +1089,10 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -1186,8 +1104,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(createReplicatedRegionRunnable());
     vm5.invoke(createReplicatedRegionRunnable());
@@ -1224,15 +1141,12 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm6.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm7.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3, vm6, vm7);
+    createReceiverInVMs(nyPort, vm2, vm3, vm6, vm7);
 
     LogWriterUtils.getLogWriter().info("Started receivers on remote site");
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
+    WANTestBase.createCacheInVMs(lnPort, vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -1248,8 +1162,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     LogWriterUtils.getLogWriter().info("Started senders on local site");
 
@@ -1307,15 +1220,12 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm6.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm7.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3, vm6, vm7);
+    createReceiverInVMs(nyPort, vm2, vm3, vm6, vm7);
 
     LogWriterUtils.getLogWriter().info("Started receivers on remote site");
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -1331,8 +1241,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm7.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     LogWriterUtils.getLogWriter().info("Started senders on local site");
 
@@ -1363,7 +1272,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     // ---------------------------REBUILD vm4
     // --------------------------------------
     LogWriterUtils.getLogWriter().info("Rebuilding vm4....");
-    vm4.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4);
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
     vm4.invoke(() -> WANTestBase.startSender( "ln" ));
@@ -1402,10 +1311,10 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
 
-    vm4.invoke(createCacheRunnable(lnPort));
-    vm5.invoke(createCacheRunnable(lnPort));
+    createCacheInVMs(lnPort, vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -1416,7 +1325,6 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
         getTestMethodName() + "_RR", null, isOffHeap()  ));
 
     vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    Wait.pause(500);
     vm5.invoke(() -> WANTestBase.startSender( "ln" ));
 
     vm4.invoke(() -> WANTestBase.createNormalRegion(
@@ -1455,23 +1363,21 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
   public void testReplicatedSerialPropagationWithRemoteSenderConfiguredButNotStarted() {
 	Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 	Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
-	
-	vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-	vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
-	
-	vm4.invoke(() -> WANTestBase.createReceiver( lnPort ));
-	vm5.invoke(() -> WANTestBase.createReceiver( lnPort ));
-    vm6.invoke(createCacheRunnable(lnPort));
-    vm7.invoke(createCacheRunnable(lnPort));
-    
+
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
+
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
+    createReceiverInVMs(lnPort, vm4, vm5);
+
+
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
     vm5.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
-    
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+
+    startSenderInVMs("ln", vm4, vm5);
+
     vm4.invoke(createReplicatedRegionRunnable());
     vm5.invoke(createReplicatedRegionRunnable());
     vm6.invoke(createReplicatedRegionRunnable());
@@ -1489,10 +1395,9 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         1000 ));
-    
-    vm2.invoke(() -> WANTestBase.startSender( "ny" ));
-    vm3.invoke(() -> WANTestBase.startSender( "ny" ));
-    
+
+    startSenderInVMs("ny", vm2, vm3);
+
     vm2.invoke(() -> WANTestBase.validateRegionSize(
         getTestMethodName() + "_RR", 1000 ));
     vm3.invoke(() -> WANTestBase.validateRegionSize(

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogation_PartitionedRegionDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogation_PartitionedRegionDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogation_PartitionedRegionDUnitTest.java
index 126e737..b6d0ee4 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogation_PartitionedRegionDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogation_PartitionedRegionDUnitTest.java
@@ -37,13 +37,10 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -80,13 +77,10 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -103,8 +97,7 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap() ));
@@ -140,13 +133,10 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "lnSerial",
         2, false, 100, 10, false, false, null, true ));
@@ -201,13 +191,10 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "lnSerial1",
         2, false, 100, 10, false, false, null, true ));
@@ -247,11 +234,9 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "lnSerial2", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "lnSerial1" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnSerial1" ));
+    startSenderInVMs("lnSerial1", vm4, vm5);
 
-    vm5.invoke(() -> WANTestBase.startSender( "lnSerial2" ));
-    vm6.invoke(() -> WANTestBase.startSender( "lnSerial2" ));
+    startSenderInVMs("lnSerial2", vm5, vm6);
 
     vm4.invoke(() -> WANTestBase.doPuts( getTestMethodName() + "_RR",
         1000 ));
@@ -270,13 +255,12 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
     Integer nyPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstRemoteLocator(2, lnPort ));
     Integer tkPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(3,lnPort ));
 
+    createCacheInVMs(nyPort, vm2);
     vm2.invoke(() -> WANTestBase.createReceiver(nyPort ));
+    createCacheInVMs(tkPort, vm3);
     vm3.invoke(() -> WANTestBase.createReceiver(tkPort ));
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "lnSerial1",
         2, false, 100, 10, false, false, null, true ));
@@ -293,11 +277,8 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "lnSerial1" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnSerial1" ));
-
-    vm4.invoke(() -> WANTestBase.startSender( "lnSerial2" ));
-    vm5.invoke(() -> WANTestBase.startSender( "lnSerial2" ));
+    startSenderInVMs("lnSerial1", vm4, vm5);
+    startSenderInVMs("lnSerial2", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "lnSerial1,lnSerial2", 1, 100, isOffHeap() ));
@@ -325,13 +306,10 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -347,9 +325,8 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
-    
+    startSenderInVMs("ln", vm4, vm5);
+
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
@@ -379,13 +356,8 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
-
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -401,13 +373,13 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", "ln", 1, 100, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
     vm3.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
+    createReceiverInVMs(nyPort, vm2, vm3);
 
     vm4.invoke(() -> WANTestBase.doMultiThreadedPuts(
         getTestMethodName() + "_PR", 1000 ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationsFeatureDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationsFeatureDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationsFeatureDUnitTest.java
index 5846e75..6658be5 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationsFeatureDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationsFeatureDUnitTest.java
@@ -33,13 +33,10 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver(nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver(nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -51,8 +48,7 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap()  ));
@@ -77,13 +73,10 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, true, null, true ));
@@ -95,8 +88,7 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap()  ));
@@ -122,13 +114,10 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 1000, true, false, null, true ));
@@ -140,8 +129,7 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap()  ));
@@ -167,13 +155,10 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false, null, true ));
@@ -185,8 +170,7 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName() + "_RR", "ln", isOffHeap()  ));
@@ -211,13 +195,10 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator(2,lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false,
@@ -235,8 +216,7 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     vm7.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), "ln", 1, 100, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm2.invoke(() -> WANTestBase.createPartitionedRegion(
         getTestMethodName(), null, 1, 100, isOffHeap()  ));
@@ -254,13 +234,10 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm2.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm3.invoke(() -> WANTestBase.createReceiver( nyPort ));
+    createCacheInVMs(nyPort, vm2, vm3);
+    createReceiverInVMs(nyPort, vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm6.invoke(() -> WANTestBase.createCache(lnPort ));
-    vm7.invoke(() -> WANTestBase.createCache(lnPort ));
+    createCacheInVMs(lnPort, vm4, vm5, vm6, vm7);
 
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2,
         false, 100, 10, false, false,
@@ -274,8 +251,7 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     vm3.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName(), null, isOffHeap()  ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm4.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName(), "ln", isOffHeap()  ));
@@ -299,14 +275,10 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
 
-    vm6.invoke(() -> WANTestBase.createReceiver( nyPort ));
-    vm7.invoke(() -> WANTestBase.createReceiver( nyPort ));
-
-    vm2.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm3.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm4.invoke(() -> WANTestBase.createCache( lnPort ));
-    vm5.invoke(() -> WANTestBase.createCache( lnPort ));
+    createCacheInVMs(nyPort, vm6, vm7);
+    createReceiverInVMs(nyPort, vm6, vm7);
 
+    createCacheInVMs(lnPort, vm2, vm3, vm4, vm5);
     vm4.invoke(() -> WANTestBase.createSender( "ln", 2, false, 100, 10, false, false,
             new MyGatewayEventFilter_AfterAck(), true ));
     vm5.invoke(() -> WANTestBase.createSender( "ln", 2, false, 100, 10, false, false,
@@ -317,8 +289,7 @@ public class SerialWANPropogationsFeatureDUnitTest extends WANTestBase{
     vm7.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName(), null, isOffHeap() ));
 
-    vm4.invoke(() -> WANTestBase.startSender( "ln" ));
-    vm5.invoke(() -> WANTestBase.startSender( "ln" ));
+    startSenderInVMs("ln", vm4, vm5);
 
     vm2.invoke(() -> WANTestBase.createReplicatedRegion(
         getTestMethodName(), "ln", isOffHeap() ));


[7/7] incubator-geode git commit: GEODE-1062: Refactor of WANTestBase

Posted by ja...@apache.org.
GEODE-1062: Refactor of WANTestBase

* Removed the set and unset remove from queue with exception
* Refactor to break out create cache from create receiver
* Reduced create cache, receiver and start sender calls into single lines
* Reordered tests that failed due to starting receiver before region creation


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

Branch: refs/heads/develop
Commit: 65d7a6f1d3853921f83c0754d330e40b9dec62e1
Parents: 7c777b1
Author: Jason Huynh <hu...@gmail.com>
Authored: Mon Mar 28 17:15:24 2016 -0700
Committer: Jason Huynh <hu...@gmail.com>
Committed: Fri Apr 1 10:08:07 2016 -0700

----------------------------------------------------------------------
 .../cache/wan/AbstractGatewaySender.java        |  14 -
 .../AbstractGatewaySenderEventProcessor.java    |   6 +-
 .../GatewaySenderEventCallbackDispatcher.java   |   5 +-
 .../cache/wan/GatewaySenderEventDispatcher.java |   2 +-
 .../cache/wan/AsyncEventQueueTestBase.java      |  28 -
 .../client/internal/GatewaySenderBatchOp.java   |  17 +-
 .../cache/client/internal/SenderProxy.java      |   4 +-
 .../wan/GatewaySenderEventRemoteDispatcher.java |  45 +-
 .../gemfire/internal/cache/wan/WANTestBase.java | 866 ++++++++++---------
 ...oncurrentParallelGatewaySenderDUnitTest.java | 190 ++--
 ...allelGatewaySenderOperation_1_DUnitTest.java | 168 ++--
 ...allelGatewaySenderOperation_2_DUnitTest.java |   9 +
 .../ConcurrentWANPropogation_1_DUnitTest.java   | 129 +--
 .../ConcurrentWANPropogation_2_DUnitTest.java   | 118 +--
 .../cache/wan/disttx/DistTXWANDUnitTest.java    |  38 +-
 .../CommonParallelGatewaySenderDUnitTest.java   |  51 +-
 ...wWANConcurrencyCheckForDestroyDUnitTest.java |  11 +-
 .../cache/wan/misc/PDXNewWanDUnitTest.java      |  87 +-
 ...dRegion_ParallelWANPersistenceDUnitTest.java |  84 +-
 ...dRegion_ParallelWANPropogationDUnitTest.java | 116 +--
 .../cache/wan/misc/WANSSLDUnitTest.java         |   1 +
 .../cache/wan/misc/WanValidationsDUnitTest.java | 214 ++---
 ...arallelGatewaySenderOperationsDUnitTest.java |  47 +-
 ...llelGatewaySenderQueueOverflowDUnitTest.java |  58 +-
 .../ParallelWANConflationDUnitTest.java         |  22 +-
 ...ersistenceEnabledGatewaySenderDUnitTest.java | 368 +++-----
 ...llelWANPropagationClientServerDUnitTest.java |   7 +-
 ...lelWANPropagationConcurrentOpsDUnitTest.java |  43 +-
 .../ParallelWANPropagationDUnitTest.java        | 352 +++-----
 ...ParallelWANPropagationLoopBackDUnitTest.java |  57 +-
 .../wan/parallel/ParallelWANStatsDUnitTest.java |  69 +-
 ...rialGatewaySenderEventListenerDUnitTest.java |  34 +-
 .../SerialGatewaySenderOperationsDUnitTest.java |  71 +-
 .../SerialGatewaySenderQueueDUnitTest.java      |  18 +-
 ...ersistenceEnabledGatewaySenderDUnitTest.java |  84 +-
 .../SerialWANPropagationLoopBackDUnitTest.java  |  22 +-
 .../serial/SerialWANPropogationDUnitTest.java   | 323 +++----
 ...NPropogation_PartitionedRegionDUnitTest.java |  86 +-
 .../SerialWANPropogationsFeatureDUnitTest.java  |  85 +-
 .../wan/serial/SerialWANStatsDUnitTest.java     |  81 +-
 .../management/WANManagementDUnitTest.java      |  18 +-
 .../pulse/TestRemoteClusterDUnitTest.java       |   4 +-
 42 files changed, 1521 insertions(+), 2531 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/AbstractGatewaySender.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/AbstractGatewaySender.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/AbstractGatewaySender.java
index 24181c6..4f3488b 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/AbstractGatewaySender.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/AbstractGatewaySender.java
@@ -690,20 +690,6 @@ public abstract class AbstractGatewaySender implements GatewaySender,
   public int getMyDSId() {
     return this.myDSId;
   }
-  
-  /**
-   * @param removeFromQueueOnException the removeFromQueueOnException to set
-   */
-  public void setRemoveFromQueueOnException(boolean removeFromQueueOnException) {
-    this.removeFromQueueOnException = removeFromQueueOnException;
-  }
-
-  /**
-   * @return the removeFromQueueOnException
-   */
-  public boolean isRemoveFromQueueOnException() {
-    return removeFromQueueOnException;
-  }
 
   public CancelCriterion getStopper() {
     return this.stopper;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/AbstractGatewaySenderEventProcessor.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/AbstractGatewaySenderEventProcessor.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/AbstractGatewaySenderEventProcessor.java
index 6bd062c..9cde6dd 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/AbstractGatewaySenderEventProcessor.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/AbstractGatewaySenderEventProcessor.java
@@ -629,8 +629,7 @@ public abstract class AbstractGatewaySenderEventProcessor extends Thread {
             logBatchFine("During normal processing, dispatching the following ", conflatedEventsToBeDispatched);
           }
           
-          boolean success = this.dispatcher.dispatchBatch(conflatedEventsToBeDispatched,
-              sender.isRemoveFromQueueOnException(), false);
+          boolean success = this.dispatcher.dispatchBatch(conflatedEventsToBeDispatched, false);
           if (success) {
             if (isDebugEnabled) {
               logger.debug("During normal processing, successfully dispatched {} events (batch #{})",
@@ -673,8 +672,7 @@ public abstract class AbstractGatewaySenderEventProcessor extends Thread {
             } else {
               handleUnSuccessfulBatchDispatch(events);
               if (!resetLastPeekedEvents) {
-                while (!this.dispatcher.dispatchBatch(conflatedEventsToBeDispatched,
-                    sender.isRemoveFromQueueOnException(), true)) {
+                while (!this.dispatcher.dispatchBatch(conflatedEventsToBeDispatched, true)) {
                   if (isDebugEnabled) {
                     logger.debug("During normal processing, unsuccessfully dispatched {} events (batch #{})",
                         conflatedEventsToBeDispatched.size(), getBatchId());

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventCallbackDispatcher.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventCallbackDispatcher.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventCallbackDispatcher.java
index 38912f3..549c22b 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventCallbackDispatcher.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventCallbackDispatcher.java
@@ -72,13 +72,10 @@ public class GatewaySenderEventCallbackDispatcher implements GatewaySenderEventD
    * 
    * @param events
    *          The <code>List</code> of events to send
-   * @param removeFromQueueOnException
-   *          Unused.
    * 
    * @return whether the batch of messages was successfully processed
    */
-  public boolean dispatchBatch(List events,
-      boolean removeFromQueueOnException, boolean isRetry) {
+  public boolean dispatchBatch(List events, boolean isRetry) {
     GatewaySenderStats statistics = this.eventProcessor.sender.getStatistics();
     boolean success = false;
     try {

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventDispatcher.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventDispatcher.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventDispatcher.java
index 0315eb8..57f180c 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventDispatcher.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventDispatcher.java
@@ -23,7 +23,7 @@ import java.util.List;
  */
 public interface GatewaySenderEventDispatcher {
   
-  public boolean dispatchBatch(List events, boolean removeFromQueueOnException, boolean isRetry);
+  public boolean dispatchBatch(List events, boolean isRetry);
   
   public boolean isRemoteDispatcher();
   

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/wan/AsyncEventQueueTestBase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/wan/AsyncEventQueueTestBase.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/wan/AsyncEventQueueTestBase.java
index a5b6125..c719538 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/wan/AsyncEventQueueTestBase.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/wan/AsyncEventQueueTestBase.java
@@ -801,34 +801,6 @@ public class AsyncEventQueueTestBase extends DistributedTestCase {
             .getUnprocessedTokensAddedByPrimary()));
   }
 
-  public static void setRemoveFromQueueOnException(String senderId,
-      boolean removeFromQueue) {
-    Set<GatewaySender> senders = cache.getGatewaySenders();
-    GatewaySender sender = null;
-    for (GatewaySender s : senders) {
-      if (s.getId().equals(senderId)) {
-        sender = s;
-        break;
-      }
-    }
-    assertNotNull(sender);
-    ((AbstractGatewaySender)sender)
-        .setRemoveFromQueueOnException(removeFromQueue);
-  }
-
-  public static void unsetRemoveFromQueueOnException(String senderId) {
-    Set<GatewaySender> senders = cache.getGatewaySenders();
-    GatewaySender sender = null;
-    for (GatewaySender s : senders) {
-      if (s.getId().equals(senderId)) {
-        sender = s;
-        break;
-      }
-    }
-    assertNotNull(sender);
-    ((AbstractGatewaySender)sender).setRemoveFromQueueOnException(false);
-  }
-
   public static void waitForSenderToBecomePrimary(String senderId) {
     Set<GatewaySender> senders = ((GemFireCacheImpl)cache)
         .getAllGatewaySenders();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/main/java/com/gemstone/gemfire/cache/client/internal/GatewaySenderBatchOp.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/main/java/com/gemstone/gemfire/cache/client/internal/GatewaySenderBatchOp.java b/geode-wan/src/main/java/com/gemstone/gemfire/cache/client/internal/GatewaySenderBatchOp.java
index 564591d..73b3fc0 100644
--- a/geode-wan/src/main/java/com/gemstone/gemfire/cache/client/internal/GatewaySenderBatchOp.java
+++ b/geode-wan/src/main/java/com/gemstone/gemfire/cache/client/internal/GatewaySenderBatchOp.java
@@ -49,17 +49,17 @@ public class GatewaySenderBatchOp {
    * @param pool the pool to use to communicate with the server.
    * @param events list of gateway events
    * @param batchId the ID of this batch
-   * @param removeFromQueueOnException true if the events should be processed even after some exception
    */
-  public static void executeOn(Connection con, ExecutablePool pool, List events, int batchId, boolean removeFromQueueOnException, boolean isRetry)
+  public static void executeOn(Connection con, ExecutablePool pool, List events, int batchId, boolean isRetry)
   {
     AbstractOp op = null;
     //System.out.println("Version: "+con.getWanSiteVersion());
+    //Is this check even needed anymore?  It looks like we just create the same exact op impl with the same parameters...
     if (Version.GFE_651.compareTo(con.getWanSiteVersion()) >= 0) {
-      op = new GatewaySenderGFEBatchOpImpl(events, batchId, removeFromQueueOnException, con.getDistributedSystemId(), isRetry);
+      op = new GatewaySenderGFEBatchOpImpl(events, batchId, con.getDistributedSystemId(), isRetry);
     } else {
       // Default should create a batch of server version (ACCEPTOR.VERSION)
-      op = new GatewaySenderGFEBatchOpImpl(events, batchId, removeFromQueueOnException, con.getDistributedSystemId(), isRetry);     
+      op = new GatewaySenderGFEBatchOpImpl(events, batchId, con.getDistributedSystemId(), isRetry);
     }
     pool.executeOn(con, op, true/*timeoutFatal*/);
   }
@@ -88,8 +88,9 @@ public class GatewaySenderBatchOp {
     /**
      * @throws com.gemstone.gemfire.SerializationException if serialization fails
      */
-    public GatewaySenderGFEBatchOpImpl(List events, int batchId, boolean removeFromQueueOnException, int dsId, boolean isRetry)  {
+    public GatewaySenderGFEBatchOpImpl(List events, int batchId, int dsId, boolean isRetry)  {
       super(MessageType.GATEWAY_RECEIVER_COMMAND, calcPartCount(events));
+      boolean removeFromQueueOnException = true;
       if (isRetry) {
         getMessage().setIsRetry();
       }
@@ -264,9 +265,9 @@ public class GatewaySenderBatchOp {
           if (obj instanceof List) {
             List<BatchException70> l = (List<BatchException70>)part0.getObject();
 
-            if (logger.isDebugEnabled()) {
-              logger.debug("We got an exception from the GatewayReceiver. MessageType : {} obj :{}", msg.getMessageType(), obj);
-            }
+           // if (logger.isDebugEnabled()) {
+              logger.info("We got an exception from the GatewayReceiver. MessageType : {} obj :{}", msg.getMessageType(), obj);
+            //}
             // don't throw Exception but set it in the Ack
             BatchException70 be = new BatchException70(l);
             ack = new GatewayAck(be, l.get(0).getBatchId());

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/main/java/com/gemstone/gemfire/cache/client/internal/SenderProxy.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/main/java/com/gemstone/gemfire/cache/client/internal/SenderProxy.java b/geode-wan/src/main/java/com/gemstone/gemfire/cache/client/internal/SenderProxy.java
index acaa109..d3ddfda 100644
--- a/geode-wan/src/main/java/com/gemstone/gemfire/cache/client/internal/SenderProxy.java
+++ b/geode-wan/src/main/java/com/gemstone/gemfire/cache/client/internal/SenderProxy.java
@@ -30,9 +30,9 @@ public class SenderProxy extends ServerProxy{
     super(pool);
   }
 
-  public void dispatchBatch_NewWAN(Connection con, List events, int batchId, boolean removeFromQueueOnException, boolean isRetry)
+  public void dispatchBatch_NewWAN(Connection con, List events, int batchId, boolean isRetry)
   {
-    GatewaySenderBatchOp.executeOn(con, this.pool, events, batchId, removeFromQueueOnException, isRetry);
+    GatewaySenderBatchOp.executeOn(con, this.pool, events, batchId, isRetry);
   }
   
   public Object receiveAckFromReceiver(Connection con)

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/65d7a6f1/geode-wan/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventRemoteDispatcher.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventRemoteDispatcher.java b/geode-wan/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventRemoteDispatcher.java
index 8dcfbb2..83c75f1 100644
--- a/geode-wan/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventRemoteDispatcher.java
+++ b/geode-wan/src/main/java/com/gemstone/gemfire/internal/cache/wan/GatewaySenderEventRemoteDispatcher.java
@@ -87,7 +87,7 @@ public class GatewaySenderEventRemoteDispatcher implements
     }
   }
   
-  protected GatewayAck readAcknowledgement(int lastBatchIdRead) {
+  protected GatewayAck readAcknowledgement() {
     SenderProxy sp = new SenderProxy(this.processor.getSender().getProxy());
     GatewayAck ack = null;
     Exception ex;
@@ -144,7 +144,7 @@ public class GatewaySenderEventRemoteDispatcher implements
   }
   
   @Override
-  public boolean dispatchBatch(List events, boolean removeFromQueueOnException, boolean isRetry) {
+  public boolean dispatchBatch(List events, boolean isRetry) {
     GatewaySenderStats statistics = this.sender.getStatistics();
     boolean success = false;
     try {
@@ -216,8 +216,7 @@ public class GatewaySenderEventRemoteDispatcher implements
       this.connectionLifeCycleLock.readLock().lock();
       try {
         if (connection != null) {
-          sp.dispatchBatch_NewWAN(connection, events, currentBatchId,
-              sender.isRemoveFromQueueOnException(), isRetry);
+          sp.dispatchBatch_NewWAN(connection, events, currentBatchId, isRetry);
           if (logger.isDebugEnabled()) {
             logger.debug("{} : Dispatched batch (id={}) of {} events, queue size: {} on connection {}",
                 this.processor.getSender(), currentBatchId,  events.size(), this.processor.getQueue().size(), connection);
@@ -580,7 +579,6 @@ public class GatewaySenderEventRemoteDispatcher implements
 
     @Override
     public void run() {
-      int lastBatchIdRead = -1;
       if (logger.isDebugEnabled()) {
         logger.debug("AckReaderThread started.. ");
       }
@@ -595,11 +593,10 @@ public class GatewaySenderEventRemoteDispatcher implements
           if (checkCancelled()) {
             break;
           }
-          GatewayAck ack = readAcknowledgement(lastBatchIdRead);
+          GatewayAck ack = readAcknowledgement();
           if (ack != null) {
             boolean gotBatchException = ack.getBatchException() != null;
             int batchId = ack.getBatchId();
-            lastBatchIdRead = batchId;
             int numEvents = ack.getNumEvents();
 
             // If the batch is successfully processed, remove it from the
@@ -615,33 +612,9 @@ public class GatewaySenderEventRemoteDispatcher implements
               // log batch exceptions and remove all the events if remove from
               // exception is true
               // do not remove if it is false
-              if (sender.isRemoveFromQueueOnException()) {
-                // log the batchExceptions
-                logBatchExceptions(ack.getBatchException());
-                  processor.handleSuccessBatchAck(batchId);
-              } else {
-                // we assume that batch exception will not occur for PDX related
-                // events
-                List<GatewaySenderEventImpl> pdxEvents = processor
-                    .getBatchIdToPDXEventsMap().get(
-                        ack.getBatchException().getBatchId());
-                if (pdxEvents != null) {
-                  for (GatewaySenderEventImpl senderEvent : pdxEvents) {
-                    senderEvent.isAcked = true;
-                  }
-                }
-                // log the batchExceptions
-                logBatchExceptions(ack.getBatchException());
-                // remove the events that have been processed.
-                BatchException70 be = ack.getBatchException();
-                List<BatchException70> exceptions = be.getExceptions();
-
-                for (int i = 0; i < exceptions.get(0).getIndex(); i++) {
-                  processor.eventQueueRemove();
-                }
-                // reset the sender
-                processor.handleException();
-              }
+              logBatchExceptions(ack.getBatchException());
+              processor.handleSuccessBatchAck(batchId);
+
             } // unsuccessful batch
             else { // The batch was successful.
               if (logger.isDebugEnabled()) {
@@ -652,9 +625,9 @@ public class GatewaySenderEventRemoteDispatcher implements
             }
           } else {
             // If we have received IOException.
-            if (logger.isDebugEnabled()) {
+           // if (logger.isDebugEnabled()) {
               logger.debug("{}: Received null ack from remote site.", processor.getSender());
-            }
+            //}
             processor.handleException();
             try { // This wait is before trying to getting new connection to
                   // receive ack. Without this there will be continuous call to