revert "refactor test rules"

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

Branch: refs/heads/develop
Commit: 0d0c7c424240bf94bda641b4bb5f202ce82dc0e4
Parents: da6f8d1
Author: Jinmei Liao <jil...@pivotal.io>
Authored: Wed Feb 8 09:55:52 2017 -0800
Committer: Jinmei Liao <jil...@pivotal.io>
Committed: Wed Feb 8 09:55:52 2017 -0800

----------------------------------------------------------------------
 .../geode/tools/pulse/PulseDataExportTest.java  |  12 +-
 .../ConnectToLocatorSSLDUnitTest.java           |  16 ++-
 .../internal/cli/NetstatDUnitTest.java          |  94 ------------
 .../configuration/ClusterConfigBaseTest.java    |   4 +-
 .../ClusterConfigDeployJarDUnitTest.java        |  58 ++++++--
 .../ClusterConfigDistributionDUnitTest.java     |  23 +--
 .../ClusterConfigImportDUnitTest.java           |  42 ++++--
 .../ClusterConfigWithSecurityDUnitTest.java     |  11 +-
 .../security/GfshCommandsPostProcessorTest.java |  29 ++--
 .../security/GfshCommandsSecurityTest.java      |  24 +++-
 .../ClusterConfigWithoutSecurityDUnitTest.java  |  33 ++---
 .../security/PeerAuthenticatorDUnitTest.java    |  17 ++-
 ...eerSecurityWithEmbeddedLocatorDUnitTest.java |  20 +--
 .../SecurityClusterConfigDUnitTest.java         |  23 ++-
 .../SecurityWithoutClusterConfigDUnitTest.java  |  26 ++--
 .../security/StartServerAuthorizationTest.java  |  52 +++----
 .../dunit/rules/GfshShellConnectionRule.java    |  96 +++++--------
 .../apache/geode/test/dunit/rules/Locator.java  |   4 +-
 .../dunit/rules/LocatorServerStartupRule.java   |  25 ++--
 .../apache/geode/test/dunit/rules/Member.java   |   8 +-
 .../apache/geode/test/dunit/rules/Server.java   |   4 +-
 .../test/dunit/rules/ServerStarterRule.java     |   2 +-
 .../LuceneClusterConfigurationDUnitTest.java    | 142 +++++++++++--------
 23 files changed, 362 insertions(+), 403 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseDataExportTest.java
----------------------------------------------------------------------
diff --git 
a/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseDataExportTest.java
 
b/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseDataExportTest.java
index b547290..28d50da 100644
--- 
a/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseDataExportTest.java
+++ 
b/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseDataExportTest.java
@@ -16,12 +16,13 @@
 
 package org.apache.geode.tools.pulse;
 
-import static org.assertj.core.api.Assertions.assertThat;
 import static org.awaitility.Awaitility.await;
+import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.geode.cache.client.ClientCacheFactory;
 import org.apache.geode.cache.client.ClientRegionShortcut;
 import org.apache.geode.test.dunit.IgnoredException;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
 import org.apache.geode.test.dunit.rules.Locator;
 import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
@@ -46,6 +47,7 @@ import org.apache.http.protocol.BasicHttpContext;
 import org.apache.http.protocol.HttpContext;
 import org.apache.http.util.EntityUtils;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -59,15 +61,14 @@ import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
 @Category(DistributedTest.class)
