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

[01/18] incubator-geode git commit: GEODE-1145 Fix decimal places for LoadAvg on Pulse

Repository: incubator-geode
Updated Branches:
  refs/heads/feature/GEODE-17-2 58860cc13 -> e0126e0ac


GEODE-1145 Fix decimal places for LoadAvg on Pulse

- Update UI test
- Consistently show 2 decimal places

Closes #118


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

Branch: refs/heads/feature/GEODE-17-2
Commit: a1f11c0d9f4b5b0bafae3216ed7e357ffc017069
Parents: 0dab0b6
Author: Nitin Lamba <ni...@ampool.io>
Authored: Tue Mar 29 15:10:34 2016 -0700
Committer: Jens Deppe <jd...@pivotal.io>
Committed: Thu Mar 31 08:26:07 2016 -0700

----------------------------------------------------------------------
 .../tools/pulse/internal/service/ClusterMemberService.java    | 3 ++-
 .../pulse/internal/service/ClusterMembersRGraphService.java   | 2 +-
 .../pulse/internal/service/ClusterSelectedRegionService.java  | 5 +++--
 .../tools/pulse/internal/service/MemberDetailsService.java    | 5 +++--
 .../java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java  | 7 +++++--
 geode-pulse/src/test/resources/test.properties                | 6 +++---
 6 files changed, 17 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a1f11c0d/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
index f3deb19..3b55ed7 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMemberService.java
@@ -99,12 +99,13 @@ public class ClusterMemberService implements PulseService {
         memberJSON.put(this.HEAP_USAGE, 0);
       }
       double currentCPUUsage = clusterMember.getCpuUsage();
+      double loadAvg = clusterMember.getLoadAverage();
 
       memberJSON.put("cpuUsage", truncate(currentCPUUsage, 2));
       memberJSON.put("currentHeapUsage", clusterMember.getCurrentHeapSize());
       memberJSON.put("isManager", clusterMember.isManager());
       memberJSON.put("uptime", TimeUtils.convertTimeSecondsToHMS(clusterMember.getUptime()));
-      memberJSON.put("loadAvg", clusterMember.getLoadAverage());
+      memberJSON.put("loadAvg", truncate(loadAvg, 2));
       memberJSON.put("sockets", clusterMember.getTotalFileDescriptorOpen());
       memberJSON.put("threads", clusterMember.getNumThreads());
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a1f11c0d/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
index 08dda78..cf4d950 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterMembersRGraphService.java
@@ -234,7 +234,7 @@ public class ClusterMembersRGraphService implements PulseService {
       }
       ObjectNode data = mapper.createObjectNode();
 
-      data.put(this.LOAD_AVG, hostLoadAvg);
+      data.put(this.LOAD_AVG, Double.valueOf(df2.format(hostLoadAvg)));
       data.put(this.SOCKETS, hostSockets);
       data.put(this.THREADS, hostNumThreads);
       data.put(this.CPU_USAGE, Double.valueOf(df2.format(hostCpuUsage)));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a1f11c0d/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
index fb7484c..35e15c6 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/ClusterSelectedRegionService.java
@@ -160,13 +160,14 @@ public class ClusterSelectedRegionService implements PulseService {
             regionMember.put("heapUsage", 0);
           }
           double currentCPUUsage = member.getCpuUsage();
+          double loadAvg = member.getLoadAverage();
 
           regionMember.put("cpuUsage", Double.valueOf(df2.format(currentCPUUsage)));
           regionMember.put("currentHeapUsage", member.getCurrentHeapSize());
           regionMember.put("isManager", member.isManager());
           regionMember.put("uptime", TimeUtils.convertTimeSecondsToHMS(member.getUptime()));
 
-          regionMember.put("loadAvg", member.getLoadAverage());
+          regionMember.put("loadAvg", Double.valueOf(df2.format(loadAvg)));
           regionMember.put("sockets", member.getTotalFileDescriptorOpen());
           regionMember.put("threads", member.getNumThreads());
 
@@ -239,4 +240,4 @@ public class ClusterSelectedRegionService implements PulseService {
       return responseJSON;
     }
   }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a1f11c0d/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java
