You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2016/02/02 21:21:20 UTC

[13/44] incubator-geode git commit: Refactor dunit

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/76e324b5/gemfire-core/src/test/java/com/gemstone/gemfire/security/SecurityTestUtil.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/security/SecurityTestUtil.java b/gemfire-core/src/test/java/com/gemstone/gemfire/security/SecurityTestUtil.java
index 31aca2f..6e07919 100644
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/security/SecurityTestUtil.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/security/SecurityTestUtil.java
@@ -80,6 +80,10 @@ import com.gemstone.gemfire.internal.logging.PureLogWriter;
 import com.gemstone.gemfire.internal.util.Callable;
 import com.gemstone.gemfire.test.dunit.Assert;
 import com.gemstone.gemfire.test.dunit.DistributedTestCase;
+import com.gemstone.gemfire.test.dunit.DistributedTestSupport;
+import com.gemstone.gemfire.test.dunit.NetworkSupport;
+import com.gemstone.gemfire.test.dunit.Wait;
+import com.gemstone.gemfire.test.dunit.WaitCriterion;
 
 /**
  * Contains utility methods for setting up servers/clients for authentication
@@ -208,7 +212,7 @@ public class SecurityTestUtil extends DistributedTestCase {
 
     Integer locatorPort = new Integer(AvailablePort
         .getRandomAvailablePort(AvailablePort.SOCKET));
-    String addr = DistributedTestCase.getIPLiteral();
+    String addr = NetworkSupport.getIPLiteral();
     if (locatorString == null) {
       locatorString = addr + "[" + locatorPort + ']';
     }
@@ -288,14 +292,14 @@ public class SecurityTestUtil extends DistributedTestCase {
       authProps.setProperty(DistributionConfig.LOCATORS_NAME, locatorString);
       if (locatorPort != null) {
         authProps.setProperty(DistributionConfig.START_LOCATOR_NAME,
-            DistributedTestCase.getIPLiteral() + "[" + locatorPort.toString() + ']');
+            NetworkSupport.getIPLiteral() + "[" + locatorPort.toString() + ']');
       }
     } else {
-      authProps.setProperty("locators", "localhost["+getDUnitLocatorPort()+"]");
+      authProps.setProperty("locators", "localhost["+DistributedTestSupport.getDUnitLocatorPort()+"]");
     }
     authProps.setProperty(DistributionConfig.SECURITY_LOG_LEVEL_NAME, "finest");
-    getLogWriter().info("Set the server properties to: " + authProps);
-    getLogWriter().info("Set the java properties to: " + javaProps);
+    com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Set the server properties to: " + authProps);
+    com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Set the java properties to: " + javaProps);
 
     SecurityTestUtil tmpInstance = new SecurityTestUtil("temp");
     try {
@@ -306,7 +310,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     }
     catch (AuthenticationRequiredException ex) {
       if (expectedResult.intValue() == AUTHREQ_EXCEPTION) {
-        getLogWriter().info("Got expected exception when starting peer: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when starting peer: " + ex);
         return new Integer(0);
       }
       else {
@@ -315,7 +319,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     }
     catch (AuthenticationFailedException ex) {
       if (expectedResult.intValue() == AUTHFAIL_EXCEPTION) {
-        getLogWriter().info("Got expected exception when starting peer: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when starting peer: " + ex);
         return new Integer(0);
       }
       else {
@@ -423,7 +427,7 @@ public class SecurityTestUtil extends DistributedTestCase {
         //poolFactory.setSubscriptionEnabled(false);
       }
       pool = ClientServerTestCase.configureConnectionPoolWithNameAndFactory(factory,
-          DistributedTestCase.getIPLiteral(), portsI, subscriptionEnabled, 0,
+          NetworkSupport.getIPLiteral(), portsI, subscriptionEnabled, 0,
           numConnections == null ? -1 : numConnections.intValue(), null, null,
           poolFactory);
 
@@ -432,14 +436,14 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
       tmpInstance.openCache();
       try {
-        getLogWriter().info("multi-user mode " + multiUserAuthMode);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("multi-user mode " + multiUserAuthMode);
         proxyCaches[0] = (ProxyCache)((PoolImpl) pool).createAuthenticatedCacheView(authProps);
         if (!multiUserAuthMode) {
           fail("Expected a UnsupportedOperationException but got none in single-user mode");
         }
       } catch (UnsupportedOperationException uoe) {
         if (!multiUserAuthMode) {
-          getLogWriter().info("Got expected UnsupportedOperationException in single-user mode");
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected UnsupportedOperationException in single-user mode");
         }
         else {
           Assert.fail("Got unexpected exception in multi-user mode ", uoe);
@@ -463,7 +467,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     catch (AuthenticationRequiredException ex) {
       if (expectedResult.intValue() == AUTHREQ_EXCEPTION
           || expectedResult.intValue() == NOFORCE_AUTHREQ_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when starting client: " + ex);
       }
       else {
@@ -472,7 +476,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     }
     catch (AuthenticationFailedException ex) {
       if (expectedResult.intValue() == AUTHFAIL_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when starting client: " + ex);
       }
       else {
@@ -481,7 +485,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     }
     catch (ServerRefusedConnectionException ex) {
       if (expectedResult.intValue() == CONNREFUSED_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when starting client: " + ex);
       }
       else {
@@ -565,7 +569,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       poolFactory.setMultiuserAuthentication(multiUserAuthMode);
       poolFactory.setSubscriptionEnabled(true);
       pool = ClientServerTestCase.configureConnectionPoolWithNameAndFactory(factory,
-          DistributedTestCase.getIPLiteral(), portsI, true, 1,
+          NetworkSupport.getIPLiteral(), portsI, true, 1,
           numConnections == null ? -1 : numConnections.intValue(), null, null,
           poolFactory);
 
@@ -592,7 +596,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     catch (AuthenticationRequiredException ex) {
       if (expectedResult.intValue() == AUTHREQ_EXCEPTION
           || expectedResult.intValue() == NOFORCE_AUTHREQ_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when starting client: " + ex);
       }
       else {
@@ -601,7 +605,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     }
     catch (AuthenticationFailedException ex) {
       if (expectedResult.intValue() == AUTHFAIL_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when starting client: " + ex);
       }
       else {
@@ -610,7 +614,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     }
     catch (ServerRefusedConnectionException ex) {
       if (expectedResult.intValue() == CONNREFUSED_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when starting client: " + ex);
       }
       else {
@@ -665,7 +669,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
       authProps.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
       authProps.setProperty(DistributionConfig.LOCATORS_NAME, 
-                            DistributedTestCase.getIPLiteral() + "[" + port + "]");
+                            NetworkSupport.getIPLiteral() + "[" + port + "]");
       authProps.setProperty(DistributionConfig.ENABLE_CLUSTER_CONFIGURATION_NAME, "false");
       clearStaticSSLContext();
       setJavaProps((Properties)javaProps);
@@ -721,7 +725,7 @@ public class SecurityTestUtil extends DistributedTestCase {
         return null;
       }
     };
-    DistributedTestCase.waitForCriterion(ev, sleepMillis * numTries, 200, true);
+    Wait.waitForCriterion(ev, sleepMillis * numTries, 200, true);
   }
 
   public static Object getLocalValue(Region region, Object key) {
@@ -758,7 +762,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     }
     catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info("Got expected exception when doing puts: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing puts: " + ex);
       }
       else {
         Assert.fail("Got unexpected exception when doing puts", ex);
@@ -778,7 +782,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
       catch(NoAvailableServersException ex) {
         if(expectedResult.intValue() == SecurityTestUtil.NO_AVAILABLE_SERVERS) {
-          getLogWriter().info(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
               "Got expected NoAvailableServers when doing puts: "
               + ex.getCause());
           continue;
@@ -790,27 +794,27 @@ public class SecurityTestUtil extends DistributedTestCase {
       catch (ServerConnectivityException ex) {
         if ((expectedResult.intValue() == NOTAUTHZ_EXCEPTION)
             && (ex.getCause() instanceof NotAuthorizedException)) {
-          getLogWriter().info(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
               "Got expected NotAuthorizedException when doing puts: "
                   + ex.getCause());
           continue;
         }
         if ((expectedResult.intValue() == AUTHREQ_EXCEPTION)
             && (ex.getCause() instanceof AuthenticationRequiredException)) {
-          getLogWriter().info(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
               "Got expected AuthenticationRequiredException when doing puts: "
                   + ex.getCause());
           continue;
         }
         if ((expectedResult.intValue() == AUTHFAIL_EXCEPTION)
             && (ex.getCause() instanceof AuthenticationFailedException)) {
-          getLogWriter().info(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
               "Got expected AuthenticationFailedException when doing puts: "
                   + ex.getCause());
           continue;
         }
         else if (expectedResult.intValue() == OTHER_EXCEPTION) {
-          getLogWriter().info("Got expected exception when doing puts: " + ex);
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing puts: " + ex);
         }
         else {
           Assert.fail("Got unexpected exception when doing puts", ex);
@@ -818,7 +822,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
       catch (Exception ex) {
         if (expectedResult.intValue() == OTHER_EXCEPTION) {
-          getLogWriter().info("Got expected exception when doing puts: " + ex);
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing puts: " + ex);
         }
         else {
           Assert.fail("Got unexpected exception when doing puts", ex);
@@ -841,7 +845,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     }
     catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info("Got expected exception when doing getAll: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing getAll: " + ex);
       }
       else {
         Assert.fail("Got unexpected exception when doing getAll", ex);
@@ -870,7 +874,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
     } catch (NoAvailableServersException ex) {
       if (expectedResult.intValue() == SecurityTestUtil.NO_AVAILABLE_SERVERS) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected NoAvailableServers when doing getAll: "
                 + ex.getCause());
       } else {
@@ -879,17 +883,17 @@ public class SecurityTestUtil extends DistributedTestCase {
     } catch (ServerConnectivityException ex) {
       if ((expectedResult.intValue() == NOTAUTHZ_EXCEPTION)
           && (ex.getCause() instanceof NotAuthorizedException)) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected NotAuthorizedException when doing getAll: "
                 + ex.getCause());
       } else if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info("Got expected exception when doing getAll: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing getAll: " + ex);
       } else {
         Assert.fail("Got unexpected exception when doing getAll", ex);
       }
     } catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info("Got expected exception when doing getAll: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing getAll: " + ex);
       } else {
         Assert.fail("Got unexpected exception when doing getAll", ex);
       }
@@ -917,7 +921,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     }
     catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info("Got expected exception when doing gets: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing gets: " + ex);
       }
       else {
         Assert.fail("Got unexpected exception when doing gets", ex);
@@ -938,7 +942,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
       catch(NoAvailableServersException ex) {
         if(expectedResult.intValue() == SecurityTestUtil.NO_AVAILABLE_SERVERS) {
-          getLogWriter().info(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
               "Got expected NoAvailableServers when doing gets: "
               + ex.getCause());
           continue;
@@ -950,13 +954,13 @@ public class SecurityTestUtil extends DistributedTestCase {
       catch (ServerConnectivityException ex) {
         if ((expectedResult.intValue() == NOTAUTHZ_EXCEPTION)
             && (ex.getCause() instanceof NotAuthorizedException)) {
-          getLogWriter().info(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
               "Got expected NotAuthorizedException when doing gets: "
                   + ex.getCause());
           continue;
         }
         else if (expectedResult.intValue() == OTHER_EXCEPTION) {
-          getLogWriter().info("Got expected exception when doing gets: " + ex);
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing gets: " + ex);
         }
         else {
           Assert.fail("Got unexpected exception when doing gets", ex);
@@ -964,7 +968,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
       catch (Exception ex) {
         if (expectedResult.intValue() == OTHER_EXCEPTION) {
-          getLogWriter().info("Got expected exception when doing gets: " + ex);
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing gets: " + ex);
         }
         else {
           Assert.fail("Got unexpected exception when doing gets", ex);
@@ -1018,7 +1022,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       assertNotNull(region);
     } catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when doing region destroy: " + ex);
       } else {
         Assert.fail("Got unexpected exception when doing region destroy", ex);
@@ -1038,7 +1042,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       assertNull(region);
     } catch (NoAvailableServersException ex) {
       if (expectedResult.intValue() == SecurityTestUtil.NO_AVAILABLE_SERVERS) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected NoAvailableServers when doing region destroy: "
                 + ex.getCause());
       } else {
@@ -1047,18 +1051,18 @@ public class SecurityTestUtil extends DistributedTestCase {
     } catch (ServerConnectivityException ex) {
       if ((expectedResult.intValue() == NOTAUTHZ_EXCEPTION)
           && (ex.getCause() instanceof NotAuthorizedException)) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected NotAuthorizedException when doing region destroy: "
                 + ex.getCause());
       } else if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when doing region destroy: " + ex);
       } else {
         Assert.fail("Got unexpected exception when doing region destroy", ex);
       }
     } catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when doing region destroy: " + ex);
       } else {
         Assert.fail("Got unexpected exception when doing region destroy", ex);
@@ -1082,7 +1086,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     }
     catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info("Got expected exception when doing destroys: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing destroys: " + ex);
       }
       else {
         Assert.fail("Got unexpected exception when doing destroys", ex);
@@ -1097,7 +1101,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
       catch(NoAvailableServersException ex) {
         if(expectedResult.intValue() == SecurityTestUtil.NO_AVAILABLE_SERVERS) {
-          getLogWriter().info(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
               "Got expected NoAvailableServers when doing destroys: "
               + ex.getCause());
           continue;
@@ -1109,13 +1113,13 @@ public class SecurityTestUtil extends DistributedTestCase {
       catch (ServerConnectivityException ex) {
         if ((expectedResult.intValue() == NOTAUTHZ_EXCEPTION)
             && (ex.getCause() instanceof NotAuthorizedException)) {
-          getLogWriter().info(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
               "Got expected NotAuthorizedException when doing destroys: "
                   + ex.getCause());
           continue;
         }
         else if (expectedResult.intValue() == OTHER_EXCEPTION) {
-          getLogWriter().info("Got expected exception when doing destroys: " + ex);
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing destroys: " + ex);
         }
         else {
           Assert.fail("Got unexpected exception when doing destroys", ex);
@@ -1123,7 +1127,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
       catch (Exception ex) {
         if (expectedResult.intValue() == OTHER_EXCEPTION) {
-          getLogWriter().info("Got expected exception when doing destroys: " + ex);
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing destroys: " + ex);
         }
         else {
           Assert.fail("Got unexpected exception when doing destroys", ex);
@@ -1148,7 +1152,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     }
     catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info("Got expected exception when doing invalidates: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing invalidates: " + ex);
       }
       else {
         Assert.fail("Got unexpected exception when doing invalidates", ex);
@@ -1163,7 +1167,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
       catch(NoAvailableServersException ex) {
         if(expectedResult.intValue() == SecurityTestUtil.NO_AVAILABLE_SERVERS) {
-          getLogWriter().info(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
               "Got expected NoAvailableServers when doing invalidates: "
               + ex.getCause());
           continue;
@@ -1175,13 +1179,13 @@ public class SecurityTestUtil extends DistributedTestCase {
       catch (ServerConnectivityException ex) {
         if ((expectedResult.intValue() == NOTAUTHZ_EXCEPTION)
             && (ex.getCause() instanceof NotAuthorizedException)) {
-          getLogWriter().info(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
               "Got expected NotAuthorizedException when doing invalidates: "
                   + ex.getCause());
           continue;
         }
         else if (expectedResult.intValue() == OTHER_EXCEPTION) {
-          getLogWriter().info("Got expected exception when doing invalidates: " + ex);
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing invalidates: " + ex);
         }
         else {
           Assert.fail("Got unexpected exception when doing invalidates", ex);
@@ -1189,7 +1193,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
       catch (Exception ex) {
         if (expectedResult.intValue() == OTHER_EXCEPTION) {
-          getLogWriter().info("Got expected exception when doing invalidates: " + ex);
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing invalidates: " + ex);
         }
         else {
           Assert.fail("Got unexpected exception when doing invalidates", ex);
@@ -1214,7 +1218,7 @@ public class SecurityTestUtil extends DistributedTestCase {
     }
     catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info("Got expected exception when doing containsKey: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing containsKey: " + ex);
       }
       else {
         Assert.fail("Got unexpected exception when doing containsKey", ex);
@@ -1230,7 +1234,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
       catch(NoAvailableServersException ex) {
         if(expectedResult.intValue() == SecurityTestUtil.NO_AVAILABLE_SERVERS) {
-          getLogWriter().info(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
               "Got expected NoAvailableServers when doing containsKey: "
               + ex.getCause());
           continue;
@@ -1242,13 +1246,13 @@ public class SecurityTestUtil extends DistributedTestCase {
       catch (ServerConnectivityException ex) {
         if ((expectedResult.intValue() == NOTAUTHZ_EXCEPTION)
             && (ex.getCause() instanceof NotAuthorizedException)) {
-          getLogWriter().info(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
               "Got expected NotAuthorizedException when doing containsKey: "
                   + ex.getCause());
           continue;
         }
         else if (expectedResult.intValue() == OTHER_EXCEPTION) {
-          getLogWriter().info("Got expected exception when doing containsKey: " + ex);
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing containsKey: " + ex);
         }
         else {
           Assert.fail("Got unexpected exception when doing containsKey", ex);
@@ -1256,7 +1260,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
       catch (Exception ex) {
         if (expectedResult.intValue() == OTHER_EXCEPTION) {
-          getLogWriter().info("Got expected exception when doing containsKey: " + ex);
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing containsKey: " + ex);
         }
         else {
           Assert.fail("Got unexpected exception when doing containsKey", ex);
@@ -1278,7 +1282,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       assertNotNull(region);
     } catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info("Got expected exception when doing queries: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing queries: " + ex);
       } else {
         Assert.fail("Got unexpected exception when doing queries", ex);
       }
@@ -1293,7 +1297,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
     } catch (NoAvailableServersException ex) {
       if (expectedResult.intValue() == SecurityTestUtil.NO_AVAILABLE_SERVERS) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected NoAvailableServers when doing queries: "
                 + ex.getCause());
       } else {
@@ -1302,28 +1306,28 @@ public class SecurityTestUtil extends DistributedTestCase {
     } catch (ServerConnectivityException ex) {
       if ((expectedResult.intValue() == NOTAUTHZ_EXCEPTION)
           && (ex.getCause() instanceof NotAuthorizedException)) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected NotAuthorizedException when doing queries: "
                 + ex.getCause());
       } else if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info("Got expected exception when doing queries: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing queries: " + ex);
       } else {
         Assert.fail("Got unexpected exception when doing queries", ex);
       }
     } catch (QueryInvocationTargetException qite) {
       if ((expectedResult.intValue() == NOTAUTHZ_EXCEPTION)
           && (qite.getCause() instanceof NotAuthorizedException)) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected NotAuthorizedException when doing queries: "
                 + qite.getCause());
       } else if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info("Got expected exception when doing queries: " + qite);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing queries: " + qite);
       } else {
         Assert.fail("Got unexpected exception when doing queries", qite);
       }
     } catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info("Got expected exception when doing queries: " + ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("Got expected exception when doing queries: " + ex);
       } else {
         Assert.fail("Got unexpected exception when doing queries", ex);
       }
@@ -1343,7 +1347,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       assertNotNull(region);
     } catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when executing function: " + ex);
       } else {
         Assert.fail("Got unexpected exception when executing function", ex);
@@ -1373,7 +1377,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       }
     } catch (NoAvailableServersException ex) {
       if (expectedResult.intValue() == SecurityTestUtil.NO_AVAILABLE_SERVERS) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected NoAvailableServers when executing function: "
                 + ex.getCause());
       } else {
@@ -1382,11 +1386,11 @@ public class SecurityTestUtil extends DistributedTestCase {
     } catch (ServerConnectivityException ex) {
       if ((expectedResult.intValue() == NOTAUTHZ_EXCEPTION)
           && (ex.getCause() instanceof NotAuthorizedException)) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected NotAuthorizedException when executing function: "
                 + ex.getCause());
       } else if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when executing function: " + ex);
       } else {
         Assert.fail("Got unexpected exception when executing function", ex);
@@ -1396,18 +1400,18 @@ public class SecurityTestUtil extends DistributedTestCase {
           && ((ex.getCause() instanceof NotAuthorizedException) || ((ex
               .getCause() instanceof ServerOperationException) && (((ServerOperationException)ex
               .getCause()).getCause() instanceof NotAuthorizedException)))) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected NotAuthorizedException when executing function: "
                 + ex.getCause());
       } else if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when executing function: " + ex);
       } else {
         Assert.fail("Got unexpected exception when executing function", ex);
       }
     } catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when executing function: " + ex);
       } else {
         Assert.fail("Got unexpected exception when executing function", ex);
@@ -1427,7 +1431,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       assertNotNull(region);
     } catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when executing query: " + ex);
       } else {
         Assert.fail("Got unexpected exception when executing query", ex);
@@ -1449,7 +1453,7 @@ public class SecurityTestUtil extends DistributedTestCase {
       assertEquals(expectedValue.intValue(), result.asList().size());
     } catch (NoAvailableServersException ex) {
       if (expectedResult.intValue() == SecurityTestUtil.NO_AVAILABLE_SERVERS) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected NoAvailableServers when executing query: "
                 + ex.getCause());
       } else {
@@ -1458,18 +1462,18 @@ public class SecurityTestUtil extends DistributedTestCase {
     } catch (ServerConnectivityException ex) {
       if ((expectedResult.intValue() == NOTAUTHZ_EXCEPTION)
           && (ex.getCause() instanceof NotAuthorizedException)) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected NotAuthorizedException when executing query: "
                 + ex.getCause());
       } else if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when executing query: " + ex);
       } else {
         Assert.fail("Got unexpected exception when executing query", ex);
       }
     } catch (Exception ex) {
       if (expectedResult.intValue() == OTHER_EXCEPTION) {
-        getLogWriter().info(
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
             "Got expected exception when executing query: " + ex);
       } else {
         Assert.fail("Got unexpected exception when executing query", ex);
@@ -1494,7 +1498,7 @@ public class SecurityTestUtil extends DistributedTestCase {
           + ", but expected results " + expectedResults.length);
     }
     for (int i = 0; i < numOfUsers; i++) {
-      getLogWriter().info("PUT: MultiUser# " + i);
+      com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("PUT: MultiUser# " + i);
       doPutsP(num, Integer.valueOf(i), expectedResults[i], false);
     }
   }
@@ -1520,7 +1524,7 @@ public class SecurityTestUtil extends DistributedTestCase {
           + ", but expected results " + expectedResults.length);
     }
     for (int i = 0; i < numOfUsers; i++) {
-      getLogWriter().info(
+      com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info(
           "GET_ALL" + (useTX ? " in TX" : "") + ": MultiUser# " + i);
       doGetAllP(Integer.valueOf(i), expectedResults[i], useTX);
     }
@@ -1533,7 +1537,7 @@ public class SecurityTestUtil extends DistributedTestCase {
           + ", but expected results " + expectedResults.length);
     }
     for (int i = 0; i < numOfUsers; i++) {
-      getLogWriter().info("GET: MultiUser# " + i);
+      com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("GET: MultiUser# " + i);
       doGetsP(num, Integer.valueOf(i), expectedResults[i], false);
     }
   }
@@ -1545,7 +1549,7 @@ public class SecurityTestUtil extends DistributedTestCase {
           + ", but expected results " + expectedResults.length);
     }
     for (int i = numOfUsers-1; i >= 0; i--) {
-      getLogWriter().info("DESTROY: MultiUser# " + i);
+      com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("DESTROY: MultiUser# " + i);
       doRegionDestroysP(Integer.valueOf(i), expectedResults[i]);
     }
   }
@@ -1557,7 +1561,7 @@ public class SecurityTestUtil extends DistributedTestCase {
           + ", but expected results " + expectedResults.length);
     }
     for (int i = 0; i < numOfUsers; i++) {
-      getLogWriter().info("DESTROY: MultiUser# " + i);
+      com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("DESTROY: MultiUser# " + i);
       doDestroysP(num, Integer.valueOf(i), expectedResults[i], false);
     }
   }
@@ -1569,7 +1573,7 @@ public class SecurityTestUtil extends DistributedTestCase {
           + ", but expected results " + expectedResults.length);
     }
     for (int i = 0; i < numOfUsers; i++) {
-      getLogWriter().info("INVALIDATE: MultiUser# " + i);
+      com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("INVALIDATE: MultiUser# " + i);
       doInvalidatesP(num, Integer.valueOf(i), expectedResults[i], false);
     }
   }
@@ -1585,7 +1589,7 @@ public class SecurityTestUtil extends DistributedTestCase {
           + ", but #expected output " + results.length);
     }
     for (int i = 0; i < numOfUsers; i++) {
-      getLogWriter().info("CONTAINS_KEY: MultiUser# " + i);
+      com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("CONTAINS_KEY: MultiUser# " + i);
       doContainsKeysP(num, Integer.valueOf(i), expectedResults[i], false, results[i]);
     }
   }
@@ -1597,7 +1601,7 @@ public class SecurityTestUtil extends DistributedTestCase {
           + ", but #expected results " + expectedResults.length);
     }
     for (int i = 0; i < numOfUsers; i++) {
-      getLogWriter().info("QUERY: MultiUser# " + i);
+      com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("QUERY: MultiUser# " + i);
       doQueriesP(Integer.valueOf(i), expectedResults[i], valueSize);
     }
   }
@@ -1613,16 +1617,16 @@ public class SecurityTestUtil extends DistributedTestCase {
           + ", but #expected output " + results.length);
     }
     for (int i = 0; i < numOfUsers; i++) {
-      getLogWriter().info("FunctionExecute:onRegion MultiUser# " + i);
+      com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("FunctionExecute:onRegion MultiUser# " + i);
       doFunctionExecuteP(Integer.valueOf(i), function, expectedResults[i], results[i], "region");
     }
     for (int i = 0; i < numOfUsers; i++) {
-      getLogWriter().info("FunctionExecute:onServer MultiUser# " + i);
+      com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("FunctionExecute:onServer MultiUser# " + i);
       doFunctionExecuteP(Integer.valueOf(i), function, expectedResults[i], results[i], "server");
     }
     if (!isFailoverCase) {
       for (int i = 0; i < numOfUsers; i++) {
-        getLogWriter().info("FunctionExecute:onServers MultiUser# " + i);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("FunctionExecute:onServers MultiUser# " + i);
         doFunctionExecuteP(Integer.valueOf(i), function, expectedResults[i],
             results[i], "servers");
       }
@@ -1636,7 +1640,7 @@ public class SecurityTestUtil extends DistributedTestCase {
           + ", but #expected results " + expectedResults.length);
     }
     for (int i = 0; i < numOfUsers; i++) {
-      getLogWriter().info("QueryExecute: MultiUser# " + i);
+      com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().info("QueryExecute: MultiUser# " + i);
       doQueryExecuteP(Integer.valueOf(i), expectedResults[i], result);
     }
   }
@@ -1683,7 +1687,7 @@ public class SecurityTestUtil extends DistributedTestCase {
           fail("Expected " + expectedResult + " but found "
               + e.getClass().getSimpleName() + " in doSimpleGet()");
         } else {
-          getLogWriter().fine(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().fine(
               "Got expected " + e.getClass().getSimpleName()
                   + " in doSimpleGet()");
         }
@@ -1703,7 +1707,7 @@ public class SecurityTestUtil extends DistributedTestCase {
           Assert.fail("Expected " + expectedResult + " but found "
               + e.getClass().getSimpleName() + " in doSimplePut()", e);
         } else {
-          getLogWriter().fine(
+          com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().fine(
               "Got expected " + e.getClass().getSimpleName()
                   + " in doSimplePut()");
         }
@@ -1731,11 +1735,11 @@ public class SecurityTestUtil extends DistributedTestCase {
         }
       }
       catch (IllegalAccessException ex) {
-        getLogWriter()
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter()
             .warning("Exception while clearing static SSL field.", ex);
       }
       catch (ClassCastException ex) {
-        getLogWriter()
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter()
             .warning("Exception while clearing static SSL field.", ex);
       }
     }
@@ -1755,7 +1759,7 @@ public class SecurityTestUtil extends DistributedTestCase {
         assertNull(field.get(obj));
       }
       catch (IllegalAccessException ex) {
-        getLogWriter().warning("Exception while clearing SSL fields.", ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().warning("Exception while clearing SSL fields.", ex);
       }
     }
   }
@@ -1780,7 +1784,7 @@ public class SecurityTestUtil extends DistributedTestCase {
         }
       }
       catch (IllegalAccessException ex) {
-        getLogWriter().warning("Exception while getting SSL fields.", ex);
+        com.gemstone.gemfire.test.dunit.LogWriterSupport.getLogWriter().warning("Exception while getting SSL fields.", ex);
       }
     }
     return resultFields;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/76e324b5/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/Assert.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/Assert.java b/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/Assert.java
index 7c4a9ef..10c62da 100755
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/Assert.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/Assert.java
@@ -27,8 +27,7 @@ public class Assert extends org.junit.Assert {
   public static void fail(final String message, final Throwable cause) {
     if (message == null && cause == null) {
       throw new AssertionError();
-    }
-    if (message == null) {
+    }    if (message == null) {
       throw new AssertionError(cause);
     }
     if (cause == null) {

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/76e324b5/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/AsyncInvocation.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/AsyncInvocation.java b/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/AsyncInvocation.java
index 6735fe5..e589863 100644
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/AsyncInvocation.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/AsyncInvocation.java
@@ -21,9 +21,6 @@ import java.util.concurrent.TimeoutException;
 import com.gemstone.gemfire.InternalGemFireError;
 import com.gemstone.gemfire.SystemFailure;
 
-// @todo davidw Add the ability to get a return value back from the
-// async method call.  (Use a static ThreadLocal field that is
-// accessible from the Runnable used in VM#invoke)
 /**
  * <P>An <code>AsyncInvocation</code> represents the invocation of a
  * remote invocation that executes asynchronously from its caller.  An
@@ -50,6 +47,9 @@ import com.gemstone.gemfire.SystemFailure;
  * @see VM#invokeAsync(Class, String)
  */
 public class AsyncInvocation<T> extends Thread {
+  //@todo davidw Add the ability to get a return value back from the
+  //async method call.  (Use a static ThreadLocal field that is
+  //accessible from the Runnable used in VM#invoke)
   
   private static final ThreadLocal returnValue = new ThreadLocal();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/76e324b5/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DebuggerSupport.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DebuggerSupport.java b/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DebuggerSupport.java
index 47cb89f..9de33e5 100755
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DebuggerSupport.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DebuggerSupport.java
@@ -1,5 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package com.gemstone.gemfire.test.dunit;
 
 public class DebuggerSupport {
 
+  protected DebuggerSupport() {
+  }
+  
+  public static void attachDebugger(VM vm, final String msg) {
+    vm.invoke(new SerializableRunnable("Attach Debugger") {
+      public void run() {
+        com.gemstone.gemfire.internal.util.DebuggerSupport.
+        waitForJavaDebugger(msg);
+      } 
+    });
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/76e324b5/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DistributedSystemSupport.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DistributedSystemSupport.java b/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DistributedSystemSupport.java
new file mode 100755
index 0000000..4356646
--- /dev/null
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DistributedSystemSupport.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.gemstone.gemfire.test.dunit;
+
+import java.io.File;
+
+import com.gemstone.gemfire.distributed.DistributedSystem;
+import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
+import com.gemstone.gemfire.distributed.internal.membership.gms.MembershipManagerHelper;
+
+public class DistributedSystemSupport {
+
+  /**
+   * Crash the cache in the given VM in such a way that it immediately stops communicating with
+   * peers.  This forces the VM's membership manager to throw a ForcedDisconnectException by
+   * forcibly terminating the JGroups protocol stack with a fake EXIT event.<p>
+   * 
+   * NOTE: if you use this method be sure that you clean up the VM before the end of your
+   * test with disconnectFromDS() or disconnectAllFromDS().
+   */
+  public static void crashDistributedSystem(final DistributedSystem msys) {
+    MembershipManagerHelper.crashDistributedSystem(msys);
+    MembershipManagerHelper.inhibitForcedDisconnectLogging(false);
+    WaitCriterion wc = new WaitCriterion() {
+      public boolean done() {
+        return !msys.isConnected();
+      }
+      public String description() {
+        return "waiting for distributed system to finish disconnecting: " + msys;
+      }
+    };
+    Wait.waitForCriterion(wc, 10000, 1000, true);
+  }
+
+  /**
+   * Crash the cache in the given VM in such a way that it immediately stops communicating with
+   * peers.  This forces the VM's membership manager to throw a ForcedDisconnectException by
+   * forcibly terminating the JGroups protocol stack with a fake EXIT event.<p>
+   * 
+   * NOTE: if you use this method be sure that you clean up the VM before the end of your
+   * test with disconnectFromDS() or disconnectAllFromDS().
+   */
+  public static boolean crashDistributedSystem(VM vm) {
+    return (Boolean)vm.invoke(new SerializableCallable("crash distributed system") {
+      public Object call() throws Exception {
+        DistributedSystem msys = InternalDistributedSystem.getAnyInstance();
+        crashDistributedSystem(msys);
+        return true;
+      }
+    });
+  }
+
+  /** 
+   * delete locator state files.  Use this after getting a random port
+   * to ensure that an old locator state file isn't picked up by the
+   * new locator you're starting.
+   * @param ports
+   */
+  public static void deleteLocatorStateFile(int... ports) {
+    for (int i=0; i<ports.length; i++) {
+      File stateFile = new File("locator"+ports[i]+"view.dat");
+      if (stateFile.exists()) {
+        stateFile.delete();
+      }
+    }
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/76e324b5/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DistributedTestCase.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DistributedTestCase.java b/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DistributedTestCase.java
index f967acc..2038701 100755
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DistributedTestCase.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/test/dunit/DistributedTestCase.java
@@ -16,20 +16,14 @@
  */
 package com.gemstone.gemfire.test.dunit;
 
-import java.io.File;
-import java.net.UnknownHostException;
 import java.text.DecimalFormat;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Properties;
 
-import org.apache.logging.log4j.Logger;
 import org.junit.experimental.categories.Category;
 
-import com.gemstone.gemfire.InternalGemFireError;
-import com.gemstone.gemfire.LogWriter;
 import com.gemstone.gemfire.SystemFailure;
 import com.gemstone.gemfire.admin.internal.AdminDistributedSystemImpl;
 import com.gemstone.gemfire.cache.Cache;
@@ -43,38 +37,23 @@ import com.gemstone.gemfire.cache30.MultiVMRegionTestCase;
 import com.gemstone.gemfire.cache30.RegionTestCase;
 import com.gemstone.gemfire.distributed.DistributedSystem;
 import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionConfigImpl;
 import com.gemstone.gemfire.distributed.internal.DistributionMessageObserver;
 import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
 import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.CreationStackGenerator;
-import com.gemstone.gemfire.distributed.internal.membership.gms.MembershipManagerHelper;
-import com.gemstone.gemfire.internal.InternalDataSerializer;
-import com.gemstone.gemfire.internal.InternalInstantiator;
-import com.gemstone.gemfire.internal.OSProcess;
 import com.gemstone.gemfire.internal.SocketCreator;
 import com.gemstone.gemfire.internal.admin.ClientStatsManager;
 import com.gemstone.gemfire.internal.cache.DiskStoreObserver;
 import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
 import com.gemstone.gemfire.internal.cache.HARegion;
 import com.gemstone.gemfire.internal.cache.InitialImageOperation;
-import com.gemstone.gemfire.internal.cache.LocalRegion;
 import com.gemstone.gemfire.internal.cache.PartitionedRegion;
 import com.gemstone.gemfire.internal.cache.tier.InternalClientMembership;
 import com.gemstone.gemfire.internal.cache.tier.sockets.CacheServerTestUtil;
 import com.gemstone.gemfire.internal.cache.tier.sockets.ClientProxyMembershipID;
-import com.gemstone.gemfire.internal.cache.tier.sockets.DataSerializerPropogationDUnitTest;
 import com.gemstone.gemfire.internal.cache.xmlcache.CacheCreation;
-import com.gemstone.gemfire.internal.logging.InternalLogWriter;
-import com.gemstone.gemfire.internal.logging.LocalLogWriter;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.LogWriterFactory;
-import com.gemstone.gemfire.internal.logging.LogWriterImpl;
-import com.gemstone.gemfire.internal.logging.ManagerLogWriter;
-import com.gemstone.gemfire.internal.logging.log4j.LogWriterLogger;
 import com.gemstone.gemfire.management.internal.cli.LogWrapper;
 import com.gemstone.gemfire.test.dunit.standalone.DUnitLauncher;
 import com.gemstone.gemfire.test.junit.categories.DistributedTest;
-import com.jayway.awaitility.Awaitility;
 
 import junit.framework.TestCase;
 
@@ -93,8 +72,7 @@ import junit.framework.TestCase;
 @Category(DistributedTest.class)
 @SuppressWarnings("serial")
 public abstract class DistributedTestCase extends TestCase implements java.io.Serializable {
-  private static final Logger logger = LogService.getLogger();
-  private static final LogWriterLogger oldLogger = LogWriterLogger.create(logger);
+  
   private static final LinkedHashSet<String> testHistory = new LinkedHashSet<String>();
 
   private static void setUpCreationStackGenerator() {
@@ -141,269 +119,15 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
 
   public static final boolean logPerTest = Boolean.getBoolean("dunitLogPerTest");
 
-  ///////////////////////  Utility Methods  ///////////////////////
-  
-  public void attachDebugger(VM vm, final String msg) {
-    vm.invoke(new SerializableRunnable("Attach Debugger") {
-      public void run() {
-        com.gemstone.gemfire.internal.util.DebuggerSupport.
-        waitForJavaDebugger(getSystem().getLogWriter().convertToLogWriterI18n(), msg);
-      } 
-    });
-  }
-
-
-  /**
-   * Invokes a <code>SerializableRunnable</code> in every VM that
-   * DUnit knows about.
-   *
-   * @see VM#invoke(SerializableRunnableIF)
-   */
-  public static void invokeInEveryVM(SerializableRunnable work) {
-    for (int h = 0; h < Host.getHostCount(); h++) {
-      Host host = Host.getHost(h);
-
-      for (int v = 0; v < host.getVMCount(); v++) {
-        VM vm = host.getVM(v);
-        vm.invoke(work);
-      }
-    }
-  }
-
-  public static void invokeInLocator(SerializableRunnable work) {
-    Host.getLocator().invoke(work);
-  }
-  
-  /**
-   * Invokes a <code>SerializableCallable</code> in every VM that
-   * DUnit knows about.
-   *
-   * @return a Map of results, where the key is the VM and the value is the result
-   * @see VM#invoke(SerializableCallableIF)
-   */
-  protected static Map invokeInEveryVM(SerializableCallable work) {
-    HashMap ret = new HashMap();
-    for (int h = 0; h < Host.getHostCount(); h++) {
-      Host host = Host.getHost(h);
-      for (int v = 0; v < host.getVMCount(); v++) {
-        VM vm = host.getVM(v);
-        ret.put(vm, vm.invoke(work));
-      }
-    }
-    return ret;
-  }
-
-  /**
-   * Invokes a method in every remote VM that DUnit knows about.
-   *
-   * @see VM#invoke(Class, String)
-   */
-  protected static void invokeInEveryVM(Class c, String method) {
-    for (int h = 0; h < Host.getHostCount(); h++) {
-      Host host = Host.getHost(h);
-
-      for (int v = 0; v < host.getVMCount(); v++) {
-        VM vm = host.getVM(v);
-        vm.invoke(c, method);
-      }
-    }
-  }
-
-  /**
-   * Invokes a method in every remote VM that DUnit knows about.
-   *
-   * @see VM#invoke(Class, String)
-   */
-  protected static void invokeInEveryVM(Class c, String method, Object[] methodArgs) {
-    for (int h = 0; h < Host.getHostCount(); h++) {
-      Host host = Host.getHost(h);
-
-      for (int v = 0; v < host.getVMCount(); v++) {
-        VM vm = host.getVM(v);
-        vm.invoke(c, method, methodArgs);
-      }
-    }
-  }
-  
-  /**
-   * The number of milliseconds to try repeating validation code in the
-   * event that AssertionFailedError is thrown.  For ACK scopes, no
-   * repeat should be necessary.
-   */
-  protected long getRepeatTimeoutMs() {
-    return 0;
-  }
-  
-  protected void invokeRepeatingIfNecessary(VM vm, RepeatableRunnable task) {
-    vm.invokeRepeatingIfNecessary(task, getRepeatTimeoutMs());
-  }
-  
-  /**
-   * Invokes a <code>SerializableRunnable</code> in every VM that
-   * DUnit knows about.  If work.run() throws an assertion failure, 
-   * its execution is repeated, until no assertion failure occurs or
-   * repeatTimeout milliseconds have passed.
-   *
-   * @see VM#invoke(SerializableRunnableIF)
-   */
-  protected void invokeInEveryVMRepeatingIfNecessary(RepeatableRunnable work) {
-    for (int h = 0; h < Host.getHostCount(); h++) {
-      Host host = Host.getHost(h);
-
-      for (int v = 0; v < host.getVMCount(); v++) {
-        VM vm = host.getVM(v);
-        vm.invokeRepeatingIfNecessary(work, getRepeatTimeoutMs());
-      }
-    }
-  }
-
-  /** Return the total number of VMs on all hosts */
-  protected static int getVMCount() {
-    int count = 0;
-    for (int h = 0; h < Host.getHostCount(); h++) {
-      Host host = Host.getHost(h);
-      count += host.getVMCount();
-    }
-    return count;
-  }
-
-
-  /** print a stack dump for this vm
-      @author bruce
-      @since 5.0
-   */
-  public static void dumpStack() {
-    com.gemstone.gemfire.internal.OSProcess.printStacks(0, false);
-  }
-  
-  /** print a stack dump for the given vm
-      @author bruce
-      @since 5.0
-   */
-  public static void dumpStack(VM vm) {
-    vm.invoke(com.gemstone.gemfire.test.dunit.DistributedTestCase.class, "dumpStack");
-  }
-  
-  /** print stack dumps for all vms on the given host
-      @author bruce
-      @since 5.0
-   */
-  public static void dumpStack(Host host) {
-    for (int v=0; v < host.getVMCount(); v++) {
-      host.getVM(v).invoke(com.gemstone.gemfire.test.dunit.DistributedTestCase.class, "dumpStack");
-    }
-  }
-  
-  /** print stack dumps for all vms
-      @author bruce
-      @since 5.0
-   */
-  public static void dumpAllStacks() {
-    for (int h=0; h < Host.getHostCount(); h++) {
-      dumpStack(Host.getHost(h));
-    }
-  }
-
-
-  public static String noteTiming(long operations, String operationUnit,
-                                  long beginTime, long endTime,
-                                  String timeUnit)
-  {
-    long delta = endTime - beginTime;
-    StringBuffer sb = new StringBuffer();
-    sb.append("  Performed ");
-    sb.append(operations);
-    sb.append(" ");
-    sb.append(operationUnit);
-    sb.append(" in ");
-    sb.append(delta);
-    sb.append(" ");
-    sb.append(timeUnit);
-    sb.append("\n");
-
-    double ratio = ((double) operations) / ((double) delta);
-    sb.append("    ");
-    sb.append(format.format(ratio));
-    sb.append(" ");
-    sb.append(operationUnit);
-    sb.append(" per ");
-    sb.append(timeUnit);
-    sb.append("\n");
-
-    ratio = ((double) delta) / ((double) operations);
-    sb.append("    ");
-    sb.append(format.format(ratio));
-    sb.append(" ");
-    sb.append(timeUnit);
-    sb.append(" per ");
-    sb.append(operationUnit);
-    sb.append("\n");
-
-    return sb.toString();
-  }
-
-  /**
-   * Creates a new LogWriter and adds it to the config properties. The config
-   * can then be used to connect to DistributedSystem, thus providing early
-   * access to the LogWriter before connecting. This call does not connect
-   * to the DistributedSystem. It simply creates and returns the LogWriter
-   * that will eventually be used by the DistributedSystem that connects using
-   * config.
-   * 
-   * @param config the DistributedSystem config properties to add LogWriter to
-   * @return early access to the DistributedSystem LogWriter
-   */
-  protected static LogWriter createLogWriter(Properties config) { // TODO:LOG:CONVERT: this is being used for ExpectedExceptions
-    Properties nonDefault = config;
-    if (nonDefault == null) {
-      nonDefault = new Properties();
-    }
-    addHydraProperties(nonDefault);
-    
-    DistributionConfig dc = new DistributionConfigImpl(nonDefault);
-    LogWriter logger = LogWriterFactory.createLogWriterLogger(
-        false/*isLoner*/, false/*isSecurityLog*/, dc, 
-        false);        
-    
-    // if config was non-null, then these will be added to it...
-    nonDefault.put(DistributionConfig.LOG_WRITER_NAME, logger);
-    
-    return logger;
-  }
-  
-  /**
-   * Fetches the GemFireDescription for this test and adds its 
-   * DistributedSystem properties to the provided props parameter.
-   * 
-   * @param config the properties to add hydra's test properties to
-   */
-  protected static void addHydraProperties(Properties config) {
-    Properties p = DUnitEnv.get().getDistributedSystemProperties();
-    for (Iterator iter = p.entrySet().iterator();
-        iter.hasNext(); ) {
-      Map.Entry entry = (Map.Entry) iter.next();
-      String key = (String) entry.getKey();
-      String value = (String) entry.getValue();
-      if (config.getProperty(key) == null) {
-        config.setProperty(key, value);
-      }
-    }
-  }
-  
-  ////////////////////////  Constructors  ////////////////////////
-
   /**
    * Creates a new <code>DistributedTestCase</code> test with the
    * given name.
    */
-  public DistributedTestCase(String name) {
+  public DistributedTestCase(final String name) {
     super(name);
     DUnitLauncher.launchIfNeeded();
   }
 
-  ///////////////////////  Instance Methods  ///////////////////////
-
-
   protected Class getTestClass() {
     Class clazz = getClass();
     while (clazz.getDeclaringClass() != null) {
@@ -412,44 +136,12 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
     return clazz;
   }
   
-  
-  /**
-   * This finds the log level configured for the test run.  It should be used
-   * when creating a new distributed system if you want to specify a log level.
-   * @return the dunit log-level setting
-   */
-  public static String getDUnitLogLevel() {
-    Properties p = DUnitEnv.get().getDistributedSystemProperties();
-    String result = p.getProperty(DistributionConfig.LOG_LEVEL_NAME);
-    if (result == null) {
-      result = ManagerLogWriter.levelToString(DistributionConfig.DEFAULT_LOG_LEVEL);
-    }
-    return result;
-  }
-
-  public final static Properties getAllDistributedSystemProperties(Properties props) {
-    Properties p = DUnitEnv.get().getDistributedSystemProperties();
-    
-    // our tests do not expect auto-reconnect to be on by default
-    if (!p.contains(DistributionConfig.DISABLE_AUTO_RECONNECT_NAME)) {
-      p.put(DistributionConfig.DISABLE_AUTO_RECONNECT_NAME, "true");
-    }
-
-    for (Iterator iter = props.entrySet().iterator();
-    iter.hasNext(); ) {
-      Map.Entry entry = (Map.Entry) iter.next();
-      String key = (String) entry.getKey();
-      Object value = entry.getValue();
-      p.put(key, value);
-    }
-    return p;
-  }
-
-  public void setSystem(Properties props, DistributedSystem ds) {
+  public void setSystem(final Properties props, final DistributedSystem ds) {
     system = (InternalDistributedSystem)ds;
     lastSystemProperties = props;
     lastSystemCreatedInTest = getTestClass();
   }
+  
   /**
    * Returns this VM's connection to the distributed system.  If
    * necessary, the connection will be lazily created using the given
@@ -461,14 +153,14 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
    * see hydra.DistributedConnectionMgr#connect
    * @since 3.0
    */
-  public /*final*/ InternalDistributedSystem getSystem(Properties props) {
+  public /*final*/ InternalDistributedSystem getSystem(final Properties props) {
     // Setting the default disk store name is now done in setUp
     if (system == null) {
       system = InternalDistributedSystem.getAnyInstance();
     }
     if (system == null || !system.isConnected()) {
       // Figure out our distributed system properties
-      Properties p = getAllDistributedSystemProperties(props);
+      Properties p = DistributedTestSupport.getAllDistributedSystemProperties(props);
       lastSystemCreatedInTest = getTestClass();
       if (logPerTest) {
         String testMethod = getTestName();
@@ -485,10 +177,10 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
     } else {
       boolean needNewSystem = false;
       if(!getTestClass().equals(lastSystemCreatedInTest)) {
-        Properties newProps = getAllDistributedSystemProperties(props);
+        Properties newProps = DistributedTestSupport.getAllDistributedSystemProperties(props);
         needNewSystem = !newProps.equals(lastSystemProperties);
         if(needNewSystem) {
-          getLogWriter().info(
+          LogWriterSupport.getLogWriter().info(
               "Test class has changed and the new DS properties are not an exact match. "
                   + "Forcing DS disconnect. Old props = "
                   + lastSystemProperties + "new props=" + newProps);
@@ -502,7 +194,7 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
           String value = (String) entry.getValue();
           if (!value.equals(activeProps.getProperty(key))) {
             needNewSystem = true;
-            getLogWriter().info("Forcing DS disconnect. For property " + key
+            LogWriterSupport.getLogWriter().info("Forcing DS disconnect. For property " + key
                                 + " old value = " + activeProps.getProperty(key)
                                 + " new value = " + value);
             break;
@@ -512,7 +204,7 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
       if(needNewSystem) {
         // the current system does not meet our needs to disconnect and
         // call recursively to get a new system.
-        getLogWriter().info("Disconnecting from current DS in order to make a new one");
+        LogWriterSupport.getLogWriter().info("Disconnecting from current DS in order to make a new one");
         disconnectFromDS();
         getSystem(props);
       }
@@ -520,51 +212,6 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
     return system;
   }
 
-
-  /**
-   * Crash the cache in the given VM in such a way that it immediately stops communicating with
-   * peers.  This forces the VM's membership manager to throw a ForcedDisconnectException by
-   * forcibly terminating the JGroups protocol stack with a fake EXIT event.<p>
-   * 
-   * NOTE: if you use this method be sure that you clean up the VM before the end of your
-   * test with disconnectFromDS() or disconnectAllFromDS().
-   */
-  public boolean crashDistributedSystem(VM vm) {
-    return (Boolean)vm.invoke(new SerializableCallable("crash distributed system") {
-      public Object call() throws Exception {
-        DistributedSystem msys = InternalDistributedSystem.getAnyInstance();
-        crashDistributedSystem(msys);
-        return true;
-      }
-    });
-  }
-  
-  /**
-   * Crash the cache in the given VM in such a way that it immediately stops communicating with
-   * peers.  This forces the VM's membership manager to throw a ForcedDisconnectException by
-   * forcibly terminating the JGroups protocol stack with a fake EXIT event.<p>
-   * 
-   * NOTE: if you use this method be sure that you clean up the VM before the end of your
-   * test with disconnectFromDS() or disconnectAllFromDS().
-   */
-  public void crashDistributedSystem(final DistributedSystem msys) {
-    MembershipManagerHelper.crashDistributedSystem(msys);
-    MembershipManagerHelper.inhibitForcedDisconnectLogging(false);
-    WaitCriterion wc = new WaitCriterion() {
-      public boolean done() {
-        return !msys.isConnected();
-      }
-      public String description() {
-        return "waiting for distributed system to finish disconnecting: " + msys;
-      }
-    };
-//    try {
-      waitForCriterion(wc, 10000, 1000, true);
-//    } finally {
-//      dumpMyThreads(getLogWriter());
-//    }
-  }
-
   private String getDefaultDiskStoreName() {
     String vmid = System.getProperty("vmid");
     return "DiskStore-"  + vmid + "-"+ getTestClass().getCanonicalName() + "." + getTestName();
@@ -667,12 +314,13 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
     System.out.println("Previously run tests: " + testHistory);
   }
 
-  public static void perVMSetUp(String name, String defaultDiskStoreName) {
+  public static void perVMSetUp(final String name, final String defaultDiskStoreName) {
     setTestName(name);
     GemFireCacheImpl.setDefaultDiskStoreName(defaultDiskStoreName);
     System.setProperty(HoplogConfig.ALLOW_LOCAL_HDFS_PROP, "true");    
   }
-  public static void setTestName(String name) {
+  
+  private static void setTestName(final String name) {
     testName = name;
   }
   
@@ -711,7 +359,7 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
   protected void realTearDown() throws Exception {
     if (logPerTest) {
       disconnectFromDS();
-      invokeInEveryVM(DistributedTestCase.class, "disconnectFromDS");
+      Invoke.invokeInEveryVM(DistributedTestCase.class, "disconnectFromDS");
     }
     cleanupAllVms();
   }
@@ -728,20 +376,18 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
   protected void tearDownAfter() throws Exception {
   }
 
-  public static void cleanupAllVms()
-  {
+  public static void cleanupAllVms() {
     cleanupThisVM();
-    invokeInEveryVM(DistributedTestCase.class, "cleanupThisVM");
-    invokeInLocator(new SerializableRunnable() {
+    Invoke.invokeInEveryVM(()->cleanupThisVM());
+    Invoke.invokeInLocator(new SerializableRunnable() {
       public void run() {
         DistributionMessageObserver.setInstance(null);
-        unregisterInstantiatorsInThisVM();
+        DistributedTestSupport.unregisterInstantiatorsInThisVM();
       }
     });
     DUnitLauncher.closeAndCheckForSuspects();
   }
 
-
   private static void cleanupThisVM() {
     closeCache();
     
@@ -761,7 +407,7 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
     InternalClientMembership.unregisterAllListeners();
     ClientStatsManager.cleanupForTests();
     ClientServerTestCase.AUTO_LOAD_BALANCE = false;
-    unregisterInstantiatorsInThisVM();
+    DistributedTestSupport.unregisterInstantiatorsInThisVM();
     DistributionMessageObserver.setInstance(null);
     QueryObserverHolder.reset();
     DiskStoreObserver.setInstance(null);
@@ -782,8 +428,7 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
     }
   }
   
-  protected static final void destroyRegions(Cache cache)
-      throws InternalGemFireError, Error, VirtualMachineError {
+  protected static final void destroyRegions(final Cache cache) {
     if (cache != null && !cache.isClosed()) {
       //try to destroy the root regions first so that
       //we clean up any persistent files.
@@ -802,48 +447,15 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
           throw e;
         }
         catch (Throwable t) {
-          getLogWriter().error(t);
+          LogWriterSupport.getLogWriter().error(t);
         }
       }
     }
   }
   
-  
-  public static void unregisterAllDataSerializersFromAllVms()
-  {
-    unregisterDataSerializerInThisVM();
-    invokeInEveryVM(new SerializableRunnable() {
-      public void run() {
-        unregisterDataSerializerInThisVM();
-      }
-    });
-    invokeInLocator(new SerializableRunnable() {
-      public void run() {
-        unregisterDataSerializerInThisVM();
-      }
-    });
-  }
-
-  public static void unregisterInstantiatorsInThisVM() {
-    // unregister all the instantiators
-    InternalInstantiator.reinitialize();
-    assertEquals(0, InternalInstantiator.getInstantiators().length);
-  }
-  
-  public static void unregisterDataSerializerInThisVM()
-  {
-    DataSerializerPropogationDUnitTest.successfullyLoadedTestDataSerializer = false;
-    // unregister all the Dataserializers
-    InternalDataSerializer.reinitialize();
-    // ensure that all are unregistered
-    assertEquals(0, InternalDataSerializer.getSerializers().length);
-  }
-
-
-  protected static void disconnectAllFromDS() {
+  public static void disconnectAllFromDS() {
     disconnectFromDS();
-    invokeInEveryVM(DistributedTestCase.class,
-                    "disconnectFromDS");
+    Invoke.invokeInEveryVM(DistributedTestCase.class, "disconnectFromDS");
   }
 
   /**
@@ -864,433 +476,22 @@ public abstract class DistributedTestCase extends TestCase implements java.io.Se
       }
       try {
         ds.disconnect();
-      }
-      catch (Exception e) {
+      } catch (Exception e) {
         // ignore
       }
     }
     
-    {
-      AdminDistributedSystemImpl ads = 
-          AdminDistributedSystemImpl.getConnectedInstance();
-      if (ads != null) {// && ads.isConnected()) {
-        ads.disconnect();
-      }
-    }
-  }
-
-  /**
-   * Strip the package off and gives just the class name.
-   * Needed because of Windows file name limits.
-   */
-  private String getShortClassName() {
-    String result = this.getClass().getName();
-    int idx = result.lastIndexOf('.');
-    if (idx != -1) {
-      result = result.substring(idx+1);
+    AdminDistributedSystemImpl ads = AdminDistributedSystemImpl.getConnectedInstance();
+    if (ads != null) {// && ads.isConnected()) {
+      ads.disconnect();
     }
-    return result;
-  }
-  
-  /** get the host name to use for a server cache in client/server dunit
-   * testing
-   * @param host
-   * @return the host name
-   */
-  public static String getServerHostName(Host host) {
-    return System.getProperty("gemfire.server-bind-address") != null?
-        System.getProperty("gemfire.server-bind-address")
-        : host.getHostName();
   }
 
-  /** get the IP literal name for the current host, use this instead of  
-   * "localhost" to avoid IPv6 name resolution bugs in the JDK/machine config.
-   * @return an ip literal, this method honors java.net.preferIPvAddresses
-   */
-  public static String getIPLiteral() {
-    try {
-      return SocketCreator.getLocalHost().getHostAddress();
-    } catch (UnknownHostException e) {
-      throw new Error("problem determining host IP address", e);
-    }
-  }
- 
- 
-  /**
-   * Get the port that the standard dunit locator is listening on.
-   * @return
-   */
-  public static int getDUnitLocatorPort() {
-    return DUnitEnv.get().getLocatorPort();
-  }
-    
-  
   /**
    * Returns a unique name for this test method.  It is based on the
    * name of the class as well as the name of the method.
    */
   public String getUniqueName() {
-    return getShortClassName() + "_" + this.getName();
-  }
-
-  /**
-   * Returns a <code>LogWriter</code> for logging information
-   * @deprecated Use a static logger from the log4j2 LogService.getLogger instead.
-   */
-  @Deprecated
-  public static InternalLogWriter getLogWriter() {
-    return oldLogger;
-  }
-
-  /**
-   * Helper method that causes this test to fail because of the given
-   * exception.
-   * @deprecated Use {@link Assert#fail(String,Throwable)} instead
-   */
-  public static void fail(String message, Throwable ex) {
-    Assert.fail(message, ex);
-  }
-
-  // utility methods
-
-  /** pause for a default interval */
-  protected void pause() {
-    pause(250);
-  }
-
-  /**
-   * Use of this function indicates a place in the tests tree where t
-   * he use of Thread.sleep() is
-   * highly questionable.
-   * <p>
-   * Some places in the system, especially those that test expirations and other
-   * timeouts, have a very good reason to call {@link Thread#sleep(long)}.  The
-   * <em>other</em> places are marked by the use of this method.
-   * 
-   * @param ms
-   */
-  static public final void staticPause(int ms) {
-//    getLogWriter().info("FIXME: Pausing for " + ms + " ms..."/*, new Exception()*/);
-    final long target = System.currentTimeMillis() + ms;
-    try {
-      for (;;) {
-        long msLeft = target - System.currentTimeMillis();
-        if (msLeft <= 0) {
-          break;
-        }
-        Thread.sleep(msLeft);
-      }
-    }
-    catch (InterruptedException e) {
-      Assert.fail("interrupted", e);
-    }
-    
-  }
-  
-  /**
-   * Blocks until the clock used for expiration moves forward.
-   * @return the last time stamp observed
-   */
-  public static final long waitForExpiryClockToChange(LocalRegion lr) {
-    return waitForExpiryClockToChange(lr, lr.cacheTimeMillis());
-  }
-  /**
-   * Blocks until the clock used for expiration moves forward.
-   * @param baseTime the timestamp that the clock must exceed
-   * @return the last time stamp observed
-   */
-  public static final long waitForExpiryClockToChange(LocalRegion lr, final long baseTime) {
-    long nowTime;
-    do {
-      Thread.yield();
-      nowTime = lr.cacheTimeMillis();
-    } while ((nowTime - baseTime) <= 0L);
-    return nowTime;
-  }
-  
-  /** pause for specified ms interval
-   * Make sure system clock has advanced by the specified number of millis before
-   * returning.
-   */
-  public static final void pause(int ms) {
-    LogWriter log = getLogWriter();
-    if (ms >= 1000 || log.fineEnabled()) { // check for fine but log at info
-      getLogWriter().info("Pausing for " + ms + " ms..."/*, new Exception()*/);
-    }
-    final long target = System.currentTimeMillis() + ms;
-    try {
-      for (;;) {
-        long msLeft = target - System.currentTimeMillis();
-        if (msLeft <= 0) {
-          break;
-        }
-        Thread.sleep(msLeft);
-      }
-    }
-    catch (InterruptedException e) {
-      Assert.fail("interrupted", e);
-    }
-  }
-  
-  public interface WaitCriterion {
-    public boolean done();
-    public String description();
-  }
-  
-  public interface WaitCriterion2 extends WaitCriterion {
-    /**
-     * If this method returns true then quit waiting even if we are not done.
-     * This allows a wait to fail early.
-     */
-    public boolean stopWaiting();
-  }
-
-  /**
-   * Wait until given criterion is met
-   * @param ev criterion to wait on
-   * @param ms total time to wait, in milliseconds
-   * @param interval pause interval between waits
-   * @param throwOnTimeout if false, don't generate an error
-   * @deprecated Use {@link Awaitility} instead.
-   */
-  @Deprecated
-  static public void waitForCriterion(WaitCriterion ev, long ms, 
-      long interval, boolean throwOnTimeout) {
-    long waitThisTime = Jitter.jitterInterval(interval);
-    final long tilt = System.currentTimeMillis() + ms;
-    for (;;) {
-//      getLogWriter().info("Testing to see if event has occurred: " + ev.description());
-      if (ev.done()) {
-        return; // success
-      }
-      if (ev instanceof WaitCriterion2) {
-        WaitCriterion2 ev2 = (WaitCriterion2)ev;
-        if (ev2.stopWaiting()) {
-          if (throwOnTimeout) {
-            fail("stopWaiting returned true: " + ev.description());
-          }
-          return;
-        }
-      }
-
-      // Calculate time left
-      long timeLeft = tilt - System.currentTimeMillis();
-      if (timeLeft <= 0) {
-        if (!throwOnTimeout) {
-          return; // not an error, but we're done
-        }
-        fail("Event never occurred after " + ms + " ms: " + ev.description());
-      }
-      
-      if (waitThisTime > timeLeft) {
-        waitThisTime = timeLeft;
-      }
-      
-      // Wait a little bit
-      Thread.yield();
-      try {
-//        getLogWriter().info("waiting " + waitThisTime + "ms for " + ev.description());
-        Thread.sleep(waitThisTime);
-      } catch (InterruptedException e) {
-        fail("interrupted");
-      }
-    }
-  }
-
-  /**
-   * Wait on a mutex.  This is done in a loop in order to address the
-   * "spurious wakeup" "feature" in Java.
-   * @param ev condition to test
-   * @param mutex object to lock and wait on
-   * @param ms total amount of time to wait
-   * @param interval interval to pause for the wait
-   * @param throwOnTimeout if false, no error is thrown.
-   */
-  static public void waitMutex(WaitCriterion ev, Object mutex, long ms, 
-      long interval, boolean throwOnTimeout) {
-    final long tilt = System.currentTimeMillis() + ms;
-    long waitThisTime = Jitter.jitterInterval(interval);
-    synchronized (mutex) {
-      for (;;) {
-        if (ev.done()) {
-          break;
-        }
-        
-        long timeLeft = tilt - System.currentTimeMillis();
-        if (timeLeft <= 0) {
-          if (!throwOnTimeout) {
-            return; // not an error, but we're done
-          }
-          fail("Event never occurred after " + ms + " ms: " + ev.description());
-        }
-        
-        if (waitThisTime > timeLeft) {
-          waitThisTime = timeLeft;
-        }
-        
-        try {
-          mutex.wait(waitThisTime);
-        } catch (InterruptedException e) {
-          fail("interrupted");
-        }
-      } // for
-    } // synchronized
-  }
-
-  /**
-   * Wait for a thread to join
-   * @param t thread to wait on
-   * @param ms maximum time to wait
-   * @throws AssertionError if the thread does not terminate
-   */
-  static public void join(Thread t, long ms, LogWriter logger) {
-    final long tilt = System.currentTimeMillis() + ms;
-    final long incrementalWait = Jitter.jitterInterval(ms);
-    final long start = System.currentTimeMillis();
-    for (;;) {
-      // I really do *not* understand why this check is necessary
-      // but it is, at least with JDK 1.6.  According to the source code
-      // and the javadocs, one would think that join() would exit immediately
-      // if the thread is dead.  However, I can tell you from experimentation
-      // that this is not the case. :-(  djp 2008-12-08
-      if (!t.isAlive()) {
-        break;
-      }
-      try {
-        t.join(incrementalWait);
-      } catch (InterruptedException e) {
-        fail("interrupted");
-      }
-      if (System.currentTimeMillis() >= tilt) {
-        break;
-      }
-    } // for
-    if (logger == null) {
-      logger = new LocalLogWriter(LogWriterImpl.INFO_LEVEL, System.out);
-    }
-    if (t.isAlive()) {
-      logger.info("HUNG THREAD");
-      dumpStackTrace(t, t.getStackTrace(), logger);
-      dumpMyThreads(logger);
-      t.interrupt(); // We're in trouble!
-      fail("Thread did not terminate after " + ms + " ms: " + t);
-//      getLogWriter().warning("Thread did not terminate" 
-//          /* , new Exception()*/
-//          );
-    }
-    long elapsedMs = (System.currentTimeMillis() - start);
-    if (elapsedMs > 0) {
-      String msg = "Thread " + t + " took " 
-        + elapsedMs
-        + " ms to exit.";
-      logger.info(msg);
-    }
-  }
-
-  public static void dumpStackTrace(Thread t, StackTraceElement[] stack, LogWriter logger) {
-    StringBuilder msg = new StringBuilder();
-    msg.append("Thread=<")
-      .append(t)
-      .append("> stackDump:\n");
-    for (int i=0; i < stack.length; i++) {
-      msg.append("\t")
-        .append(stack[i])
-        .append("\n");
-    }
-    logger.info(msg.toString());
-  }
-  /**
-   * Dump all thread stacks
-   */
-  public static void dumpMyThreads(LogWriter logger) {
-    OSProcess.printStacks(0, false);
-  }
-  
-  /**
-   * @deprecated Use {@link IgnoredException} instead.
-   */
-  @Deprecated
-  public static class ExpectedException extends IgnoredException {
-
-    private final IgnoredException wrappedInstance;
-    
-    public ExpectedException(final IgnoredException wrappedInstance) {
-      super(wrappedInstance.errorString(), wrappedInstance.vm());
-      this.wrappedInstance = wrappedInstance;
-    }
-    
-    public ExpectedException(final String exception) {
-      this(exception, null);
-    }
-    
-    private ExpectedException(final String exception, final VM vm) {
-      super(exception, vm);
-      this.wrappedInstance = new IgnoredException(exception);
-    }
-    
-    public String getAddMessage() {
-      return this.wrappedInstance.getAddMessage();
-    }
-    
-    public String getRemoveMessage() {
-      return this.wrappedInstance.getRemoveMessage();
-    }
-    
-    public void remove() {
-      this.wrappedInstance.remove();
-    }
+    return getClass().getSimpleName() + "_" + getName();
   }
-  
-  /**
-   * Log in all VMs, in both the test logger and the GemFire logger the
-   * expected exception string to prevent grep logs from complaining. The
-   * expected string is used by the GrepLogs utility and so can contain
-   * regular expression characters.
-   * 
-   * If you do not remove the expected exception, it will be removed at the
-   * end of your test case automatically.
-   * 
-   * @since 5.7bugfix
-   * @param exception
-   *          the exception string to expect
-   * @return an ExpectedException instance for removal
-   * @deprecated Use {@link IgnoredException#addExpectedException(String)} instead
-   */
-  public static ExpectedException addExpectedException(final String exception) {
-    return new ExpectedException(IgnoredException.addExpectedException(exception));
-  }
-
-  /**
-   * Log in all VMs, in both the test logger and the GemFire logger the
-   * expected exception string to prevent grep logs from complaining. The
-   * expected string is used by the GrepLogs utility and so can contain
-   * regular expression characters.
-   * 
-   * @since 5.7bugfix
-   * @param exception
-   *          the exception string to expect
-   * @param v
-   *          the VM on which to log the expected exception or null for all VMs
-   * @return an ExpectedException instance for removal purposes
-   * @deprecated Use {@link IgnoredException#addExpectedException(String,VM)} instead
-   */
-  public static IgnoredException addExpectedException(final String exception, final VM v) {
-    return new ExpectedException(IgnoredException.addExpectedException(exception, v));
-  }
-
-  /** 
-   * delete locator state files.  Use this after getting a random port
-   * to ensure that an old locator state file isn't picked up by the
-   * new locator you're starting.
-   * @param ports
-   */
-  public void deleteLocatorStateFile(int... ports) {
-    for (int i=0; i<ports.length; i++) {
-      File stateFile = new File("locator"+ports[i]+"view.dat");
-      if (stateFile.exists()) {
-        stateFile.delete();
-      }
-    }
-  }
-  
 }