-public class PulseDataExportTest {
+public class PulseDataExportTest extends JUnit4DistributedTestCase {
 
   @Rule
   public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
 
   private Locator locator;
   private org.apache.geode.test.dunit.rules.Server server;
-  @Rule
-  public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
+  private GfshShellConnectionRule gfshConnector;
   private HttpClient httpClient;
   private CookieStore cookieStore;
 
@@ -79,7 +80,8 @@ public class PulseDataExportTest {
 
     locator = lsRule.startLocatorVMWithPulse(0, new Properties());
 
-    gfshConnector.connect(locator);
+    gfshConnector = new GfshShellConnectionRule(locator);
+    gfshConnector.connect();
     assertThat(gfshConnector.isConnected()).isTrue();
 
     server = lsRule.startServerVM(1, locator.getPort());

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
index 83a367e..9d678e1 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/ConnectToLocatorSSLDUnitTest.java
@@ -38,10 +38,11 @@ import static 
org.apache.geode.util.test.TestUtil.getResourcePath;
 
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 import org.apache.geode.security.SecurableCommunicationChannels;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
-import org.apache.geode.test.dunit.rules.Locator;
 import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
 import org.apache.geode.test.junit.categories.DistributedTest;
+import org.apache.geode.test.junit.categories.FlakyTest;
 import 
org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.junit.After;
 import org.junit.Before;
@@ -56,16 +57,13 @@ import java.io.OutputStream;
 import java.util.Properties;
 
 @Category(DistributedTest.class)
-public class ConnectToLocatorSSLDUnitTest {
+public class ConnectToLocatorSSLDUnitTest extends JUnit4DistributedTestCase {
 
   @Rule
   public TemporaryFolder folder = new SerializableTemporaryFolder();
   @Rule
   public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
 
-  @Rule
-  public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
-
   private File jks = null;
   private File securityPropsFile = null;
   private Properties securityProps;
@@ -83,16 +81,20 @@ public class ConnectToLocatorSSLDUnitTest {
   }
 
   private void setUpLocatorAndConnect(Properties securityProps) throws 
Exception {
-    Locator locator = lsRule.startLocatorVM(0, securityProps);
+    lsRule.startLocatorVM(0, securityProps);
 
     // saving the securityProps to a file
     OutputStream out = new FileOutputStream(securityPropsFile);
     securityProps.store(out, null);
 
-    gfshConnector.connect(locator, CliStrings.CONNECT__SECURITY_PROPERTIES,
+    GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule(
+        lsRule.getMember(0).getPort(), 
GfshShellConnectionRule.PortType.locator);
+
+    gfshConnector.connect(CliStrings.CONNECT__SECURITY_PROPERTIES,
         securityPropsFile.getCanonicalPath());
 
     assertTrue(gfshConnector.isConnected());
+    gfshConnector.close();
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/management/internal/cli/NetstatDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/NetstatDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/NetstatDUnitTest.java
deleted file mode 100644
index 3ee0c46..0000000
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/NetstatDUnitTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * 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.management.internal.cli;
-
-import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
-import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
-import org.apache.geode.test.dunit.rules.Server;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.junit.After;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.util.Properties;
-
-@Category(DistributedTest.class)
-public class NetstatDUnitTest {
-  @ClassRule
-  public static LocatorServerStartupRule lsRule = new 
LocatorServerStartupRule();
-
-  @ClassRule
-  public static GfshShellConnectionRule gfshConnector = new 
GfshShellConnectionRule();
-
-  private static int[] ports = 
AvailablePortHelper.getRandomAvailableTCPPorts(3);
-
-  private static String netStatCommand = null;
-
-  @BeforeClass
-  public static void beforeClass() throws Exception {
-    Properties properties = new Properties();
-    // common properties
-    properties.setProperty("locators", "localhost[" + ports[0] + "]");
-    properties.setProperty("http-service-port", "0");
-
-    // start peer locator
-    properties.setProperty("start-locator", "localhost[" + ports[0] + 
"],peer=true,server=true");
-    properties.setProperty("jmx-manager-port", ports[1] + "");
-    lsRule.startServerVM(0, properties);
-
-    // start server with jmx Manager as well
-    properties.remove("start-locator");
-    properties.setProperty("jmx-manager-port", ports[2] + "");
-    Server server = lsRule.startServerVM(1, properties);
-
-    // start server with no jmx Manager
-    properties.setProperty("jmx-manager", "false");
-    properties.setProperty("jmx-manager-port", "0");
-    properties.setProperty("jmx-manager-start", "false");
-    lsRule.startServerVM(2, properties);
-
-    // start another server
-    lsRule.startServerVM(3, properties);
-
-    netStatCommand = "netstat --with-lsof=true --member=" + server.getName();
-  }
-
-  @Test
-  public void testConnectToLocator() throws Exception {
-    gfshConnector.connect(ports[0], GfshShellConnectionRule.PortType.locator);
-    gfshConnector.executeAndVerifyCommand(netStatCommand);
-  }
-
-  @Test
-  public void testConnectToJmxManagerOne() throws Exception {
-    gfshConnector.connect(ports[1], 
GfshShellConnectionRule.PortType.jmxManger);
-    gfshConnector.executeAndVerifyCommand(netStatCommand);
-  }
-
-  @Test
-  public void testConnectToJmxManagerTwo() throws Exception {
-    gfshConnector.connect(ports[2], 
GfshShellConnectionRule.PortType.jmxManger);
-    gfshConnector.executeAndVerifyCommand(netStatCommand);
-  }
-
-  @After
-  public void after() throws Exception {
-    gfshConnector.disconnect();
-  }
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigBaseTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigBaseTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigBaseTest.java
index cecc8cf..cc0fff2 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigBaseTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigBaseTest.java
@@ -18,10 +18,12 @@ package org.apache.geode.management.internal.configuration;
 
 import static 
org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
 import static 
org.apache.geode.distributed.ConfigurationProperties.USE_CLUSTER_CONFIGURATION;
+import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.geode.internal.ClassBuilder;
 import org.apache.geode.management.internal.configuration.utils.ZipUtils;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
 import org.junit.Before;
 import org.junit.Rule;
@@ -30,7 +32,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.Properties;
 
-public class ClusterConfigBaseTest {
+public class ClusterConfigBaseTest extends JUnit4DistributedTestCase {
   public String clusterConfigZipPath;
 
   public static final ConfigGroup CLUSTER = new 
ConfigGroup("cluster").regions("regionForCluster")

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDeployJarDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDeployJarDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDeployJarDUnitTest.java
index 15e6ea6..79f0128 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDeployJarDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDeployJarDUnitTest.java
@@ -19,37 +19,51 @@ import static 
org.apache.geode.distributed.ConfigurationProperties.GROUPS;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.assertj.core.api.Assertions.assertThat;
 
+import org.apache.geode.internal.ClassBuilder;
+import org.apache.geode.management.cli.Result;
+import org.apache.geode.management.internal.cli.result.CommandResult;
 import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
 import org.apache.geode.test.dunit.rules.Locator;
 import org.apache.geode.test.dunit.rules.Server;
 import org.apache.geode.test.junit.categories.DistributedTest;
+import org.junit.After;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import java.io.File;
+import java.io.IOException;
+
 @Category(DistributedTest.class)
 public class ClusterConfigDeployJarDUnitTest extends ClusterConfigBaseTest {
-  @Rule
-  public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
+  private GfshShellConnectionRule gfshConnector;
 
   private String clusterJar, group1Jar, group2Jar;
 
   @Before
   public void before() throws Exception {
     super.before();
+
     clusterJar = createJarFileWithClass("Cluster", "cluster.jar", 
lsRule.getTempFolder().getRoot());
     group1Jar = createJarFileWithClass("Group1", "group1.jar", 
lsRule.getTempFolder().getRoot());
     group2Jar = createJarFileWithClass("Group2", "group2.jar", 
lsRule.getTempFolder().getRoot());
   }
 
+  @After
+  public void after() throws Exception {
+    if (gfshConnector != null) {
+      gfshConnector.close();
+    }
+  }
+
   @Test
   public void testDeployToNoServer() throws Exception {
     String clusterJarPath = clusterJar;
     // set up the locator/servers
     Locator locator = lsRule.startLocatorVM(0, locatorProps);
 
-    gfshConnector.connect(locator);
+    gfshConnector = new GfshShellConnectionRule(locator);
+    gfshConnector.connect();
     assertThat(gfshConnector.isConnected()).isTrue();
 
     gfshConnector.executeAndVerifyCommand("deploy --jar=" + clusterJarPath);
@@ -75,10 +89,13 @@ public class ClusterConfigDeployJarDUnitTest extends 
ClusterConfigBaseTest {
     // has to start a server in order to run deploy command
     lsRule.startServerVM(3, serverProps, locator.getPort());
 
-    gfshConnector.connect(locator);
+    gfshConnector =
+        new GfshShellConnectionRule(locator.getPort(), 
GfshShellConnectionRule.PortType.locator);
+    gfshConnector.connect();
     assertThat(gfshConnector.isConnected()).isTrue();
 
-    gfshConnector.executeAndVerifyCommand("deploy --jar=" + clusterJar);
+    CommandResult result = gfshConnector.executeCommand("deploy --jar=" + 
clusterJar);
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
     ConfigGroup cluster = new ConfigGroup("cluster").jars("cluster.jar");
     ClusterConfig expectedClusterConfig = new ClusterConfig(cluster);
@@ -102,10 +119,13 @@ public class ClusterConfigDeployJarDUnitTest extends 
ClusterConfigBaseTest {
     serverProps.setProperty(GROUPS, "group1,group2");
     Server server3 = lsRule.startServerVM(3, serverProps, locator.getPort());
 
-    gfshConnector.connect(locator);
+    gfshConnector =
+        new GfshShellConnectionRule(locator.getPort(), 
GfshShellConnectionRule.PortType.locator);
+    gfshConnector.connect();
     assertThat(gfshConnector.isConnected()).isTrue();
 
-    gfshConnector.executeAndVerifyCommand("deploy --jar=" + clusterJar);
+    CommandResult result = gfshConnector.executeCommand("deploy --jar=" + 
clusterJar);
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
     ConfigGroup cluster = new ConfigGroup("cluster").jars("cluster.jar");
     ClusterConfig expectedClusterConfig = new ClusterConfig(cluster);
@@ -114,7 +134,8 @@ public class ClusterConfigDeployJarDUnitTest extends 
ClusterConfigBaseTest {
     expectedClusterConfig.verify(server2);
     expectedClusterConfig.verify(server3);
 
-    gfshConnector.executeAndVerifyCommand("deploy --jar=" + group1Jar + " 
--group=group1");
+    result = gfshConnector.executeCommand("deploy --jar=" + group1Jar + " 
--group=group1");
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
     ConfigGroup group1 = new ConfigGroup("group1").jars("group1.jar");
     ClusterConfig expectedGroup1Config = new ClusterConfig(cluster, group1);
@@ -123,7 +144,8 @@ public class ClusterConfigDeployJarDUnitTest extends 
ClusterConfigBaseTest {
     expectedGroup1Config.verify(server2);
     expectedGroup1Config.verify(server3);
 
-    gfshConnector.executeAndVerifyCommand("deploy --jar=" + group2Jar + " 
--group=group2");
+    result = gfshConnector.executeCommand("deploy --jar=" + group2Jar + " 
--group=group2");
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
     ConfigGroup group2 = new ConfigGroup("group2").jars("group2.jar");
     ClusterConfig expectedGroup1and2Config = new ClusterConfig(cluster, 
group1, group2);
@@ -154,10 +176,13 @@ public class ClusterConfigDeployJarDUnitTest extends 
ClusterConfigBaseTest {
     ClusterConfig server2Config = new ClusterConfig(cluster, group2);
     ClusterConfig server3Config = new ClusterConfig(cluster, group1, group2);
 
-    gfshConnector.connect(locator);
+    gfshConnector =
+        new GfshShellConnectionRule(locator.getPort(), 
GfshShellConnectionRule.PortType.locator);
+    gfshConnector.connect();
     assertThat(gfshConnector.isConnected()).isTrue();
 
-    gfshConnector.executeAndVerifyCommand("deploy --jar=" + clusterJar);
+    CommandResult result = gfshConnector.executeCommand("deploy --jar=" + 
clusterJar);
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
     // deploy cluster.jar to the cluster
     cluster.addJar("cluster.jar");
@@ -167,7 +192,8 @@ public class ClusterConfigDeployJarDUnitTest extends 
ClusterConfigBaseTest {
     expectedClusterConfig.verify(server3);
 
     // deploy group1.jar to both group1 and group2
-    gfshConnector.executeAndVerifyCommand("deploy --jar=" + group1Jar + " 
--group=group1,group2");
+    result = gfshConnector.executeCommand("deploy --jar=" + group1Jar + " 
--group=group1,group2");
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
     group1.addJar("group1.jar");
     group2.addJar("group1.jar");
@@ -177,7 +203,8 @@ public class ClusterConfigDeployJarDUnitTest extends 
ClusterConfigBaseTest {
     server3Config.verify(server3);
 
     // test undeploy cluster
-    gfshConnector.executeAndVerifyCommand("undeploy --jar=cluster.jar");
+    result = gfshConnector.executeCommand("undeploy --jar=cluster.jar");
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
     cluster = cluster.removeJar("cluster.jar");
     server3Config.verify(locator);
@@ -185,7 +212,8 @@ public class ClusterConfigDeployJarDUnitTest extends 
ClusterConfigBaseTest {
     server2Config.verify(server2);
     server3Config.verify(server3);
 
-    gfshConnector.executeAndVerifyCommand("undeploy --jar=group1.jar 
--group=group1");
+    result = gfshConnector.executeCommand("undeploy --jar=group1.jar 
--group=group1");
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
     group1 = group1.removeJar("group1.jar");
     /*

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDistributionDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDistributionDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDistributionDUnitTest.java
index e134c42..f362d4c 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDistributionDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigDistributionDUnitTest.java
@@ -17,6 +17,7 @@ package org.apache.geode.management.internal.configuration;
 
 import static org.apache.commons.io.FileUtils.writeByteArrayToFile;
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
@@ -28,7 +29,9 @@ import org.apache.geode.cache.asyncqueue.AsyncEventQueue;
 import org.apache.geode.cache.query.Index;
 import org.apache.geode.internal.ClassBuilder;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
+import org.apache.geode.management.internal.cli.result.CommandResult;
 import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
 import org.apache.geode.test.dunit.rules.Locator;
 import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
@@ -44,7 +47,7 @@ import java.io.IOException;
 import java.util.Properties;
 
 @Category(DistributedTest.class)
-public class ClusterConfigDistributionDUnitTest {
+public class ClusterConfigDistributionDUnitTest extends 
JUnit4DistributedTestCase {
   private static final String REPLICATE_REGION = "ReplicateRegion1";
   private static final String PARTITION_REGION = "PartitionRegion1";
   private static final String INDEX1 = "ID1";
@@ -52,22 +55,22 @@ public class ClusterConfigDistributionDUnitTest {
   private static final String AsyncEventQueue1 = "Q1";
 
   private Locator locator;
-
-  @Rule
-  public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
-  @Rule
-  public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
+  private GfshShellConnectionRule gfshConnector;
 
   @Before
   public void before() throws Exception {
     locator = lsRule.startLocatorVM(0);
-    gfshConnector.connect(locator);
+
+    gfshConnector = new GfshShellConnectionRule(locator);
+    gfshConnector.connect();
     assertThat(gfshConnector.isConnected()).isTrue();
 
     // start a server so that we can execute data commands that requires at 
least a server running
     lsRule.startServerVM(1, locator.getPort());
   }
 
+  @Rule
+  public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
 
   @Test
   public void testIndexAndAsyncEventQueueCommands() throws Exception {
@@ -170,7 +173,9 @@ public class ClusterConfigDistributionDUnitTest {
     csb.addOptionWithValueCheck(CliStrings.CONFIGURE_PDX__PERSISTENT, "true");
     csb.addOptionWithValueCheck(CliStrings.CONFIGURE_PDX__READ__SERIALIZED, 
"true");
 
-    String message = gfshConnector.execute(csb.getCommandString());
-    
assertThat(message).contains(CliStrings.CONFIGURE_PDX__NORMAL__MEMBERS__WARNING);
+    CommandResult result = 
gfshConnector.executeAndVerifyCommand(csb.getCommandString());
+    String message = (String) 
result.getResultData().getGfJsonObject().getJSONObject("content")
+        .getJSONArray("message").get(0);
+    assertEquals(CliStrings.CONFIGURE_PDX__NORMAL__MEMBERS__WARNING, message);
   }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigImportDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigImportDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigImportDUnitTest.java
index b4cba61..f3c471e 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigImportDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigImportDUnitTest.java
@@ -31,8 +31,8 @@ import org.apache.geode.test.dunit.rules.Locator;
 import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
 import org.apache.geode.test.dunit.rules.Server;
 import org.apache.geode.test.junit.categories.DistributedTest;
+import org.junit.After;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -46,8 +46,7 @@ import java.util.zip.ZipFile;
 
 @Category(DistributedTest.class)
 public class ClusterConfigImportDUnitTest extends ClusterConfigBaseTest {
-  @Rule
-  public GfshShellConnectionRule gfshConnector = new GfshShellConnectionRule();
+  private GfshShellConnectionRule gfshConnector;
 
   public static final ClusterConfig INITIAL_CONFIG = new ClusterConfig(new 
ConfigGroup("cluster"));
 
@@ -59,10 +58,20 @@ public class ClusterConfigImportDUnitTest extends 
ClusterConfigBaseTest {
     locator = lsRule.startLocatorVM(0, locatorProps);
     INITIAL_CONFIG.verify(locator);
 
-    gfshConnector.connect(locator);
+    gfshConnector = new GfshShellConnectionRule(locator);
+    gfshConnector.connect();
     assertThat(gfshConnector.isConnected()).isTrue();
   }
 
+
+  @After
+  public void after() throws Exception {
+    if (gfshConnector != null) {
+      gfshConnector.close();
+    }
+  }
+
+
   @Test
   public void testImportWithRunningServerWithData() throws Exception {
     Server server = lsRule.startServerVM(1, serverProps, locator.getPort());
@@ -97,6 +106,9 @@ public class ClusterConfigImportDUnitTest extends 
ClusterConfigBaseTest {
     // in the region
     CommandResult result = gfshConnector
         .executeCommand("import cluster-configuration --zip-file-name=" + 
clusterConfigZipPath);
+
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK)
+        .describedAs(result.getContent().toString());
     assertThat(result.getContent().toString())
         .contains("Successfully applied the imported cluster configuration on 
server-1");
     assertThat(result.getContent().toString())
@@ -117,8 +129,9 @@ public class ClusterConfigImportDUnitTest extends 
ClusterConfigBaseTest {
 
   @Test
   public void testImportClusterConfig() throws Exception {
-    gfshConnector.executeAndVerifyCommand(
-        "import cluster-configuration --zip-file-name=" + 
clusterConfigZipPath);
+    CommandResult result = gfshConnector
+        .executeCommand("import cluster-configuration --zip-file-name=" + 
clusterConfigZipPath);
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
     // Make sure that a backup of the old clusterConfig was created
     assertThat(locator.getWorkingDir().listFiles())
@@ -150,8 +163,9 @@ public class ClusterConfigImportDUnitTest extends 
ClusterConfigBaseTest {
         "localhost[" + locator.getPort() + "],localhost[" + locator1.getPort() 
+ "]");
     Locator locator2 = lsRule.startLocatorVM(2, locatorProps);
 
-    gfshConnector.executeAndVerifyCommand(
-        "import cluster-configuration --zip-file-name=" + 
clusterConfigZipPath);
+    CommandResult result = gfshConnector
+        .executeCommand("import cluster-configuration --zip-file-name=" + 
clusterConfigZipPath);
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
     CONFIG_FROM_ZIP.verify(locator);
     REPLICATED_CONFIG_FROM_ZIP.verify(locator1);
@@ -174,16 +188,20 @@ public class ClusterConfigImportDUnitTest extends 
ClusterConfigBaseTest {
   public void testExportClusterConfig(String zipFilePath) throws Exception {
     Server server1 = lsRule.startServerVM(1, serverProps, locator.getPort());
 
-
-    gfshConnector.executeAndVerifyCommand("create region --name=myRegion 
--type=REPLICATE");
+    CommandResult result =
+        gfshConnector.executeCommand("create region --name=myRegion 
--type=REPLICATE");
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
     ConfigGroup cluster = new ConfigGroup("cluster").regions("myRegion");
     ClusterConfig expectedClusterConfig = new ClusterConfig(cluster);
     expectedClusterConfig.verify(server1);
     expectedClusterConfig.verify(locator);
 
-    gfshConnector
-        .executeAndVerifyCommand("export cluster-configuration 
--zip-file-name=" + zipFilePath);
+    result =
+        gfshConnector.executeCommand("export cluster-configuration 
--zip-file-name=" + zipFilePath);
+    System.out.println(result.getContent());
+
+    assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
     File exportedZip = new File(zipFilePath);
     assertThat(exportedZip).exists();

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigWithSecurityDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigWithSecurityDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigWithSecurityDUnitTest.java
index 4d67fb0..388fd9d 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigWithSecurityDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigWithSecurityDUnitTest.java
@@ -27,6 +27,7 @@ import org.apache.geode.distributed.internal.InternalLocator;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 import org.apache.geode.management.internal.configuration.utils.ZipUtils;
 import org.apache.geode.security.SimpleTestSecurityManager;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
 import org.apache.geode.test.dunit.rules.Locator;
 import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
@@ -42,15 +43,12 @@ import java.io.File;
 import java.util.Properties;
 
 @Category({DistributedTest.class, SecurityTest.class})
-public class ClusterConfigWithSecurityDUnitTest {
+public class ClusterConfigWithSecurityDUnitTest extends 
JUnit4DistributedTestCase {
   public String clusterConfigZipPath;
 
   @Rule
   public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
 
-  @Rule
-  public GfshShellConnectionRule connector = new GfshShellConnectionRule();
-
   Locator locator0;
   Properties locatorProps;
 
@@ -85,8 +83,9 @@ public class ClusterConfigWithSecurityDUnitTest {
 
   @Test
   public void testImportNotOverwriteSecurity() throws Exception {
-    connector.connect(locator0, CliStrings.CONNECT__USERNAME, "cluster",
-        CliStrings.CONNECT__PASSWORD, "cluster");
+    GfshShellConnectionRule connector = new GfshShellConnectionRule(locator0);
+    connector.connect(CliStrings.CONNECT__USERNAME, "cluster", 
CliStrings.CONNECT__PASSWORD,
+        "cluster");
 
     connector.executeAndVerifyCommand(
         "import cluster-configuration --zip-file-name=" + 
clusterConfigZipPath);

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsPostProcessorTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsPostProcessorTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsPostProcessorTest.java
index 8172b4b..ac3d1de 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsPostProcessorTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsPostProcessorTest.java
@@ -17,10 +17,11 @@ package org.apache.geode.management.internal.security;
 import static 
org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_PORT;
 import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
 import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
-import static org.assertj.core.api.Assertions.assertThat;
+import static org.apache.geode.internal.Assert.assertTrue;
 
 import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.internal.AvailablePortHelper;
+import org.apache.geode.management.internal.cli.HeadlessGfsh;
 import org.apache.geode.security.TestPostProcessor;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
@@ -28,6 +29,7 @@ import 
org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.geode.test.junit.categories.SecurityTest;
+import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
@@ -48,10 +50,10 @@ public class GfshCommandsPostProcessorTest {
           "org/apache/geode/management/internal/security/cacheServer.json");
     }
   };
-
   @Rule
   public GfshShellConnectionRule gfshConnection =
       new GfshShellConnectionRule(jmxPort, 
GfshShellConnectionRule.PortType.jmxManger);
+  private HeadlessGfsh gfsh = null;
 
   @BeforeClass
   public static void beforeClass() throws Exception {
@@ -60,21 +62,26 @@ public class GfshCommandsPostProcessorTest {
     
serverStarter.cache.createRegionFactory(RegionShortcut.REPLICATE).create("region1");
   }
 
+  @Before
+  public void before() {
+    gfsh = gfshConnection.getGfsh();
+  }
+
   @Test
   @ConnectionConfiguration(user = "data-user", password = "1234567")
   public void testGetPostProcess() throws Exception {
-    gfshConnection.executeCommand("put --region=region1 --key=key1 
--value=value1");
-    gfshConnection.executeCommand("put --region=region1 --key=key2 
--value=value2");
-    gfshConnection.executeCommand("put --region=region1 --key=key3 
--value=value3");
+    gfsh.executeCommand("put --region=region1 --key=key1 --value=value1");
+    gfsh.executeCommand("put --region=region1 --key=key2 --value=value2");
+    gfsh.executeCommand("put --region=region1 --key=key3 --value=value3");
 
     // for get command, assert the return value is processed
-    String result = gfshConnection.execute("get --region=region1 --key=key1");
-    assertThat(result).contains("data-user/region1/key1/value1");
+    gfsh.executeCommand("get --region=region1 --key=key1");
+    assertTrue(gfsh.outputString.contains("data-user/region1/key1/value1"), 
gfsh.outputString);
 
     // for query command, assert the return values are processed
-    result = gfshConnection.execute("query --query=\"select * from 
/region1\"");
-    assertThat(result).contains("data-user/null/null/value1");
-    assertThat(result).contains("data-user/null/null/value2");
-    assertThat(result).contains("data-user/null/null/value3");
+    gfsh.executeCommand("query --query=\"select * from /region1\"");
+    assertTrue(gfsh.outputString.contains("data-user/null/null/value1"), 
gfsh.outputString);
+    assertTrue(gfsh.outputString.contains("data-user/null/null/value2"), 
gfsh.outputString);
+    assertTrue(gfsh.outputString.contains("data-user/null/null/value3"), 
gfsh.outputString);
   }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsSecurityTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsSecurityTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsSecurityTest.java
index 1377145..dbbe0db 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsSecurityTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/GfshCommandsSecurityTest.java
@@ -27,6 +27,7 @@ import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.internal.AvailablePortHelper;
 import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.management.cli.Result;
+import org.apache.geode.management.internal.cli.HeadlessGfsh;
 import org.apache.geode.management.internal.cli.result.CommandResult;
 import org.apache.geode.management.internal.cli.result.ErrorResultData;
 import org.apache.geode.management.internal.cli.result.ResultBuilder;
@@ -37,6 +38,7 @@ import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.geode.test.junit.categories.SecurityTest;
 import org.apache.shiro.authz.permission.WildcardPermission;
+import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
@@ -75,6 +77,7 @@ public class GfshCommandsSecurityTest {
   @Rule
   public GfshShellConnectionRule gfshConnection =
       new GfshShellConnectionRule(jmxPort, 
GfshShellConnectionRule.PortType.jmxManger);
+  private HeadlessGfsh gfsh = null;
 
   @BeforeClass
   public static void beforeClass() throws Exception {
@@ -83,6 +86,11 @@ public class GfshCommandsSecurityTest {
     
serverStarter.cache.createRegionFactory(RegionShortcut.REPLICATE).create("region1");
   }
 
+  @Before
+  public void before() {
+    gfsh = gfshConnection.getGfsh();
+  }
+
   @Test
   @ConnectionConfiguration(user = "data-admin", password = "wrongPwd")
   public void testInvalidCredentials() throws Exception {
@@ -155,8 +163,8 @@ public class GfshCommandsSecurityTest {
     for (TestCommand permitted : allPermitted) {
       LogService.getLogger().info("Processing authorized command: " + 
permitted.getCommand());
 
-
-      CommandResult result = 
gfshConnection.executeCommand(permitted.getCommand());
+      gfsh.executeCommand(permitted.getCommand());
+      CommandResult result = (CommandResult) gfsh.getResult();
       assertNotNull(result);
 
       if (result.getResultData() instanceof ErrorResultData) {
@@ -175,7 +183,9 @@ public class GfshCommandsSecurityTest {
         continue;
 
       LogService.getLogger().info("Processing unauthorized command: " + 
other.getCommand());
-      CommandResult result = (CommandResult) 
gfshConnection.executeCommand(other.getCommand());
+      gfsh.executeCommand(other.getCommand());
+
+      CommandResult result = (CommandResult) gfsh.getResult();
       int errorCode = ((ErrorResultData) 
result.getResultData()).getErrorCode();
 
       // for some commands there are pre execution checks to check for user 
input error, will skip
@@ -197,12 +207,12 @@ public class GfshCommandsSecurityTest {
   @Test
   @ConnectionConfiguration(user = "data-user", password = "1234567")
   public void testGetPostProcess() throws Exception {
-    gfshConnection.executeCommand("put --region=region1 --key=key2 
--value=value2");
-    gfshConnection.executeCommand("put --region=region1 --key=key2 
--value=value2");
-    gfshConnection.executeCommand("put --region=region1 --key=key3 
--value=value3");
+    gfsh.executeCommand("put --region=region1 --key=key2 --value=value2");
+    gfsh.executeCommand("put --region=region1 --key=key2 --value=value2");
+    gfsh.executeCommand("put --region=region1 --key=key3 --value=value3");
 
     // gfsh.executeCommand("get --region=region1 --key=key1");
-    gfshConnection.executeCommand("query --query=\"select * from /region1\"");
+    gfsh.executeCommand("query --query=\"select * from /region1\"");
   }
 
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
index 23ffa9a..fe37f9e 100644
--- 
a/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/security/ClusterConfigWithoutSecurityDUnitTest.java
@@ -15,36 +15,35 @@
 
 package org.apache.geode.security;
 
-import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
-import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
-import static org.assertj.core.api.Java6Assertions.assertThatThrownBy;
-import static org.junit.Assert.assertEquals;
+import static org.apache.geode.distributed.ConfigurationProperties.*;
+import static org.assertj.core.api.Java6Assertions.*;
+import static org.junit.Assert.*;
+
+import java.util.Properties;
 
-import org.apache.geode.GemFireConfigException;
-import org.apache.geode.distributed.DistributedSystem;
-import org.apache.geode.internal.i18n.LocalizedStrings;
-import org.apache.geode.test.dunit.IgnoredException;
 import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-import java.util.Properties;
+import org.apache.geode.GemFireConfigException;
+import org.apache.geode.distributed.DistributedSystem;
+import org.apache.geode.internal.i18n.LocalizedStrings;
+import org.apache.geode.test.dunit.IgnoredException;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
+import org.apache.geode.test.junit.categories.DistributedTest;
+import org.apache.geode.test.junit.categories.SecurityTest;
 
 @Category({DistributedTest.class, SecurityTest.class})
 
-public class ClusterConfigWithoutSecurityDUnitTest {
+public class ClusterConfigWithoutSecurityDUnitTest extends 
JUnit4DistributedTestCase {
 
   @Rule
   public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
 
-  private ServerStarterRule serverStarter = null;
-
   @Before
   public void before() throws Exception {
     IgnoredException
@@ -57,8 +56,6 @@ public class ClusterConfigWithoutSecurityDUnitTest {
   @After
   public void after() {
     IgnoredException.removeAllExpectedExceptions();
-    if (serverStarter != null)
-      serverStarter.after();
   }
 
   // when locator is not secured, a secured server should be allowed to start 
with its own security
@@ -73,7 +70,7 @@ public class ClusterConfigWithoutSecurityDUnitTest {
     props.setProperty("use-cluster-configuration", "false");
 
     // initial security properties should only contain initial set of values
-    serverStarter = new ServerStarterRule(props);
+    ServerStarterRule serverStarter = new ServerStarterRule(props);
     serverStarter.startServer(lsRule.getMember(0).getPort());
     DistributedSystem ds = serverStarter.cache.getDistributedSystem();
 
@@ -94,7 +91,7 @@ public class ClusterConfigWithoutSecurityDUnitTest {
     props.setProperty("security-manager", "mySecurityManager");
     props.setProperty("use-cluster-configuration", "true");
 
-    serverStarter = new ServerStarterRule(props);
+    ServerStarterRule serverStarter = new ServerStarterRule(props);
 
     assertThatThrownBy(() -> 
serverStarter.startServer(lsRule.getMember(0).getPort()))
         .isInstanceOf(GemFireConfigException.class)

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
index c03f0ea..a7752ae 100644
--- 
a/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/security/PeerAuthenticatorDUnitTest.java
@@ -15,25 +15,28 @@
 
 package org.apache.geode.security;
 
-import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTHENTICATOR;
+import static org.apache.geode.distributed.ConfigurationProperties.*;
 import static org.apache.geode.test.dunit.Host.getHost;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
-import org.apache.geode.security.templates.DummyAuthenticator;
-import org.apache.geode.test.dunit.VM;
+import java.util.Properties;
+
 import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
+import org.apache.geode.test.dunit.rules.Member;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-import java.util.Properties;
+import org.apache.geode.security.templates.DummyAuthenticator;
+import org.apache.geode.test.dunit.VM;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
+import org.apache.geode.test.junit.categories.DistributedTest;
+import org.apache.geode.test.junit.categories.SecurityTest;
 
 @Category({DistributedTest.class, SecurityTest.class})
-public class PeerAuthenticatorDUnitTest {
+public class PeerAuthenticatorDUnitTest extends JUnit4DistributedTestCase {
   @Rule
   public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
 

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
index 71200ab..66c5be6 100644
--- 
a/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/security/PeerSecurityWithEmbeddedLocatorDUnitTest.java
@@ -15,26 +15,28 @@
 
 package org.apache.geode.security;
 
-import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
-import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_PEER_AUTHENTICATOR;
+import static org.apache.geode.distributed.ConfigurationProperties.*;
 import static org.apache.geode.test.dunit.Host.getHost;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
+import java.util.Properties;
+
+import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
 import org.apache.geode.internal.AvailablePortHelper;
 import org.apache.geode.security.templates.DummyAuthenticator;
 import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.DistributedTest;
 import org.apache.geode.test.junit.categories.SecurityTest;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.util.Properties;
 
 @Category({DistributedTest.class, SecurityTest.class})
-public class PeerSecurityWithEmbeddedLocatorDUnitTest {
+public class PeerSecurityWithEmbeddedLocatorDUnitTest extends 
JUnit4DistributedTestCase {
 
   @Rule
   public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/security/SecurityClusterConfigDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/security/SecurityClusterConfigDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/security/SecurityClusterConfigDUnitTest.java
index fcda2a3..ca209a7 100644
--- 
a/geode-core/src/test/java/org/apache/geode/security/SecurityClusterConfigDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/security/SecurityClusterConfigDUnitTest.java
@@ -28,13 +28,14 @@ import org.apache.geode.GemFireConfigException;
 import org.apache.geode.distributed.DistributedSystem;
 import org.apache.geode.internal.i18n.LocalizedStrings;
 import org.apache.geode.test.dunit.IgnoredException;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.DistributedTest;
 import org.apache.geode.test.junit.categories.FlakyTest;
 import org.apache.geode.test.junit.categories.SecurityTest;
-import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -42,13 +43,11 @@ import org.junit.experimental.categories.Category;
 import java.util.Properties;
 
 @Category({DistributedTest.class, SecurityTest.class})
-public class SecurityClusterConfigDUnitTest {
+public class SecurityClusterConfigDUnitTest extends JUnit4DistributedTestCase {
 
   @Rule
   public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
 
-  private ServerStarterRule serverStarter = null;
-
   @Before
   public void before() throws Exception {
     IgnoredException
@@ -64,12 +63,6 @@ public class SecurityClusterConfigDUnitTest {
     lsRule.startLocatorVM(0, props);
   }
 
-  @After
-  public void after() {
-    if (serverStarter != null)
-      serverStarter.after();
-  }
-
   @Category(FlakyTest.class) // GEODE-1977
   @Test
   public void testStartServerWithClusterConfig() throws Exception {
@@ -80,7 +73,7 @@ public class SecurityClusterConfigDUnitTest {
     props.setProperty("use-cluster-configuration", "true");
 
     // initial security properties should only contain initial set of values
-    serverStarter = new ServerStarterRule(props);
+    ServerStarterRule serverStarter = new ServerStarterRule(props);
     serverStarter.startServer(lsRule.getMember(0).getPort());
     DistributedSystem ds = serverStarter.cache.getDistributedSystem();
 
@@ -102,7 +95,7 @@ public class SecurityClusterConfigDUnitTest {
     props.setProperty(SECURITY_MANAGER, 
SimpleTestSecurityManager.class.getName());
 
     // initial security properties should only contain initial set of values
-    serverStarter = new ServerStarterRule(props);
+    ServerStarterRule serverStarter = new ServerStarterRule(props);
     serverStarter.startServer(lsRule.getMember(0).getPort());
     DistributedSystem ds = serverStarter.cache.getDistributedSystem();
 
@@ -124,7 +117,7 @@ public class SecurityClusterConfigDUnitTest {
     props.setProperty("use-cluster-configuration", "true");
 
     // initial security properties should only contain initial set of values
-    serverStarter = new ServerStarterRule(props);
+    ServerStarterRule serverStarter = new ServerStarterRule(props);
 
     assertThatThrownBy(() -> 
serverStarter.startServer(lsRule.getMember(0).getPort()))
         .isInstanceOf(GemFireConfigException.class)
@@ -143,7 +136,7 @@ public class SecurityClusterConfigDUnitTest {
     props.setProperty("use-cluster-configuration", "true");
 
     // initial security properties should only contain initial set of values
-    serverStarter = new ServerStarterRule(props);
+    ServerStarterRule serverStarter = new ServerStarterRule(props);
 
     assertThatThrownBy(() -> 
serverStarter.startServer(lsRule.getMember(0).getPort()))
         .isInstanceOf(GemFireConfigException.class)
@@ -162,7 +155,7 @@ public class SecurityClusterConfigDUnitTest {
     props.setProperty("security-manager", "mySecurityManager");
     props.setProperty("use-cluster-configuration", "false");
 
-    serverStarter = new ServerStarterRule(props);
+    ServerStarterRule serverStarter = new ServerStarterRule(props);
 
     assertThatThrownBy(() -> 
serverStarter.startServer(lsRule.getMember(0).getPort()))
         .isInstanceOf(GemFireConfigException.class)

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/security/SecurityWithoutClusterConfigDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/security/SecurityWithoutClusterConfigDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/security/SecurityWithoutClusterConfigDUnitTest.java
index 1fdcd52..72654cb 100644
--- 
a/geode-core/src/test/java/org/apache/geode/security/SecurityWithoutClusterConfigDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/security/SecurityWithoutClusterConfigDUnitTest.java
@@ -15,29 +15,29 @@
 
 package org.apache.geode.security;
 
-import static 
org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
-import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
-import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
+import static org.apache.geode.distributed.ConfigurationProperties.*;
+import static org.junit.Assert.*;
+
+import java.util.Properties;
 
-import org.apache.geode.distributed.DistributedSystem;
-import org.apache.geode.internal.i18n.LocalizedStrings;
-import org.apache.geode.test.dunit.IgnoredException;
 import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
-import org.apache.geode.test.dunit.rules.ServerStarterRule;
-import org.apache.geode.test.junit.categories.DistributedTest;
-import org.apache.geode.test.junit.categories.SecurityTest;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-import java.util.Properties;
+import org.apache.geode.distributed.DistributedSystem;
+import org.apache.geode.internal.i18n.LocalizedStrings;
+import org.apache.geode.test.dunit.IgnoredException;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
+import org.apache.geode.test.dunit.rules.ServerStarterRule;
+import org.apache.geode.test.junit.categories.DistributedTest;
+import org.apache.geode.test.junit.categories.SecurityTest;
 
 @Category({DistributedTest.class, SecurityTest.class})
 
-public class SecurityWithoutClusterConfigDUnitTest {
+public class SecurityWithoutClusterConfigDUnitTest extends 
JUnit4DistributedTestCase {
 
   @Rule
   public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/security/StartServerAuthorizationTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/security/StartServerAuthorizationTest.java
 
b/geode-core/src/test/java/org/apache/geode/security/StartServerAuthorizationTest.java
index 8a79702..24d0db5 100644
--- 
a/geode-core/src/test/java/org/apache/geode/security/StartServerAuthorizationTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/security/StartServerAuthorizationTest.java
@@ -16,40 +16,34 @@
 package org.apache.geode.security;
 
 import static 
org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
+import static org.apache.geode.test.dunit.Host.getHost;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
-import org.apache.geode.test.dunit.rules.Locator;
+import org.apache.geode.test.dunit.VM;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.DistributedTest;
 import org.apache.geode.test.junit.categories.SecurityTest;
-import org.junit.After;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 import java.util.Properties;
 
 @Category({DistributedTest.class, SecurityTest.class})
-public class StartServerAuthorizationTest {
+public class StartServerAuthorizationTest extends JUnit4DistributedTestCase {
 
-  @ClassRule
-  public static LocatorServerStartupRule lsRule = new 
LocatorServerStartupRule();
-  private static Locator locator = null;
-  private ServerStarterRule serverStarter = null;
+  @Rule
+  public LocatorServerStartupRule lsRule = new LocatorServerStartupRule();
 
-  @BeforeClass
-  public static void beforeClass() throws Exception {
+  @Before
+  public void before() throws Exception {
     Properties props = new Properties();
     props.setProperty(SECURITY_MANAGER, 
SimpleTestSecurityManager.class.getName());
-    locator = lsRule.startLocatorVM(0, props);
-  }
-
-  @After
-  public void after() throws Exception {
-    if (serverStarter != null)
-      serverStarter.after();
+    lsRule.startLocatorVM(0, props);
   }
 
   @Test
@@ -59,10 +53,13 @@ public class StartServerAuthorizationTest {
     props.setProperty("security-username", "user");
     props.setProperty("security-password", "wrongPswd");
 
-    serverStarter = new ServerStarterRule(props);
-    assertThatThrownBy(() -> serverStarter.startServer(locator.getPort()))
-        .isInstanceOf(GemFireSecurityException.class).hasMessageContaining(
-            "Security check failed. Authentication error. Please check your 
credentials");
+    VM server = getHost(0).getVM(1);
+    server.invoke(() -> {
+      ServerStarterRule serverStarter = new ServerStarterRule(props);
+      assertThatThrownBy(() -> 
serverStarter.startServer(lsRule.getMember(0).getPort()))
+          .isInstanceOf(GemFireSecurityException.class).hasMessageContaining(
+              "Security check failed. Authentication error. Please check your 
credentials");
+    });
   }
 
   @Test
@@ -73,10 +70,13 @@ public class StartServerAuthorizationTest {
     props.setProperty("security-username", "user");
     props.setProperty("security-password", "user");
 
-    serverStarter = new ServerStarterRule(props);
-    assertThatThrownBy(() -> serverStarter.startServer(locator.getPort()))
-        .isInstanceOf(GemFireSecurityException.class)
-        .hasMessageContaining("user not authorized for CLUSTER:MANAGE");
+    VM server = getHost(0).getVM(1);
+    server.invoke(() -> {
+      ServerStarterRule serverStarter = new ServerStarterRule(props);
+      assertThatThrownBy(() -> 
serverStarter.startServer(lsRule.getMember(0).getPort()))
+          .isInstanceOf(GemFireSecurityException.class)
+          .hasMessageContaining("user not authorized for CLUSTER:MANAGE");
+    });
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
 
b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
index 4f2f0d0..49c1414 100644
--- 
a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
+++ 
b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/GfshShellConnectionRule.java
@@ -33,65 +33,48 @@ import java.util.concurrent.atomic.AtomicReference;
  * Class which eases the connection to the jmxManager {@link 
ConnectionConfiguration} it allows for
  * the creation of per-test connections with different user/password 
combinations, or no username
  * and password
- *
- * you can use this as Rule
- * 
- * @Rule GfshShellConnectionRule rule = new GfshSheelConnectionRule(); then 
after you connect to a
- *       locator, you don't have to call disconnect() or close() at all, since 
the rule's after
- *       takes care of it for you.
- *
- *       Or as a ClassRule
- * @ClassRule GfshShellConnectionRule rule = new GfshSheelConnectionRule(); 
When using as a
- *            ClassRule, if you call connect in a test, you will need to call 
disconnect after the
- *            test as well. See NetstatDUnitTest for example.
- *
  */
 public class GfshShellConnectionRule extends DescribedExternalResource {
 
-  private int port = -1;
-  private PortType portType = PortType.jmxManger;
-  private HeadlessGfsh gfsh = null;
-  private boolean connected = false;
+  private int port = 0;
+  private PortType portType = null;
+  private HeadlessGfsh gfsh;
+  private boolean connected;
 
-  public GfshShellConnectionRule() {}
+  public GfshShellConnectionRule(Locator locator) {
+    this(locator.getPort(), PortType.locator);
+  }
 
   public GfshShellConnectionRule(int port, PortType portType) {
     this.portType = portType;
     this.port = port;
+    try {
+      this.gfsh = new HeadlessGfsh(getClass().getName(), 30, "gfsh_files");
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+    this.connected = false;
   }
 
-  @Override
   protected void before(Description description) throws Throwable {
-    this.gfsh = new HeadlessGfsh(getClass().getName(), 30, "gfsh_files");
-    // do not connect if no port initialized
-    if (port < 0) {
-      return;
-    }
-
     ConnectionConfiguration config = 
description.getAnnotation(ConnectionConfiguration.class);
-    if (config == null) {
-      connect(port, portType);
-      return;
+    if (config != null) {
+      connect(CliStrings.CONNECT__USERNAME, config.user(), 
CliStrings.CONNECT__PASSWORD,
+          config.password());
+    } else {
+      connect();
     }
-
-    connect(port, portType, CliStrings.CONNECT__USERNAME, config.user(),
-        CliStrings.CONNECT__PASSWORD, config.password());
-
   }
 
-  public void connect(Locator locator, String... options) throws Exception {
-    connect(locator.getPort(), PortType.locator, options);
-  }
-
-  public void connect(int port, PortType type, String... options) throws 
Exception {
+  public void connect(String... options) throws Exception {
     CliUtil.isGfshVM = true;
     final CommandStringBuilder connectCommand = new 
CommandStringBuilder(CliStrings.CONNECT);
     String endpoint;
-    if (type == PortType.locator) {
+    if (portType == PortType.locator) {
       // port is the locator port
       endpoint = "localhost[" + port + "]";
       connectCommand.addOption(CliStrings.CONNECT__LOCATOR, endpoint);
-    } else if (type == PortType.http) {
+    } else if (portType == PortType.http) {
       endpoint = "http://localhost:"; + port + "/gemfire/v1";
       connectCommand.addOption(CliStrings.CONNECT__USE_HTTP, 
Boolean.TRUE.toString());
       connectCommand.addOption(CliStrings.CONNECT__URL, endpoint);
@@ -113,32 +96,31 @@ public class GfshShellConnectionRule extends 
DescribedExternalResource {
     // Tried to wait on jmx connector server being ready, but it doesn't work.
     AtomicReference<CommandResult> result = new AtomicReference<>();
     Awaitility.await().atMost(2, TimeUnit.MINUTES).pollDelay(2, 
TimeUnit.SECONDS).until(() -> {
-      CommandResult cResult = executeCommand(connectCommand.toString());
-      result.set(cResult);
+      gfsh.executeCommand(connectCommand.toString());
+      result.set((CommandResult) gfsh.getResult());
+      System.out.println("connect result: " + 
result.get().getContent().toString());
       return !gfsh.outputString.contains("no such object in table");
     });
 
     connected = (result.get().getStatus() == Result.Status.OK);
   }
 
-  @Override
+
+  /**
+   * Override to tear down your specific external resource.
+   */
   protected void after(Description description) throws Throwable {
-    if (connected) {
-      disconnect();
-    }
     close();
   }
 
-  public void disconnect() throws Exception {
-    gfsh.clear();
-    executeCommand("disconnect");
-    connected = false;
-  }
-
   public void close() throws Exception {
-    gfsh.executeCommand("exit");
-    gfsh.terminate();
-    gfsh = null;
+    if (gfsh != null) {
+      gfsh.clear();
+      gfsh.executeCommand("disconnect");
+      gfsh.executeCommand("exit");
+      gfsh.terminate();
+      gfsh = null;
+    }
     CliUtil.isGfshVM = false;
   }
 
@@ -149,11 +131,10 @@ public class GfshShellConnectionRule extends 
DescribedExternalResource {
   public CommandResult executeCommand(String command) throws Exception {
     gfsh.executeCommand(command);
     CommandResult result = (CommandResult) gfsh.getResult();
-    System.out.println("Command Result: \n" + gfsh.outputString);
+    System.out.println("command result: " + result.getContent());
     return result;
   }
 
-
   public CommandResult executeAndVerifyCommand(String command) throws 
Exception {
     CommandResult result = executeCommand(command);
     assertThat(result.getStatus()).describedAs(result.getContent().toString())
@@ -161,11 +142,6 @@ public class GfshShellConnectionRule extends 
DescribedExternalResource {
     return result;
   }
 
-  public String execute(String command) throws Exception {
-    executeCommand(command);
-    return gfsh.outputString;
-  }
-
   public boolean isConnected() {
     return connected;
   }

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Locator.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Locator.java 
b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Locator.java
index fe26e83..0350ffd 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Locator.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Locator.java
@@ -22,7 +22,7 @@ import java.io.File;
 
 public class Locator extends Member {
 
-  public Locator(VM vm, int port, File workingDir, String name) {
-    super(vm, port, workingDir, name);
+  public Locator(VM vm, int port, File workingDir) {
+    super(vm, port, workingDir);
   }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorServerStartupRule.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorServerStartupRule.java
 
b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorServerStartupRule.java
index 1f0cd9e..ac9221c 100644
--- 
a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorServerStartupRule.java
+++ 
b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorServerStartupRule.java
@@ -21,14 +21,16 @@ import static org.apache.geode.test.dunit.Host.getHost;
 
 import org.apache.geode.test.dunit.Invoke;
 import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.standalone.DUnitLauncher;
 import 
org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.rules.ExternalResource;
 import org.junit.rules.TemporaryFolder;
 
 import java.io.File;
 import java.io.IOException;
 import java.io.Serializable;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
@@ -58,20 +60,16 @@ public class LocatorServerStartupRule extends 
ExternalResource implements Serial
   private TemporaryFolder temporaryFolder = new SerializableTemporaryFolder();
   private List<Member> members;
 
-  public LocatorServerStartupRule() {
-    DUnitLauncher.launchIfNeeded();
-  }
-
-  @Override
-  protected void before() throws Throwable {
+  @Before
+  public void before() throws Throwable {
     restoreSystemProperties.before();
     temporaryFolder.create();
     Invoke.invokeInEveryVM("Stop each VM", this::stopServerOrLocatorInThisVM);
     members = new ArrayList<>(4);
   }
 
-  @Override
-  protected void after() {
+  @After
+  public void after() {
     restoreSystemProperties.after();
     temporaryFolder.delete();
     Invoke.invokeInEveryVM("Stop each VM", this::stopServerOrLocatorInThisVM);
@@ -95,7 +93,7 @@ public class LocatorServerStartupRule extends 
ExternalResource implements Serial
       locatorStarter.startLocator();
       return locatorStarter.locator.getPort();
     });
-    Locator locator = new Locator(locatorVM, locatorPort, workingDir, name);
+    Locator locator = new Locator(locatorVM, locatorPort, workingDir);
     members.add(index, locator);
     return locator;
   }
@@ -114,6 +112,7 @@ public class LocatorServerStartupRule extends 
ExternalResource implements Serial
     System.out.println("Current dir is " + new File(".").getCanonicalPath());
     System.out.println("Setting gemfire.home to " + geodeInstallDir);
 
+
     VM locatorVM = getHost(0).getVM(index);
     int locatorPort = locatorVM.invoke(() -> {
       System.setProperty("user.dir", workingDir.getCanonicalPath());
@@ -122,7 +121,7 @@ public class LocatorServerStartupRule extends 
ExternalResource implements Serial
       locatorStarter.startLocator();
       return locatorStarter.locator.getPort();
     });
-    Locator locator = new Locator(locatorVM, locatorPort, workingDir, name);
+    Locator locator = new Locator(locatorVM, locatorPort, workingDir);
     members.add(index, locator);
     return locator;
   }
@@ -161,7 +160,7 @@ public class LocatorServerStartupRule extends 
ExternalResource implements Serial
       serverStarter.startServer(locatorPort);
       return serverStarter.server.getPort();
     });
-    Server server = new Server(serverVM, port, workingDir, name);
+    Server server = new Server(serverVM, port, workingDir);
     members.add(index, server);
     return server;
   }
@@ -180,11 +179,9 @@ public class LocatorServerStartupRule extends 
ExternalResource implements Serial
   private void stopServerOrLocatorInThisVM() {
     if (serverStarter != null) {
       serverStarter.after();
-      serverStarter = null;
     }
     if (locatorStarter != null) {
       locatorStarter.after();
-      locatorStarter = null;
     }
   }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Member.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Member.java 
b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Member.java
index 7cc1eea..129fe68 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Member.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Member.java
@@ -29,13 +29,11 @@ public abstract class Member implements Serializable {
   private VM vm;
   private int port;
   private File workingDir;
-  private String name;
 
-  public Member(VM vm, int port, File workingDir, String name) {
+  public Member(VM vm, int port, File workingDir) {
     this.vm = vm;
     this.port = port;
     this.workingDir = workingDir;
-    this.name = name;
   }
 
   /**
@@ -55,10 +53,6 @@ public abstract class Member implements Serializable {
     return workingDir;
   }
 
-  public String getName() {
-    return name;
-  }
-
   /**
    * Invokes {@code runnable.run()} in the {@code VM} of this member.
    */

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Server.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Server.java 
b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Server.java
index 4aa2c69..bc4c5d6 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Server.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/Server.java
@@ -21,7 +21,7 @@ import org.apache.geode.test.dunit.VM;
 import java.io.File;
 
 public class Server extends Member {
-  public Server(VM vm, int port, File workingDir, String name) {
-    super(vm, port, workingDir, name);
+  public Server(VM vm, int port, File workingDir) {
+    super(vm, port, workingDir);
   }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/0d0c7c42/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterRule.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterRule.java
 
b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterRule.java
index f93498f..60013ca 100644
--- 
a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterRule.java
+++ 
b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterRule.java
@@ -106,7 +106,7 @@ public class ServerStarterRule extends ExternalResource 
implements Serializable
 
   @Override
   public void after() {
-    // make sure this cache is the one currently open. A server cache can be 
recreated due to
+    // make sure this cache is the once currently open. A server cache can be 
recreated due to
     // importing a new set of cluster configuration.
     cache = GemFireCacheImpl.getInstance();
     if (cache != null) {

Reply via email to