You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2018/08/24 22:47:22 UTC

[geode] 01/03: GEODE-5614: rename DistributedTestRule as DistributedRule

This is an automated email from the ASF dual-hosted git repository.

klund pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 123b8c4b3a415598c9edd5a1c311b94a75ce9edf
Author: Kirk Lund <kl...@apache.org>
AuthorDate: Wed Aug 22 16:17:03 2018 -0700

    GEODE-5614: rename DistributedTestRule as DistributedRule
    
    * Cleanup javadocs on rules that referred to DistributedTestRule.
    * Add ClientCacheFactoryDistributedTest for ClientCacheRule.
---
 .../CreateAndLocalDestroyInTXRegressionTest.java   |   4 +-
 .../PRCreationTotalNumBucketsDistributedTest.java  |   4 +-
 .../cache/RegionClearStatsDistributedTest.java     |   4 +-
 .../cache/RegionExpirationDistributedTest.java     |   4 +-
 .../ReplicateCacheListenerDistributedTest.java     |  18 ++--
 .../dunit/QueryDataInconsistencyDUnitTest.java     |   4 +-
 .../geode/cache30/DiskRegionDistributedTest.java   |   4 +-
 ...okenSerializationConsistencyRegressionTest.java |   4 +-
 .../cache/BucketCreationCrashRegressionTest.java   |   4 +-
 ...ntServerTransactionFailoverDistributedTest.java |   4 +-
 ...overWithMixedVersionServersDistributedTest.java |   4 +-
 .../EntriesDoNotExpireDuringGiiRegressionTest.java |   4 +-
 ...zedDiskRegionWithIoExceptionRegressionTest.java |   4 +-
 .../cache/PRCustomPartitioningDistributedTest.java |   4 +-
 .../PREntryIdleExpirationDistributedTest.java      |   4 +-
 .../internal/cache/PRQueryDistributedTest.java     |   4 +-
 .../PRQueryWithIndexAndPdxDistributedTest.java     |   4 +-
 .../cache/PRQueryWithIndexDistributedTest.java     |   4 +-
 .../cache/PRQueryWithOrderByDistributedTest.java   |   4 +-
 ...RQueryWithPdxDuringRebalanceRegressionTest.java |   4 +-
 .../PRWithIndexAfterRebalanceRegressionTest.java   |   4 +-
 .../PartitionedRegionCloseDistributedTest.java     |   4 +-
 .../cache/PersistentRegionRecoveryDUnitTest.java   |   4 +-
 .../cache/RegionListenerDistributedTest.java       |   4 +-
 ...eplicateEntryIdleExpirationDistributedTest.java |   4 +-
 .../cache/backup/BackupDistributedTest.java        |   5 +-
 .../backup/IncrementalBackupDistributedTest.java   |   4 +-
 .../PrepareAndFinishBackupDistributedTest.java     |   4 +-
 .../ClientFunctionTimeoutRegressionTest.java       |   4 +-
 ...ctionExecutionWithExceptionDistributedTest.java |   4 +-
 ...ctionOnBehalfOfClientMemberDistributedTest.java |   4 +-
 .../cache/ha/HARegionQueueSizeRegressionTest.java  |   4 +-
 .../HARegionQueueThreadIdExpiryRegressionTest.java |   4 +-
 ...BucketCreationCrashCompletesRegressionTest.java |   4 +-
 .../BucketRebalanceStatRegressionTest.java         |   4 +-
 ...RDiskConflictWithColocationDistributedTest.java |   4 +-
 ...PersistentPartitionedRegionDistributedTest.java |   4 +-
 .../PersistentPartitionedRegionRegressionTest.java |   4 +-
 ...eueRemovalMessageProcessingDistributedTest.java |   4 +-
 .../RegisterInterestKeysValuesDistributedTest.java |   4 +-
 .../DeltaPropagationFailureRegressionTest.java     |   4 +-
 .../AcceptorImplClientQueueDistributedTest.java    |   4 +-
 ...entDestroyRegionNotificationRegressionTest.java |   4 +-
 ...troyRegionUnregisterInterestRegressionTest.java |   4 +-
 .../ClientProxyWithDeltaDistributedTest.java       |   4 +-
 .../ClientWithInterestFailoverDistributedTest.java |   4 +-
 .../GetConnectedServerCountRegressionTest.java     |   4 +-
 .../HARegionQueueStatsCloseRegressionTest.java     |   4 +-
 .../MessageTrackingTimeoutRegressionTest.java      |   4 +-
 ...nterestOnServerWithoutRegionRegressionTest.java |   4 +-
 ...isterInterestServerMetaDataDistributedTest.java |   4 +-
 ...RootRegionsExcludesHARegionsRegressionTest.java |   4 +-
 .../AsyncEventListenerDistributedTest.java         |   4 +-
 ...ventListenerWithCacheLoaderDistributedTest.java |   4 +-
 ...syncEventListenerWithFilterDistributedTest.java |   4 +-
 ...oncurrentAsyncEventListenerDistributedTest.java |   4 +-
 .../ParallelAsyncEventListenerDistributedTest.java |   4 +-
 .../SerialEventListenerDistributedTest.java        |   4 +-
 .../ClientServerJTAFailoverDistributedTest.java    |   4 +-
 .../apache/geode/management/JMXMBeanDUnitTest.java |   4 +-
 .../tests/GetCurrentVmNumDistributedTest.java      |   4 +-
 .../GetPidAndIdAfterBounceDistributedTest.java     |   4 +-
 .../dunit/tests/GetPidAndIdDistributedTest.java    |   4 +-
 .../examples/AsyncInvokeCallableExampleTest.java   |   4 +-
 .../examples/AsyncInvokeRunnableExampleTest.java   |   4 +-
 .../CatchingUnexpectedExceptionExampleTest.java    |   4 +-
 ... => DistributedRuleAsClassRuleExampleTest.java} |  32 +++++-
 .../dunit/examples/InvokeRunnableExampleTest.java  |   4 +-
 .../examples/LocatorPortClusterExampleTest.java    |   4 +-
 .../examples/ReplaceTryFinallyExampleTest.java     |   4 +-
 .../tests/CacheRuleBuilderDistributedTest.java     |   4 +-
 .../rules/tests/CacheRuleDistributedTest.java      |   4 +-
 .../tests/ClientCacheRuleDistributedTest.java      | 114 +++++++++++++++++++++
 ...utedRestoreSystemPropertiesDistributedTest.java |   4 +-
 ...st.java => DistributedRuleDistributedTest.java} |  11 +-
 .../tests/SharedCountersRuleDistributedTest.java   |  69 ++++++-------
 .../tests/SharedErrorCollectorDistributedTest.java |  45 ++++----
 .../dunit/internal/JUnit4DistributedTestCase.java  |   4 +-
 ...dTestRule.java => AbstractDistributedRule.java} |   8 +-
 .../apache/geode/test/dunit/rules/CacheRule.java   |  22 ++--
 .../test/dunit/rules/CleanupDUnitVMsRule.java      |   2 +-
 .../geode/test/dunit/rules/ClientCacheRule.java    |  36 ++++---
 .../rules/DistributedRestoreSystemProperties.java  |   2 +-
 ...stributedTestRule.java => DistributedRule.java} |  95 +++++++++++------
 .../geode/test/dunit/rules/SharedCountersRule.java |  57 ++++++++---
 .../test/dunit/rules/SharedErrorCollector.java     |  22 ++--
 .../DoNotHandleUnexpectedExceptionExampleTest.java |   2 -
 .../GatewayLegacyAuthenticationRegressionTest.java |   4 +-
 88 files changed, 517 insertions(+), 311 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/CreateAndLocalDestroyInTXRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/CreateAndLocalDestroyInTXRegressionTest.java
index a903763..8580b02 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/CreateAndLocalDestroyInTXRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/CreateAndLocalDestroyInTXRegressionTest.java
@@ -42,7 +42,7 @@ import org.apache.geode.cache.Region.Entry;
 import org.apache.geode.i18n.StringId;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 /**
  * Create and LocalDestroy/LocalInvalidate should create event with NewValue
@@ -67,7 +67,7 @@ public class CreateAndLocalDestroyInTXRegressionTest implements Serializable {
   private VM otherVM;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/PRCreationTotalNumBucketsDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/PRCreationTotalNumBucketsDistributedTest.java
index 4b02562..777576c 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/PRCreationTotalNumBucketsDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/PRCreationTotalNumBucketsDistributedTest.java
@@ -34,7 +34,7 @@ import org.apache.geode.internal.cache.PartitionedRegion;
 import org.apache.geode.test.dunit.IgnoredException;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 @SuppressWarnings("serial")
@@ -45,7 +45,7 @@ public class PRCreationTotalNumBucketsDistributedTest implements Serializable {
   private int totalNumBuckets;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/RegionClearStatsDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/RegionClearStatsDistributedTest.java
index 7e1041c..1b62369 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/RegionClearStatsDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/RegionClearStatsDistributedTest.java
@@ -34,7 +34,7 @@ import org.apache.geode.cache.client.internal.PoolImpl;
 import org.apache.geode.cache.server.CacheServer;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 /**
  * verifies the count of clear operation
@@ -54,7 +54,7 @@ public class RegionClearStatsDistributedTest implements Serializable {
   private VM client1;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/RegionExpirationDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/RegionExpirationDistributedTest.java
index bf2c750..9402428 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/RegionExpirationDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/RegionExpirationDistributedTest.java
@@ -38,7 +38,7 @@ import org.mockito.Mockito;
 
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
 /**
@@ -68,7 +68,7 @@ public class RegionExpirationDistributedTest implements Serializable {
   private VM withoutExpirationVM1;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = CacheRule.builder().createCacheInAll().build();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/ReplicateCacheListenerDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/ReplicateCacheListenerDistributedTest.java
index 7e03a40..b0e1894 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/ReplicateCacheListenerDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/ReplicateCacheListenerDistributedTest.java
@@ -26,13 +26,12 @@ import static org.hamcrest.Matchers.nullValue;
 import java.io.Serializable;
 
 import org.junit.Before;
-import org.junit.ClassRule;
 import org.junit.Rule;
 import org.junit.Test;
 
 import org.apache.geode.cache.util.CacheListenerAdapter;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.dunit.rules.SharedCountersRule;
 import org.apache.geode.test.dunit.rules.SharedErrorCollector;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
@@ -45,7 +44,6 @@ import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
  *
  * @since GemFire 2.0
  */