index 8798552..a25ca18 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberDetailsService.java
@@ -60,6 +60,7 @@ public class MemberDetailsService implements PulseService {
 
     JsonNode requestDataJSON = mapper.readTree(request.getParameter("pulseData"));
     String memberName = requestDataJSON.get("MemberDetails").get("memberName").textValue();
+    DecimalFormat df2 = new DecimalFormat(PulseConstants.DECIMAL_FORMAT_PATTERN);
 
     Cluster.Member clusterMember = cluster.getMember(StringUtils
         .makeCompliantName(memberName));
@@ -70,7 +71,8 @@ public class MemberDetailsService implements PulseService {
       responseJSON.put("clusterId", cluster.getId());
       responseJSON.put("clusterName", cluster.getServerName());
       responseJSON.put("userName", userName);
-      responseJSON.put("loadAverage", clusterMember.getLoadAverage());
+      double loadAvg = clusterMember.getLoadAverage();
+      responseJSON.put("loadAverage", Double.valueOf(df2.format(loadAvg)));
       responseJSON.put("sockets", clusterMember.getTotalFileDescriptorOpen());
       responseJSON.put("threads", clusterMember.getNumThreads());
       responseJSON.put("offHeapFreeSize", clusterMember.getOffHeapFreeSize());
@@ -85,7 +87,6 @@ public class MemberDetailsService implements PulseService {
         responseJSON.put("numClients", clusterMember.getMemberClientsHMap().size());
       }
 
-      DecimalFormat df2 = new DecimalFormat(PulseConstants.DECIMAL_FORMAT_PATTERN);
       Long diskUsageVal = clusterMember.getTotalDiskUsage();
       Double diskUsage = diskUsageVal.doubleValue() / 1024;
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a1f11c0d/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java
index c5ece20..08cde44 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java
@@ -20,6 +20,7 @@ package com.vmware.gemfire.tools.pulse.tests;
 
 import com.gemstone.gemfire.management.internal.JettyHelper;
 import com.gemstone.gemfire.test.junit.categories.UITest;
+import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
 import junit.framework.Assert;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -135,6 +136,8 @@ public class PulseTest {
   private static final String MEMBER_DROPDOWN_ID = "Members";
   private static final String DATA_DROPDOWN_ID = "Data";
 
+  private static final DecimalFormat df2 = new DecimalFormat(PulseConstants.DECIMAL_FORMAT_PATTERN);
+
   @BeforeClass
   public static void setUpBeforeClass() throws Exception {
     ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
@@ -474,7 +477,7 @@ public class PulseTest {
         .getText();
     String memberLoadAvg = JMXProperties.getInstance().getProperty(
         "member.M1.loadAverage");
-    Assert.assertEquals(memberLoadAvg, LoadAvg);
+    Assert.assertEquals(df2.format(Double.valueOf(memberLoadAvg)), LoadAvg);
   }
 
   @Ignore("WIP") // May be useful in near future
@@ -904,7 +907,7 @@ public class PulseTest {
 				  .getText();
 		  String loadAvgM1 = JMXProperties.getInstance().getProperty(
 				  "member.M" + (i) + ".loadAverage");
-		  Assert.assertEquals(loadAvgM1, LoadAvgM1);
+		  Assert.assertEquals(df2.format(Double.valueOf(loadAvgM1)), LoadAvgM1);
 		  
 		  
 		  String ThreadsM1 = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 3) + "]/div[2]/div"))

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a1f11c0d/geode-pulse/src/test/resources/test.properties
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/resources/test.properties b/geode-pulse/src/test/resources/test.properties
index 1ef7c3e..b779c16 100644
--- a/geode-pulse/src/test/resources/test.properties
+++ b/geode-pulse/src/test/resources/test.properties
@@ -62,7 +62,7 @@ member.M1.locator=false
 member.M1.totalDiskUsage=199302
 member.M1.server=false
 member.M1.totalFileDescriptorOpen=299
-member.M1.loadAverage=12.221
+member.M1.loadAverage=12.221987654321
 member.M1.diskWritesRate=23.92
 member.M1.JVMPauses=232221
 member.M1.currentHeapSize=2322
@@ -96,7 +96,7 @@ member.M2.locator=true
 member.M2.totalDiskUsage=199302
 member.M2.server=false
 member.M2.totalFileDescriptorOpen=299
-member.M2.loadAverage=12.221
+member.M2.loadAverage=12.221987654321
 member.M2.diskWritesRate=23.92
 member.M2.JVMPauses=232221
 member.M2.currentHeapSize=1322
@@ -130,7 +130,7 @@ member.M3.locator=false
 member.M3.totalDiskUsage=199302
 member.M3.server=false
 member.M3.totalFileDescriptorOpen=299
-member.M3.loadAverage=12.221
+member.M3.loadAverage=12.221987654321
 member.M3.diskWritesRate=23.92
 member.M3.JVMPauses=232221
 member.M3.currentHeapSize=2312


[18/18] incubator-geode git commit: Merge branch 'develop' into feature/GEODE-17-2

Posted by je...@apache.org.
Merge branch 'develop' into feature/GEODE-17-2


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

Branch: refs/heads/feature/GEODE-17-2
Commit: e0126e0acdcde71db5d932605cf9157668330c0b
Parents: 58860cc 3c4b3e6
Author: Jens Deppe <jd...@pivotal.io>
Authored: Fri Apr 1 13:07:29 2016 -0700
Committer: Jens Deppe <jd...@pivotal.io>
Committed: Fri Apr 1 13:07:29 2016 -0700

----------------------------------------------------------------------
 .../gemfire/admin/SystemMemberRegion.java       |   2 +-
 .../gemfire/cache/AttributesFactory.java        |   8 +-
 .../com/gemstone/gemfire/cache/LossAction.java  |   2 +-
 .../gemfire/cache/MembershipAttributes.java     |   2 +-
 .../gemfire/cache/RegionAccessException.java    |   2 +-
 .../gemfire/cache/RegionAttributes.java         |   2 +-
 .../cache/RegionDistributionException.java      |   2 +-
 .../gemstone/gemfire/cache/RegionFactory.java   |   1 +
 .../gemfire/cache/RegionRoleException.java      |   2 +-
 .../gemfire/cache/RegionRoleListener.java       |   2 +-
 .../gemstone/gemfire/cache/RequiredRoles.java   |   2 +-
 .../gemfire/cache/ResumptionAction.java         |   2 +-
 .../com/gemstone/gemfire/cache/RoleEvent.java   |   2 +-
 .../gemstone/gemfire/cache/RoleException.java   |   2 +-
 .../gemfire/cache/client/internal/PoolImpl.java |  12 +-
 .../cache/util/RegionRoleListenerAdapter.java   |   2 +-
 .../gemfire/distributed/DistributedSystem.java  |  14 +-
 .../com/gemstone/gemfire/distributed/Role.java  |   2 +-
 .../internal/membership/InternalRole.java       |   2 +-
 .../gms/messenger/JGroupsMessenger.java         |   8 +-
 .../cache/wan/AbstractGatewaySender.java        |  14 -
 .../AbstractGatewaySenderEventProcessor.java    |   6 +-
 .../GatewaySenderEventCallbackDispatcher.java   |   5 +-
 .../cache/wan/GatewaySenderEventDispatcher.java |   2 +-
 .../xmlcache/RegionAttributesCreation.java      |   8 +-
 .../management/DistributedRegionMXBean.java     |   2 +
 .../gemfire/management/GemFireProperties.java   |   3 +
 .../management/MembershipAttributesData.java    |   3 +-
 .../gemfire/management/RegionMXBean.java        |   2 +
 .../gemfire/cache/doc-files/cache8_0.dtd        |   4 +-
 .../internal/AutoConnectionSourceDUnitTest.java |  78 +-
 .../gemfire/distributed/LocatorDUnitTest.java   |   2 +-
 .../StreamingOperationManyDUnitTest.java        |  19 +-
 .../cache/wan/AsyncEventQueueTestBase.java      |  28 -
 .../com/gemstone/gemfire/test/dunit/Wait.java   |  70 +-
 .../gemfire/test/dunit/WaitCriterion.java       |  12 +-
 .../cache/internal/JUnit4CacheTestCase.java     |  19 +-
 .../internal/service/ClusterMemberService.java  |   3 +-
 .../service/ClusterMembersRGraphService.java    |   2 +-
 .../service/ClusterSelectedRegionService.java   |   5 +-
 .../internal/service/MemberDetailsService.java  |   5 +-
 .../tools/pulse/tests/PulseAbstractTest.java    |   7 +-
 geode-pulse/src/test/resources/test.properties  |   6 +-
 .../client/internal/GatewaySenderBatchOp.java   |  17 +-
 .../cache/client/internal/SenderProxy.java      |   4 +-
 .../wan/GatewaySenderEventRemoteDispatcher.java |  45 +-
 .../gemfire/internal/cache/wan/WANTestBase.java | 868 ++++++++++---------
 ...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 +-
 gradle/test.gradle                              |   3 +-
 81 files changed, 1737 insertions(+), 2643 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e0126e0a/geode-core/src/main/java/com/gemstone/gemfire/management/DistributedRegionMXBean.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e0126e0a/geode-core/src/main/java/com/gemstone/gemfire/management/RegionMXBean.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e0126e0a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAbstractTest.java
----------------------------------------------------------------------
diff --cc geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAbstractTest.java
index 9a84e87,0000000..392de4c
mode 100644,000000..100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAbstractTest.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAbstractTest.java
@@@ -1,1040 -1,0 +1,1043 @@@
 +/*
 + *
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *      http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + *
 + */
 +package com.vmware.gemfire.tools.pulse.tests;
 +
 +import com.gemstone.gemfire.management.internal.JettyHelper;
++import com.vmware.gemfire.tools.pulse.internal.data.PulseConstants;
 +import junit.framework.Assert;
 +import org.junit.AfterClass;
 +import org.junit.Before;
 +import org.junit.Ignore;
 +import org.junit.Test;
 +import org.openqa.selenium.By;
 +import org.openqa.selenium.JavascriptExecutor;
 +import org.openqa.selenium.WebDriver;
 +import org.openqa.selenium.WebElement;
 +import org.openqa.selenium.firefox.FirefoxDriver;
 +import org.openqa.selenium.interactions.Actions;
 +import org.openqa.selenium.support.ui.ExpectedCondition;
 +import org.openqa.selenium.support.ui.ExpectedConditions;
 +import org.openqa.selenium.support.ui.WebDriverWait;
 +
 +import java.io.BufferedReader;
 +import java.io.FileReader;
 +import java.io.IOException;
 +import java.io.InputStream;
 +import java.text.DecimalFormat;
 +import java.util.List;
 +import java.util.Properties;
 +import java.util.concurrent.TimeUnit;
 +
 +public abstract class PulseAbstractTest extends PulseBaseTest {
 +  private static String jmxPropertiesFile;
 +  private static String path;
 +
 +  private static org.eclipse.jetty.server.Server jetty = null;
 +  private static Server server = null;
 +  private static String pulseURL = null;
 +  public static WebDriver driver;
 +
 +  /* Constants for executing Data Browser queries */
 +  public static final String QUERY_TYPE_ONE = "query1";
 +  public static final String QUERY_TYPE_TWO = "query2";
 +  public static final String QUERY_TYPE_THREE = "query3";
 +  public static final String QUERY_TYPE_FOUR = "query4";
 +  public static final String QUERY_TYPE_FIVE = "query5";
 +  public static final String QUERY_TYPE_SIX = "query6";
 +  public static final String QUERY_TYPE_SEVENE = "query7";
 +
 +  private static final String DATA_VIEW_LABEL = "Data View";
 +  private static final String CLUSTER_VIEW_MEMBERS_ID = "clusterTotalMembersText";
 +  private static final String CLUSTER_VIEW_SERVERS_ID = "clusterServersText";
 +  private static final String CLUSTER_VIEW_LOCATORS_ID = "clusterLocatorsText";
 +  private static final String CLUSTER_VIEW_REGIONS_ID = "clusterTotalRegionsText";
 +  private static final String CLUSTER_CLIENTS_ID = "clusterClientsText";
 +  private static final String CLUSTER_FUNCTIONS_ID = "clusterFunctions";
 +  private static final String CLUSTER_UNIQUECQS_ID = "clusterUniqueCQs";
 +  private static final String CLUSTER_SUBSCRIPTION_ID = "clusterSubscriptionsText";
 +  private static final String CLUSTER_MEMORY_USAGE_ID = "currentMemoryUsage";
 +  private static final String CLUSTER_THROUGHPUT_WRITES_ID = "currentThroughputWrites";
 +  private static final String CLUSTER_GCPAUSES_ID = "currentGCPauses";
 +  private static final String CLUSTER_WRITEPERSEC_ID = "writePerSec";
 +  private static final String CLUSTER_READPERSEC_ID = "readPerSec";
 +  private static final String CLUSTER_QUERIESPERSEC_ID = "queriesPerSec";
 +  private static final String CLUSTER_PROCEDURE_ID = "clusterTxnCommittedText";
 +  private static final String CLUSTER_TXNCOMMITTED_ID = "clusterTxnCommittedText";
 +  private static final String CLUSTER_TXNROLLBACK_ID = "clusterTxnRollbackText";
 +  private static final String MEMBER_VIEW_MEMBERNAME_ID = "memberName";
 +  private static final String MEMBER_VIEW_REGION_ID = "memberRegionsCount";
 +  private static final String MEMBER_VIEW_THREAD_ID = "threads";
 +  private static final String MEMBER_VIEW_SOCKETS_ID = "sockets";
 +  private static final String MEMBER_VIEW_LOADAVG_ID = "loadAverage";
 +  private static final String MEMBER_VIEW_LISTENINGPORT_ID = "receiverListeningPort";
 +  private static final String MEMBER_VIEW_LINKTHROUGHPUT_ID = "receiverLinkThroughput";
 +  private static final String MEMBER_VIEW_AVGBATCHLATENCY_ID = "receiverAvgBatchLatency";
 +  private static final String MEMBER_VIEW_HEAPUSAGE_ID = "memberHeapUsageAvg";
 +  private static final String MEMBER_VIEW_JVMPAUSES_ID = "memberGcPausesAvg";
 +  private static final String MEMBER_VIEW_CPUUSAGE_ID = "memberCPUUsageValue";
 +  private static final String MEMBER_VIEW_READPERSEC_ID = "memberGetsPerSecValue";
 +  private static final String MEMBER_VIEW_WRITEPERSEC_ID = "memberPutsPerSecValue";
 +  private static final String MEMBER_VIEW_OFFHEAPFREESIZE_ID = "offHeapFreeSize";
 +  private static final String MEMBER_VIEW_OFFHEAPUSEDSIZE_ID = "offHeapUsedSize";
 +  private static final String MEMBER_VIEW_CLIENTS_ID = "clusterClientsText";
 +
 +  private static final String REGION_NAME_LABEL = "regionName";
 +  private static final String REGION_PATH_LABEL = "regionPath";
 +  private static final String REGION_TYPE_LABEL = "regionType";
 +  private static final String DATA_VIEW_WRITEPERSEC = "regionWrites";
 +  private static final String DATA_VIEW_READPERSEC = "regionReads";
 +  private static final String DATA_VIEW_EMPTYNODES = "regionEmptyNodes";
 +  private static final String DATA_VIEW_ENTRYCOUNT = "regionEntryCount";
 +  private static final String REGION_PERSISTENCE_LABEL = "regionPersistence";
 +  private static final String DATA_VIEW_USEDMEMORY = "memoryUsed";
 +  private static final String DATA_VIEW_TOTALMEMORY = "totalMemory";
 +  
 +  private static final String DATA_BROWSER_LABEL = "Data Browser";
 +  private static final String DATA_BROWSER_REGIONName1 = "treeDemo_1_span";
 +  private static final String DATA_BROWSER_REGIONName2 = "treeDemo_2_span";
 +  private static final String DATA_BROWSER_REGIONName3 = "treeDemo_3_span";
 +  private static final String DATA_BROWSER_REGION1_CHECKBOX = "treeDemo_1_check";
 +  private static final String DATA_BROWSER_REGION2_CHECKBOX = "treeDemo_2_check";
 +  private static final String DATA_BROWSER_REGION3_CHECKBOX = "treeDemo_3_check";
 +  private static final String DATA_BROWSER_COLOCATED_REGION = "Colocated Regions";
 +  private static final String DATA_BROWSER_COLOCATED_REGION_NAME1 = "treeDemo_1_span";
 +  private static final String DATA_BROWSER_COLOCATED_REGION_NAME2 = "treeDemo_2_span";
 +  private static final String DATA_BROWSER_COLOCATED_REGION_NAME3 = "treeDemo_3_span";
 +
 +  private static final String QUERY_STATISTICS_LABEL = "Query Statistics";
 +  private static final String CLUSTER_VIEW_LABEL = "Cluster View";
 +  private static final String CLUSTER_VIEW_GRID_ID = "default_treemap_button";
 +  private static final String SERVER_GROUP_GRID_ID = "servergroups_treemap_button";
 +  private static final String REDUNDANCY_GRID_ID = "redundancyzones_treemap_button";
 +  private static final String MEMBER_DROPDOWN_ID = "Members";
 +  private static final String DATA_DROPDOWN_ID = "Data";
 +
++  private static final DecimalFormat df2 = new DecimalFormat(PulseConstants.DECIMAL_FORMAT_PATTERN);
++
 +  public static void setUpServer(String username, String password, String jsonAuthFile) throws Exception {
 +    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
 +    jmxPropertiesFile = classLoader.getResource("test.properties").getPath();
 +    path = getPulseWarPath();
 +    server = Server.createServer(9999, jmxPropertiesFile, jsonAuthFile);
 +
 +    String host = "localhost";// InetAddress.getLocalHost().getHostAddress();
 +    int port = 8080;
 +    String context = "/pulse";
 +
 +    jetty = JettyHelper.initJetty(host, port, false, false, null, null, null);
 +    JettyHelper.addWebApplication(jetty, context, getPulseWarPath());
 +    jetty.start();
 +
 +    pulseURL = "http://" + host + ":" + port + context;
 +
 +    Thread.sleep(5000); // wait till the container settles down
 +
 +    driver = new FirefoxDriver();
 +    driver.manage().window().maximize();
 +    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
 +    driver.get(pulseURL);
 +    WebElement userNameElement = driver.findElement(By.id("user_name"));
 +    WebElement passwordElement = driver.findElement(By.id("user_password"));
 +    userNameElement.sendKeys(username);
 +    passwordElement.sendKeys(password);
 +    passwordElement.submit();
 +
 +    Thread.sleep(3000);
 +    WebElement userNameOnPulsePage = (new WebDriverWait(driver, 10))
 +        .until(new ExpectedCondition<WebElement>() {
 +          @Override
 +          public WebElement apply(WebDriver d) {
 +            return d.findElement(By.id("userName"));
 +          }
 +        });
 +    Assert.assertNotNull(userNameOnPulsePage);
 +    driver.navigate().refresh();
 +    Thread.sleep(7000);
 +  }
 +
 +  @AfterClass
 +  public static void tearDownAfterClass() throws Exception {
 +    driver.close();
 +    jetty.stop();
 +  }
 +
 +  @Before
 +  public void setup() throws Exception {
 +    // Make sure we go to the home page first
 +    searchByXPathAndClick(PulseTestLocators.TopNavigation.clusterViewLinkXpath);
 +  }
 +
 +  public static String getPulseWarPath() throws Exception {
 +    String warPath = null;
 +    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
 +    InputStream inputStream = classLoader.getResourceAsStream("GemFireVersion.properties");
 +    Properties properties = new Properties();
 +    properties.load(inputStream);
 +    String version = properties.getProperty("Product-Version");
 +    warPath = "geode-pulse-" + version + ".war";
 +    String propFilePath = classLoader.getResource("GemFireVersion.properties").getPath();
 +    warPath = propFilePath.substring(0, propFilePath.indexOf("generated-resources")) + "libs/" + warPath;
 +    return warPath;
 +  }
 +
 +  protected void searchByLinkAndClick(String linkText) {
 +    WebElement element = By.linkText(linkText).findElement(driver);
 +    Assert.assertNotNull(element);
 +    element.click();
 +  }
 +
 +  protected void searchByIdAndClick(String id) {
 +    WebElement element = driver.findElement(By.id(id));
 +    Assert.assertNotNull(element);
 +    element.click();
 +  }
 +
 +  protected void searchByClassAndClick(String Class) {
 +    WebElement element = driver.findElement(By.className(Class));
 +    Assert.assertNotNull(element);
 +    element.click();
 +  }
 +
 +  protected void searchByXPathAndClick(String xpath) {
 +	WebElement element = driver.findElement(By.xpath(xpath));
 +     Assert.assertNotNull(element);
 +    element.click();
 +  }
 +
 +  protected void waitForElementByClassName(final String className, int seconds) {
 +    WebElement linkTextOnPulsePage1 = (new WebDriverWait(driver, seconds))
 +        .until(new ExpectedCondition<WebElement>() {
 +          @Override
 +          public WebElement apply(WebDriver d) {
 +            return d.findElement(By.className(className));
 +          }
 +        });
 +    Assert.assertNotNull(linkTextOnPulsePage1);
 +  }
 +
 +  protected void waitForElementById(final String id, int seconds) {
 +    WebElement element = (new WebDriverWait(driver, 10))
 +        .until(new ExpectedCondition<WebElement>() {
 +          @Override
 +          public WebElement apply(WebDriver d) {
 +            return d.findElement(By.id(id));
 +          }
 +        });
 +    Assert.assertNotNull(element);
 +  }
 +  
 +  protected void scrollbarVerticalDownScroll() {
 +    JavascriptExecutor js = (JavascriptExecutor) driver;
 +    js.executeScript("javascript:window.scrollBy(250,700)");
 +    WebElement pickerScroll = driver.findElement(By.className("jspDrag"));
 +    WebElement pickerScrollCorner = driver.findElement(By
 +        .className("jspCorner"));
 +    Actions builder = new Actions(driver);
 +    Actions movePicker = builder.dragAndDrop(pickerScroll, pickerScrollCorner); // pickerscroll
 +                                                                                // is
 +                                                                                // the
 +                                                                                // webelement
 +    movePicker.perform();
 +  }
 +
 +  protected void scrollbarHorizontalRightScroll() {
 +    JavascriptExecutor js = (JavascriptExecutor) driver;
 +    js.executeScript("javascript:window.scrollBy(250,700)");
 +    WebElement pickerScroll = driver
 +        .findElement(By
 +            .xpath("//div[@id='gview_queryStatisticsList']/div[3]/div/div[3]/div[2]/div"));
 +    WebElement pickerScrollCorner = driver.findElement(By
 +        .className("jspCorner"));
 +    Actions builder = new Actions(driver);
 +    Actions movePicker = builder.dragAndDrop(pickerScroll, pickerScrollCorner); // pickerscroll
 +                                                                                // is
 +                                                                                // the
 +                                                                                // webelement
 +    movePicker.perform();
 +  }
 +
 +  
 +  
 +  @Test
 +  public void testClusterLocatorCount() throws IOException {
 +    String clusterLocators = driver
 +        .findElement(By.id(CLUSTER_VIEW_LOCATORS_ID)).getText();
 +   
 +    String totallocators = JMXProperties.getInstance().getProperty("server.S1.locatorCount");  
 +    Assert.assertEquals(totallocators, clusterLocators);
 +  }
 +
 + @Test
 +  public void testClusterRegionCount() {
 +    String clusterRegions = driver.findElement(By.id(CLUSTER_VIEW_REGIONS_ID))
 +        .getText();
 +    String totalregions = JMXProperties.getInstance().getProperty(
 +        "server.S1.totalRegionCount");
 +    Assert.assertEquals(totalregions, clusterRegions);
 +  }
 +
 + @Test
 +  public void testClusterMemberCount() {
 +   String clusterMembers = driver.findElement(By.id(CLUSTER_VIEW_MEMBERS_ID)).getText();
 +   String totalMembers = JMXProperties.getInstance().getProperty("server.S1.memberCount");
 +   Assert.assertEquals(totalMembers, clusterMembers);
 + }
 +
 + @Test
 +  public void testClusterNumClient() {
 +    String clusterClients = driver.findElement(By.id(CLUSTER_CLIENTS_ID))
 +        .getText();
 +    String totalclients = JMXProperties.getInstance().getProperty(
 +        "server.S1.numClients");
 +    Assert.assertEquals(totalclients, clusterClients);
 +  }
 +
 +  @Test
 +  public void testClusterNumRunningFunction() {
 +    String clusterFunctions = driver.findElement(By.id(CLUSTER_FUNCTIONS_ID))
 +        .getText();
 +    String totalfunctions = JMXProperties.getInstance().getProperty(
 +        "server.S1.numRunningFunctions");
 +    Assert.assertEquals(totalfunctions, clusterFunctions);
 +  }
 +
 +  @Test
 +  public void testClusterRegisteredCQCount() {
 +    String clusterUniqueCQs = driver.findElement(By.id(CLUSTER_UNIQUECQS_ID))
 +        .getText();
 +    String totaluniqueCQs = JMXProperties.getInstance().getProperty(
 +        "server.S1.registeredCQCount");
 +    Assert.assertEquals(totaluniqueCQs, clusterUniqueCQs);
 +  }
 +
 + @Test
 +  public void testClusterNumSubscriptions() {
 +    String clusterSubscriptions = driver.findElement(
 +        By.id(CLUSTER_SUBSCRIPTION_ID)).getText();
 +    String totalSubscriptions = JMXProperties.getInstance().getProperty(
 +        "server.S1.numSubscriptions");
 +    Assert.assertEquals(totalSubscriptions, clusterSubscriptions);
 +  }
 +
 + @Test
 +  public void testClusterJVMPausesWidget() {
 +    String clusterJVMPauses = driver.findElement(By.id(CLUSTER_GCPAUSES_ID))
 +        .getText();
 +    String totalgcpauses = JMXProperties.getInstance().getProperty(
 +        "server.S1.jvmPauses");
 +    Assert.assertEquals(totalgcpauses, clusterJVMPauses);
 +  }
 +
 +  @Test
 +  public void testClusterAverageWritesWidget() {
 +    String clusterWritePerSec = driver.findElement(
 +        By.id(CLUSTER_WRITEPERSEC_ID)).getText();
 +    String totalwritepersec = JMXProperties.getInstance().getProperty(
 +        "server.S1.averageWrites");
 +    Assert.assertEquals(totalwritepersec, clusterWritePerSec);
 +  }
 +
 +  @Test
 +  public void testClusterAverageReadsWidget() {
 +    String clusterReadPerSec = driver.findElement(By.id(CLUSTER_READPERSEC_ID))
 +        .getText();
 +    String totalreadpersec = JMXProperties.getInstance().getProperty(
 +        "server.S1.averageReads");
 +    Assert.assertEquals(totalreadpersec, clusterReadPerSec);
 +  }
 +
 +  @Test
 +  public void testClusterQuerRequestRateWidget() {
 +    String clusterQueriesPerSec = driver.findElement(
 +        By.id(CLUSTER_QUERIESPERSEC_ID)).getText();
 +    String totalqueriespersec = JMXProperties.getInstance().getProperty(
 +        "server.S1.queryRequestRate");
 +    Assert.assertEquals(totalqueriespersec, clusterQueriesPerSec);
 +  }
 +  
 +  @Test
 +  public void testClusterGridViewMemberID() throws InterruptedException {
 +	 searchByIdAndClick("default_grid_button");
 +	 List<WebElement> elements = driver.findElements(By.xpath("//table[@id='memberList']/tbody/tr")); //gives me 11 rows
 +	 
 +	 for(int memberCount = 1; memberCount<elements.size(); memberCount++){		  
 +		  String memberId = driver.findElement(By.xpath("//table[@id='memberList']/tbody/tr[" + (memberCount + 1) + "]/td")).getText();		  
 +		  String propertMemeberId= JMXProperties.getInstance().getProperty("member.M" + memberCount + ".id");		  
 +		  Assert.assertEquals(memberId, propertMemeberId);
 +	  }	 
 +  }
 +
 +  @Test
 +  public void testClusterGridViewMemberName() {
 +	  searchByIdAndClick("default_grid_button"); 
 +	  List<WebElement> elements = driver.findElements(By.xpath("//table[@id='memberList']/tbody/tr"));  	  
 +	  for (int memberNameCount = 1; memberNameCount < elements.size(); memberNameCount++) {
 +		  String gridMemberName = driver.findElement(By.xpath("//table[@id='memberList']/tbody/tr[" + (memberNameCount + 1) + "]/td[2]")).getText();
 +		  String memberName = JMXProperties.getInstance().getProperty("member.M" + memberNameCount + ".member");
 +		  Assert.assertEquals(gridMemberName, memberName);
 +    }
 +  }
 +  
 +
 +  @Test
 +  public void testClusterGridViewMemberHost() {
 +	  searchByIdAndClick("default_grid_button"); 
 +	  List<WebElement> elements = driver.findElements(By.xpath("//table[@id='memberList']/tbody/tr")); 	  
 +    for (int memberHostCount = 1; memberHostCount < elements.size(); memberHostCount++) {
 +      String MemberHost = driver.findElement(By.xpath("//table[@id='memberList']/tbody/tr[" + (memberHostCount + 1) + "]/td[3]")).getText();     
 +      String gridMemberHost = JMXProperties.getInstance().getProperty("member.M" + memberHostCount + ".host");
 +      Assert.assertEquals(gridMemberHost, MemberHost);
 +    }
 +  }
 +
 +  @Test
 +  public void testClusterGridViewHeapUsage() {
 +	searchByIdAndClick("default_grid_button"); 
 +    for (int i = 1; i <= 3; i++) {
 +      Float HeapUsage = Float.parseFloat(driver
 +          .findElement(
 +              By.xpath("//table[@id='memberList']/tbody/tr[" + (i + 1) + "]/td[5]")).getText());
 +      Float gridHeapUsagestring = Float.parseFloat(JMXProperties.getInstance()
 +          .getProperty("member.M" + i + ".UsedMemory"));
 +     Assert.assertEquals(gridHeapUsagestring, HeapUsage);
 +    }
 +  }
 +
 +  @Test
 +  public void testClusterGridViewCPUUsage() throws Exception {
 +    searchByIdAndClick("default_grid_button");
 +    for (int i = 1; i <= 3; i++) {
 +      String CPUUsage = driver.findElement(By.xpath("//table[@id='memberList']/tbody/tr[" + (i + 1) + "]/td[6]"))
 +          .getText();
 +      String gridCPUUsage = JMXProperties.getInstance().getProperty("member.M" + i + ".cpuUsage");
 +      gridCPUUsage = gridCPUUsage.trim();
 +      Assert.assertEquals(gridCPUUsage, CPUUsage);
 +    }
 +  }
 +
 +
 +  public void testRgraphWidget() throws InterruptedException {
 +    searchByIdAndClick("default_rgraph_button");
 +    searchByIdAndClick("h1");
 +    searchByIdAndClick("M1");
 +  }
 +
 +  @Test  // region count in properties file is 2 and UI is 1
 +  public void testMemberTotalRegionCount() throws InterruptedException{
 +	testRgraphWidget();
 +    String RegionCount = driver.findElement(By.id(MEMBER_VIEW_REGION_ID)).getText();  
 +    String memberRegionCount = JMXProperties.getInstance().getProperty("member.M1.totalRegionCount");
 +    Assert.assertEquals(memberRegionCount, RegionCount);
 +  }
 +
 +  @Test
 +  public void testMemberNumThread()throws InterruptedException {
 +    searchByIdAndClick("default_grid_button");
 +    searchByIdAndClick("M1&M1");
 +    String ThreadCount = driver.findElement(By.id(MEMBER_VIEW_THREAD_ID)).getText();
 +    String memberThreadCount = JMXProperties.getInstance().getProperty("member.M1.numThreads");   
 +    Assert.assertEquals(memberThreadCount, ThreadCount);
 +  }
 +
 +  @Test
 +  public void testMemberTotalFileDescriptorOpen() throws InterruptedException {
 +    searchByIdAndClick("default_grid_button");
 +    searchByIdAndClick("M1&M1");
 +    String SocketCount = driver.findElement(By.id(MEMBER_VIEW_SOCKETS_ID))
 +        .getText();
 +    String memberSocketCount = JMXProperties.getInstance().getProperty(
 +        "member.M1.totalFileDescriptorOpen");
 +    Assert.assertEquals(memberSocketCount, SocketCount);
 +  }
 +
 + @Test
 +  public void testMemberLoadAverage() throws InterruptedException {
 +    searchByIdAndClick("default_grid_button");
 +    searchByIdAndClick("M1&M1");
 +    String LoadAvg = driver.findElement(By.id(MEMBER_VIEW_LOADAVG_ID))
 +        .getText();
 +    String memberLoadAvg = JMXProperties.getInstance().getProperty(
 +        "member.M1.loadAverage");
-     Assert.assertEquals(memberLoadAvg, LoadAvg);
++    Assert.assertEquals(df2.format(Double.valueOf(memberLoadAvg)), LoadAvg);
 +  }
 +
 +  @Ignore("WIP") // May be useful in near future
 +  @Test
 +  public void testOffHeapFreeSize(){	  
 +	  
 +    String OffHeapFreeSizeString = driver.findElement(
 +        By.id(MEMBER_VIEW_OFFHEAPFREESIZE_ID)).getText();
 +    String OffHeapFreeSizetemp = OffHeapFreeSizeString.replaceAll("[a-zA-Z]",
 +        "");
 +    float OffHeapFreeSize = Float.parseFloat(OffHeapFreeSizetemp);
 +    float memberOffHeapFreeSize = Float.parseFloat(JMXProperties.getInstance()
 +        .getProperty("member.M1.OffHeapFreeSize"));
 +    if (memberOffHeapFreeSize < 1048576) {
 +      memberOffHeapFreeSize = memberOffHeapFreeSize / 1024;
 +
 +    } else if (memberOffHeapFreeSize < 1073741824) {
 +      memberOffHeapFreeSize = memberOffHeapFreeSize / 1024 / 1024;
 +    } else {
 +      memberOffHeapFreeSize = memberOffHeapFreeSize / 1024 / 1024 / 1024;
 +    }
 +    memberOffHeapFreeSize = Float.parseFloat(new DecimalFormat("##.##")
 +        .format(memberOffHeapFreeSize));
 +    Assert.assertEquals(memberOffHeapFreeSize, OffHeapFreeSize); 
 + 
 +  }
 +
 +  @Ignore("WIP") // May be useful in near future
 +  @Test
 +  public void testOffHeapUsedSize() throws InterruptedException {
 +	 
 +    String OffHeapUsedSizeString = driver.findElement(
 +        By.id(MEMBER_VIEW_OFFHEAPUSEDSIZE_ID)).getText();
 +    String OffHeapUsedSizetemp = OffHeapUsedSizeString.replaceAll("[a-zA-Z]",
 +        "");
 +    float OffHeapUsedSize = Float.parseFloat(OffHeapUsedSizetemp);
 +    float memberOffHeapUsedSize = Float.parseFloat(JMXProperties.getInstance()
 +        .getProperty("member.M1.OffHeapUsedSize"));
 +    if (memberOffHeapUsedSize < 1048576) {
 +      memberOffHeapUsedSize = memberOffHeapUsedSize / 1024;
 +
 +    } else if (memberOffHeapUsedSize < 1073741824) {
 +      memberOffHeapUsedSize = memberOffHeapUsedSize / 1024 / 1024;
 +    } else {
 +      memberOffHeapUsedSize = memberOffHeapUsedSize / 1024 / 1024 / 1024;
 +    }
 +    memberOffHeapUsedSize = Float.parseFloat(new DecimalFormat("##.##")
 +        .format(memberOffHeapUsedSize));
 +    Assert.assertEquals(memberOffHeapUsedSize, OffHeapUsedSize);
 +  }
 +
 +  @Test
 +  public void testMemberJVMPauses() throws Exception {
 +    searchByIdAndClick("default_grid_button");
 +    searchByIdAndClick("M1&M1");
 +    String JVMPauses = driver.findElement(By.id(MEMBER_VIEW_JVMPAUSES_ID))
 +        .getText();
 +    String memberGcPausesAvg = JMXProperties.getInstance().getProperty(
 +        "member.M1.JVMPauses");
 +    Assert.assertEquals(memberGcPausesAvg, JVMPauses);
 +  }
 +
 +  @Test
 +  public void testMemberCPUUsage() {
 +    searchByIdAndClick("default_grid_button");
 +    searchByIdAndClick("M1&M1");
 +    String CPUUsagevalue = driver.findElement(By.id(MEMBER_VIEW_CPUUSAGE_ID))
 +        .getText();
 +    String memberCPUUsage = JMXProperties.getInstance().getProperty(
 +        "member.M1.cpuUsage");
 +    Assert.assertEquals(memberCPUUsage, CPUUsagevalue);
 +  }
 +
 +  @Test  // difference between UI and properties file
 +  public void testMemberAverageReads() {
 +    searchByIdAndClick("default_grid_button");
 +    searchByIdAndClick("M1&M1");
 +    float ReadPerSec = Float.parseFloat(driver.findElement(By.id(MEMBER_VIEW_READPERSEC_ID)).getText());
 +    float memberReadPerSec = Float.parseFloat(JMXProperties.getInstance().getProperty("member.M1.averageReads"));
 +    memberReadPerSec = Float.parseFloat(new DecimalFormat("##.##")
 +    .format(memberReadPerSec));
 +    Assert.assertEquals(memberReadPerSec, ReadPerSec);
 +  }
 +
 + @Test
 +  public void testMemberAverageWrites() throws InterruptedException {
 +    testRgraphWidget();
 +    String WritePerSec = driver.findElement(By.id(MEMBER_VIEW_WRITEPERSEC_ID))
 +        .getText();
 +    String memberWritePerSec = JMXProperties.getInstance().getProperty(
 +        "member.M1.averageWrites");
 +    Assert.assertEquals(memberWritePerSec, WritePerSec);
 +  }
 + 
 +
 +  @Test
 +  public void testMemberGridViewData() throws InterruptedException {
 +    testRgraphWidget();
 +    searchByXPathAndClick(PulseTestLocators.MemberDetailsView.gridButtonXpath);
 +    // get the number of rows on the grid
 +    List<WebElement> noOfRows = driver.findElements(By.xpath("//table[@id='memberRegionsList']/tbody/tr"));    
 +    String MemberRegionName = driver.findElement(By.xpath("//table[@id='memberRegionsList']/tbody/tr[2]/td[1]")).getText();
 +    String memberRegionName = JMXProperties.getInstance().getProperty("region.R1.name");
 +    Assert.assertEquals(memberRegionName, MemberRegionName);
 +
 +    String MemberRegionType = driver.findElement(By.xpath("//table[@id='memberRegionsList']/tbody/tr[2]/td[2]")).getText();
 +    String memberRegionType = JMXProperties.getInstance().getProperty("region.R1.regionType");
 +    Assert.assertEquals(memberRegionType, MemberRegionType);
 +    
 +    String MemberRegionEntryCount = driver.findElement(By.xpath("//table[@id='memberRegionsList']/tbody/tr[2]/td[3]")).getText();
 +    String memberRegionEntryCount = JMXProperties.getInstance().getProperty("regionOnMember./R1.M1.entryCount");
 +    Assert.assertEquals(memberRegionEntryCount, MemberRegionEntryCount);
 +  }
 +
 +  @Test
 +  public void testDropDownList() throws InterruptedException {
 +    searchByIdAndClick("default_grid_button");
 +    searchByIdAndClick("M1&M1");
 +  	searchByIdAndClick("memberName");
 +    searchByLinkAndClick("M3");
 +    searchByIdAndClick("memberName");
 +    searchByLinkAndClick("M2");
 +  }
 +
 +  @Ignore("WIP")
 +  @Test
 +  public void testDataViewRegionName() throws InterruptedException {
 +    searchByLinkAndClick(DATA_VIEW_LABEL);
 +    Thread.sleep(7000);
 +    searchByIdAndClick("default_grid_button");
 +    String regionName = driver.findElement(By.id(REGION_NAME_LABEL)).getText();
 +    String dataviewregionname = JMXProperties.getInstance().getProperty("region.R1.name");
 +    Assert.assertEquals(dataviewregionname, regionName);
 +  }
 +
 +  @Ignore("WIP")
 +  @Test
 +  public void testDataViewRegionPath() {
 +    String regionPath = driver.findElement(By.id(REGION_PATH_LABEL)).getText();
 +    String dataviewregionpath = JMXProperties.getInstance().getProperty(
 +        "region.R1.fullPath");
 +    Assert.assertEquals(dataviewregionpath, regionPath);
 +  }
 +
 +  @Ignore("WIP")
 +  @Test
 +  public void testDataViewRegionType() {
 +    String regionType = driver.findElement(By.id(REGION_TYPE_LABEL)).getText();
 +    String dataviewregiontype = JMXProperties.getInstance().getProperty(
 +        "region.R1.regionType");
 +    Assert.assertEquals(dataviewregiontype, regionType);
 +  }
 +
 +  @Ignore("WIP")
 +  @Test
 +  public void testDataViewEmptyNodes() {
 +    String regionEmptyNodes = driver.findElement(By.id(DATA_VIEW_EMPTYNODES))
 +        .getText();
 +    String dataviewEmptyNodes = JMXProperties.getInstance().getProperty(
 +        "region.R1.emptyNodes");
 +    Assert.assertEquals(dataviewEmptyNodes, regionEmptyNodes);
 +  }
 +
 +  @Ignore("WIP")
 +  @Test
 +  public void testDataViewSystemRegionEntryCount() {
 +    String regionEntryCount = driver.findElement(By.id(DATA_VIEW_ENTRYCOUNT))
 +        .getText();
 +    String dataviewEntryCount = JMXProperties.getInstance().getProperty(
 +        "region.R1.systemRegionEntryCount");
 +    Assert.assertEquals(dataviewEntryCount, regionEntryCount);
 +  }
 +
 +  @Ignore("WIP")
 +  @Test
 +  public void testDataViewPersistentEnabled() {
 +    String regionPersistence = driver.findElement(
 +        By.id(REGION_PERSISTENCE_LABEL)).getText();
 +    String dataviewregionpersistence = JMXProperties.getInstance().getProperty(
 +        "region.R1.persistentEnabled");
 +    Assert.assertEquals(dataviewregionpersistence, regionPersistence);
 +  }
 +
 +  @Ignore("WIP")
 +  @Test
 +  public void testDataViewDiskWritesRate() {
 +    String regionWrites = driver.findElement(By.id(DATA_VIEW_WRITEPERSEC))
 +        .getText();
 +    String dataviewRegionWrites = JMXProperties.getInstance().getProperty(
 +        "region.R1.diskWritesRate");
 +    Assert.assertEquals(dataviewRegionWrites, regionWrites);
 +  }
 +
 +  @Ignore("WIP")
 +  @Test
 +  public void testDataViewDiskReadsRate() {
 +    String regionReads = driver.findElement(By.id(DATA_VIEW_READPERSEC))
 +        .getText();
 +    String dataviewRegionReads = JMXProperties.getInstance().getProperty(
 +        "region.R1.diskReadsRate");
 +    Assert.assertEquals(dataviewRegionReads, regionReads);
 +  }
 +
 +  @Ignore("WIP")
 +  @Test
 +  public void testDataViewDiskUsage() {
 +    String regionMemoryUsed = driver.findElement(By.id(DATA_VIEW_USEDMEMORY))
 +        .getText();
 +    String dataviewMemoryUsed = JMXProperties.getInstance().getProperty(
 +        "region.R1.diskUsage");
 +    Assert.assertEquals(dataviewMemoryUsed, regionMemoryUsed);
 +    searchByLinkAndClick(QUERY_STATISTICS_LABEL);
 +  }
 +
 +  @Ignore("WIP")
 +  @Test
 +  public void testDataViewGridValue() {
 +    String DataViewRegionName = driver.findElement(
 +        By.xpath("//*[id('6')/x:td[1]]")).getText();
 +    String dataViewRegionName = JMXProperties.getInstance().getProperty(
 +        "region.R1.name");
 +    Assert.assertEquals(dataViewRegionName, DataViewRegionName);
 +
 +    String DataViewRegionType = driver.findElement(
 +        By.xpath("//*[id('6')/x:td[2]")).getText();
 +    String dataViewRegionType = JMXProperties.getInstance().getProperty(
 +        "region.R2.regionType");
 +    Assert.assertEquals(dataViewRegionType, DataViewRegionType);
 +
 +    String DataViewEntryCount = driver.findElement(
 +        By.xpath("//*[id('6')/x:td[3]")).getText();
 +    String dataViewEntryCount = JMXProperties.getInstance().getProperty(
 +        "region.R2.systemRegionEntryCount");
 +    Assert.assertEquals(dataViewEntryCount, DataViewEntryCount);
 +
 +    String DataViewEntrySize = driver.findElement(
 +        By.xpath("//*[id('6')/x:td[4]")).getText();
 +    String dataViewEntrySize = JMXProperties.getInstance().getProperty(
 +        "region.R2.entrySize");
 +    Assert.assertEquals(dataViewEntrySize, DataViewEntrySize);
 +
 +  }
 +  
 +  
 +  public void loadDataBrowserpage() {
 +	  searchByLinkAndClick(DATA_BROWSER_LABEL);
 +	  //Thread.sleep(7000);
 +  }
 +  
 +  @Test
 +  public void testDataBrowserRegionName() throws InterruptedException {
 +	  loadDataBrowserpage();
 +	  String DataBrowserRegionName1 = driver.findElement(By.id(DATA_BROWSER_REGIONName1))
 +			  .getText();
 +	  String databrowserRegionNametemp1 = JMXProperties.getInstance().getProperty(
 +		        "region.R1.name");
 +	  String databrowserRegionName1 = databrowserRegionNametemp1.replaceAll("[\\/]", "");
 +	  Assert.assertEquals(databrowserRegionName1, DataBrowserRegionName1);
 +	  
 +	  String DataBrowserRegionName2 = driver.findElement(By.id(DATA_BROWSER_REGIONName2))
 +			  .getText();
 +	  String databrowserRegionNametemp2 = JMXProperties.getInstance().getProperty(
 +		        "region.R2.name");
 +	  String databrowserRegionName2 = databrowserRegionNametemp2.replaceAll("[\\/]", "");
 +	  Assert.assertEquals(databrowserRegionName2, DataBrowserRegionName2);
 +	  
 +	  String DataBrowserRegionName3 = driver.findElement(By.id(DATA_BROWSER_REGIONName3))
 +			  .getText();
 +	  String databrowserRegionNametemp3 = JMXProperties.getInstance().getProperty(
 +		        "region.R3.name");
 +	  String databrowserRegionName3 = databrowserRegionNametemp3.replaceAll("[\\/]", "");
 +	  Assert.assertEquals(databrowserRegionName3, DataBrowserRegionName3);
 +	        
 +  }
 +  
 +  @Test
 +  public void testDataBrowserRegionMembersVerificaition() throws InterruptedException {
 +	  loadDataBrowserpage();
 +	  searchByIdAndClick(DATA_BROWSER_REGION1_CHECKBOX);
 +	  String DataBrowserMember1Name1 = driver.findElement(By.xpath("//label[@for='Member0']"))
 +			  .getText();
 +	  String DataBrowserMember1Name2 = driver.findElement(By.xpath("//label[@for='Member1']"))
 +			  .getText();
 +	  String DataBrowserMember1Name3 = driver.findElement(By.xpath("//label[@for='Member2']"))
 +			  .getText();
 +	  String databrowserMember1Names = JMXProperties.getInstance().getProperty(
 +		        "region.R1.members");
 +	  
 +	  String databrowserMember1Names1 = databrowserMember1Names.substring(0, 2);
 +	  Assert.assertEquals(databrowserMember1Names1, DataBrowserMember1Name1);
 +	  
 +	  String databrowserMember1Names2 = databrowserMember1Names.substring(3, 5);
 +	  Assert.assertEquals(databrowserMember1Names2, DataBrowserMember1Name2);
 +	  
 +	  String databrowserMember1Names3 = databrowserMember1Names.substring(6, 8);
 +	  Assert.assertEquals(databrowserMember1Names3, DataBrowserMember1Name3);
 +	  searchByIdAndClick(DATA_BROWSER_REGION1_CHECKBOX);
 +	  
 +	  searchByIdAndClick(DATA_BROWSER_REGION2_CHECKBOX);
 +	  String DataBrowserMember2Name1 = driver.findElement(By.xpath("//label[@for='Member0']"))
 +			  .getText();
 +	  String DataBrowserMember2Name2 = driver.findElement(By.xpath("//label[@for='Member1']"))
 +			  .getText();
 +	  String databrowserMember2Names = JMXProperties.getInstance().getProperty(
 +		        "region.R2.members");
 +	  
 +	  String databrowserMember2Names1 = databrowserMember2Names.substring(0, 2);
 +	  Assert.assertEquals(databrowserMember2Names1, DataBrowserMember2Name1);
 +	  
 +	  String databrowserMember2Names2 = databrowserMember2Names.substring(3, 5);
 +	  Assert.assertEquals(databrowserMember2Names2, DataBrowserMember2Name2);
 +	  searchByIdAndClick(DATA_BROWSER_REGION2_CHECKBOX);
 +	  
 +	  searchByIdAndClick(DATA_BROWSER_REGION3_CHECKBOX);
 +	  String DataBrowserMember3Name1 = driver.findElement(By.xpath("//label[@for='Member0']"))
 +			  .getText();
 +	  String DataBrowserMember3Name2 = driver.findElement(By.xpath("//label[@for='Member1']"))
 +			  .getText();
 +	  String databrowserMember3Names = JMXProperties.getInstance().getProperty(
 +		        "region.R3.members");
 +	  
 +	  String databrowserMember3Names1 = databrowserMember3Names.substring(0, 2);
 +	  Assert.assertEquals(databrowserMember3Names1, DataBrowserMember3Name1);
 +	  
 +	  String databrowserMember3Names2 = databrowserMember3Names.substring(3, 5);
 +	  Assert.assertEquals(databrowserMember3Names2, DataBrowserMember3Name2);
 +	  searchByIdAndClick(DATA_BROWSER_REGION3_CHECKBOX);
 +  }
 +  
 +  @Test
 +  public void testDataBrowserColocatedRegions() throws InterruptedException {
 +	  loadDataBrowserpage();
 +	  String databrowserMemberNames1 = JMXProperties.getInstance().getProperty(
 +		        "region.R1.members");
 +	  String databrowserMemberNames2 = JMXProperties.getInstance().getProperty(
 +		        "region.R2.members");
 +	  String databrowserMemberNames3 = JMXProperties.getInstance().getProperty(
 +		        "region.R3.members");
 +	  
 +	  if((databrowserMemberNames1.matches(databrowserMemberNames2+"(.*)"))) {
 +		  if((databrowserMemberNames1.matches(databrowserMemberNames3+"(.*)"))) {
 +			  if((databrowserMemberNames2.matches(databrowserMemberNames3+"(.*)"))) {
 +				  System.out.println("R1, R2 and R3 are colocated regions");
 +			  }   
 +		  }
 +	  }
 +	  searchByIdAndClick(DATA_BROWSER_REGION1_CHECKBOX);
 +	  searchByLinkAndClick(DATA_BROWSER_COLOCATED_REGION);
 +	  String DataBrowserColocatedRegion1 = driver.findElement(By.id(DATA_BROWSER_COLOCATED_REGION_NAME1))
 +			  .getText();
 +	  String DataBrowserColocatedRegion2 = driver.findElement(By.id(DATA_BROWSER_COLOCATED_REGION_NAME2))
 +			  .getText();
 +	  String DataBrowserColocatedRegion3 = driver.findElement(By.id(DATA_BROWSER_COLOCATED_REGION_NAME3))
 +			  .getText();
 +	  
 +	  String databrowserColocatedRegiontemp1 = JMXProperties.getInstance().getProperty(
 +		        "region.R1.name");
 +	  String databrowserColocatedRegion1 = databrowserColocatedRegiontemp1.replaceAll("[\\/]", "");
 +	  
 +	  String databrowserColocatedRegiontemp2 = JMXProperties.getInstance().getProperty(
 +		        "region.R2.name");
 +	  String databrowserColocatedRegion2 = databrowserColocatedRegiontemp2.replaceAll("[\\/]", "");
 +	  
 +	  String databrowserColocatedRegiontemp3 = JMXProperties.getInstance().getProperty(
 +		        "region.R3.name");
 +	  String databrowserColocatedRegion3 = databrowserColocatedRegiontemp3.replaceAll("[\\/]", "");
 +	  
 +	  Assert.assertEquals(databrowserColocatedRegion1, DataBrowserColocatedRegion1);
 +	  Assert.assertEquals(databrowserColocatedRegion2, DataBrowserColocatedRegion2);
 +	  Assert.assertEquals(databrowserColocatedRegion3, DataBrowserColocatedRegion3);
 +	  
 +  }
 +
 +  @Ignore("WIP") // clusterDetails element not found on Data Browser page. No assertions in test
 +  @Test
 +  public void testDataBrowserQueryValidation() throws IOException, InterruptedException {
 +	  loadDataBrowserpage();
 +	  WebElement textArea = driver.findElement(By.id("dataBrowserQueryText"));
 +	  textArea.sendKeys("query1");
 +	  WebElement executeButton = driver.findElement(By.id("btnExecuteQuery"));
 +	  executeButton.click();
 +	  String QueryResultHeader1 = driver.findElement(By.xpath("//div[@id='clusterDetails']/div/div/span[@class='n-title']")).getText();
 +	  double count = 0,countBuffer=0,countLine=0;
 +	  String lineNumber = "";
 +	  String filePath = "E:\\springsource\\springsourceWS\\Pulse-Cedar\\src\\main\\resources\\testQueryResultSmall.txt";
 +	  BufferedReader br;
 +	  String line = "";
 +	  br = new BufferedReader(new FileReader(filePath));
 +	  while((line = br.readLine()) != null)
 +	  {
 +		  countLine++;
 +          String[] words = line.split(" ");
 +
 +          for (String word : words) {
 +            if (word.equals(QueryResultHeader1)) {
 +              count++;
 +              countBuffer++;
 +            }
 +          }
 +	  }  
 +  }
 +  
 + public void testTreeMapPopUpData(String S1, String gridIcon) {
 +	  for (int i = 1; i <=3; i++) {
 +		  searchByLinkAndClick(CLUSTER_VIEW_LABEL);
 +		  if (gridIcon.equals(SERVER_GROUP_GRID_ID)) {
 +			  WebElement ServerGroupRadio = driver.findElement(By.xpath("//label[@for='radio-servergroups']"));
 +			  ServerGroupRadio.click();
 +		  }
 +		  if (gridIcon.equals(REDUNDANCY_GRID_ID)) {
 +			  WebElement ServerGroupRadio = driver.findElement(By.xpath("//label[@for='radio-redundancyzones']"));
 +			  ServerGroupRadio.click();
 +		  }
 +		  searchByIdAndClick(gridIcon);
 +		  WebElement TreeMapMember = driver.findElement(By.xpath("//div[@id='" + S1 + "M"+ (i) + "']/div"));
 +		  Actions builder = new Actions(driver);
 +		  builder.clickAndHold(TreeMapMember).perform();
 +		  int j = 1;
 +		  String CPUUsageM1temp = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div/div[2]/div"))
 +				  .getText();
 +		  String CPUUsageM1 = CPUUsageM1temp.replaceAll("[\\%]", "");
 +		  String cpuUsageM1 = JMXProperties.getInstance().getProperty(
 +			        "member.M" + (i) + ".cpuUsage");
 +		  Assert.assertEquals(cpuUsageM1, CPUUsageM1);
 +			  
 +		  String MemoryUsageM1temp = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 1) + "]/div[2]/div"))
 +				  .getText();
 +		  String MemoryUsageM1 = MemoryUsageM1temp.replaceAll("MB", "");
 +		  String memoryUsageM1 = JMXProperties.getInstance().getProperty(
 +				  "member.M" + (i) + ".UsedMemory");
 +		  Assert.assertEquals(memoryUsageM1, MemoryUsageM1);
 +		  
 +		  String LoadAvgM1 = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 2) + "]/div[2]/div"))
 +				  .getText();
 +		  String loadAvgM1 = JMXProperties.getInstance().getProperty(
 +				  "member.M" + (i) + ".loadAverage");
- 		  Assert.assertEquals(loadAvgM1, LoadAvgM1);
++		  Assert.assertEquals(df2.format(Double.valueOf(loadAvgM1)), LoadAvgM1);
 +		  
 +		  
 +		  String ThreadsM1 = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 3) + "]/div[2]/div"))
 +				  .getText();
 +		  String threadsM1 = JMXProperties.getInstance().getProperty(
 +				  "member.M" + (i) + ".numThreads");
 +		  Assert.assertEquals(threadsM1, ThreadsM1);
 +		  
 +		  String SocketsM1 = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 4) + "]/div[2]/div"))
 +				  .getText();
 +		  String socketsM1 = JMXProperties.getInstance().getProperty(
 +				  "member.M" + (i) + ".totalFileDescriptorOpen");
 +		  Assert.assertEquals(socketsM1, SocketsM1);
 +          builder.moveToElement(TreeMapMember).release().perform();
 +		  }
 +	  }
 +  
 +  @Test
 +  public void testTopologyPopUpData() {
 +	  testTreeMapPopUpData("", CLUSTER_VIEW_GRID_ID); 
 +  }
 +  
 +  @Test
 +  public void testServerGroupTreeMapPopUpData() {
 +	  testTreeMapPopUpData("SG1(!)", SERVER_GROUP_GRID_ID);
 +  }
 +  
 +  @Test
 +  public void testDataViewTreeMapPopUpData() {
 +	  searchByLinkAndClick(CLUSTER_VIEW_LABEL);
 +	  searchByLinkAndClick(DATA_DROPDOWN_ID);
 +	  WebElement TreeMapMember = driver.findElement(By.id("GraphTreeMapClusterData-canvas"));
 +	  Actions builder = new Actions(driver);
 +	  builder.clickAndHold(TreeMapMember).perform();
 +	  String RegionType = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div/div[2]/div"))
 +			  .getText();
 +	  String regionType = JMXProperties.getInstance().getProperty(
 +			  "region.R2.regionType");
 +	  Assert.assertEquals(regionType, RegionType);
 +	  
 +	  String EntryCount = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[2]/div[2]/div"))
 +			  .getText();
 +	  String entryCount = JMXProperties.getInstance().getProperty(
 +			  "region.R2.systemRegionEntryCount");
 +	  Assert.assertEquals(entryCount, EntryCount);
 +	  
 +	  String EntrySizetemp = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[3]/div[2]/div"))
 +			  .getText();
 +	  float EntrySize = Float.parseFloat(EntrySizetemp);
 +	  float entrySize = Float.parseFloat(JMXProperties.getInstance().getProperty(
 +			  "region.R2.entrySize"));
 +	  entrySize = entrySize / 1024 / 1024;
 +	  entrySize = Float.parseFloat(new DecimalFormat("##.####")
 +      .format(entrySize));
 +	  Assert.assertEquals(entrySize, EntrySize);  
 +	  builder.moveToElement(TreeMapMember).release().perform();
 +  }
 +  
 +  @Test
 +  public void testRegionViewTreeMapPopUpData() {
 +	  searchByLinkAndClick(CLUSTER_VIEW_LABEL);
 +	  searchByLinkAndClick(DATA_DROPDOWN_ID);
 +	  WebElement TreeMapMember = driver.findElement(By.id("GraphTreeMapClusterData-canvas"));
 +	  TreeMapMember.click();
 +  }
 +
 +  @Ignore("WIP")
 +  @Test
 +  public void testNumberOfRegions() throws InterruptedException{
 +	  
 +		driver.findElement(By.xpath("//a[text()='Data Browser']")).click();
 +		
 +		 Thread.sleep(1000);
 +		 List<WebElement> regionList = driver.findElements(By.xpath("//ul[@id='treeDemo']/li"));		 
 +		 String regions = JMXProperties.getInstance().getProperty("regions");
 +		 String []regionName = regions.split(" ");
 +		 for (String string : regionName) {
 +		}
 +		 //JMXProperties.getInstance().getProperty("region.R1.regionType");
 +		int i=1; 
 +		for (WebElement webElement : regionList) {
 +			//webElement.getAttribute(arg0)
 +			i++;
 +		}
 +		
 +		driver.findElement(By.id("treeDemo_1_check")).click();		
 +		
 +		List<WebElement> memeberList = driver.findElements(By.xpath("//ul[@id='membersList']/li"));
 +		int j=0;
 +		for (WebElement webElement : memeberList) {
 +			j++;
 +		}  
 +  }
 +
 +  @Ignore("WIP")
 +  @Test
 +  public void testDataBrowser(){
 +	  
 +	  driver.findElement(By.linkText("Data Browser")).click();
 +	 // WebElement dataBrowserLabel = driver.findElement(By.xpath(""));
 +	  WebDriverWait wait = new WebDriverWait(driver, 20);
 +	  wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//label[text()='Data Browser']"))));
 +	  
 +	
 +	// Verify all elements must be displayed on data browser screen 
 +	  Assert.assertTrue(driver.findElement(By.xpath("//a[text()='Data Regions']")).isDisplayed());	
 +	  Assert.assertTrue(driver.findElement(By.id("linkColocatedRegions")).isDisplayed());	  
 +	  Assert.assertTrue(driver.findElement(By.linkText("All Regions")).isDisplayed());
 +	  
 +	  Assert.assertTrue(driver.findElement(By.xpath("//a[text()='Region Members']")).isDisplayed());
 +	  
 +	  Assert.assertTrue(driver.findElement(By.xpath("//a[text()='Queries']")).isDisplayed());
 +	  Assert.assertTrue(driver.findElement(By.xpath("//label[text()='Query Editor']")).isDisplayed());
 +	  Assert.assertTrue(driver.findElement(By.xpath("//label[text()='Result']")).isDisplayed());
 +	  Assert.assertTrue(driver.findElement(By.xpath("//input[@value='Export Result']")).isDisplayed());
 +	  Assert.assertTrue(driver.findElement(By.id("btnExecuteQuery")).isDisplayed());
 +	  Assert.assertTrue(driver.findElement(By.xpath("//input[@value='Clear']")).isDisplayed());
 +	  Assert.assertTrue(driver.findElement(By.id("dataBrowserQueryText")).isDisplayed());
 +	  
 +	  Assert.assertTrue(driver.findElement(By.id("historyIcon")).isDisplayed());
 +	  
 +	  //Actual query execution
 +	  
 +	  driver.findElement(By.id("dataBrowserQueryText")).sendKeys("Query1");
 +
 +	  // Assert data regions are displayed 
 +	  Assert.assertTrue(driver.findElement(By.id("treeDemo_1")).isDisplayed());
 +  }
 +}


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