-
 @SuppressWarnings("serial")
 public class ReplicateCacheListenerDistributedTest implements Serializable {
 
@@ -61,8 +59,8 @@ public class ReplicateCacheListenerDistributedTest implements Serializable {
 
   private String regionName;
 
-  @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  @Rule
+  public DistributedRule distributedRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = CacheRule.builder().createCacheInAll().build();
@@ -77,7 +75,7 @@ public class ReplicateCacheListenerDistributedTest implements Serializable {
   public SharedErrorCollector errorCollector = new SharedErrorCollector();
 
   @Before
-  public void setUp() throws Exception {
+  public void setUp() {
     regionName = getClass().getSimpleName();
 
     sharedCountersRule.initialize(CREATES);
@@ -87,7 +85,7 @@ public class ReplicateCacheListenerDistributedTest implements Serializable {
   }
 
   @Test
-  public void afterCreateIsInvokedInEveryMember() throws Exception {
+  public void afterCreateIsInvokedInEveryMember() {
     CacheListener<String, Integer> listener = new CreateCountingCacheListener();
     Region<String, Integer> region = createRegion(regionName, listener);
     for (int i = 0; i < getVMCount(); i++) {
@@ -102,7 +100,7 @@ public class ReplicateCacheListenerDistributedTest implements Serializable {
   }
 
   @Test
-  public void afterUpdateIsInvokedInEveryMember() throws Exception {
+  public void afterUpdateIsInvokedInEveryMember() {
     CacheListener<String, Integer> listener = new UpdateCountingCacheListener();
     Region<String, Integer> region = createRegion(regionName, listener);
     for (int i = 0; i < getVMCount(); i++) {
@@ -118,7 +116,7 @@ public class ReplicateCacheListenerDistributedTest implements Serializable {
   }
 
   @Test
-  public void afterInvalidateIsInvokedInEveryMember() throws Exception {
+  public void afterInvalidateIsInvokedInEveryMember() {
     CacheListener<String, Integer> listener = new InvalidateCountingCacheListener();
     Region<String, Integer> region = createRegion(regionName, listener);
     for (int i = 0; i < getVMCount(); i++) {
@@ -135,7 +133,7 @@ public class ReplicateCacheListenerDistributedTest implements Serializable {
   }
 
   @Test
-  public void afterDestroyIsInvokedInEveryMember() throws Exception {
+  public void afterDestroyIsInvokedInEveryMember() {
     CacheListener<String, Integer> listener = new DestroyCountingCacheListener();
     Region<String, Integer> region = createRegion(regionName, listener);
     for (int i = 0; i < getVMCount(); i++) {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryDataInconsistencyDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryDataInconsistencyDUnitTest.java
index 05c2815..60452e9 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryDataInconsistencyDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryDataInconsistencyDUnitTest.java
@@ -53,7 +53,7 @@ import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.Invoke;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.OQLIndexTest;
 
 /**
@@ -72,7 +72,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
   private Logger logger = LogService.getLogger(QueryDataInconsistencyDUnitTest.class.getName());
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule(1);
+  public static DistributedRule distributedTestRule = new DistributedRule(1);
 
   @Rule
   public CacheRule cacheRule = CacheRule.builder().createCacheInAll().disconnectAfter().build();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/DiskRegionDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/DiskRegionDistributedTest.java
index c9600c2..35b6132 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/DiskRegionDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/DiskRegionDistributedTest.java
@@ -41,7 +41,7 @@ import org.apache.geode.internal.cache.eviction.EvictionCounters;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.DistributedDiskDirRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
 /**
@@ -61,7 +61,7 @@ public class DiskRegionDistributedTest implements Serializable {
   private VM vm3;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/BrokenSerializationConsistencyRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/BrokenSerializationConsistencyRegressionTest.java
index 6ac1922..96b75cf 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/BrokenSerializationConsistencyRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/BrokenSerializationConsistencyRegressionTest.java
@@ -42,7 +42,7 @@ import org.apache.geode.pdx.PdxSerializable;
 import org.apache.geode.pdx.PdxWriter;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 @SuppressWarnings("serial")
@@ -61,7 +61,7 @@ public class BrokenSerializationConsistencyRegressionTest implements Serializabl
   private transient byte[] bytesValue;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/BucketCreationCrashRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/BucketCreationCrashRegressionTest.java
index 4815d5f..9daa000 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/BucketCreationCrashRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/BucketCreationCrashRegressionTest.java
@@ -55,7 +55,7 @@ import org.apache.geode.test.dunit.RMIException;
 import org.apache.geode.test.dunit.SerializableRunnableIF;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.dunit.rules.SharedErrorCollector;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
@@ -80,7 +80,7 @@ public class BucketCreationCrashRegressionTest implements Serializable {
   private VM locator;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverDistributedTest.java
index b8908ea..1ae8413 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverDistributedTest.java
@@ -45,7 +45,7 @@ import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
 public class ClientServerTransactionFailoverDistributedTest implements Serializable {
@@ -66,7 +66,7 @@ public class ClientServerTransactionFailoverDistributedTest implements Serializa
   private final String originalValue = "originalValue";
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java
index 53c8914..c29e6d3 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java
@@ -56,7 +56,7 @@ import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.dunit.standalone.VersionManager;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
@@ -78,7 +78,7 @@ public class ClientServerTransactionFailoverWithMixedVersionServersDistributedTe
   private final int transactionTimeoutSecond = 2;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule(6);
+  public static DistributedRule distributedTestRule = new DistributedRule(6);
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/EntriesDoNotExpireDuringGiiRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/EntriesDoNotExpireDuringGiiRegressionTest.java
index 37c4454..83d6717 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/EntriesDoNotExpireDuringGiiRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/EntriesDoNotExpireDuringGiiRegressionTest.java
@@ -42,7 +42,7 @@ import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.DistributedRestoreSystemProperties;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableErrorCollector;
 
 /**
@@ -66,7 +66,7 @@ public class EntriesDoNotExpireDuringGiiRegressionTest implements Serializable {
   private VM otherVM;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/InitializedDiskRegionWithIoExceptionRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/InitializedDiskRegionWithIoExceptionRegressionTest.java
index c2b5fc1..ec86b06 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/InitializedDiskRegionWithIoExceptionRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/InitializedDiskRegionWithIoExceptionRegressionTest.java
@@ -44,7 +44,7 @@ import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
 import org.apache.geode.test.dunit.rules.DistributedDiskDirRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -66,7 +66,7 @@ public class InitializedDiskRegionWithIoExceptionRegressionTest implements Seria
   private VM client;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRCustomPartitioningDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRCustomPartitioningDistributedTest.java
index ccb2234..3438fa2 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRCustomPartitioningDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRCustomPartitioningDistributedTest.java
@@ -38,7 +38,7 @@ import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.internal.cache.PartitionedRegionDataStore.BucketVisitor;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 @SuppressWarnings("serial")
@@ -59,7 +59,7 @@ public class PRCustomPartitioningDistributedTest implements Serializable {
   private VM accessorVM3;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PREntryIdleExpirationDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PREntryIdleExpirationDistributedTest.java
index 1f81dc8..e5ded37 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PREntryIdleExpirationDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PREntryIdleExpirationDistributedTest.java
@@ -38,13 +38,13 @@ import org.apache.geode.cache.RegionFactory;
 import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 public class PREntryIdleExpirationDistributedTest implements Serializable {
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   private static final AtomicBoolean KEEP_READING = new AtomicBoolean(true);
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryDistributedTest.java
index 38ae7c5..88ed204 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryDistributedTest.java
@@ -46,7 +46,7 @@ import org.apache.geode.cache.query.internal.DefaultQuery.TestHook;
 import org.apache.geode.cache.query.internal.index.IndexManager;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
 /**
@@ -63,7 +63,7 @@ public class PRQueryDistributedTest implements Serializable {
   private VM vm2;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithIndexAndPdxDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithIndexAndPdxDistributedTest.java
index b1fc15d..10c3d92 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithIndexAndPdxDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithIndexAndPdxDistributedTest.java
@@ -48,7 +48,7 @@ import org.apache.geode.pdx.PdxWriter;
 import org.apache.geode.test.dunit.SerializableRunnableIF;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.OQLIndexTest;
 
 /**
@@ -66,7 +66,7 @@ public class PRQueryWithIndexAndPdxDistributedTest implements Serializable {
   private VM vm1;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithIndexDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithIndexDistributedTest.java
index 57a940e..b17de44 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithIndexDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithIndexDistributedTest.java
@@ -45,7 +45,7 @@ import org.apache.geode.cache.query.IndexInvalidException;
 import org.apache.geode.cache.query.internal.index.AbstractIndex;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.OQLIndexTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -63,7 +63,7 @@ public class PRQueryWithIndexDistributedTest implements Serializable {
   private VM vm1;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithOrderByDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithOrderByDistributedTest.java
index eef55b3..697c94b 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithOrderByDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithOrderByDistributedTest.java
@@ -45,7 +45,7 @@ import org.apache.geode.pdx.JSONFormatter;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.OQLQueryTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -64,7 +64,7 @@ public class PRQueryWithOrderByDistributedTest implements Serializable {
   private VM client;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithPdxDuringRebalanceRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithPdxDuringRebalanceRegressionTest.java
index d7a6910..73d482c 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithPdxDuringRebalanceRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRQueryWithPdxDuringRebalanceRegressionTest.java
@@ -46,7 +46,7 @@ import org.apache.geode.distributed.internal.DistributionMessageObserver;
 import org.apache.geode.internal.cache.partitioned.QueryMessage;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.dunit.rules.SharedErrorCollector;
 import org.apache.geode.test.junit.categories.OQLQueryTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
@@ -71,7 +71,7 @@ public class PRQueryWithPdxDuringRebalanceRegressionTest implements Serializable
   private VM vm2;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRWithIndexAfterRebalanceRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRWithIndexAfterRebalanceRegressionTest.java
index 3cb1645..b1d4888 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRWithIndexAfterRebalanceRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRWithIndexAfterRebalanceRegressionTest.java
@@ -43,7 +43,7 @@ import org.apache.geode.cache.query.RegionNotFoundException;
 import org.apache.geode.cache.query.internal.index.PartitionedIndex;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.OQLIndexTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -67,7 +67,7 @@ public class PRWithIndexAfterRebalanceRegressionTest implements Serializable {
   private VM vm3;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionCloseDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionCloseDistributedTest.java
index 6034726..80dc731 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionCloseDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionCloseDistributedTest.java
@@ -36,7 +36,7 @@ import org.apache.geode.cache.RegionFactory;
 import org.apache.geode.internal.cache.partitioned.RegionAdvisor;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 @RunWith(JUnitParamsRunner.class)
@@ -53,7 +53,7 @@ public class PartitionedRegionCloseDistributedTest implements Serializable {
   private VM[] datastores;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = CacheRule.builder().createCacheInAll().build();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PersistentRegionRecoveryDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PersistentRegionRecoveryDUnitTest.java
index 319cc28..113db1c 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PersistentRegionRecoveryDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PersistentRegionRecoveryDUnitTest.java
@@ -41,7 +41,7 @@ import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -55,7 +55,7 @@ public class PersistentRegionRecoveryDUnitTest extends JUnit4DistributedTestCase
   private VM vm1;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/RegionListenerDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/RegionListenerDistributedTest.java
index 69c39fd..5cb537a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/RegionListenerDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/RegionListenerDistributedTest.java
@@ -31,14 +31,14 @@ import org.apache.geode.cache.RegionFactory;
 import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 @SuppressWarnings("serial")
 public class RegionListenerDistributedTest implements Serializable {
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = CacheRule.builder().createCacheInAll().disconnectAfter().build();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ReplicateEntryIdleExpirationDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ReplicateEntryIdleExpirationDistributedTest.java
index b20a681..cb14c45 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ReplicateEntryIdleExpirationDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ReplicateEntryIdleExpirationDistributedTest.java
@@ -40,13 +40,13 @@ import org.apache.geode.cache.Scope;
 import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 public class ReplicateEntryIdleExpirationDistributedTest implements Serializable {
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   private static final AtomicBoolean KEEP_READING = new AtomicBoolean(true);
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/BackupDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/BackupDistributedTest.java
index 45c483d..ab60bf1 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/BackupDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/BackupDistributedTest.java
@@ -25,7 +25,6 @@ import static org.apache.geode.cache.RegionShortcut.PARTITION_PERSISTENT;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE_PERSISTENT;
 import static org.apache.geode.internal.admin.remote.AdminFailureResponse.create;
-import static org.apache.geode.test.dunit.Disconnect.disconnectFromDS;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
@@ -87,7 +86,7 @@ import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.DistributedDiskDirRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -122,7 +121,7 @@ public class BackupDistributedTest extends JUnit4DistributedTestCase implements
   private transient ProcessStreamReader processReader;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/IncrementalBackupDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/IncrementalBackupDistributedTest.java
index a180807..0f4d1a6 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/IncrementalBackupDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/IncrementalBackupDistributedTest.java
@@ -67,7 +67,7 @@ import org.apache.geode.test.compiler.ClassBuilder;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.DistributedDiskDirRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -98,7 +98,7 @@ public class IncrementalBackupDistributedTest implements Serializable {
   private transient ProcessStreamReader processReader;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/PrepareAndFinishBackupDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/PrepareAndFinishBackupDistributedTest.java
index 6a6c21b..d9e35ce 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/PrepareAndFinishBackupDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/PrepareAndFinishBackupDistributedTest.java
@@ -62,7 +62,7 @@ import org.apache.geode.distributed.internal.DistributionManager;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.DistributedDiskDirRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 import org.apache.geode.test.junit.runners.CategoryWithParameterizedRunnerFactory;
@@ -85,7 +85,7 @@ public class PrepareAndFinishBackupDistributedTest {
   }
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/ClientFunctionTimeoutRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/ClientFunctionTimeoutRegressionTest.java
index 46ed4d8..5f5f2dc 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/ClientFunctionTimeoutRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/ClientFunctionTimeoutRegressionTest.java
@@ -59,7 +59,7 @@ import org.apache.geode.internal.cache.tier.sockets.AcceptorImpl;
 import org.apache.geode.internal.cache.tier.sockets.ServerConnection;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.DistributedRestoreSystemProperties;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.FunctionServiceTest;
 
 /**
@@ -86,7 +86,7 @@ public class ClientFunctionTimeoutRegressionTest implements Serializable {
   private VM client;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public DistributedRestoreSystemProperties restoreSystemProperties =
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/FunctionExecutionWithExceptionDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/FunctionExecutionWithExceptionDistributedTest.java
index 14b4361..6332574 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/FunctionExecutionWithExceptionDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/FunctionExecutionWithExceptionDistributedTest.java
@@ -47,7 +47,7 @@ import org.apache.geode.cache.execute.ResultCollector;
 import org.apache.geode.internal.cache.functions.TestFunction;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.FunctionServiceTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -66,7 +66,7 @@ public class FunctionExecutionWithExceptionDistributedTest implements Serializab
   private Set<Integer> intKeys;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = CacheRule.builder()
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/TransactionOnBehalfOfClientMemberDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/TransactionOnBehalfOfClientMemberDistributedTest.java
index 6bda9dd..938f28f 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/TransactionOnBehalfOfClientMemberDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/TransactionOnBehalfOfClientMemberDistributedTest.java
@@ -42,7 +42,7 @@ import org.apache.geode.internal.cache.TXStateProxyImpl;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
 public class TransactionOnBehalfOfClientMemberDistributedTest implements Serializable {
@@ -55,7 +55,7 @@ public class TransactionOnBehalfOfClientMemberDistributedTest implements Seriali
   private int port1;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueSizeRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueSizeRegressionTest.java
index 9c4db53..162d7e0 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueSizeRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueSizeRegressionTest.java
@@ -56,7 +56,7 @@ import org.apache.geode.internal.cache.tier.sockets.CacheClientProxy;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientSubscriptionTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -80,7 +80,7 @@ public class HARegionQueueSizeRegressionTest implements Serializable {
   private VM client;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueThreadIdExpiryRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueThreadIdExpiryRegressionTest.java
index c2fd022..4f30187 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueThreadIdExpiryRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueThreadIdExpiryRegressionTest.java
@@ -45,7 +45,7 @@ import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
 import org.apache.geode.test.dunit.rules.DistributedRestoreSystemProperties;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientSubscriptionTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -69,7 +69,7 @@ public class HARegionQueueThreadIdExpiryRegressionTest implements Serializable {
   private String hostName;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/BucketCreationCrashCompletesRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/BucketCreationCrashCompletesRegressionTest.java
index 457e6cf..06ab046 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/BucketCreationCrashCompletesRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/BucketCreationCrashCompletesRegressionTest.java
@@ -48,7 +48,7 @@ import org.apache.geode.internal.cache.PartitionedRegion;
 import org.apache.geode.internal.cache.PartitionedRegionDataStore;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.RegionsTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -69,7 +69,7 @@ public class BucketCreationCrashCompletesRegressionTest implements Serializable
   private VM vm2;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/BucketRebalanceStatRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/BucketRebalanceStatRegressionTest.java
index 8b6bd35..bf0a9b0 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/BucketRebalanceStatRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/BucketRebalanceStatRegressionTest.java
@@ -47,7 +47,7 @@ import org.apache.geode.internal.cache.BucketRegion;
 import org.apache.geode.internal.cache.PartitionedRegion;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -73,7 +73,7 @@ public class BucketRebalanceStatRegressionTest implements Serializable {
   private VM vm1;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PRDiskConflictWithColocationDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PRDiskConflictWithColocationDistributedTest.java
index 632a137..8940e54 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PRDiskConflictWithColocationDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PRDiskConflictWithColocationDistributedTest.java
@@ -45,7 +45,7 @@ import org.apache.geode.internal.cache.persistence.PersistenceAdvisorImpl;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.DistributedDiskDirRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
 /**
@@ -61,7 +61,7 @@ public class PRDiskConflictWithColocationDistributedTest implements Serializable
   private VM vm0;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionDistributedTest.java
index 8f9f44d..5d38c96 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionDistributedTest.java
@@ -94,7 +94,7 @@ import org.apache.geode.test.dunit.IgnoredException;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.DistributedDiskDirRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
 /**
@@ -117,7 +117,7 @@ public class PersistentPartitionedRegionDistributedTest implements Serializable
   private VM vm3;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule =
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionRegressionTest.java
index 9c1844f..22aac27 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionRegressionTest.java
@@ -61,7 +61,7 @@ import org.apache.geode.test.dunit.IgnoredException;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.DistributedDiskDirRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
 /**
@@ -81,7 +81,7 @@ public class PersistentPartitionedRegionRegressionTest implements Serializable {
   private VM vm2;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/QueueRemovalMessageProcessingDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/QueueRemovalMessageProcessingDistributedTest.java
index 5aec1a7..db13012 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/QueueRemovalMessageProcessingDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/QueueRemovalMessageProcessingDistributedTest.java
@@ -52,7 +52,7 @@ import org.apache.geode.internal.cache.tier.sockets.CacheClientProxy;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.RegionsTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -83,7 +83,7 @@ public class QueueRemovalMessageProcessingDistributedTest implements Serializabl
   private VM client2;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/RegisterInterestKeysValuesDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/RegisterInterestKeysValuesDistributedTest.java
index dc1a561..b89c2bf 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/RegisterInterestKeysValuesDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/RegisterInterestKeysValuesDistributedTest.java
@@ -45,7 +45,7 @@ import org.apache.geode.internal.cache.InternalRegion;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.RegionsTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -71,7 +71,7 @@ public class RegisterInterestKeysValuesDistributedTest implements Serializable {
   private int port1;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/DeltaPropagationFailureRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/DeltaPropagationFailureRegressionTest.java
index 9af7d81..5b91847 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/DeltaPropagationFailureRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/DeltaPropagationFailureRegressionTest.java
@@ -39,7 +39,7 @@ import org.apache.geode.internal.cache.tier.sockets.DeltaEOFException;
 import org.apache.geode.internal.cache.tier.sockets.FaultyDelta;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientServerTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -64,7 +64,7 @@ public class DeltaPropagationFailureRegressionTest implements Serializable {
   private VM server2;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplClientQueueDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplClientQueueDistributedTest.java
index 5f04829..ffabb9e 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplClientQueueDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplClientQueueDistributedTest.java
@@ -54,7 +54,7 @@ import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.DistributedRestoreSystemProperties;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientServerTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
@@ -68,7 +68,7 @@ public class AcceptorImplClientQueueDistributedTest implements Serializable {
   private String hostName;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = CacheRule.builder().createCacheIn(getVM(0)).createCacheIn(getVM(1))
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientDestroyRegionNotificationRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientDestroyRegionNotificationRegressionTest.java
index 08606b1..8689c9a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientDestroyRegionNotificationRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientDestroyRegionNotificationRegressionTest.java
@@ -42,7 +42,7 @@ import org.apache.geode.internal.cache.EventID;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientServerTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -68,7 +68,7 @@ public class ClientDestroyRegionNotificationRegressionTest implements Serializab
   private VM server2;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientDestroyRegionUnregisterInterestRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientDestroyRegionUnregisterInterestRegressionTest.java
index 7efbb6d..63dffb1 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientDestroyRegionUnregisterInterestRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientDestroyRegionUnregisterInterestRegressionTest.java
@@ -47,7 +47,7 @@ import org.apache.geode.internal.cache.ClientServerObserverHolder;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientServerTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -73,7 +73,7 @@ public class ClientDestroyRegionUnregisterInterestRegressionTest implements Seri
   private VM client2;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyWithDeltaDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyWithDeltaDistributedTest.java
index eb5abcb..a7aa09e 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyWithDeltaDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyWithDeltaDistributedTest.java
@@ -58,7 +58,7 @@ import org.apache.geode.internal.cache.CachePerfStats;
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.InternalRegion;
 import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientSubscriptionTest;
 
 @Category({ClientSubscriptionTest.class})
@@ -79,7 +79,7 @@ public class ClientProxyWithDeltaDistributedTest implements Serializable {
   private VM client2;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Before
   public void setUp() throws Exception {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientWithInterestFailoverDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientWithInterestFailoverDistributedTest.java
index ec3d275..08d2078 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientWithInterestFailoverDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientWithInterestFailoverDistributedTest.java
@@ -52,7 +52,7 @@ import org.apache.geode.cache.server.CacheServer;
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.InternalCacheServer;
 import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientServerTest;
 
 @Category({ClientServerTest.class})
@@ -75,7 +75,7 @@ public class ClientWithInterestFailoverDistributedTest implements Serializable {
   private VM server2;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Before
   public void setUp() throws Exception {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/GetConnectedServerCountRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/GetConnectedServerCountRegressionTest.java
index 09ac47b..500aa99 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/GetConnectedServerCountRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/GetConnectedServerCountRegressionTest.java
@@ -34,7 +34,7 @@ import org.apache.geode.cache.server.CacheServer;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientServerTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -56,7 +56,7 @@ public class GetConnectedServerCountRegressionTest implements Serializable {
   private VM server3;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HARegionQueueStatsCloseRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HARegionQueueStatsCloseRegressionTest.java
index 4b4f1ee..77eb3db 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HARegionQueueStatsCloseRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HARegionQueueStatsCloseRegressionTest.java
@@ -45,7 +45,7 @@ import org.apache.geode.internal.cache.ha.HARegionQueue;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientServerTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -69,7 +69,7 @@ public class HARegionQueueStatsCloseRegressionTest implements Serializable {
   private VM client;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/MessageTrackingTimeoutRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/MessageTrackingTimeoutRegressionTest.java
index a57a08c..ecd1df0 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/MessageTrackingTimeoutRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/MessageTrackingTimeoutRegressionTest.java
@@ -34,7 +34,7 @@ import org.apache.geode.cache.server.CacheServer;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientServerTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -59,7 +59,7 @@ public class MessageTrackingTimeoutRegressionTest implements Serializable {
   private VM server3;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestOnServerWithoutRegionRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestOnServerWithoutRegionRegressionTest.java
index eeac893..047fcab 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestOnServerWithoutRegionRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestOnServerWithoutRegionRegressionTest.java
@@ -45,7 +45,7 @@ import org.apache.geode.test.dunit.IgnoredException;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientServerTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -72,7 +72,7 @@ public class RegisterInterestOnServerWithoutRegionRegressionTest implements Seri
   private VM client;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestServerMetaDataDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestServerMetaDataDistributedTest.java
index 3a7ca1a..fbfd154 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestServerMetaDataDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestServerMetaDataDistributedTest.java
@@ -51,7 +51,7 @@ import org.apache.geode.cache.server.CacheServer;
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.InternalCacheServer;
 import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientSubscriptionTest;
 
 @Category({ClientSubscriptionTest.class})
@@ -71,7 +71,7 @@ public class RegisterInterestServerMetaDataDistributedTest implements Serializab
   private VM client;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Before
   public void setUp() throws Exception {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RootRegionsExcludesHARegionsRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RootRegionsExcludesHARegionsRegressionTest.java
index fa20dcc..9904e4e 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RootRegionsExcludesHARegionsRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RootRegionsExcludesHARegionsRegressionTest.java
@@ -43,7 +43,7 @@ import org.apache.geode.internal.cache.PoolFactoryImpl;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.ClientServerTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -69,7 +69,7 @@ public class RootRegionsExcludesHARegionsRegressionTest implements Serializable
   private VM client;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerDistributedTest.java
index 59f2469..79bf74e 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerDistributedTest.java
@@ -63,7 +63,7 @@ import org.apache.geode.internal.cache.RegionQueue;
 import org.apache.geode.internal.cache.wan.InternalGatewaySender;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.AEQTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.runners.CategoryWithParameterizedRunnerFactory;
@@ -83,7 +83,7 @@ public class AsyncEventListenerDistributedTest implements Serializable {
   }
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithCacheLoaderDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithCacheLoaderDistributedTest.java
index b49e142..3c8711d 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithCacheLoaderDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithCacheLoaderDistributedTest.java
@@ -56,7 +56,7 @@ import org.apache.geode.cache.asyncqueue.AsyncEventQueueFactory;
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.AEQTest;
 import org.apache.geode.test.junit.runners.CategoryWithParameterizedRunnerFactory;
 
@@ -78,7 +78,7 @@ public class AsyncEventListenerWithCacheLoaderDistributedTest implements Seriali
   }
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithFilterDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithFilterDistributedTest.java
index fe10561..39105ab 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithFilterDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithFilterDistributedTest.java
@@ -74,7 +74,7 @@ import org.apache.geode.internal.cache.wan.InternalGatewaySender;
 import org.apache.geode.internal.size.Sizeable;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.AEQTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.runners.CategoryWithParameterizedRunnerFactory;
@@ -99,7 +99,7 @@ public class AsyncEventListenerWithFilterDistributedTest implements Serializable
   }
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ConcurrentAsyncEventListenerDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ConcurrentAsyncEventListenerDistributedTest.java
index 5df6620..fbac68c 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ConcurrentAsyncEventListenerDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ConcurrentAsyncEventListenerDistributedTest.java
@@ -58,7 +58,7 @@ import org.apache.geode.internal.cache.wan.InternalGatewaySender;
 import org.apache.geode.internal.size.Sizeable;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.AEQTest;
 
 /**
@@ -71,7 +71,7 @@ public class ConcurrentAsyncEventListenerDistributedTest implements Serializable
   private static final String SUBSTITUTION_PREFIX = "substituted_";
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ParallelAsyncEventListenerDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ParallelAsyncEventListenerDistributedTest.java
index 715c18c..7e5e3fb 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ParallelAsyncEventListenerDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ParallelAsyncEventListenerDistributedTest.java
@@ -94,7 +94,7 @@ import org.apache.geode.internal.cache.wan.InternalGatewaySender;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.DistributedRestoreSystemProperties;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.AEQTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.runners.CategoryWithParameterizedRunnerFactory;
@@ -117,7 +117,7 @@ public class ParallelAsyncEventListenerDistributedTest implements Serializable {
   }
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/SerialEventListenerDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/SerialEventListenerDistributedTest.java
index 6c093df..03b8063 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/SerialEventListenerDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/SerialEventListenerDistributedTest.java
@@ -54,7 +54,7 @@ import org.apache.geode.internal.cache.wan.InternalGatewaySender;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.DistributedDiskDirRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.AEQTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 
@@ -66,7 +66,7 @@ import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolde
 public class SerialEventListenerDistributedTest implements Serializable {
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/ClientServerJTAFailoverDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/ClientServerJTAFailoverDistributedTest.java
index c623766..f019c06 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/ClientServerJTAFailoverDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/ClientServerJTAFailoverDistributedTest.java
@@ -52,7 +52,7 @@ import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
 import org.apache.geode.test.dunit.rules.ClientCacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
 public class ClientServerJTAFailoverDistributedTest implements Serializable {
@@ -71,7 +71,7 @@ public class ClientServerJTAFailoverDistributedTest implements Serializable {
   private final String newValue = "value2";
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/JMXMBeanDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/JMXMBeanDUnitTest.java
index 85374a8..220ae72 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/JMXMBeanDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/JMXMBeanDUnitTest.java
@@ -58,7 +58,7 @@ import org.apache.geode.internal.AvailablePortHelper;
 import org.apache.geode.internal.security.SecurableCommunicationChannel;
 import org.apache.geode.test.dunit.rules.CleanupDUnitVMsRule;
 import org.apache.geode.test.dunit.rules.ClusterStartupRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.JMXTest;
 import org.apache.geode.test.junit.rules.MBeanServerConnectionRule;
 import org.apache.geode.util.test.TestUtil;
@@ -84,7 +84,7 @@ public class JMXMBeanDUnitTest implements Serializable {
   private Properties locatorProperties;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   private transient CleanupDUnitVMsRule cleanupDUnitVMsRule = new CleanupDUnitVMsRule();
   private ClusterStartupRule lsRule = new ClusterStartupRule();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetCurrentVmNumDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetCurrentVmNumDistributedTest.java
index 8b47e2c..234afab 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetCurrentVmNumDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetCurrentVmNumDistributedTest.java
@@ -24,13 +24,13 @@ import static org.assertj.core.api.Assertions.assertThat;
 import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 public class GetCurrentVmNumDistributedTest {
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Test
   public void returnsNegativeOneInController() {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetPidAndIdAfterBounceDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetPidAndIdAfterBounceDistributedTest.java
index 0f8e4d1..33c3932 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetPidAndIdAfterBounceDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetPidAndIdAfterBounceDistributedTest.java
@@ -22,7 +22,7 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 public class GetPidAndIdAfterBounceDistributedTest {
@@ -31,7 +31,7 @@ public class GetPidAndIdAfterBounceDistributedTest {
   private int[] pidsBefore;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Before
   public void setUp() throws Exception {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetPidAndIdDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetPidAndIdDistributedTest.java
index 45022f6..df76d50 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetPidAndIdDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetPidAndIdDistributedTest.java
@@ -23,13 +23,13 @@ import org.junit.Test;
 
 import org.apache.geode.internal.process.ProcessUtils;
 import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 public class GetPidAndIdDistributedTest {
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Test
   public void getId_returnsVMSequentialId() throws Exception {
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/AsyncInvokeCallableExampleTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/AsyncInvokeCallableExampleTest.java
index 6b0b104..2ed8b8c 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/AsyncInvokeCallableExampleTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/AsyncInvokeCallableExampleTest.java
@@ -24,14 +24,14 @@ import org.junit.Test;
 
 import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 @SuppressWarnings("serial")
 public class AsyncInvokeCallableExampleTest {
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Test
   public void invokeAsyncAsFuture() throws Exception {
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/AsyncInvokeRunnableExampleTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/AsyncInvokeRunnableExampleTest.java
index d68a8db..9cc4e7a 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/AsyncInvokeRunnableExampleTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/AsyncInvokeRunnableExampleTest.java
@@ -24,14 +24,14 @@ import org.junit.Test;
 
 import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 @SuppressWarnings("serial")
 public class AsyncInvokeRunnableExampleTest {
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Test
   public void invokeAsyncHelloWorldInEachVM() throws Exception {
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/CatchingUnexpectedExceptionExampleTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/CatchingUnexpectedExceptionExampleTest.java
index 4fe51bd..be07b3b 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/CatchingUnexpectedExceptionExampleTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/CatchingUnexpectedExceptionExampleTest.java
@@ -30,14 +30,14 @@ import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.RegionFactory;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.test.dunit.SerializableRunnable;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 @SuppressWarnings("serial")
 public class CatchingUnexpectedExceptionExampleTest implements Serializable {
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   /**
    * Don't do this! Catch Exception and invoke fail => anti-pattern
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/DistributedTestRuleExampleTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/DistributedRuleAsClassRuleExampleTest.java
similarity index 50%
rename from geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/DistributedTestRuleExampleTest.java
rename to geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/DistributedRuleAsClassRuleExampleTest.java
index 86f6722..64a31b7 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/DistributedTestRuleExampleTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/DistributedRuleAsClassRuleExampleTest.java
@@ -18,18 +18,40 @@ import static org.apache.geode.test.dunit.VM.getVMCount;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import org.junit.ClassRule;
+import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
-
-public class DistributedTestRuleExampleTest {
+/**
+ * {@code DistributedRule} can also be used in DistributedTests as a {@code ClassRule}. This ensures
+ * that DUnit VMs will be available to non-Class {@code Rule}s. However, you may want to declare
+ * {@code DistributedRule.TearDown} as a non-Class {@code Rule} so that check for suspect strings is
+ * performed after each test method.
+ *
+ * <pre>
+ * {@literal @}ClassRule
+ * public static DistributedRule distributedRule = new DistributedRule();
+ *
+ * {@literal @}Rule
+ * public DistributedRule.TearDown distributedRuleTearDown = new DistributedRule.TearDown();
+ *
+ * {@literal @}Test
+ * public void shouldHaveFourDUnitVMsByDefault() {
+ *   assertThat(getVMCount()).isEqualTo(4);
+ * }
+ * </pre>
+ */
+public class DistributedRuleAsClassRuleExampleTest {
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedRule = new DistributedRule();
+
+  @Rule
+  public DistributedRule.TearDown distributedRuleTearDown = new DistributedRule.TearDown();
 
   @Test
-  public void shouldHaveFourDUnitVMsByDefault() throws Exception {
+  public void hasFourVMsByDefault() {
     assertThat(getVMCount()).isEqualTo(4);
   }
 }
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/InvokeRunnableExampleTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/InvokeRunnableExampleTest.java
index eb29b96..d6a1757 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/InvokeRunnableExampleTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/InvokeRunnableExampleTest.java
@@ -22,13 +22,13 @@ import org.junit.ClassRule;
 import org.junit.Test;
 
 import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 public class InvokeRunnableExampleTest {
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Test
   public void invokeHelloWorldForEachVMInGetAllVMs() throws Exception {
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/LocatorPortClusterExampleTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/LocatorPortClusterExampleTest.java
index d08309d..2ee0d24 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/LocatorPortClusterExampleTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/LocatorPortClusterExampleTest.java
@@ -32,14 +32,14 @@ import org.junit.Test;
 import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 @SuppressWarnings("serial")
 public class LocatorPortClusterExampleTest implements Serializable {
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   private static InternalCache cache;
 
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/ReplaceTryFinallyExampleTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/ReplaceTryFinallyExampleTest.java
index 7cc5e5e..ed501d6 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/ReplaceTryFinallyExampleTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/examples/ReplaceTryFinallyExampleTest.java
@@ -19,14 +19,14 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 @SuppressWarnings("serial")
 public class ReplaceTryFinallyExampleTest {
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Test
   public void doNotUseTryFinallyInTest() {
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/CacheRuleBuilderDistributedTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/CacheRuleBuilderDistributedTest.java
index cb265af..12b342b 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/CacheRuleBuilderDistributedTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/CacheRuleBuilderDistributedTest.java
@@ -30,13 +30,13 @@ import org.junit.Test;
 import org.apache.geode.internal.cache.GemFireCacheImpl;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 @SuppressWarnings("serial")
 public class CacheRuleBuilderDistributedTest {
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Test
   public void defaultDoesNothing() {
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/CacheRuleDistributedTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/CacheRuleDistributedTest.java
index 89f97df..f561857 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/CacheRuleDistributedTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/CacheRuleDistributedTest.java
@@ -30,13 +30,13 @@ import org.junit.Test;
 import org.apache.geode.internal.cache.GemFireCacheImpl;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 @SuppressWarnings("serial")
 public class CacheRuleDistributedTest {
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedTestRule = new DistributedRule();
 
   @Test
   public void defaultDoesNothing() {
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/ClientCacheRuleDistributedTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/ClientCacheRuleDistributedTest.java
new file mode 100644
index 0000000..23e7b84
--- /dev/null
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/ClientCacheRuleDistributedTest.java
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.geode.test.dunit.rules.tests;
+
+import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.cache.RegionShortcut.REPLICATE;
+import static org.apache.geode.cache.client.ClientRegionShortcut.CACHING_PROXY;
+import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
+import static org.apache.geode.test.dunit.VM.getHostName;
+import static org.apache.geode.test.dunit.VM.getVM;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.timeout;
+import static org.mockito.Mockito.verify;
+
+import java.io.Serializable;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.geode.cache.Region;
+import org.apache.geode.cache.client.ClientCacheFactory;
+import org.apache.geode.cache.server.CacheServer;
+import org.apache.geode.management.membership.ClientMembership;
+import org.apache.geode.management.membership.ClientMembershipListener;
+import org.apache.geode.test.dunit.VM;
+import org.apache.geode.test.dunit.rules.CacheRule;
+import org.apache.geode.test.dunit.rules.ClientCacheRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
+import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
+
+public class ClientCacheRuleDistributedTest implements Serializable {
+
+  private static ClientMembershipListener spyClientMembershipListener;
+
+  @Rule
+  public DistributedRule distributedRule = new DistributedRule();
+
+  @Rule
+  public CacheRule cacheRule = new CacheRule();
+
+  @Rule
+  public ClientCacheRule clientCacheRule = new ClientCacheRule();
+
+  @Rule
+  public SerializableTestName testName = new SerializableTestName();
+
+  private String serverHost;
+  private int serverPort;
+
+  private String regionName;
+
+  private VM serverVM;
+  private VM clientVM;
+
+  @Before
+  public void setUp() {
+    serverVM = getVM(0);
+    clientVM = getVM(1);
+
+    regionName = getClass().getSimpleName() + "_" + testName.getMethodName();
+
+    serverPort = serverVM.invoke(() -> {
+      cacheRule.createCache();
+      cacheRule.getCache().createRegionFactory(REPLICATE).create(regionName);
+
+      spyClientMembershipListener = spy(ClientMembershipListener.class);
+      ClientMembership.registerClientMembershipListener(spyClientMembershipListener);
+
+      CacheServer cacheServer = cacheRule.getCache().addCacheServer();
+      cacheServer.setPort(0);
+      cacheServer.start();
+      return cacheServer.getPort();
+    });
+
+    serverHost = getHostName();
+  }
+
+  @After
+  public void tearDown() {
+    invokeInEveryVM(() -> spyClientMembershipListener = null);
+  }
+
+  @Test
+  public void createClient() {
+    clientVM.invoke(() -> {
+      clientCacheRule
+          .createClientCache(new ClientCacheFactory().addPoolServer(serverHost, serverPort));
+
+      Region<String, String> region =
+          clientCacheRule.getClientCache().<String, String>createClientRegionFactory(
+              CACHING_PROXY).create(regionName);
+      region.put("KEY", "VALUE");
+    });
+
+    serverVM.invoke(() -> {
+      verify(spyClientMembershipListener, timeout(MINUTES.toMillis(2))).memberJoined(any());
+    });
+  }
+}
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedRestoreSystemPropertiesDistributedTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedRestoreSystemPropertiesDistributedTest.java
index 34c4838..479c31b 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedRestoreSystemPropertiesDistributedTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedRestoreSystemPropertiesDistributedTest.java
@@ -29,7 +29,7 @@ import org.junit.Rule;
 import org.junit.Test;
 
 import org.apache.geode.test.dunit.rules.DistributedRestoreSystemProperties;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
 
 public class DistributedRestoreSystemPropertiesDistributedTest {
@@ -39,7 +39,7 @@ public class DistributedRestoreSystemPropertiesDistributedTest {
   private static final String PREEXISTING_VALUE = "PREEXISTING_VALUE";
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @BeforeClass
   public static void assertPreconditions() {
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedTestRuleDistributedTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedRuleDistributedTest.java
similarity index 76%
rename from geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedTestRuleDistributedTest.java
rename to geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedRuleDistributedTest.java
index e631f62..06aa604 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedTestRuleDistributedTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedRuleDistributedTest.java
@@ -21,16 +21,15 @@ import static org.assertj.core.api.Assertions.assertThat;
 import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 
-
-public class DistributedTestRuleDistributedTest {
+public class DistributedRuleDistributedTest {
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedRule = new DistributedRule();
 
   @Test
-  public void shouldHaveFourOrMoreDUnitVMsByDefault() throws Exception {
-    assertThat(getVMCount()).isGreaterThanOrEqualTo(DEFAULT_VM_COUNT);
+  public void hasFourVMsByDefault() {
+    assertThat(getVMCount()).isEqualTo(DEFAULT_VM_COUNT);
   }
 }
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/SharedCountersRuleDistributedTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/SharedCountersRuleDistributedTest.java
index 6ca747b..0a9cffd 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/SharedCountersRuleDistributedTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/SharedCountersRuleDistributedTest.java
@@ -33,104 +33,103 @@ import org.junit.Rule;
 import org.junit.Test;
 
 import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.dunit.rules.SharedCountersRule;
 
-
 @SuppressWarnings("serial")
 public class SharedCountersRuleDistributedTest implements Serializable {
 
   private static final int TWO_MINUTES_MILLIS = 2 * 60 * 1000;
-  private static final String ID1 = "ID1";
+  private static final String ID = "ID";
 
   private static ExecutorService executor;
   private static CompletableFuture<Void> combined;
   private static List<CompletableFuture<Boolean>> futures;
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedRule = new DistributedRule();
 
   @Rule
-  public SharedCountersRule sharedCountersRule = SharedCountersRule.builder().build();
+  public SharedCountersRule sharedCountersRule = new SharedCountersRule();
 
   @Test
-  public void inc_withoutInit_throwsNullPointerException() throws Exception {
-    assertThatThrownBy(() -> sharedCountersRule.increment(ID1))
+  public void inc_withoutInit_throwsNullPointerException() {
+    assertThatThrownBy(() -> sharedCountersRule.increment(ID))
         .isInstanceOf(NullPointerException.class);
   }
 
   @Test
-  public void ref_withoutInit_returnsNull() throws Exception {
-    assertThat(sharedCountersRule.reference(ID1)).isNull();
+  public void ref_withoutInit_returnsNull() {
+    assertThat(sharedCountersRule.reference(ID)).isNull();
   }
 
   @Test
-  public void init_get_returnsZero() throws Exception {
-    assertThat(sharedCountersRule.initialize(ID1).reference(ID1).get()).isEqualTo(0);
+  public void init_get_returnsZero() {
+    assertThat(sharedCountersRule.initialize(ID).reference(ID).get()).isEqualTo(0);
   }
 
   @Test
-  public void initTwice_noop() throws Exception {
-    assertThat(sharedCountersRule.initialize(ID1).reference(ID1).get()).isEqualTo(0);
+  public void initTwice_noop() {
+    assertThat(sharedCountersRule.initialize(ID).reference(ID).get()).isEqualTo(0);
   }
 
   @Test
-  public void inc_get_returnsOne() throws Exception {
-    assertThat(sharedCountersRule.initialize(ID1).increment(ID1).reference(ID1).get()).isEqualTo(1);
+  public void inc_get_returnsOne() {
+    assertThat(sharedCountersRule.initialize(ID).increment(ID).reference(ID).get()).isEqualTo(1);
   }
 
   @Test
-  public void incDeltaTwo_get_returnsTwo() throws Exception {
-    assertThat(sharedCountersRule.initialize(ID1).increment(ID1, 2).reference(ID1).get())
+  public void incDeltaTwo_get_returnsTwo() {
+    assertThat(sharedCountersRule.initialize(ID).increment(ID, 2).reference(ID).get())
         .isEqualTo(2);
   }
 
   @Test
-  public void incTwice_returnsTwo() throws Exception {
+  public void incTwice_returnsTwo() {
     assertThat(
-        sharedCountersRule.initialize(ID1).increment(ID1).increment(ID1).reference(ID1).get())
+        sharedCountersRule.initialize(ID).increment(ID).increment(ID).reference(ID).get())
             .isEqualTo(2);
   }
 
   @Test
-  public void inc_getTotal_returnsOne() throws Exception {
-    sharedCountersRule.initialize(ID1).increment(ID1);
-    int total = sharedCountersRule.getTotal(ID1);
+  public void inc_getTotal_returnsOne() {
+    sharedCountersRule.initialize(ID).increment(ID);
+    int total = sharedCountersRule.getTotal(ID);
     assertThat(total).isEqualTo(1);
   }
 
   @Test
-  public void inc_fromDUnitVMs_getTotal_returnsFour() throws Exception {
-    sharedCountersRule.initialize(ID1);
+  public void inc_fromDUnitVMs_getTotal_returnsFour() {
+    sharedCountersRule.initialize(ID);
     for (VM vm : getAllVMs()) {
       vm.invoke(() -> {
-        sharedCountersRule.increment(ID1);
+        sharedCountersRule.increment(ID);
       });
     }
-    assertThat(sharedCountersRule.getTotal(ID1)).isEqualTo(getVMCount());
+    assertThat(sharedCountersRule.getTotal(ID)).isEqualTo(getVMCount());
   }
 
   @Test
-  public void inc_fromEveryVM_getTotal_returnsFive() throws Exception {
-    sharedCountersRule.initialize(ID1).increment(ID1);
+  public void inc_fromEveryVM_getTotal_returnsFive() {
+    sharedCountersRule.initialize(ID).increment(ID);
     for (VM vm : getAllVMs()) {
       vm.invoke(() -> {
-        sharedCountersRule.increment(ID1);
+        sharedCountersRule.increment(ID);
       });
     }
-    assertThat(sharedCountersRule.getTotal(ID1)).isEqualTo(getVMCount() + 1);
+    assertThat(sharedCountersRule.getTotal(ID)).isEqualTo(getVMCount() + 1);
   }
 
   @Test
   public void inc_multipleThreads_fromEveryVM_getTotal_returnsExpectedTotal() throws Exception {
     int numThreads = 10;
     givenExecutorInEveryVM(numThreads);
-    givenSharedCounterFor(ID1);
+    givenSharedCounterFor(ID);
 
-    // inc ID1 in numThreads in every VM (4 DUnit VMs + Controller VM)
-    submitIncrementTasks(numThreads, ID1);
+    // inc ID in numThreads in every VM (4 DUnit VMs + Controller VM)
+    submitIncrementTasks(numThreads, ID);
     for (VM vm : getAllVMs()) {
-      vm.invoke(() -> submitIncrementTasks(numThreads, ID1));
+      vm.invoke(() -> submitIncrementTasks(numThreads, ID));
     }
 
     // await CompletableFuture in every VM
@@ -145,7 +144,7 @@ public class SharedCountersRuleDistributedTest implements Serializable {
     int controllerPlusDUnitVMCount = dunitVMCount + 1;
     int expectedIncrements = controllerPlusDUnitVMCount * numThreads;
 
-    assertThat(sharedCountersRule.getTotal(ID1)).isEqualTo(expectedIncrements);
+    assertThat(sharedCountersRule.getTotal(ID)).isEqualTo(expectedIncrements);
   }
 
   private void givenSharedCounterFor(final Serializable id) {
diff --git a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/SharedErrorCollectorDistributedTest.java b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/SharedErrorCollectorDistributedTest.java
index a06ddca..0887355 100644
--- a/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/SharedErrorCollectorDistributedTest.java
+++ b/geode-dunit/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/SharedErrorCollectorDistributedTest.java
@@ -33,18 +33,17 @@ import org.junit.runner.Result;
 import org.junit.runner.notification.Failure;
 
 import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.dunit.rules.SharedErrorCollector;
 import org.apache.geode.test.junit.runners.TestRunner;
 
-
 @SuppressWarnings("serial")
 public class SharedErrorCollectorDistributedTest {
 
   static final String MESSAGE = "Failure message";
 
   @Rule
-  public DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public DistributedRule distributedRule = new DistributedRule();
 
   @Before
   public void setUp() {
@@ -58,7 +57,7 @@ public class SharedErrorCollectorDistributedTest {
   }
 
   @Test
-  public void checkThatFailureInControllerIsReported() throws Exception {
+  public void checkThatFailureInControllerIsReported() {
     Result result = TestRunner.runTest(CheckThatFailsInController.class);
 
     assertThat(result.wasSuccessful()).isFalse();
@@ -69,7 +68,7 @@ public class SharedErrorCollectorDistributedTest {
   }
 
   @Test
-  public void addErrorInControllerIsReported() throws Exception {
+  public void addErrorInControllerIsReported() {
     Result result = TestRunner.runTest(AddErrorInController.class);
 
     assertThat(result.wasSuccessful()).isFalse();
@@ -80,7 +79,7 @@ public class SharedErrorCollectorDistributedTest {
   }
 
   @Test
-  public void checkThatFailureInDUnitVMIsReported() throws Exception {
+  public void checkThatFailureInDUnitVMIsReported() {
     Result result = TestRunner.runTest(CheckThatFailsInDUnitVM.class);
 
     assertThat(result.wasSuccessful()).isFalse();
@@ -91,7 +90,7 @@ public class SharedErrorCollectorDistributedTest {
   }
 
   @Test
-  public void checkThatFailureInEveryDUnitVMIsReported() throws Exception {
+  public void checkThatFailureInEveryDUnitVMIsReported() {
     Result result = TestRunner.runTest(CheckThatFailsInEveryDUnitVM.class);
 
     assertThat(result.wasSuccessful()).isFalse();
@@ -105,7 +104,7 @@ public class SharedErrorCollectorDistributedTest {
   }
 
   @Test
-  public void checkThatFailureInEveryDUnitVMAndControllerIsReported() throws Exception {
+  public void checkThatFailureInEveryDUnitVMAndControllerIsReported() {
     Result result = TestRunner.runTest(CheckThatFailsInEveryDUnitVMAndController.class);
 
     assertThat(result.wasSuccessful()).isFalse();
@@ -126,7 +125,7 @@ public class SharedErrorCollectorDistributedTest {
   }
 
   @Test
-  public void checkThatFailureInMethodInDUnitVMIsReported() throws Exception {
+  public void checkThatFailureInMethodInDUnitVMIsReported() {
     Result result = TestRunner.runTest(CheckThatFailsInMethodInDUnitVM.class);
 
     assertThat(result.wasSuccessful()).isFalse();
@@ -137,7 +136,7 @@ public class SharedErrorCollectorDistributedTest {
   }
 
   @Test
-  public void addErrorInDUnitVMIsReported() throws Exception {
+  public void addErrorInDUnitVMIsReported() {
     Result result = TestRunner.runTest(AddErrorInDUnitVM.class);
 
     assertThat(result.wasSuccessful()).isFalse();
@@ -148,7 +147,7 @@ public class SharedErrorCollectorDistributedTest {
   }
 
   @Test
-  public void addErrorInEveryDUnitVMIsReported() throws Exception {
+  public void addErrorInEveryDUnitVMIsReported() {
     Result result = TestRunner.runTest(AddErrorInEveryDUnitVM.class);
 
     assertThat(result.wasSuccessful()).isFalse();
@@ -162,7 +161,7 @@ public class SharedErrorCollectorDistributedTest {
   }
 
   @Test
-  public void addErrorInEveryDUnitVMAndControllerIsReported() throws Exception {
+  public void addErrorInEveryDUnitVMAndControllerIsReported() {
     Result result = TestRunner.runTest(AddErrorInEveryDUnitVMAndController.class);
 
     assertThat(result.wasSuccessful()).isFalse();
@@ -183,7 +182,7 @@ public class SharedErrorCollectorDistributedTest {
   }
 
   @Test
-  public void addErrorInMethodInDUnitVMIsReported() throws Exception {
+  public void addErrorInMethodInDUnitVMIsReported() {
     Result result = TestRunner.runTest(AddErrorInMethodInDUnitVM.class);
 
     assertThat(result.wasSuccessful()).isFalse();
@@ -202,7 +201,7 @@ public class SharedErrorCollectorDistributedTest {
     public SharedErrorCollector errorCollector = new SharedErrorCollector();
 
     @Test
-    public void assertionFailsInController() throws Exception {
+    public void assertionFailsInController() {
       errorCollector.checkThat(MESSAGE, false, is(true));
     }
   }
@@ -216,7 +215,7 @@ public class SharedErrorCollectorDistributedTest {
     public SharedErrorCollector errorCollector = new SharedErrorCollector();
 
     @Test
-    public void exceptionInController() throws Exception {
+    public void exceptionInController() {
       errorCollector.addError(new NullPointerException(MESSAGE));
     }
   }
@@ -230,7 +229,7 @@ public class SharedErrorCollectorDistributedTest {
     public SharedErrorCollector errorCollector = new SharedErrorCollector();
 
     @Test
-    public void assertionFailsInDUnitVM() throws Exception {
+    public void assertionFailsInDUnitVM() {
       getVM(0).invoke(() -> errorCollector.checkThat(MESSAGE, false, is(true)));
     }
   }
@@ -244,7 +243,7 @@ public class SharedErrorCollectorDistributedTest {
     public SharedErrorCollector errorCollector = new SharedErrorCollector();
 
     @Test
-    public void assertionFailsInEveryDUnitVM() throws Exception {
+    public void assertionFailsInEveryDUnitVM() {
       for (VM vm : getAllVMs()) {
         vm.invoke(
             () -> errorCollector.checkThat(MESSAGE + " in VM-" + vm.getId(), false, is(true)));
@@ -261,7 +260,7 @@ public class SharedErrorCollectorDistributedTest {
     public SharedErrorCollector errorCollector = new SharedErrorCollector();
 
     @Test
-    public void assertionFailsInEveryDUnitVM() throws Exception {
+    public void assertionFailsInEveryDUnitVM() {
       errorCollector.checkThat(MESSAGE + " in VM-CONTROLLER", false, is(true));
       for (VM vm : getAllVMs()) {
         vm.invoke(
@@ -279,7 +278,7 @@ public class SharedErrorCollectorDistributedTest {
     public SharedErrorCollector errorCollector = new SharedErrorCollector();
 
     @Test
-    public void assertionFailsInDUnitVM() throws Exception {
+    public void assertionFailsInDUnitVM() {
       getVM(0).invoke(() -> checkThat());
     }
 
@@ -297,7 +296,7 @@ public class SharedErrorCollectorDistributedTest {
     public SharedErrorCollector errorCollector = new SharedErrorCollector();
 
     @Test
-    public void exceptionInDUnitVM() throws Exception {
+    public void exceptionInDUnitVM() {
       getVM(0).invoke(() -> errorCollector.addError(new NullPointerException(MESSAGE)));
     }
   }
@@ -311,7 +310,7 @@ public class SharedErrorCollectorDistributedTest {
     public SharedErrorCollector errorCollector = new SharedErrorCollector();
 
     @Test
-    public void exceptionInEveryDUnitVM() throws Exception {
+    public void exceptionInEveryDUnitVM() {
       for (VM vm : getAllVMs()) {
         vm.invoke(() -> errorCollector
             .addError(new NullPointerException(MESSAGE + " in VM-" + vm.getId())));
@@ -328,7 +327,7 @@ public class SharedErrorCollectorDistributedTest {
     public SharedErrorCollector errorCollector = new SharedErrorCollector();
 
     @Test
-    public void exceptionInEveryDUnitVM() throws Exception {
+    public void exceptionInEveryDUnitVM() {
       errorCollector.addError(new NullPointerException(MESSAGE + " in VM-CONTROLLER"));
       for (VM vm : getAllVMs()) {
         vm.invoke(() -> errorCollector
@@ -346,7 +345,7 @@ public class SharedErrorCollectorDistributedTest {
     public SharedErrorCollector errorCollector = new SharedErrorCollector();
 
     @Test
-    public void exceptionInDUnitVM() throws Exception {
+    public void exceptionInDUnitVM() {
       getVM(0).invoke(() -> addError());
     }
 
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java
index 72733a9..acb0648 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java
@@ -56,7 +56,7 @@ import org.apache.geode.test.dunit.DUnitBlackboard;
 import org.apache.geode.test.dunit.Disconnect;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.dunit.standalone.DUnitLauncher;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
@@ -564,7 +564,7 @@ public abstract class JUnit4DistributedTestCase implements DistributedTestFixtur
 
   private static final void tearDownVM() {
     closeCache();
-    DistributedTestRule.TearDown.tearDownInVM();
+    DistributedRule.TearDown.tearDownInVM();
     cleanDiskDirs();
   }
 
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/AbstractDistributedTestRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/AbstractDistributedRule.java
similarity index 90%
rename from geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/AbstractDistributedTestRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/AbstractDistributedRule.java
index d5fde3b..3d13c70 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/AbstractDistributedTestRule.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/AbstractDistributedRule.java
@@ -25,22 +25,22 @@ import org.apache.geode.test.dunit.standalone.DUnitLauncher;
 import org.apache.geode.test.junit.rules.serializable.SerializableStatement;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestRule;
 
-class AbstractDistributedTestRule implements SerializableTestRule {
+class AbstractDistributedRule implements SerializableTestRule {
 
   private final int vmCount;
   private final RemoteInvoker invoker;
 
   private volatile int beforeVmCount;
 
-  protected AbstractDistributedTestRule() {
+  protected AbstractDistributedRule() {
     this(DEFAULT_VM_COUNT);
   }
 
-  protected AbstractDistributedTestRule(final int vmCount) {
+  protected AbstractDistributedRule(final int vmCount) {
     this(vmCount, new RemoteInvoker());
   }
 
-  protected AbstractDistributedTestRule(final int vmCount, final RemoteInvoker invoker) {
+  protected AbstractDistributedRule(final int vmCount, final RemoteInvoker invoker) {
     this.vmCount = vmCount;
     this.invoker = invoker;
   }
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CacheRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CacheRule.java
index b08d71b..a75c22f 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CacheRule.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CacheRule.java
@@ -39,7 +39,7 @@ import org.apache.geode.test.dunit.VM;
  *
  * <pre>
  * {@literal @}Rule
- * public DistributedTestRule distributedTestRule = new DistributedTestRule();
+ * public DistributedRule distributedRule = new DistributedRule();
  *
  * {@literal @}Rule
  * public CacheRule cacheRule = new CacheRule();
@@ -53,35 +53,37 @@ import org.apache.geode.test.dunit.VM;
  * public void createRegionWithRegionFactory() {
  *   getVM(0).invoke(() -> {
  *     RegionFactory regionFactory = cacheRule.getCache().createRegionFactory();
- *     ...
+ *     Region region = regionFactory.create("RegionName");
+ *     assertThat(region).isNotNull();
  *   });
  * }
  * </pre>
  *
  * <p>
- * {@link CacheRule.Builder} can be used to construct an instance with more options:
+ * {@link CacheRule.Builder} can also be used to construct an instance with more options:
  *
  * <pre>
- * {@literal @}ClassRule
- * public static DistributedTestRule distributedTestRule = new DistributedTestRule();
- *
  * {@literal @}Rule
- * public DistributedTestRule.TearDown tearDown = new DistributedTestRule.TearDown();
+ * public DistributedRule distributedRule = new DistributedRule();
  *
  * {@literal @}Rule
  * public CacheRule cacheRule = CacheRule.builder().createCacheInAll().build();
  *
  * {@literal @}Test
- * public void everyVMShouldHaveACache() {
+ * public void controllerVmCreatedCache() {
  *   assertThat(cacheRule.getCache()).isNotNull();
+ * }
+ *
+ * {@literal @}Test
+ * public void remoteVmsCreatedCache() {
  *   for (VM vm : Host.getHost(0).getAllVMs()) {
  *     vm.invoke(() -> assertThat(cacheRule.getCache()).isNotNull());
  *   }
  * }
  * </pre>
  */
-@SuppressWarnings({"serial", "unused"})
-public class CacheRule extends AbstractDistributedTestRule {
+@SuppressWarnings("serial,unused")
+public class CacheRule extends AbstractDistributedRule {
 
   private static volatile InternalCache cache;
 
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CleanupDUnitVMsRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CleanupDUnitVMsRule.java
index 145f5b8..5d330de 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CleanupDUnitVMsRule.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CleanupDUnitVMsRule.java
@@ -19,7 +19,7 @@ import static org.apache.geode.test.dunit.VM.getAllVMs;
 
 import org.apache.geode.test.dunit.VM;
 
-public class CleanupDUnitVMsRule extends AbstractDistributedTestRule {
+public class CleanupDUnitVMsRule extends AbstractDistributedRule {
 
   @Override
   public void before() {
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/ClientCacheRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/ClientCacheRule.java
index 9391e2b..824b55b 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/ClientCacheRule.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/ClientCacheRule.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.test.dunit.rules;
 
+import static org.apache.geode.test.dunit.Disconnect.disconnectAllFromDS;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.ArrayList;
@@ -23,7 +24,6 @@ import java.util.Properties;
 import org.apache.geode.cache.client.ClientCacheFactory;
 import org.apache.geode.cache.client.internal.InternalClientCache;
 import org.apache.geode.distributed.internal.InternalDistributedSystem;
-import org.apache.geode.test.dunit.Disconnect;
 import org.apache.geode.test.dunit.VM;
 
 /**
@@ -31,27 +31,39 @@ import org.apache.geode.test.dunit.VM;
  * {@code CacheTestCase}.
  *
  * <p>
- * {@code ClientCacheRule} follows the standard convention of using a {@code Builder} for
- * configuration as introduced in the JUnit {@code Timeout} rule.
- *
- * <p>
  * {@code ClientCacheRule} can be used in DistributedTests as a {@code Rule}:
  *
  * <pre>
- * {@literal @}ClassRule
- * public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+ * {@literal @}Rule
+ * public DistributedRule distributedRule = new DistributedRule();
  *
  * {@literal @}Rule
  * public ClientCacheRule clientCacheRule = new ClientCacheRule();
  *
  * {@literal @}Test
- * public void hasClient() {
- *   vm0.invoke(() -> clientCacheRule.createClientCache());
+ * public void createClientCache() {
+ *   vm0.invoke(() -> clientCacheRule.createClientCache(new ClientCacheFactory().setPoolThreadLocalConnections(true));
+ * }
+ * </pre>
+ *
+ * <p>
+ * {@link ClientCacheRule.Builder} can also be used to construct an instance with more options:
+ *
+ * <pre>
+ * {@literal @}Rule
+ * public DistributedRule distributedRule = new DistributedRule();
+ *
+ * {@literal @}Rule
+ * public ClientCacheRule clientCacheRule = ClientCacheRule.builder().createClientCacheInLocal().build();
+ *
+ * {@literal @}Test
+ * public void controllerVmCreatedClientCache() {
+ *   assertThat(clientCacheRule.getClientCache()).isNotNull();
  * }
  * </pre>
  */
-@SuppressWarnings({"serial", "unused"})
-public class ClientCacheRule extends AbstractDistributedTestRule {
+@SuppressWarnings("serial,unused")
+public class ClientCacheRule extends AbstractDistributedRule {
 
   private static volatile InternalClientCache clientCache;
 
@@ -93,7 +105,7 @@ public class ClientCacheRule extends AbstractDistributedTestRule {
     invoker().invokeInEveryVMAndController(() -> closeAndNullClientCache());
 
     if (disconnectAfter) {
-      Disconnect.disconnectAllFromDS();
+      disconnectAllFromDS();
     }
   }
 
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRestoreSystemProperties.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRestoreSystemProperties.java
index d93502a..7aef047 100755
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRestoreSystemProperties.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRestoreSystemProperties.java
@@ -20,7 +20,7 @@ import org.apache.geode.test.junit.rules.accessible.AccessibleRestoreSystemPrope
  * Distributed version of RestoreSystemProperties which affects all DUnit JVMs including the Locator
  * JVM.
  */
-public class DistributedRestoreSystemProperties extends AbstractDistributedTestRule {
+public class DistributedRestoreSystemProperties extends AbstractDistributedRule {
 
   private static final AccessibleRestoreSystemProperties restoreSystemProperties =
       new AccessibleRestoreSystemProperties();
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedTestRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRule.java
similarity index 71%
rename from geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedTestRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRule.java
index e3f05c9..c755746 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedTestRule.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRule.java
@@ -48,39 +48,66 @@ import org.apache.geode.test.dunit.standalone.DUnitLauncher;
 import org.apache.geode.test.junit.rules.serializable.SerializableExternalResource;
 
 /**
- * JUnit Rule that launches DistributedTest VMs without {@code DistributedTestCase}. Test class may
- * need to implement {@code Serializable}.
+ * JUnit Rule that launches DistributedTest VMs and scans all log output for suspect strings without
+ * {@code DistributedTestCase}. The test class may need to implement {@code Serializable} if it
+ * uses lambdas to perform {@code RMI} invocations on {@code VM}s.
  *
  * <p>
- * {@code DistributedTestRule} can be used in DistributedTests as a {@code ClassRule}. This ensures
- * that DUnit VMs will be available to non-Class {@code Rule}s. Unfortunately, you will need to
- * declare {@code DistributedTestRule.TearDown} as a non-Class {@code Rule}. Without
- * {@code DistributedTestRule.TearDown} grep for suspect strings will not be invoked after each
- * test.
+ * {@code DistributedRule} can be used in DistributedTests as a {@code Rule}. This will ensure
+ * that checking for suspect strings is performed after each test method.
  *
  * <pre>
- * {@literal @}ClassRule
- * public static DistributedTestRule distributedTestRule = new DistributedTestRule();
- *
  * {@literal @}Rule
- * public DistributedTestRule.TearDown tearDownRule = new DistributedTestRule.TearDown();
+ * public DistributedRule distributedRule = new DistributedRule();
  *
  * {@literal @}Test
- * public void shouldHaveFourDUnitVMsByDefault() {
+ * public void shouldHaveFourVMsByDefault() {
  *   assertThat(getVMCount()).isEqualTo(4);
  * }
  * </pre>
  *
  * <p>
- * Or as a non-Class {@code Rule}. This usage does <bold>not</bold> require separate declaration of
- * {@code DistributedTestRule.TearDown}:
+ * You may specify a non-default number of {@code VM}s for the test when constructing
+ * {@code DistributedRule}.
+ *
+ * <p>
+ * Example of specifying fewer that the default number of {@code VM}s (which is 4):
+ *
+ * <pre>
+ * {@literal @}Rule
+ * public DistributedRule distributedRule = new DistributedRule(1);
+ *
+ * {@literal @}Test
+ * public void hasOneVM() {
+ *   assertThat(getVMCount()).isEqualTo(1);
+ * }
+ * </pre>
+ *
+ * <p>
+ * Example of specifying greater that the default number of {@code VM}s (which is 4):
  *
  * <pre>
  * {@literal @}Rule
- * public DistributedTestRule distributedTestRule = new DistributedTestRule();
+ * public DistributedRule distributedRule = new DistributedRule(8);
+ *
+ * {@literal @}Test
+ * public void hasEightVMs() {
+ *   assertThat(getVMCount()).isEqualTo(8);
+ * }
+ * </pre>
+ *
+ * <p>
+ * {@code DistributedRule} can also be used in DistributedTests as a {@code ClassRule}. This ensures
+ * that DUnit VMs will be available to non-Class {@code Rule}s. However, you may want to declare
+ * {@code DistributedRule.TearDown} as a non-Class {@code Rule} so that check for suspect strings is
+ * performed after each test method.
+ *
+ * <pre>
+ * {@literal @}ClassRule
+ * public static DistributedRule distributedRule = new DistributedRule();
  *
  * {@literal @}Rule
- * public DistributedTestRule.TearDown tearDownRule = new DistributedTestRule.TearDown();
+ * public DistributedRule.TearDown distributedRuleTearDown = new DistributedRule.TearDown();
  *
  * {@literal @}Test
  * public void shouldHaveFourDUnitVMsByDefault() {
@@ -89,32 +116,40 @@ import org.apache.geode.test.junit.rules.serializable.SerializableExternalResour
  * </pre>
  */
 @SuppressWarnings("unused")
-public class DistributedTestRule extends AbstractDistributedTestRule {
+public class DistributedRule extends AbstractDistributedRule {
 
   private final int vmCount;
 
   /**
-   * Use {@code Builder} for more options in constructing {@code DistributedTestRule}.
+   * Use {@code Builder} for more options in constructing {@code DistributedRule}.
    */
   public static Builder builder() {
     return new Builder();
   }
 
-  public DistributedTestRule() {
+  /**
+   * Constructs DistributedRule and launches the default number of {@code VM}s (which is 4).
+   */
+  public DistributedRule() {
     this(new Builder());
   }
 
-  public DistributedTestRule(final int vmCount) {
+  /**
+   * Constructs DistributedRule and launches the specified number of {@code VM}s.
+   *
+   * @param vmCount specified number of VMs
+   */
+  public DistributedRule(final int vmCount) {
     this(new Builder().withVMCount(vmCount));
   }
 
-  DistributedTestRule(final Builder builder) {
+  DistributedRule(final Builder builder) {
     super(builder.vmCount);
     vmCount = builder.vmCount;
   }
 
   @Override
-  protected void before() throws Exception {
+  protected void before() {
     DUnitLauncher.launchIfNeeded(vmCount);
     for (int i = 0; i < vmCount; i++) {
       assertThat(getVM(i)).isNotNull();
@@ -127,7 +162,7 @@ public class DistributedTestRule extends AbstractDistributedTestRule {
   }
 
   /**
-   * Builds an instance of CacheRule.
+   * Builds an instance of DistributedRule.
    */
   public static class Builder {
 
@@ -141,8 +176,8 @@ public class DistributedTestRule extends AbstractDistributedTestRule {
       return this;
     }
 
-    public DistributedTestRule build() {
-      return new DistributedTestRule(this);
+    public DistributedRule build() {
+      return new DistributedRule(this);
     }
   }
 
@@ -150,16 +185,16 @@ public class DistributedTestRule extends AbstractDistributedTestRule {
    * Cleans up horrendous things like static state and non-default instances in Geode.
    *
    * <p>
-   * {@link DistributedTestRule#after()} invokes the same cleanup that this Rule does, but if you
-   * defined {@code DistributedTestRule} as a {@code ClassRule} then you should declare TearDown
+   * {@link DistributedRule#after()} invokes the same cleanup that this Rule does, but if you
+   * defined {@code DistributedRule} as a {@code ClassRule} then you should declare TearDown
    * as a non-class {@code Rule} in your test:
    *
    * <pre>
    * {@literal @}ClassRule
-   * public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+   * public static DistributedRule distributedRule = new DistributedRule();
    *
    * {@literal @}Rule
-   * public DistributedTestRule.TearDown tearDownRule = new DistributedTestRule.TearDown();
+   * public DistributedRule.TearDown tearDownRule = new DistributedRule.TearDown();
    *
    * {@literal @}Test
    * public void shouldHaveFourDUnitVMsByDefault() {
@@ -173,7 +208,7 @@ public class DistributedTestRule extends AbstractDistributedTestRule {
   public static class TearDown extends SerializableExternalResource {
 
     @Override
-    protected void before() throws Exception {
+    protected void before() {
       // nothing
     }
 
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/SharedCountersRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/SharedCountersRule.java
index 9aa0273..2c1c437 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/SharedCountersRule.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/SharedCountersRule.java
@@ -29,34 +29,59 @@ import org.apache.geode.test.dunit.VM;
  * JUnit Rule that provides SharedCounters in DistributedTest VMs.
  *
  * <p>
- * {@code SharedCountersRule} follows the standard convention of using a {@code Builder} for
- * configuration as introduced in the JUnit {@code Timeout} rule.
- *
- * <p>
  * {@code SharedCountersRule} can be used in DistributedTests as a {@code Rule}:
  *
  * <pre>
- * {@literal @}ClassRule
- * public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+ * {@literal @}Rule
+ * public DistributedRule distributedRule = new DistributedRule();
  *
  * {@literal @}Rule
- * public CacheRule cacheRule = CacheRule.builder().createCacheInAll().build();
+ * public SharedCountersRule sharedCountersRule = new SharedCountersRule();
+ *
+ * {@literal @}Before
+ * public void setUp() {
+ *   sharedCountersRule.initialize("counter");
+ * }
  *
+ * {@literal @}Test
+ * public void incrementCounterInEveryVm() {
+ *   sharedCountersRule.initialize("counter");
+ *   for (VM vm : getAllVMs()) {
+ *     vm.invoke(() -> {
+ *       sharedCountersRule.increment("counter");
+ *     });
+ *   }
+ *   assertThat(sharedCountersRule.getTotal("counter")).isEqualTo(getVMCount());
+ * }
+ * </pre>
+ *
+ * <p>
+ * {@link SharedCountersRule.Builder} can also be used to construct an instance with more options:
+ *
+ * <pre>
  * {@literal @}Rule
- * public SharedCountersRule sharedCountersRule = SharedCountersRule.builder().withId(ID1).build();
+ * public DistributedRule distributedRule = new DistributedRule();
+ *
+ * {@literal @}Rule
+ * public SharedCountersRule sharedCountersRule = SharedCountersRule.builder().withId("counter").build();
  *
  * {@literal @}Test
- * public void everyVMShouldHaveACache() {
- *   sharedCountersRule.increment(ID1);
- *   for (VM vm : Host.getHost(0).getAllVMs()) {
- *     vm.invoke(() -> sharedCountersRule.increment(ID1));
+ * public void incrementCounterInEveryVm() {
+ *   for (VM vm : getAllVMs()) {
+ *     vm.invoke(() -> {
+ *       sharedCountersRule.increment("counter");
+ *     });
  *   }
- *   assertThat(sharedCountersRule.getTotal(ID1)).isEqualTo(5);
+ *   assertThat(sharedCountersRule.getTotal("counter")).isEqualTo(getVMCount());
  * }
  * </pre>
+ *
+ * <p>
+ * For a more thorough example, please see
+ * {@code org.apache.geode.cache.ReplicateCacheListenerDistributedTest} in the tests of geode-core.
  */
-@SuppressWarnings({"serial", "unused"})
-public class SharedCountersRule extends AbstractDistributedTestRule {
+@SuppressWarnings("serial,unused")
+public class SharedCountersRule extends AbstractDistributedRule {
 
   private static volatile Map<Serializable, AtomicInteger> counters;
 
@@ -75,7 +100,7 @@ public class SharedCountersRule extends AbstractDistributedTestRule {
   }
 
   @Override
-  protected void before() throws Exception {
+  protected void before() {
     invoker().invokeInEveryVMAndController(() -> counters = new ConcurrentHashMap<>());
     for (Serializable id : idsToInitInBefore) {
       invoker().invokeInEveryVMAndController(() -> initialize(id));
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/SharedErrorCollector.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/SharedErrorCollector.java
index 350ea00..9afc08d 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/SharedErrorCollector.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/SharedErrorCollector.java
@@ -28,29 +28,33 @@ import org.apache.geode.test.dunit.VM;
 
 /**
  * JUnit Rule that provides a shared ErrorCollector in all DistributedTest VMs. In particular, this
- * is a useful way to add assertions to CacheListener callbacks which are then registered in
- * multiple DistributedTest VMs.
+ * is a useful way to add assertions to CacheListener methods or other callbacks which are then
+ * registered in multiple DistributedTest VMs.
  *
  * <p>
  * {@code SharedErrorCollector} can be used in DistributedTests as a {@code Rule}:
  *
  * <pre>
- * {@literal @}ClassRule
- * public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+ * {@literal @}Rule
+ * public DistributedRule distributedRule = new DistributedRule();
  *
  * {@literal @}Rule
  * public SharedErrorCollector errorCollector = new SharedErrorCollector();
  *
  * {@literal @}Test
- * public void everyVMFailsAssertion() {
- *   for (VM vm : Host.getHost(0).getAllVMs()) {
+ * public void everyVmFailsAssertion() {
+ *   for (VM vm : VM.getAllVMs()) {
  *     vm.invoke(() -> errorCollector.checkThat("Failure in VM-" + vm.getId(), false, is(true)));
  *   }
  * }
  * </pre>
+ *
+ * <p>
+ * For a more thorough example, please see
+ * {@code org.apache.geode.cache.ReplicateCacheListenerDistributedTest} in the tests of geode-core.
  */
-@SuppressWarnings({"serial", "unused"})
-public class SharedErrorCollector extends AbstractDistributedTestRule {
+@SuppressWarnings("serial,unused")
+public class SharedErrorCollector extends AbstractDistributedRule {
 
   private static volatile ProtectedErrorCollector errorCollector;
 
@@ -59,7 +63,7 @@ public class SharedErrorCollector extends AbstractDistributedTestRule {
   }
 
   @Override
-  protected void before() throws Throwable {
+  protected void before() {
     invoker().invokeInEveryVMAndController(() -> errorCollector = new ProtectedErrorCollector());
   }
 
diff --git a/geode-dunit/src/test/java/org/apache/geode/test/dunit/examples/DoNotHandleUnexpectedExceptionExampleTest.java b/geode-dunit/src/test/java/org/apache/geode/test/dunit/examples/DoNotHandleUnexpectedExceptionExampleTest.java
index 595c184..879b123 100644
--- a/geode-dunit/src/test/java/org/apache/geode/test/dunit/examples/DoNotHandleUnexpectedExceptionExampleTest.java
+++ b/geode-dunit/src/test/java/org/apache/geode/test/dunit/examples/DoNotHandleUnexpectedExceptionExampleTest.java
@@ -19,8 +19,6 @@ import static org.assertj.core.api.Fail.fail;
 
 import org.junit.Test;
 
-
-
 public class DoNotHandleUnexpectedExceptionExampleTest {
 
   @Test
diff --git a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/GatewayLegacyAuthenticationRegressionTest.java b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/GatewayLegacyAuthenticationRegressionTest.java
index 0741b24..3bc4880 100644
--- a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/GatewayLegacyAuthenticationRegressionTest.java
+++ b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/GatewayLegacyAuthenticationRegressionTest.java
@@ -59,7 +59,7 @@ import org.apache.geode.security.AuthenticationFailedException;
 import org.apache.geode.security.Authenticator;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.CacheRule;
-import org.apache.geode.test.dunit.rules.DistributedTestRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
 import org.apache.geode.test.junit.categories.SecurityTest;
 import org.apache.geode.test.junit.categories.WanTest;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
@@ -96,7 +96,7 @@ public class GatewayLegacyAuthenticationRegressionTest implements Serializable {
   private int newYorkReceiverPort;
 
   @ClassRule
-  public static DistributedTestRule distributedTestRule = new DistributedTestRule();
+  public static DistributedRule distributedTestRule = new DistributedRule();
 
   @Rule
   public CacheRule cacheRule = new CacheRule();