Posted by je...@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/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" ));


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

Posted by je...@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() {


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

Posted by je...@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>


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

Posted by je...@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() ));


[07/18] incubator-geode git commit: GEODE-483 Now test ignores Socket BindException as it can happen.

Posted by je...@apache.org.
GEODE-483 Now test ignores Socket BindException as it can happen.


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

Branch: refs/heads/feature/GEODE-17-2
Commit: 8503fc393b7b03141804b69b5512fc152ed425d7
Parents: dd19d8c
Author: Hitesh Khamesra <hk...@pivotal.io>
Authored: Thu Mar 31 15:45:04 2016 -0700
Committer: Hitesh Khamesra <hk...@pivotal.io>
Committed: Thu Mar 31 15:45:04 2016 -0700

----------------------------------------------------------------------
 .../internal/AutoConnectionSourceDUnitTest.java | 78 +++++++++++---------
 1 file changed, 42 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8503fc39/geode-core/src/test/java/com/gemstone/gemfire/cache/client/internal/AutoConnectionSourceDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/cache/client/internal/AutoConnectionSourceDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/cache/client/internal/AutoConnectionSourceDUnitTest.java
index 2040c37..cc5bffa 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/cache/client/internal/AutoConnectionSourceDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/cache/client/internal/AutoConnectionSourceDUnitTest.java
@@ -17,6 +17,7 @@
 package com.gemstone.gemfire.cache.client.internal;
 
 import java.io.Serializable;
+import java.net.BindException;
 import java.net.InetSocketAddress;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -142,42 +143,47 @@ public class AutoConnectionSourceDUnitTest extends LocatorTestBase {
   }
   
   public void testDynamicallyFindLocators() throws Exception {
-    final Host host = Host.getHost(0);
-    final String hostName = NetworkUtils.getServerHostName(host);
-    VM vm0 = host.getVM(0);
-    VM vm1 = host.getVM(1);
-    VM vm2 = host.getVM(2);
-    VM vm3 = host.getVM(3);
-    
-    int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(3);
-    
-    final int locatorPort0 = ports[0];
-    final int locatorPort1 = ports[1];
-    final int locatorPort3 = ports[2];
-    String locators = getLocatorString(host, new int[] { locatorPort0, locatorPort1, locatorPort3});
-    startLocatorInVM(vm0, locatorPort0, locators);
-    
-    startLocatorInVM(vm1, locatorPort1, locators);
-    startBridgeClientInVM(vm2, null, NetworkUtils.getServerHostName(vm0.getHost()), locatorPort0);
-    
-    InetSocketAddress locatorToWaitFor= new InetSocketAddress(hostName, locatorPort1);
-    waitForLocatorDiscovery(vm2, locatorToWaitFor);
-    
-    stopLocatorInVM(vm0);
-    startBridgeServerInVM(vm0, null, locators);
-    
-    putAndWaitForSuccess(vm2, REGION_NAME, "key", "value");
-    Assert.assertEquals("value", getInVM(vm0, "key"));
-    
-    startLocatorInVM(vm3, locatorPort3, locators);
-    stopBridgeMemberVM(vm0);
-    locatorToWaitFor= new InetSocketAddress(hostName, locatorPort3);
-    waitForLocatorDiscovery(vm2, locatorToWaitFor);
-    stopLocatorInVM(vm1);
-    startBridgeServerInVM(vm1, null, locators);
-    putAndWaitForSuccess(vm2, REGION_NAME, "key2", "value2");
-    Assert.assertEquals("value2", getInVM(vm1, "key2"));
-    
+    try {
+      final Host host = Host.getHost(0);
+      final String hostName = NetworkUtils.getServerHostName(host);
+      VM vm0 = host.getVM(0);
+      VM vm1 = host.getVM(1);
+      VM vm2 = host.getVM(2);
+      VM vm3 = host.getVM(3);
+      
+      int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(3);
+      
+      final int locatorPort0 = ports[0];
+      final int locatorPort1 = ports[1];
+      final int locatorPort3 = ports[2];
+      String locators = getLocatorString(host, new int[] { locatorPort0, locatorPort1, locatorPort3});
+      startLocatorInVM(vm0, locatorPort0, locators);
+      
+      startLocatorInVM(vm1, locatorPort1, locators);
+      startBridgeClientInVM(vm2, null, NetworkUtils.getServerHostName(vm0.getHost()), locatorPort0);
+      
+      InetSocketAddress locatorToWaitFor= new InetSocketAddress(hostName, locatorPort1);
+      waitForLocatorDiscovery(vm2, locatorToWaitFor);
+      
+      stopLocatorInVM(vm0);
+      startBridgeServerInVM(vm0, null, locators);
+      
+      putAndWaitForSuccess(vm2, REGION_NAME, "key", "value");
+      Assert.assertEquals("value", getInVM(vm0, "key"));
+      
+      startLocatorInVM(vm3, locatorPort3, locators);
+      stopBridgeMemberVM(vm0);
+      locatorToWaitFor= new InetSocketAddress(hostName, locatorPort3);
+      waitForLocatorDiscovery(vm2, locatorToWaitFor);
+      stopLocatorInVM(vm1);
+      startBridgeServerInVM(vm1, null, locators);
+      putAndWaitForSuccess(vm2, REGION_NAME, "key2", "value2");
+      Assert.assertEquals("value2", getInVM(vm1, "key2"));
+    }catch(Exception ec) {
+      if(ec.getCause() != null && !(ec.getCause().getCause() instanceof BindException))
+        throw ec;
+      //else BindException let it pass
+    }
   }
   
   public void testEmbeddedLocator() throws Exception  {


[02/18] incubator-geode git commit: GEODE-1123: Exclude the locator in StreamingOperationManyDUnitTest

Posted by je...@apache.org.
GEODE-1123: Exclude the locator in StreamingOperationManyDUnitTest

This test was calling getOtherDistributionManagerIds, which included
that locator. There seemed to be some race where the test would pass and
find 4 but if I added a sleep the test would always fail with 5 members
(the 4 VMs and the locator).

The test now doesn't use getOtherDistributionManagerIds at all, since it
really was just trying to get the list of member ids of the other VMs.


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

Branch: refs/heads/feature/GEODE-17-2
Commit: 51acabcbb96b541c90a225864b64af40ec661232
Parents: a1f11c0
Author: Dan Smith <up...@apache.org>
Authored: Wed Mar 30 17:54:28 2016 -0700
Committer: Dan Smith <up...@apache.org>
Committed: Thu Mar 31 10:04:09 2016 -0700

----------------------------------------------------------------------
 .../StreamingOperationManyDUnitTest.java         | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/51acabcb/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/streaming/StreamingOperationManyDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/streaming/StreamingOperationManyDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/streaming/StreamingOperationManyDUnitTest.java
index 91e5e20..a5bba7c 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/streaming/StreamingOperationManyDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/streaming/StreamingOperationManyDUnitTest.java
@@ -20,15 +20,20 @@
 //
 package com.gemstone.gemfire.distributed.internal.streaming;
 
+import static com.gemstone.gemfire.test.dunit.Wait.pause;
+
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.TimeUnit;
 
 import com.gemstone.gemfire.LogWriter;
+import com.gemstone.gemfire.distributed.internal.DM;
 import com.gemstone.gemfire.distributed.internal.DistributionMessage;
 import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
 import com.gemstone.gemfire.distributed.internal.ReplyException;
@@ -39,6 +44,7 @@ import com.gemstone.gemfire.test.dunit.DistributedTestCase;
 import com.gemstone.gemfire.test.dunit.Host;
 import com.gemstone.gemfire.test.dunit.SerializableRunnable;
 import com.gemstone.gemfire.test.dunit.VM;
+import com.jayway.awaitility.Awaitility;
 
 public class StreamingOperationManyDUnitTest extends DistributedTestCase {
 
@@ -52,21 +58,14 @@ public class StreamingOperationManyDUnitTest extends DistributedTestCase {
     // ask four other VMs to connect to the distributed system
     // this will be the data provider
     Host host = Host.getHost(0);
+    HashSet<InternalDistributedMember> otherMemberIds = new HashSet<>();
     for (int i = 0; i < 4; i++) {
       VM vm = host.getVM(i);
-      vm.invoke(new SerializableRunnable("connect to system") {
-        public void run() {
-          assertTrue(getSystem() != null);
-        }
-      });
+      otherMemberIds.add(vm.invoke(() -> getSystem().getDistributedMember()));
     }
 
-    // get the other member id that connected
-    // by getting the list of other member ids and
-    Set setOfIds = getSystem().getDistributionManager().getOtherNormalDistributionManagerIds();
-    assertEquals(4, setOfIds.size());
     TestStreamingOperationManyProviderNoExceptions streamOp = new TestStreamingOperationManyProviderNoExceptions(getSystem());
-    streamOp.getDataFromAll(setOfIds);
+    streamOp.getDataFromAll(otherMemberIds);
     assertTrue(streamOp.dataValidated);
   }
 


[05/18] incubator-geode git commit: GEODE-1142: Modified the cleanUpVM function to clear all directories.

Posted by je...@apache.org.
GEODE-1142: Modified the cleanUpVM function to clear all directories.

* Fixed cleanDiskDir function to delete BACKUPDiskStore files.
* Removed System.property("vmid") in cleanDiskDir as this property was never set in the project.
* Replaced removePDXDirs with cleanDiskDirs function to clean up all the directories.

This closes #119


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

Branch: refs/heads/feature/GEODE-17-2
Commit: 295db7b0ca2cdf635284e57891e1c7edc74333ac
Parents: 859b4f6
Author: nabarun <nn...@pivotal.io>
Authored: Tue Mar 29 15:27:31 2016 -0700
Committer: Jason Huynh <hu...@gmail.com>
Committed: Thu Mar 31 14:17:19 2016 -0700

----------------------------------------------------------------------
 .../cache/internal/JUnit4CacheTestCase.java      | 19 +++++++++++--------
 .../gemfire/internal/cache/wan/WANTestBase.java  |  2 +-
 2 files changed, 12 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/295db7b0/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/cache/internal/JUnit4CacheTestCase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/cache/internal/JUnit4CacheTestCase.java b/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/cache/internal/JUnit4CacheTestCase.java
index d3988ef..b5bd5f7 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/cache/internal/JUnit4CacheTestCase.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/cache/internal/JUnit4CacheTestCase.java
@@ -21,6 +21,7 @@ import java.io.FileWriter;
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.Arrays;
 import java.util.Map;
 import java.util.Properties;
 
@@ -537,15 +538,17 @@ public class JUnit4CacheTestCase extends JUnit4DistributedTestCase implements Ca
 
   public static final void cleanDiskDirs() throws IOException {
     FileUtil.delete(getDiskDir());
-    File[] defaultStoreFiles = new File(".").listFiles(new FilenameFilter() {
-      @Override
-      public boolean accept(File dir, String name) {
-        return name.startsWith("BACKUPDiskStore-" + System.getProperty("vmid"));
-      }
-    });
+    Arrays.stream(new File(".").listFiles()).forEach(file -> deleteBACKUPDiskStoreFile(file));
+  }
 
-    for(File file: defaultStoreFiles) {
-      FileUtil.delete(file);
+  private static void deleteBACKUPDiskStoreFile(final File file) {
+    if(file.getName().startsWith("BACKUPDiskStore-")){
+      try {
+        FileUtil.delete(file);
+      }
+      catch (IOException e) {
+        throw new RuntimeException("Unable to delete BACKUPDiskStore file", e);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/295db7b0/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 bfcb910..d73084b 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
@@ -5069,7 +5069,7 @@ public class WANTestBase extends DistributedTestCase{
       Locator.getLocator().stop();
     }
     closeCache();
-    deletePDXDir();
+    CacheTestCase.cleanDiskDirs();
   }
 
   public static void closeCache() throws IOException {


[09/18] incubator-geode git commit: GEODE-483 udated previous commit to avoid BindException in text code.

Posted by je...@apache.org.
GEODE-483 udated previous commit to avoid BindException in text code.


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

Branch: refs/heads/feature/GEODE-17-2
Commit: 7c777b1b345a52d698825c7d045d6687ed59a8f7
Parents: a781843
Author: Hitesh Khamesra <hk...@pivotal.io>
Authored: Fri Apr 1 09:40:36 2016 -0700
Committer: Hitesh Khamesra <hk...@pivotal.io>
Committed: Fri Apr 1 09:41:53 2016 -0700

----------------------------------------------------------------------
 .../cache/client/internal/AutoConnectionSourceDUnitTest.java   | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/7c777b1b/geode-core/src/test/java/com/gemstone/gemfire/cache/client/internal/AutoConnectionSourceDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/cache/client/internal/AutoConnectionSourceDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/cache/client/internal/AutoConnectionSourceDUnitTest.java
index cc5bffa..cfcff5e 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/cache/client/internal/AutoConnectionSourceDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/cache/client/internal/AutoConnectionSourceDUnitTest.java
@@ -180,9 +180,9 @@ public class AutoConnectionSourceDUnitTest extends LocatorTestBase {
       putAndWaitForSuccess(vm2, REGION_NAME, "key2", "value2");
       Assert.assertEquals("value2", getInVM(vm1, "key2"));
     }catch(Exception ec) {
-      if(ec.getCause() != null && !(ec.getCause().getCause() instanceof BindException))
-        throw ec;
-      //else BindException let it pass
+      if(ec.getCause() != null && (ec.getCause().getCause() instanceof BindException))
+        return;//BindException let it pass
+      throw ec;
     }
   }
   


[08/18] incubator-geode git commit: GEODE-1143: Reverting GC changes to test.gradle

Posted by je...@apache.org.
GEODE-1143: Reverting GC changes to test.gradle


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

Branch: refs/heads/feature/GEODE-17-2
Commit: a781843b160de7b751b8d32990a163fe31ef798c
Parents: 8503fc3
Author: Udo Kohlmeyer <uk...@pivotal.io>
Authored: Fri Apr 1 16:40:20 2016 +1100
Committer: Udo Kohlmeyer <uk...@pivotal.io>
Committed: Fri Apr 1 16:40:20 2016 +1100

----------------------------------------------------------------------
 gradle/test.gradle | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a781843b/gradle/test.gradle
----------------------------------------------------------------------
diff --git a/gradle/test.gradle b/gradle/test.gradle
index 23a2b0e..2dd7521 100644
--- a/gradle/test.gradle
+++ b/gradle/test.gradle
@@ -201,7 +201,8 @@ subprojects {
         }
         
         maxHeapSize '768m'
-        jvmArgs = ['-XX:+HeapDumpOnOutOfMemoryError', '-ea',"-XX:+PrintGC", "-XX:+PrintGCDetails","-XX:+PrintGCTimeStamps"]
+//        jvmArgs = ['-XX:+HeapDumpOnOutOfMemoryError', '-ea',"-XX:+PrintGC", "-XX:+PrintGCDetails","-XX:+PrintGCTimeStamps"]
+        jvmArgs = ['-XX:+HeapDumpOnOutOfMemoryError', '-ea']
 
         systemProperty 'gemfire.DEFAULT_MAX_OPLOG_SIZE', '10'
         systemProperty 'gemfire.disallowMcastDefaults', 'true'


[04/18] incubator-geode git commit: GEODE-1031 Now pool closes queueMge before connectionMgr

Posted by je...@apache.org.
GEODE-1031 Now pool closes queueMge before connectionMgr

At cache close, there is possibility that queueMgr is trying to
recover queue but cache/pool trying to close cache with keep-alive
false flag. During this time there is possibility that client(queueMgr)
may be unable to close socket properly as it doesn't know about
keep-alive flag. Thats why closing connectionMge after queueMgr
so that it should be able to send keep-alive flage properly
to server.


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

Branch: refs/heads/feature/GEODE-17-2
Commit: 859b4f6c891ed3f1a93687db1197890b95784dd5
Parents: 7708c3f
Author: Hitesh Khamesra <hk...@pivotal.io>
Authored: Thu Mar 31 10:19:12 2016 -0700
Committer: Hitesh Khamesra <hk...@pivotal.io>
Committed: Thu Mar 31 13:37:10 2016 -0700

----------------------------------------------------------------------
 .../gemfire/cache/client/internal/PoolImpl.java         | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/859b4f6c/geode-core/src/main/java/com/gemstone/gemfire/cache/client/internal/PoolImpl.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/client/internal/PoolImpl.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/client/internal/PoolImpl.java
index 84debc8..65a4dd1 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/client/internal/PoolImpl.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/client/internal/PoolImpl.java
@@ -550,19 +550,19 @@ public class PoolImpl implements InternalPool {
       } 
 
       try {
-        if(this.manager != null) {
-          manager.close(keepAlive);
+        if(this.queueManager != null) {
+          queueManager.close(keepAlive);
         }
       } catch(RuntimeException e) {
-        logger.error(LocalizedMessage.create(LocalizedStrings.PoolImpl_ERROR_ENCOUNTERED_WHILE_STOPPING_CONNECTION_MANAGER), e);
+        logger.error(LocalizedMessage.create(LocalizedStrings.PoolImpl_ERROR_ENCOUNTERED_WHILE_STOPPING_SUBSCRIPTION_MANAGER), e);
       }
       
       try {
-        if(this.queueManager != null) {
-          queueManager.close(keepAlive);
+        if(this.manager != null) {
+          manager.close(keepAlive);
         }
       } catch(RuntimeException e) {
-        logger.error(LocalizedMessage.create(LocalizedStrings.PoolImpl_ERROR_ENCOUNTERED_WHILE_STOPPING_SUBSCRIPTION_MANAGER), e);
+        logger.error(LocalizedMessage.create(LocalizedStrings.PoolImpl_ERROR_ENCOUNTERED_WHILE_STOPPING_CONNECTION_MANAGER), e);
       }
       
       try {


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

Posted by je...@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/feature/GEODE-17-2
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


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

Posted by je...@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");


[03/18] incubator-geode git commit: GEODE-1152: improve javadocs with guidelines for Awaitility

Posted by je...@apache.org.
GEODE-1152: improve javadocs with guidelines for Awaitility


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

Branch: refs/heads/feature/GEODE-17-2
Commit: 7708c3f94c44736c7d3b21a7b4c9bbf0fd64c815
Parents: 51acabc
Author: Kirk Lund <kl...@apache.org>
Authored: Wed Mar 30 17:31:23 2016 -0700
Committer: Kirk Lund <kl...@apache.org>
Committed: Thu Mar 31 10:31:46 2016 -0700

----------------------------------------------------------------------
 .../com/gemstone/gemfire/test/dunit/Wait.java   | 70 +++++++++++++++++++-
 .../gemfire/test/dunit/WaitCriterion.java       | 12 +++-
 2 files changed, 78 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/7708c3f9/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/Wait.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/Wait.java b/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/Wait.java
index 3e218df..b73a25c 100755
--- a/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/Wait.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/Wait.java
@@ -28,7 +28,7 @@ import com.gemstone.gemfire.internal.logging.LogService;
  * <code>Wait</code> provides static utility methods to wait for some
  * asynchronous action with intermittent polling.
  * 
- * These methods can be used directly: <code>Wait.waitForCriterion(...)</code>, 
+ * These methods can be used directly: <code>Wait.waitForCriterion(...)</code>,
  * however, they are intended to be referenced through static import:
  *
  * <pre>
@@ -38,8 +38,74 @@ import com.gemstone.gemfire.internal.logging.LogService;
  * </pre>
  *
  * Extracted from DistributedTestCase.
- * 
+ *
+ * <p>Deprecated in favor of using {@link com.jayway.awaitility.Awaitility}.
+ *
+ * <p>Examples of using Awaitility:<pre>
+ *
+ * import static com.jayway.awaitility.Awaitility.*;
+ * import static com.jayway.awaitility.Duration.*; // optional
+ * import static java.util.concurrent.TimeUnit.*; // optional
+ *
+ * await().atMost(2, SECONDS).until(() -> isDone());
+ *
+ * Host.getHost(0).getVM(0).invoke(() -> await().atMost(1, MINUTES).until(() -> isDone()));
+ *
+ * Host.getHost(0).getVM(0).invoke(() -> await("waiting for 4 members").atMost(5, SECONDS).until(() -> getMemberCount(), is(4)));
+ *
+ * await().atMost(5, SECONDS).untilCall(getValue(), equalTo(5));
+ *
+ * volatile boolean done = false;
+ * await().atMost(2, SECONDS).untilCall(Boolean.class, equalTo(this.done));
+ *
+ * AtomicBoolean closed = new AtomicBoolean();
+ * await().atMost(5, SECONDS).untilTrue(closed);
+ *
+ * AtomicBoolean running = new AtomicBoolean();
+ * await().atMost(30, SECONDS).untilFalse(running);
+ *
+ * List members = new ArrayList();
+ * await().untilCall(to(members).size(), greaterThan(2));
+ * </pre>
+ *
+ * <p>NOTE: By default, the pollDelay is equal to the pollInterval which defaults to
+ * ONE_HUNDRED_MILLISECONDS. You may want to add pollDelay(ZERO) to force
+ * Awaitility to check your condition before waiting the pollInterval.
+ *
+ * <p>Example of detailed conversion to Awaitility:<pre>
+ * From:
+ *
+ * public boolean waitForClose() {
+ *   WaitCriterion ev = new WaitCriterion() {
+ *     public boolean done() {
+ *       return isClosed();
+ *     }
+ *     public String description() {
+ *       return "resource never closed";
+ *     }
+ *   };
+ *   Wait.waitForCriterion(ev, 2000, 200, true);
+ *   return true;
+ * }
+ *
+ * To:
+ *
+ * import static com.jayway.awaitility.Awaitility.*;
+ * import static com.jayway.awaitility.Duration.*;
+ * import static java.util.concurrent.TimeUnit.*;
+ *
+ * await("resource never closed").atMost(2, SECONDS).untilCall(() -> isClosed());
+ *
+ * Or:
+ *
+ * await("resource never closed").atMost(2, SECONDS).pollDelay(ZERO).pollInterval(200, MILLISECONDS).untilCall(() -> isClosed());
+ * </pre>
+ *
  * @deprecated Use {@link com.jayway.awaitility.Awaitility} instead.
+ *
+ * @see com.jayway.awaitility.Awaitility
+ * @see com.jayway.awaitility.Duration
+ * @see com.jayway.awaitility.core.ConditionFactory
  */
 @Deprecated
 public class Wait {

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/7708c3f9/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/WaitCriterion.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/WaitCriterion.java b/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/WaitCriterion.java
index 7575f8c..e62d354 100755
--- a/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/WaitCriterion.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/test/dunit/WaitCriterion.java
@@ -20,9 +20,17 @@ package com.gemstone.gemfire.test.dunit;
  * Defines an asynchronous criterion to wait for by invoking a method in 
  * {@link Wait}.
  *
- * Extracted from DistributedTestCase.
- * 
+ * <p>Extracted from DistributedTestCase.
+ *
+ * <p>See javadocs on {@link Wait} for examples and guidelines for converting
+ * to Awaitility.
+ *
  * @deprecated Use {@link com.jayway.awaitility.Awaitility} instead.
+ *
+ * @see Wait
+ * @see com.jayway.awaitility.Awaitility
+ * @see com.jayway.awaitility.Duration
+ * @see com.jayway.awaitility.core.ConditionFactory
  */
 public interface WaitCriterion {
   


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

Posted by je...@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 ));



[06/18] incubator-geode git commit: GEODE-1150 increased wait to join locator to cluster.

Posted by je...@apache.org.
GEODE-1150 increased wait to join locator to cluster.


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

Branch: refs/heads/feature/GEODE-17-2
Commit: dd19d8ca128b9d16be8521ea0b8b84f8e1fa6005
Parents: 295db7b
Author: Hitesh Khamesra <hk...@pivotal.io>
Authored: Thu Mar 31 13:36:50 2016 -0700
Committer: Hitesh Khamesra <hk...@pivotal.io>
Committed: Thu Mar 31 15:03:09 2016 -0700

----------------------------------------------------------------------
 .../java/com/gemstone/gemfire/distributed/LocatorDUnitTest.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/dd19d8ca/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorDUnitTest.java
index 2d0451a..b3cc86c 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorDUnitTest.java
@@ -1552,7 +1552,7 @@ public class LocatorDUnitTest extends DistributedTestCase {
             return null;
           }
         };
-        Wait.waitForCriterion(waitCriterion, 10 * 1000, 200, true);
+        Wait.waitForCriterion(waitCriterion, 15 * 1000, 200, true);
 
         int netviewId = vm1.invoke(() -> GMSJoinLeaveTestHelper.getViewId());
         assertEquals(netviewId, (int) vm2.invoke(() -> GMSJoinLeaveTestHelper.getViewId()));


[17/18] incubator-geode git commit: GEODE-389 Required Role APIs should be deprecated

Posted by je...@apache.org.
GEODE-389 Required Role APIs should be deprecated

Added more complete deprecation notices for Required Roles APIs


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

Branch: refs/heads/feature/GEODE-17-2
Commit: 3c4b3e6d4aa8325976912310ce9d8c61a676e58c
Parents: 65d7a6f
Author: Bruce Schuchardt <bs...@pivotal.io>
Authored: Fri Apr 1 09:43:05 2016 -0700
Committer: Bruce Schuchardt <bs...@pivotal.io>
Committed: Fri Apr 1 10:57:46 2016 -0700

----------------------------------------------------------------------
 .../gemstone/gemfire/admin/SystemMemberRegion.java    |  2 +-
 .../com/gemstone/gemfire/cache/AttributesFactory.java |  8 ++++++--
 .../java/com/gemstone/gemfire/cache/LossAction.java   |  2 +-
 .../gemstone/gemfire/cache/MembershipAttributes.java  |  2 +-
 .../gemstone/gemfire/cache/RegionAccessException.java |  2 +-
 .../com/gemstone/gemfire/cache/RegionAttributes.java  |  2 +-
 .../gemfire/cache/RegionDistributionException.java    |  2 +-
 .../com/gemstone/gemfire/cache/RegionFactory.java     |  1 +
 .../gemstone/gemfire/cache/RegionRoleException.java   |  2 +-
 .../gemstone/gemfire/cache/RegionRoleListener.java    |  2 +-
 .../com/gemstone/gemfire/cache/RequiredRoles.java     |  2 +-
 .../com/gemstone/gemfire/cache/ResumptionAction.java  |  2 +-
 .../java/com/gemstone/gemfire/cache/RoleEvent.java    |  2 +-
 .../com/gemstone/gemfire/cache/RoleException.java     |  2 +-
 .../gemfire/cache/util/RegionRoleListenerAdapter.java |  2 +-
 .../gemfire/distributed/DistributedSystem.java        | 14 +++-----------
 .../java/com/gemstone/gemfire/distributed/Role.java   |  2 +-
 .../distributed/internal/membership/InternalRole.java |  2 +-
 .../membership/gms/messenger/JGroupsMessenger.java    |  8 +++++++-
 .../cache/xmlcache/RegionAttributesCreation.java      |  8 ++++++--
 .../gemfire/management/DistributedRegionMXBean.java   |  2 ++
 .../gemfire/management/GemFireProperties.java         |  3 +++
 .../gemfire/management/MembershipAttributesData.java  |  3 +--
 .../com/gemstone/gemfire/management/RegionMXBean.java |  2 ++
 .../com/gemstone/gemfire/cache/doc-files/cache8_0.dtd |  4 +++-
 25 files changed, 49 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegion.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegion.java b/geode-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegion.java
index f76d3b9..fff825a 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegion.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegion.java
@@ -301,7 +301,7 @@ public interface SystemMemberRegion {
   /**
    * Returns the <code>MembershipAttributes</code> that configure required
    * roles for reliable access to the region.
-   * @since 5.0
+   * @deprecated this API is scheduled to be removed
    */
   public MembershipAttributes getMembershipAttributes();
   

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/AttributesFactory.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/AttributesFactory.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/AttributesFactory.java
index df6a6a8..201c1aa 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/AttributesFactory.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/AttributesFactory.java
@@ -302,7 +302,7 @@ import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
  *     are missing from the region membership.
  *     <br>
  *     {@link #setMembershipAttributes} {@link RegionAttributes#getMembershipAttributes}</dd>
- *
+ * <dd><em>Deprecated</em>, this API is scheduled to be removed</dd>
  * </dt>
  * </dl>
  *
@@ -1180,7 +1180,7 @@ public class AttributesFactory<K,V> {
    * Sets the <code>MembershipAttributes</code> that describe the membership
    * roles required for reliable access to the region.
    *
-   * @since 5.0
+   * @deprecated this API is scheduled to be removed
    */
   public void setMembershipAttributes(MembershipAttributes membership) {
     this.regionAttributes.membershipAttributes = membership;
@@ -1979,9 +1979,13 @@ public class AttributesFactory<K,V> {
       return this.customEvictionAttributes;
     }
 
+    /**
+     * @deprecated this API is scheduled to be removed
+     */
     public MembershipAttributes getMembershipAttributes() {
       return this.membershipAttributes;
     }
+    
     public SubscriptionAttributes getSubscriptionAttributes() {
       return this.subscriptionAttributes;
     }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/LossAction.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/LossAction.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/LossAction.java
index 08372df..7c428a1 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/LossAction.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/LossAction.java
@@ -28,7 +28,7 @@ import java.util.*;
  * The <code>LossAction</code> is specified when configuring a region's
  * {@link com.gemstone.gemfire.cache.MembershipAttributes}.
  * 
- * @since 5.0
+ * @deprecated this feature is scheduled to be removed
  */
 public class LossAction implements Serializable {
   private static final long serialVersionUID = -832035480397447797L;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/MembershipAttributes.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/MembershipAttributes.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/MembershipAttributes.java
index dd0e91a..5a1c451 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/MembershipAttributes.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/MembershipAttributes.java
@@ -45,7 +45,7 @@ import java.util.*;
  * required roles are specified.  These attributes are immutable after the
  * <code>Region</code> has been created.</p>
  * 
- * @since 5.0
+ * @deprecated this feature is scheduled to be removed
  */
 public class MembershipAttributes implements DataSerializable, Externalizable {
   

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionAccessException.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionAccessException.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionAccessException.java
index 899bf4e..9d9ebd8 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionAccessException.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionAccessException.java
@@ -28,7 +28,7 @@ import com.gemstone.gemfire.distributed.internal.membership.InternalRole;
  * {@link MembershipAttributes} have been configured with {@link 
  * LossAction#NO_ACCESS} or {@link LossAction#LIMITED_ACCESS}.
  *
- * @since 5.0
+ * @deprecated the MembershipAttributes API is scheduled to be removed
  */
 public class RegionAccessException extends RegionRoleException {
 private static final long serialVersionUID = 3142958723089038406L;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionAttributes.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionAttributes.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionAttributes.java
index 4ab576a..dd5c0e0 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionAttributes.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionAttributes.java
@@ -273,7 +273,7 @@ public interface RegionAttributes<K,V> {
    * Returns the <code>MembershipAttributes</code> that configure required
    * roles for reliable access to the region.
    *
-   * @since 5.0
+   * @deprecated this API is scheduled to be removed
    */
   public MembershipAttributes getMembershipAttributes();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionDistributionException.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionDistributionException.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionDistributionException.java
index b30cd2c..81ee2b7 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionDistributionException.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionDistributionException.java
@@ -31,7 +31,7 @@ import com.gemstone.gemfire.distributed.internal.membership.InternalRole;
  * may be caused by one or more required roles not acknowledging receipt of
  * the message.
  *
- * @since 5.0
+ * @deprecated the MembershipAttributes API is scheduled to be removed
  */
 public class RegionDistributionException extends RegionRoleException {
 private static final long serialVersionUID = -5950359426786805646L;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionFactory.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionFactory.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionFactory.java
index a83aa20..729374e 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionFactory.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionFactory.java
@@ -745,6 +745,7 @@ public class RegionFactory<K,V>
    * @param ra the MembershipAttributes to use
    * @return a reference to this RegionFactory object
    * @see AttributesFactory#setMembershipAttributes
+   * @deprecated this API is scheduled to be removed
    */
   public RegionFactory<K,V> setMembershipAttributes(MembershipAttributes ra) {
     this.attrsFactory.setMembershipAttributes(ra);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionRoleException.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionRoleException.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionRoleException.java
index 1864415..6e1c8db 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionRoleException.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionRoleException.java
@@ -21,7 +21,7 @@ package com.gemstone.gemfire.cache;
  * Reliability for a <code>Region</code> is defined by its 
  * {@link MembershipAttributes}.
  *
- * @since 5.0
+ * @deprecated this feature is scheduled to be removed
  */
 public abstract class RegionRoleException extends RoleException {
   

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionRoleListener.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionRoleListener.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionRoleListener.java
index e633396..96df589 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionRoleListener.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/RegionRoleListener.java
@@ -29,7 +29,7 @@ package com.gemstone.gemfire.cache;
  * @see AttributesFactory#setCacheListener
  * @see RegionAttributes#getCacheListener
  * @see AttributesMutator#setCacheListener
- * @since 5.0
+ * @deprecated this feature is scheduled to be removed
  */
 public interface RegionRoleListener<K,V> extends CacheListener<K,V> {
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/RequiredRoles.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/RequiredRoles.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/RequiredRoles.java
index 035f62c..a56a749 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/RequiredRoles.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/RequiredRoles.java
@@ -36,8 +36,8 @@ import java.util.*;
  * specific <code>Region</code> created. In this case the <code>Role</code> is
  * considered to be absent for that <code>Region</code>.
  *
+ * @deprecated this feature is scheduled to be removed
  * @see com.gemstone.gemfire.distributed.Role
- * @since 5.0
  */
 public class RequiredRoles {
   

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/ResumptionAction.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/ResumptionAction.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/ResumptionAction.java
index a3fbf57..4201dce 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/ResumptionAction.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/ResumptionAction.java
@@ -27,7 +27,7 @@ import java.util.*;
  * The <code>ResumptionAction</code> is specified when configuring a region's 
  * {@link com.gemstone.gemfire.cache.MembershipAttributes}.
  * 
- * @since 5.0
+ * @deprecated this API is scheduled to be removed
  */
 public class ResumptionAction implements java.io.Serializable {
   private static final long serialVersionUID = 6632254151314915610L;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/RoleEvent.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/RoleEvent.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/RoleEvent.java
index b38835e..734843d 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/RoleEvent.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/RoleEvent.java
@@ -24,8 +24,8 @@ import java.util.Set;
  * including its identity and the circumstances of the event. This is 
  * passed in to {@link RegionRoleListener}.
  *
+ * @deprecated this feature is scheduled to be removed
  * @see RegionRoleListener
- * @since 5.0
  */
 public interface RoleEvent<K,V> extends RegionEvent<K,V> {
   

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/RoleException.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/RoleException.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/RoleException.java
index 088f504..467469a 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/RoleException.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/RoleException.java
@@ -22,7 +22,7 @@ package com.gemstone.gemfire.cache;
  * Region regions} that have been configured with required roles using 
  * {@link MembershipAttributes}.
  *
- * @since 5.0
+ * @deprecated this feature is scheduled to be removed
  */
 public abstract class RoleException extends CacheRuntimeException {
   private static final long serialVersionUID = -7521056108445887394L;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/cache/util/RegionRoleListenerAdapter.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/cache/util/RegionRoleListenerAdapter.java b/geode-core/src/main/java/com/gemstone/gemfire/cache/util/RegionRoleListenerAdapter.java
index f4dd795..db3cc2d 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/cache/util/RegionRoleListenerAdapter.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/cache/util/RegionRoleListenerAdapter.java
@@ -25,7 +25,7 @@ import com.gemstone.gemfire.cache.RoleEvent;
  * Applications can subclass this class and only override the methods for 
  * the events of interest.
  * 
- * @since 5.0
+ * @deprecated this feature is scheduled to be removed
  */
 public abstract class RegionRoleListenerAdapter<K,V> 
 extends RegionMembershipListenerAdapter<K,V>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/distributed/DistributedSystem.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/distributed/DistributedSystem.java b/geode-core/src/main/java/com/gemstone/gemfire/distributed/DistributedSystem.java
index 0eb0115..1de675d 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/distributed/DistributedSystem.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/distributed/DistributedSystem.java
@@ -110,7 +110,7 @@ import com.gemstone.gemfire.security.GemFireSecurityException;
  *   <a name="groups"><dt>groups</dt></a>
  *   <dd><U>Description</U>: Defines the list of groups this member belongs to.
  *   Use commas to separate group names.
- *   Note that anything defined by the roles gemfire property will also be considered a group.
+ *   Note that anything defined by the deprecated roles gemfire property will also be considered a group.
  *   <dd><U>Default</U>: ""</dd>
  *   <dd><U>Since</U>: 7.0</dd>
  * </dl>
@@ -780,7 +780,7 @@ import com.gemstone.gemfire.security.GemFireSecurityException;
  *   </dd>
  *   <dd><U>Default</U>: ""</dd>
  *   <dd><U>Since</U>: 5.0</dd>
- *   <dd><U>Deprecated</U>: as of 7.0 use <a href="#groups"><code>groups</code></a> instead.</dd>
+ *   <dd><U>Deprecated</U>: This feature is scheduled to be removed.</dd>
  * </dl>
  *
  * <dl>
@@ -800,6 +800,7 @@ import com.gemstone.gemfire.security.GemFireSecurityException;
  *   to reconnect to the distributed system when required roles are missing.
  *   This does not apply to reconnect attempts due to a forced disconnect.
  *   </dd>
+ *   <dd><U>Deprecated</U>: this setting is scheduled to be removed.</dd>
  *   <dd><U>Default</U>: "3"</dd>
  *   <dd><U>Since</U>: 5.0</dd>
  * </dl>
@@ -1498,15 +1499,6 @@ public abstract class DistributedSystem implements StatisticsFactory {
    */
   protected static final Object existingSystemsLock = new Object();
 
-  //public static Properties props = new Properties();
-
-  /**
-   * Used to indicate a reconnect is tried in case of required role
-   * loss.
-   * */
-
- // public static boolean reconnect = false;
-
   ////////////////////////  Static Methods  ////////////////////////
 
   /**

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/distributed/Role.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/distributed/Role.java b/geode-core/src/main/java/com/gemstone/gemfire/distributed/Role.java
index cc3b941..f095119 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/distributed/Role.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/distributed/Role.java
@@ -24,7 +24,7 @@ package com.gemstone.gemfire.distributed;
  * <a href="DistributedSystem.html#roles">Roles are specified</a> when 
  * connecting to the {@link DistributedSystem}.
  *
- * @since 5.0
+ * @deprecated this feature is scheduled to be removed
  */
 public interface Role extends Comparable<Role> {
   

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/InternalRole.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/InternalRole.java b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/InternalRole.java
index 45cd7a4..69d0ad4 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/InternalRole.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/InternalRole.java
@@ -41,7 +41,7 @@ import java.util.*;
  * and {@link com.gemstone.gemfire.cache.RegionDistributionException 
  * RegionDistributionException} for examples on how to do this.</p>
  *
- * @since 5.0
+ * @deprecated this feature is scheduled to be removed
  */
 public class InternalRole implements Role {
   

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/JGroupsMessenger.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/JGroupsMessenger.java b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/JGroupsMessenger.java
index f94791f..2dfeeaa 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/JGroupsMessenger.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/JGroupsMessenger.java
@@ -556,7 +556,13 @@ public class JGroupsMessenger implements Messenger {
       }
       String received = "none";
       long[] senderSeqnos = digest.get(jgSender);
-      if (senderSeqnos == null || senderSeqnos[0] >= seqno.longValue()) {
+      if (senderSeqnos == null) {
+        break;
+      }
+      if (logger.isDebugEnabled()) {
+        logger.debug("waiting for multicast messages from {}.  Current seqno={} and expected seqno={}", sender, senderSeqnos[0], seqno);
+      }
+      if (senderSeqnos[0] >= seqno.longValue()) {
         break;
       }
       long now = System.currentTimeMillis();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/xmlcache/RegionAttributesCreation.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/xmlcache/RegionAttributesCreation.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/xmlcache/RegionAttributesCreation.java
index 1556262..d0f5676 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/xmlcache/RegionAttributesCreation.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/xmlcache/RegionAttributesCreation.java
@@ -1514,12 +1514,16 @@ public class RegionAttributesCreation extends UserSpecifiedRegionAttributes impl
     }
   }
 
-  /** @since 5.0 */
+  /**
+   * @deprecated this API is scheduled to be removed
+   */
   public MembershipAttributes getMembershipAttributes() {
     return this.membershipAttributes;
   }
 
-  /** @since 5.0 */
+  /**
+   * @deprecated this API is scheduled to be removed
+   */
   public void setMembershipAttributes(MembershipAttributes pa) {
     this.membershipAttributes = pa;
     setHasMembershipAttributes(true);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/management/DistributedRegionMXBean.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/management/DistributedRegionMXBean.java b/geode-core/src/main/java/com/gemstone/gemfire/management/DistributedRegionMXBean.java
index 3edda27..3003827 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/management/DistributedRegionMXBean.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/management/DistributedRegionMXBean.java
@@ -91,6 +91,8 @@ public interface DistributedRegionMXBean {
 
   /**
    * Returns the membership attributes of the Region.
+   * 
+   * @deprecated this API is scheduled to be removed
    */
   public MembershipAttributesData listMembershipAttributes();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/management/GemFireProperties.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/management/GemFireProperties.java b/geode-core/src/main/java/com/gemstone/gemfire/management/GemFireProperties.java
index 0bb2c8b..07dad13 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/management/GemFireProperties.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/management/GemFireProperties.java
@@ -314,6 +314,7 @@ public class GemFireProperties {
    * distributed system. This is a comma delimited list of user-defined strings.
    * Any number of members can be configured to perform the same role, and a
    * member can be configured to perform any number of roles.
+   * @deprecated this feature is scheduled to be removed
    **/
   private String roles;
   /**
@@ -321,6 +322,7 @@ public class GemFireProperties {
    * system to reconnect in case of required role loss. The system will attempt
    * to reconnect more than once, and this timeout period applies to each
    * reconnection attempt. Default: "10000"
+   * @deprecated this feature is scheduled to be removed
    **/
   private int maxWaitTimeForReconnect;
   /**
@@ -337,6 +339,7 @@ public class GemFireProperties {
    * asynchronous messaging until this process catches up, departs, or some
    * specified limit is reached, such as async-queue-timeout or
    * async-max-queue-size. Default: "0"
+   * @deprecated this feature is scheduled to be removed
    **/
   private int asyncDistributionTimeout;
   /**

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/management/MembershipAttributesData.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/management/MembershipAttributesData.java b/geode-core/src/main/java/com/gemstone/gemfire/management/MembershipAttributesData.java
index be0bfb5..f60e4b5 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/management/MembershipAttributesData.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/management/MembershipAttributesData.java
@@ -26,8 +26,7 @@ import com.gemstone.gemfire.distributed.Role;
  * Composite data type used to distribute the membership attributes for
  * a {@link Region}.
  * 
- * @since 7.0
- * 
+ * @deprecated this API is scheduled to be removed
  */
 public class MembershipAttributesData {
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/java/com/gemstone/gemfire/management/RegionMXBean.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/management/RegionMXBean.java b/geode-core/src/main/java/com/gemstone/gemfire/management/RegionMXBean.java
index 33f827a..8c11d00 100644
--- a/geode-core/src/main/java/com/gemstone/gemfire/management/RegionMXBean.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/management/RegionMXBean.java
@@ -87,6 +87,8 @@ public interface RegionMXBean {
 
   /**
    * Returns the membership attributes of the Region.
+   * 
+   * @deprecated this API is scheduled to be removed
    */
   public MembershipAttributesData listMembershipAttributes();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/3c4b3e6d/geode-core/src/main/resources/com/gemstone/gemfire/cache/doc-files/cache8_0.dtd
----------------------------------------------------------------------
diff --git a/geode-core/src/main/resources/com/gemstone/gemfire/cache/doc-files/cache8_0.dtd b/geode-core/src/main/resources/com/gemstone/gemfire/cache/doc-files/cache8_0.dtd
index 96610d3..f02c6b0 100644
--- a/geode-core/src/main/resources/com/gemstone/gemfire/cache/doc-files/cache8_0.dtd
+++ b/geode-core/src/main/resources/com/gemstone/gemfire/cache/doc-files/cache8_0.dtd
@@ -839,6 +839,7 @@ in the Region.  The class must implement the ObjectSizer interface.
 <!--
 A "membership-attributes" element configures a region for membership
 constraints based on required roles.
+Deprecated this feature is scheduled to be removed
 -->
 <!ELEMENT membership-attributes (required-role*)>
 <!ATTLIST membership-attributes
@@ -1015,7 +1016,8 @@ A "region-time-to-live" element specifies a Region's time to live.
 <!-- ======================================================= -->
 <!--
 A "required-role" element specifies a role that is required for reliable
-access to the region
+access to the region.
+Deprecated this feature is scheduled to be removed
 -->
 
 <!-- ======================================================= -->