You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ji...@apache.org on 2017/04/13 17:23:59 UTC

[1/4] geode git commit: GEODE-2730: refactor rules

Repository: geode
Updated Branches:
  refs/heads/develop 796c15ec5 -> 6a88f1bcc


http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-cq/src/test/java/org/apache/geode/cache/query/dunit/QueryMonitorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/org/apache/geode/cache/query/dunit/QueryMonitorDUnitTest.java b/geode-cq/src/test/java/org/apache/geode/cache/query/dunit/QueryMonitorDUnitTest.java
index 49d7c28..f298fae 100644
--- a/geode-cq/src/test/java/org/apache/geode/cache/query/dunit/QueryMonitorDUnitTest.java
+++ b/geode-cq/src/test/java/org/apache/geode/cache/query/dunit/QueryMonitorDUnitTest.java
@@ -304,22 +304,22 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
         () -> configServer(20, "testQueryMonitorClientServer")); // All the queries taking more than
                                                                  // 20ms should be canceled by Query
                                                                  // monitor.
-    server.invoke("withRegion", () -> createRegion());
+    server.invoke("createRegion", () -> createRegion());
 
     // Initialize server regions.
     server.invoke("populatePortfolioRegions", () -> populatePortfolioRegions(numberOfEntries));
 
     // Initialize Client1 and create client regions.
     client1.invoke("Init client", () -> configClient(serverHostName, serverPort));
-    client1.invoke("withRegion", () -> createRegion());
+    client1.invoke("createRegion", () -> createRegion());
 
     // Initialize Client2 and create client regions.
     client2.invoke("Init client", () -> configClient(serverHostName, serverPort));
-    client2.invoke("withRegion", () -> createRegion());
+    client2.invoke("createRegion", () -> createRegion());
 
     // Initialize Client3 and create client regions.
     client3.invoke("Init client", () -> configClient(serverHostName, serverPort));
-    client3.invoke("withRegion", () -> createRegion());
+    client3.invoke("createRegion", () -> createRegion());
 
     // Execute client queries
 
@@ -395,14 +395,14 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
                                                                           // more than 20ms should
                                                                           // be canceled by Query
                                                                           // monitor.
-    server1.invoke("withRegion", () -> createRegion());
+    server1.invoke("createRegion", () -> createRegion());
 
     int serverPort2 = server2.invoke("Create BridgeServer",
         () -> configServer(20, "testQueryMonitorMultiClientMultiServer"));// All the queries taking
                                                                           // more than 20ms should
                                                                           // be canceled by Query
                                                                           // monitor.
-    server2.invoke("withRegion", () -> createRegion());
+    server2.invoke("createRegion", () -> createRegion());
 
     // Initialize server regions.
     server1.invoke("Create Bridge Server", () -> populatePortfolioRegions(numberOfEntries));
@@ -412,11 +412,11 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
 
     // Initialize Client1 and create client regions.
     client1.invoke("Init client", () -> configClient(serverHostName, serverPort1, serverPort2));
-    client1.invoke("withRegion", () -> createRegion());
+    client1.invoke("createRegion", () -> createRegion());
 
     // Initialize Client2 and create client regions.
     client2.invoke("Init client", () -> configClient(serverHostName, serverPort1, serverPort2));
-    client2.invoke("withRegion", () -> createRegion());
+    client2.invoke("createRegion", () -> createRegion());
 
     // Execute client queries
 
@@ -457,7 +457,7 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
                                                                                                // by
                                                                                                // Query
                                                                                                // monitor.
-    server1.invoke("withRegion", () -> createRegion());
+    server1.invoke("createRegion", () -> createRegion());
 
     server2.invoke("Create BridgeServer", () -> configServer(20, "testQueryExecutionLocally"));// All
                                                                                                // the
@@ -472,7 +472,7 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
                                                                                                // by
                                                                                                // Query
                                                                                                // monitor.
-    server2.invoke("withRegion", () -> createRegion());
+    server2.invoke("createRegion", () -> createRegion());
 
     // Initialize server regions.
     server1.invoke("Create Bridge Server", () -> populatePortfolioRegions(numberOfEntries));
@@ -518,7 +518,7 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
                                                                                                // by
                                                                                                // Query
                                                                                                // monitor.
-    server1.invoke("withRegion", () -> createRegion());
+    server1.invoke("createRegion", () -> createRegion());
 
     server2.invoke("Create BridgeServer", () -> configServer(20, "testQueryExecutionLocally"));// All
                                                                                                // the
@@ -533,7 +533,7 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
                                                                                                // by
                                                                                                // Query
                                                                                                // monitor.
-    server2.invoke("withRegion", () -> createRegion());
+    server2.invoke("createRegion", () -> createRegion());
 
     // Initialize server regions.
     server1.invoke("populatePortfolioRegions", () -> populatePortfolioRegions(numberOfEntries));
@@ -629,11 +629,11 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
 
     // Initialize Client1 and create client regions.
     client1.invoke("Init client", () -> configClient(serverHostName, serverPort1));
-    client1.invoke("withRegion", () -> createRegion());
+    client1.invoke("createRegion", () -> createRegion());
 
     // Initialize Client2 and create client regions.
     client2.invoke("Init client", () -> configClient(serverHostName, serverPort2));
-    client2.invoke("withRegion", () -> createRegion());
+    client2.invoke("createRegion", () -> createRegion());
 
     // Execute client queries
 
@@ -729,14 +729,14 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
         () -> configServer(20, "testQueryMonitorRegionWithEviction"));// All the queries taking more
                                                                       // than 20ms should be
                                                                       // canceled by Query monitor.
-    server1.invoke("withRegion",
+    server1.invoke("createRegion",
         () -> createRegion(true, "server1_testQueryMonitorRegionWithEviction"));
 
     int serverPort2 = server2.invoke("Create BridgeServer",
         () -> configServer(20, "testQueryMonitorRegionWithEviction"));// All the queries taking more
                                                                       // than 20ms should be
                                                                       // canceled by Query monitor.
-    server2.invoke("withRegion",
+    server2.invoke("createRegion",
         () -> createRegion(true, "server2_testQueryMonitorRegionWithEviction"));
 
     // Initialize server regions.
@@ -755,11 +755,11 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
 
     // Initialize Client1 and create client regions.
     client1.invoke("Init client", () -> configClient(serverHostName, serverPort1));
-    client1.invoke("withRegion", () -> createRegion());
+    client1.invoke("createRegion", () -> createRegion());
 
     // Initialize Client2 and create client regions.
     client2.invoke("Init client", () -> configClient(serverHostName, serverPort2));
-    client2.invoke("withRegion", () -> createRegion());
+    client2.invoke("createRegion", () -> createRegion());
 
     // Execute client queries
     client1.invoke("Execute Queries", () -> executeQueriesFromClient(20));
@@ -803,7 +803,7 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
                                                                                                   // by
                                                                                                   // Query
                                                                                                   // monitor.
-    server1.invoke("withRegion", () -> createRegion());
+    server1.invoke("createRegion", () -> createRegion());
 
     int serverPort2 =
         server2.invoke("configServer", () -> configServer(20, "testQueryMonitorRegionWithIndex"));// All
@@ -819,7 +819,7 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
                                                                                                   // by
                                                                                                   // Query
                                                                                                   // monitor.
-    server2.invoke("withRegion", () -> createRegion());
+    server2.invoke("createRegion", () -> createRegion());
 
     // pause(1000);
 
@@ -831,11 +831,11 @@ public class QueryMonitorDUnitTest extends JUnit4CacheTestCase {
 
     // Initialize Client1 and create client regions.
     client1.invoke("Init client", () -> configClient(serverHostName, serverPort1));
-    client1.invoke("withRegion", () -> createRegion());
+    client1.invoke("createRegion", () -> createRegion());
 
     // Initialize Client2 and create client regions.
     client2.invoke("Init client", () -> configClient(serverHostName, serverPort2));
-    client2.invoke("withRegion", () -> createRegion());
+    client2.invoke("createRegion", () -> createRegion());
 
     // Execute client queries
     client1.invoke("executeQueriesFromClient", () -> executeQueriesFromClient(20));

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-cq/src/test/java/org/apache/geode/internal/cache/ha/CQListGIIDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/org/apache/geode/internal/cache/ha/CQListGIIDUnitTest.java b/geode-cq/src/test/java/org/apache/geode/internal/cache/ha/CQListGIIDUnitTest.java
index 7a10046..659c4a9 100755
--- a/geode-cq/src/test/java/org/apache/geode/internal/cache/ha/CQListGIIDUnitTest.java
+++ b/geode-cq/src/test/java/org/apache/geode/internal/cache/ha/CQListGIIDUnitTest.java
@@ -186,7 +186,7 @@ public class CQListGIIDUnitTest extends JUnit4DistributedTestCase {
     factory.setScope(Scope.DISTRIBUTED_ACK);
     factory.setDataPolicy(DataPolicy.REPLICATE);
     RegionAttributes attrs = factory.create();
-    // cache.withRegion(regionName, attrs);
+    // cache.createRegion(regionName, attrs);
     createRegion(regions[0], "root", attrs);
     createRegion(regions[1], "root", attrs);
     Thread.sleep(2000);
@@ -672,7 +672,7 @@ public class CQListGIIDUnitTest extends JUnit4DistributedTestCase {
         server.start();
       }
     } catch (Exception e) {
-      fail("failed in buildInThisVM()", e);
+      fail("failed in startServer()", e);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-cq/src/test/java/org/apache/geode/management/CacheServerManagementDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/org/apache/geode/management/CacheServerManagementDUnitTest.java b/geode-cq/src/test/java/org/apache/geode/management/CacheServerManagementDUnitTest.java
index ae5570f..2cd69dd 100644
--- a/geode-cq/src/test/java/org/apache/geode/management/CacheServerManagementDUnitTest.java
+++ b/geode-cq/src/test/java/org/apache/geode/management/CacheServerManagementDUnitTest.java
@@ -425,7 +425,7 @@ public class CacheServerManagementDUnitTest extends LocatorTestBase {
   }
 
   protected void assertCacheServerConfig(CacheServerMXBean bean) {
-    // assertIndexDetailsEquals(ServerInfo.getInstance().getServerPort(), bean.getServerPort());
+    // assertIndexDetailsEquals(ServerInfo.getInstance().getServerPort(), bean.getPort());
     assertEquals(CacheServer.DEFAULT_BIND_ADDRESS, bean.getBindAddress());
     assertEquals(CacheServer.DEFAULT_HOSTNAME_FOR_CLIENTS, bean.getHostNameForClients());
     assertEquals(CacheServer.DEFAULT_SOCKET_BUFFER_SIZE, bean.getSocketBufferSize());

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-cq/src/test/java/org/apache/geode/security/CQClientAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/org/apache/geode/security/CQClientAuthDUnitTest.java b/geode-cq/src/test/java/org/apache/geode/security/CQClientAuthDUnitTest.java
index 68e4c69..8916725 100644
--- a/geode-cq/src/test/java/org/apache/geode/security/CQClientAuthDUnitTest.java
+++ b/geode-cq/src/test/java/org/apache/geode/security/CQClientAuthDUnitTest.java
@@ -37,8 +37,7 @@ import org.apache.geode.security.templates.UserPasswordAuthInit;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -56,11 +55,11 @@ public class CQClientAuthDUnitTest extends JUnit4DistributedTestCase {
   final VM client1 = host.getVM(1);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .withProperty(SECURITY_POST_PROCESSOR, TestPostProcessor.class.getName()).buildInThisVM();
+          .withProperty(SECURITY_POST_PROCESSOR, TestPostProcessor.class.getName()).withAutoStart();
 
   @Before
   public void before() throws Exception {
@@ -82,7 +81,7 @@ public class CQClientAuthDUnitTest extends JUnit4DistributedTestCase {
           UserPasswordAuthInit.class.getName() + ".create");
       ClientCacheFactory factory = new ClientCacheFactory(props);
 
-      factory.addPoolServer("localhost", server.getServerPort());
+      factory.addPoolServer("localhost", server.getPort());
       factory.setPoolThreadLocalConnections(false);
       factory.setPoolMinConnections(5);
       factory.setPoolSubscriptionEnabled(true);

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-cq/src/test/java/org/apache/geode/security/CQPDXPostProcessorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/org/apache/geode/security/CQPDXPostProcessorDUnitTest.java b/geode-cq/src/test/java/org/apache/geode/security/CQPDXPostProcessorDUnitTest.java
index 86d4671..2489b95 100644
--- a/geode-cq/src/test/java/org/apache/geode/security/CQPDXPostProcessorDUnitTest.java
+++ b/geode-cq/src/test/java/org/apache/geode/security/CQPDXPostProcessorDUnitTest.java
@@ -39,8 +39,7 @@ import org.apache.geode.pdx.SimpleClass;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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.apache.geode.test.junit.runners.CategoryWithParameterizedRunnerFactory;
@@ -75,14 +74,13 @@ public class CQPDXPostProcessorDUnitTest extends JUnit4DistributedTestCase {
   }
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
           .withProperty(SECURITY_POST_PROCESSOR, PDXPostProcessor.class.getName())
           .withProperty("security-pdx", pdxPersistent + "")
-          .withRegion(RegionShortcut.REPLICATE, REGION_NAME).buildInThisVM();
-
+          .withRegion(RegionShortcut.REPLICATE, REGION_NAME);
 
   public CQPDXPostProcessorDUnitTest(boolean pdxPersistent) {
     this.pdxPersistent = pdxPersistent;
@@ -92,7 +90,7 @@ public class CQPDXPostProcessorDUnitTest extends JUnit4DistributedTestCase {
   public void testCQ() {
     String query = "select * from /" + REGION_NAME;
     client1.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
 
       Pool pool = PoolManager.find(region);
@@ -121,7 +119,7 @@ public class CQPDXPostProcessorDUnitTest extends JUnit4DistributedTestCase {
     });
 
     client2.invoke(() -> {
-      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       region.put("key1", new SimpleClass(1, (byte) 1));
       region.put("key2", BYTES);

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-cq/src/test/java/org/apache/geode/security/CQPostProcessorDunitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/org/apache/geode/security/CQPostProcessorDunitTest.java b/geode-cq/src/test/java/org/apache/geode/security/CQPostProcessorDunitTest.java
index 935c48c..45f45ab 100644
--- a/geode-cq/src/test/java/org/apache/geode/security/CQPostProcessorDunitTest.java
+++ b/geode-cq/src/test/java/org/apache/geode/security/CQPostProcessorDunitTest.java
@@ -37,8 +37,7 @@ import org.apache.geode.cache.query.internal.cq.CqListenerImpl;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -55,11 +54,11 @@ public class CQPostProcessorDunitTest extends JUnit4DistributedTestCase {
   final VM client2 = host.getVM(2);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .withProperty(SECURITY_POST_PROCESSOR, TestPostProcessor.class.getName()).buildInThisVM();
+          .withProperty(SECURITY_POST_PROCESSOR, TestPostProcessor.class.getName()).withAutoStart();
 
   @Before
   public void before() throws Exception {
@@ -74,7 +73,7 @@ public class CQPostProcessorDunitTest extends JUnit4DistributedTestCase {
   public void testPostProcess() {
     String query = "select * from /AuthRegion";
     client1.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
 
 
@@ -108,7 +107,7 @@ public class CQPostProcessorDunitTest extends JUnit4DistributedTestCase {
     });
 
     client2.invoke(() -> {
-      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       region.put("key6", "value6");
     });

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-cq/src/test/java/org/apache/geode/security/ClientQueryAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/org/apache/geode/security/ClientQueryAuthDUnitTest.java b/geode-cq/src/test/java/org/apache/geode/security/ClientQueryAuthDUnitTest.java
index aea543d..cc5dde4 100644
--- a/geode-cq/src/test/java/org/apache/geode/security/ClientQueryAuthDUnitTest.java
+++ b/geode-cq/src/test/java/org/apache/geode/security/ClientQueryAuthDUnitTest.java
@@ -23,8 +23,7 @@ import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -52,16 +51,16 @@ public class ClientQueryAuthDUnitTest extends JUnit4DistributedTestCase {
   final VM client3 = host.getVM(3);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .withRegion(RegionShortcut.REPLICATE, REGION_NAME).buildInThisVM();
+          .withRegion(RegionShortcut.REPLICATE, REGION_NAME);
 
   @Test
   public void testQuery() {
     client1.invoke(() -> {
-      ClientCache cache = createClientCache("stranger", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("stranger", "1234567", server.getPort());
       final Region region = createProxyRegion(cache, REGION_NAME);
 
       String query = "select * from /AuthRegion";
@@ -77,7 +76,7 @@ public class ClientQueryAuthDUnitTest extends JUnit4DistributedTestCase {
   public void testCQ() {
     String query = "select * from /AuthRegion";
     client1.invoke(() -> {
-      ClientCache cache = createClientCache("stranger", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("stranger", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       Pool pool = PoolManager.find(region);
       QueryService qs = pool.getQueryService();
@@ -94,7 +93,7 @@ public class ClientQueryAuthDUnitTest extends JUnit4DistributedTestCase {
     });
 
     client2.invoke(() -> {
-      ClientCache cache = createClientCache("authRegionReader", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionReader", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       Pool pool = PoolManager.find(region);
       QueryService qs = pool.getQueryService();
@@ -109,7 +108,7 @@ public class ClientQueryAuthDUnitTest extends JUnit4DistributedTestCase {
     });
 
     client3.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       Pool pool = PoolManager.find(region);
       QueryService qs = pool.getQueryService();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-web/src/test/java/org/apache/geode/management/internal/cli/commands/QueryNamesOverHttpDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-web/src/test/java/org/apache/geode/management/internal/cli/commands/QueryNamesOverHttpDUnitTest.java b/geode-web/src/test/java/org/apache/geode/management/internal/cli/commands/QueryNamesOverHttpDUnitTest.java
index 86deb27..dbd29b5 100644
--- a/geode-web/src/test/java/org/apache/geode/management/internal/cli/commands/QueryNamesOverHttpDUnitTest.java
+++ b/geode-web/src/test/java/org/apache/geode/management/internal/cli/commands/QueryNamesOverHttpDUnitTest.java
@@ -23,8 +23,6 @@ import org.apache.geode.management.internal.web.domain.Link;
 import org.apache.geode.management.internal.web.domain.LinkIndex;
 import org.apache.geode.management.internal.web.http.HttpMethod;
 import org.apache.geode.management.internal.web.shell.RestHttpOperationInvoker;
-import org.apache.geode.test.dunit.rules.LocalLocatorStarterRule;
-import org.apache.geode.test.dunit.rules.LocatorStarterBuilder;
 import org.apache.geode.test.dunit.rules.LocatorStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.junit.Rule;
@@ -41,7 +39,7 @@ import javax.management.QueryExp;
 @Category(IntegrationTest.class)
 public class QueryNamesOverHttpDUnitTest {
   @Rule
-  public LocalLocatorStarterRule locatorRule = new LocatorStarterBuilder().buildInThisVM();
+  public LocatorStarterRule locatorRule = new LocatorStarterRule().withAutoStart();
 
   @Test
   public void testQueryNameOverHttp() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-web/src/test/java/org/apache/geode/management/internal/security/GfshCommandsOverHttpSecurityTest.java
----------------------------------------------------------------------
diff --git a/geode-web/src/test/java/org/apache/geode/management/internal/security/GfshCommandsOverHttpSecurityTest.java b/geode-web/src/test/java/org/apache/geode/management/internal/security/GfshCommandsOverHttpSecurityTest.java
index 7fd839c..25068bc 100644
--- a/geode-web/src/test/java/org/apache/geode/management/internal/security/GfshCommandsOverHttpSecurityTest.java
+++ b/geode-web/src/test/java/org/apache/geode/management/internal/security/GfshCommandsOverHttpSecurityTest.java
@@ -24,7 +24,7 @@ import org.junit.experimental.categories.Category;
 @Category({IntegrationTest.class, SecurityTest.class})
 public class GfshCommandsOverHttpSecurityTest extends GfshCommandsSecurityTest {
   public GfshCommandsOverHttpSecurityTest() {
-    gfshConnection = new GfshShellConnectionRule(serverStarter.getHttpPort(),
+    gfshConnection = new GfshShellConnectionRule(serverStarter::getHttpPort,
         GfshShellConnectionRule.PortType.http);
   }
 }


[4/4] geode git commit: GEODE-2730: refactor rules

Posted by ji...@apache.org.
GEODE-2730: refactor rules

* consolidate the two sets of server/locator starter rules
* do not allow member start up at test initialization time.
* validate properties in @Before
* use provider in the chained rules to get the appropriate ports in @Before


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

Branch: refs/heads/develop
Commit: 6a88f1bcce2ef09a814a6f7545896cc4f0c26da7
Parents: 796c15e
Author: Jinmei Liao <ji...@pivotal.io>
Authored: Wed Mar 22 19:45:19 2017 -0700
Committer: Jinmei Liao <ji...@pivotal.io>
Committed: Thu Apr 13 10:23:26 2017 -0700

----------------------------------------------------------------------
 .../web/RestSecurityIntegrationTest.java        |  14 +-
 .../web/RestSecurityPostProcessorTest.java      |  14 +-
 .../internal/web/RestSecurityWithSSLTest.java   |  39 ++--
 .../rest/internal/web/RestServersJUnitTest.java |  11 +-
 .../internal/web/SwaggerVerificationTest.java   |   9 +-
 .../test/dunit/rules/EmbeddedPulseRule.java     |  53 ++++++
 .../geode/test/dunit/rules/HttpClientRule.java  |  40 ++--
 .../geode/tools/pulse/PulseDataExportTest.java  |   9 +-
 .../geode/tools/pulse/PulseSecurityTest.java    |  91 +++++++++
 .../tools/pulse/PulseVerificationTest.java      |  90 ---------
 .../geode/cache/ConnectionPoolDUnitTest.java    |   4 +-
 .../org/apache/geode/cache/ProxyJUnitTest.java  |   4 +-
 .../PartitionRegionHelperDUnitTest.java         |  16 +-
 .../BaseLineAndCompareQueryPerfJUnitTest.java   |   4 +-
 .../cache/query/dunit/QueryIndexDUnitTest.java  |   2 +-
 .../cache/query/dunit/RemoteQueryDUnitTest.java |   4 +-
 ...ndexWithSngleFrmAndMultCondQryJUnitTest.java |   6 +-
 .../query/functional/LimitClauseJUnitTest.java  |   6 +-
 .../query/internal/QueryUtilsJUnitTest.java     |   4 +-
 .../index/IndexMaintenanceJUnitTest.java        |   2 +-
 .../query/partitioned/PRQueryDUnitHelper.java   |   2 +-
 .../geode/cache30/CacheLoaderTestCase.java      |   4 +-
 .../geode/cache30/CacheXml66DUnitTest.java      |   4 +-
 .../geode/cache30/DiskRegionDUnitTest.java      |   8 +-
 .../geode/cache30/DiskRegionTestImpl.java       |   2 +-
 .../DistributedAckRegionCCEDUnitTest.java       |   2 +-
 .../DistributedMulticastRegionDUnitTest.java    |   4 +-
 .../geode/cache30/GlobalRegionCCEDUnitTest.java |   2 +-
 .../geode/cache30/MultiVMRegionTestCase.java    |  17 +-
 .../apache/geode/cache30/RegionTestCase.java    |   4 +-
 .../distributed/internal/Bug40751DUnitTest.java |   4 +-
 .../geode/disttx/DistTXDebugDUnitTest.java      |   4 +-
 .../internal/cache/CacheAdvisorDUnitTest.java   |   6 +-
 .../internal/cache/DeltaSizingDUnitTest.java    |   4 +-
 .../internal/cache/EventTrackerDUnitTest.java   |   2 +-
 .../geode/internal/cache/PRTXJUnitTest.java     |   4 +-
 .../cache/PartitionListenerDUnitTest.java       |   2 +-
 .../cache/PartitionedRegionHADUnitTest.java     |   2 +-
 ...artitionedRegionRedundancyZoneDUnitTest.java |   2 +-
 .../cache/PartitionedRegionStatsDUnitTest.java  |   8 +-
 .../PartitionedRegionTestUtilsDUnitTest.java    |   2 +-
 .../control/RebalanceOperationDUnitTest.java    |  38 ++--
 .../cache/ha/HARQueueNewImplDUnitTest.java      |   2 +-
 .../cache/partitioned/Bug39356DUnitTest.java    |   2 +-
 .../cache/partitioned/ShutdownAllDUnitTest.java |   8 +-
 .../RollingUpgrade2DUnitTest.java               |   4 +-
 .../rollingupgrade/RollingUpgradeDUnitTest.java |   2 +-
 .../cache/tier/sockets/Bug36829DUnitTest.java   |   2 +-
 .../DataSerializerPropogationDUnitTest.java     |   2 +-
 .../sockets/HAStartupAndFailoverDUnitTest.java  |   4 +-
 .../InstantiatorPropagationDUnitTest.java       |   2 +-
 .../tier/sockets/RedundancyLevelTestBase.java   |   2 +-
 .../cli/commands/ExportLogsIntegrationTest.java |   8 +-
 .../ExportLogsFunctionIntegrationTest.java      |   4 +-
 .../cli/shell/GfshMultilineCommandTest.java     |   6 +-
 .../cli/util/LogExporterIntegrationTest.java    |  87 ++++-----
 .../security/AccessControlMBeanJUnitTest.java   |   8 +-
 ...CacheServerMBeanAuthenticationJUnitTest.java |   8 +-
 .../CacheServerMBeanAuthorizationJUnitTest.java |   8 +-
 .../CacheServerMBeanShiroJUnitTest.java         |   8 +-
 .../security/CliCommandsSecurityTest.java       |   9 +-
 .../security/DataCommandsSecurityTest.java      |   9 +-
 .../security/DeployCommandsSecurityTest.java    |   9 +-
 .../DiskStoreMXBeanSecurityJUnitTest.java       |   9 +-
 .../GatewayReceiverMBeanSecurityTest.java       |   9 +-
 .../GatewaySenderMBeanSecurityTest.java         |   9 +-
 .../security/GfshCommandsPostProcessorTest.java |  13 +-
 .../security/GfshCommandsSecurityTest.java      |   9 +-
 .../security/JavaRmiServerNameTest.java         |   7 +-
 .../LockServiceMBeanAuthorizationJUnitTest.java |   9 +-
 .../security/MBeanSecurityJUnitTest.java        |   9 +-
 .../ManagerMBeanAuthorizationJUnitTest.java     |   9 +-
 .../security/MemberMBeanSecurityJUnitTest.java  |   9 +-
 .../geode/security/ClientAuthDUnitTest.java     |  22 +--
 .../ClientContainsKeyAuthDUnitTest.java         |  13 +-
 .../ClientDestroyInvalidateAuthDUnitTest.java   |  13 +-
 .../ClientDestroyRegionAuthDUnitTest.java       |  24 +--
 .../ClientExecuteFunctionAuthDUnitTest.java     |  21 +--
 ...lientExecuteRegionFunctionAuthDUnitTest.java |  13 +-
 .../security/ClientGetAllAuthDUnitTest.java     |  13 +-
 .../security/ClientGetEntryAuthDUnitTest.java   |  17 +-
 .../security/ClientGetPutAuthDUnitTest.java     |  15 +-
 .../ClientRegionClearAuthDUnitTest.java         |  13 +-
 .../ClientRegisterInterestAuthDUnitTest.java    |  27 ++-
 .../security/ClientRemoveAllAuthDUnitTest.java  |  13 +-
 .../ClientUnregisterInterestAuthDUnitTest.java  |  11 +-
 .../NoShowValue1PostProcessorDUnitTest.java     |  11 +-
 .../security/PDXPostProcessorDUnitTest.java     |  23 ++-
 .../geode/security/PostProcessorDUnitTest.java  |  17 +-
 .../SecurityClusterConfigDUnitTest.java         |   4 -
 .../dunit/rules/GfshShellConnectionRule.java    |  12 +-
 .../dunit/rules/LocalLocatorStarterRule.java    |  99 ----------
 .../dunit/rules/LocalServerStarterRule.java     | 159 ----------------
 .../dunit/rules/LocatorServerStartupRule.java   |  13 +-
 .../test/dunit/rules/LocatorStarterBuilder.java | 121 ------------
 .../test/dunit/rules/LocatorStarterRule.java    |  26 ++-
 .../dunit/rules/MBeanServerConnectionRule.java  |  13 +-
 .../test/dunit/rules/MemberStarterRule.java     |  31 +++-
 .../test/dunit/rules/ServerStarterBuilder.java  | 185 -------------------
 .../test/dunit/rules/ServerStarterRule.java     |  42 ++++-
 .../dunit/rules/test/MemberStarterRuleTest.java |  72 ++++++++
 .../query/dunit/QueryMonitorDUnitTest.java      |  44 ++---
 .../internal/cache/ha/CQListGIIDUnitTest.java   |   4 +-
 .../CacheServerManagementDUnitTest.java         |   2 +-
 .../geode/security/CQClientAuthDUnitTest.java   |  11 +-
 .../security/CQPDXPostProcessorDUnitTest.java   |  14 +-
 .../security/CQPostProcessorDunitTest.java      |  13 +-
 .../security/ClientQueryAuthDUnitTest.java      |  17 +-
 .../commands/QueryNamesOverHttpDUnitTest.java   |   4 +-
 .../GfshCommandsOverHttpSecurityTest.java       |   2 +-
 110 files changed, 760 insertions(+), 1229 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
index cbd83e3..0f1be57 100644
--- a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
+++ b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityIntegrationTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.rest.internal.web;
 
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -21,8 +22,7 @@ import static org.junit.Assert.assertTrue;
 
 import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.security.TestSecurityManager;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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.http.HttpResponse;
@@ -41,11 +41,11 @@ public class RestSecurityIntegrationTest {
   protected static final String REGION_NAME = "AuthRegion";
 
   @ClassRule
-  public static LocalServerStarterRule serverStarter =
-      new ServerStarterBuilder().withSecurityManager(TestSecurityManager.class)
-          .withProperty(TestSecurityManager.SECURITY_JSON,
-              "org/apache/geode/management/internal/security/clientServer.json")
-          .withRestService().buildInThisVM();
+  public static ServerStarterRule serverStarter = new ServerStarterRule()
+      .withProperty(TestSecurityManager.SECURITY_JSON,
+          "org/apache/geode/management/internal/security/clientServer.json")
+      .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName()).withRestService()
+      .withAutoStart();
 
   private final GeodeRestClient restClient =
       new GeodeRestClient("localhost", serverStarter.getHttpPort());

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java
index e93561c..652c3a1 100644
--- a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java
+++ b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityPostProcessorTest.java
@@ -28,8 +28,6 @@ import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.rest.internal.web.controllers.Customer;
 import org.apache.geode.rest.internal.web.controllers.RedactingPostProcessor;
 import org.apache.geode.security.TestSecurityManager;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.geode.test.junit.categories.SecurityTest;
@@ -49,12 +47,12 @@ import java.net.URLEncoder;
 public class RestSecurityPostProcessorTest {
 
   @ClassRule
-  public static LocalServerStarterRule serverStarter =
-      new ServerStarterBuilder().withSecurityManager(TestSecurityManager.class)
-          .withProperty(TestSecurityManager.SECURITY_JSON,
-              "org/apache/geode/management/internal/security/clientServer.json")
-          .withProperty(SECURITY_POST_PROCESSOR, RedactingPostProcessor.class.getName())
-          .withRestService().buildInThisVM();
+  public static ServerStarterRule serverStarter = new ServerStarterRule()
+      .withProperty(TestSecurityManager.SECURITY_JSON,
+          "org/apache/geode/management/internal/security/clientServer.json")
+      .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+      .withProperty(SECURITY_POST_PROCESSOR, RedactingPostProcessor.class.getName())
+      .withRestService().withAutoStart();
 
   private final GeodeRestClient restClient =
       new GeodeRestClient("localhost", serverStarter.getHttpPort());

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityWithSSLTest.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityWithSSLTest.java b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityWithSSLTest.java
index 14113c0..4d142bd 100644
--- a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityWithSSLTest.java
+++ b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestSecurityWithSSLTest.java
@@ -16,6 +16,7 @@
 package org.apache.geode.rest.internal.web;
 
 import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_BIND_ADDRESS;
+import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
 import static org.apache.geode.distributed.ConfigurationProperties.SSL_ENABLED_COMPONENTS;
 import static org.apache.geode.distributed.ConfigurationProperties.SSL_KEYSTORE;
@@ -27,10 +28,10 @@ import static org.apache.geode.distributed.ConfigurationProperties.SSL_TRUSTSTOR
 import static org.apache.geode.distributed.ConfigurationProperties.START_DEV_REST_API;
 import static org.junit.Assert.assertEquals;
 
+import org.apache.geode.internal.AvailablePortHelper;
 import org.apache.geode.internal.security.SecurableCommunicationChannel;
 import org.apache.geode.security.SimpleTestSecurityManager;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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.http.HttpResponse;
@@ -39,26 +40,36 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 import java.net.URL;
+import java.util.Properties;
 
 @Category({IntegrationTest.class, SecurityTest.class})
 public class RestSecurityWithSSLTest {
-  private static URL KEYSTORE_URL =
-      RestSecurityWithSSLTest.class.getClassLoader().getResource("ssl/trusted.keystore");
 
+  private static int restPort = AvailablePortHelper.getRandomAvailableTCPPort();
   @Rule
-  public LocalServerStarterRule serverStarter = new ServerStarterBuilder().withRestService()
-      .withProperty(SECURITY_MANAGER, SimpleTestSecurityManager.class.getName())
-      .withProperty(SSL_ENABLED_COMPONENTS, SecurableCommunicationChannel.WEB.getConstant())
-      .withProperty(SSL_KEYSTORE, KEYSTORE_URL.getPath())
-      .withProperty(SSL_KEYSTORE_PASSWORD, "password").withProperty(SSL_KEYSTORE_TYPE, "JKS")
-      .withProperty(SSL_TRUSTSTORE, KEYSTORE_URL.getPath())
-      .withProperty(SSL_TRUSTSTORE_PASSWORD, "password")
-      .withProperty(SSL_PROTOCOLS, "TLSv1.2,TLSv1.1").buildInThisVM();
+  public ServerStarterRule serverStarter = new ServerStarterRule();
 
   @Test
   public void testRestSecurityWithSSL() throws Exception {
-    GeodeRestClient restClient =
-        new GeodeRestClient("localhost", serverStarter.getHttpPort(), true);
+    URL keystoreUrl =
+        RestSecurityWithSSLTest.class.getClassLoader().getResource("ssl/trusted.keystore");
+
+    Properties properties = new Properties();
+    properties.setProperty(SECURITY_MANAGER, SimpleTestSecurityManager.class.getName());
+    properties.setProperty(START_DEV_REST_API, "true");
+    properties.setProperty(HTTP_SERVICE_BIND_ADDRESS, "localhost");
+    properties.setProperty(HTTP_SERVICE_PORT, restPort + "");
+    properties.setProperty(SSL_ENABLED_COMPONENTS, SecurableCommunicationChannel.WEB.getConstant());
+    properties.setProperty(SSL_KEYSTORE, keystoreUrl.getPath());
+    properties.setProperty(SSL_KEYSTORE_PASSWORD, "password");
+    properties.setProperty(SSL_KEYSTORE_TYPE, "JKS");
+    properties.setProperty(SSL_TRUSTSTORE, keystoreUrl.getPath());
+    properties.setProperty(SSL_TRUSTSTORE_PASSWORD, "password");
+    properties.setProperty(SSL_PROTOCOLS, "TLSv1.2,TLSv1.1");
+
+    serverStarter.withProperties(properties).startServer();
+
+    GeodeRestClient restClient = new GeodeRestClient("localhost", restPort, true);
     HttpResponse response = restClient.doGet("/servers", "cluster", "cluster");
 
     assertEquals(200, GeodeRestClient.getCode(response));

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestServersJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestServersJUnitTest.java b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestServersJUnitTest.java
index 2a3a036..172a840 100644
--- a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestServersJUnitTest.java
+++ b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestServersJUnitTest.java
@@ -17,8 +17,7 @@ package org.apache.geode.rest.internal.web;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+import org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.geode.test.junit.categories.RestAPITest;
@@ -33,13 +32,14 @@ import org.junit.experimental.categories.Category;
 public class RestServersJUnitTest {
 
   @ClassRule
-  public static LocalServerStarterRule serverStarter =
-      new ServerStarterBuilder().withRestService().buildInThisVM();
+  public static ServerStarterRule serverStarter =
+      new ServerStarterRule().withRestService(true).withAutoStart();
 
   private static GeodeRestClient restClient;
 
   @BeforeClass
   public static void before() throws Exception {
+    assertThat(serverStarter.getHttpPort()).isEqualTo(DistributionConfig.DEFAULT_HTTP_SERVICE_PORT);
     restClient = new GeodeRestClient("localhost", serverStarter.getHttpPort());
   }
 
@@ -54,6 +54,7 @@ public class RestServersJUnitTest {
     HttpResponse response = restClient.doGet("/servers", null, null);
     JSONArray body = GeodeRestClient.getJsonArray(response);
     assertThat(body.length()).isEqualTo(1);
-    assertThat(body.getString(0)).isEqualTo("http://localhost:" + serverStarter.getHttpPort());
+    assertThat(body.getString(0))
+        .isEqualTo("http://localhost:" + DistributionConfig.DEFAULT_HTTP_SERVICE_PORT);
   }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/SwaggerVerificationTest.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/SwaggerVerificationTest.java b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/SwaggerVerificationTest.java
index a8ab19c..559d15d 100644
--- a/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/SwaggerVerificationTest.java
+++ b/geode-assembly/src/test/java/org/apache/geode/rest/internal/web/SwaggerVerificationTest.java
@@ -15,14 +15,11 @@
 package org.apache.geode.rest.internal.web;
 
 
-import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
 import org.apache.geode.internal.i18n.LocalizedStrings;
 import org.apache.geode.security.SimpleTestSecurityManager;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.geode.test.junit.categories.RestAPITest;
@@ -36,10 +33,8 @@ import org.junit.experimental.categories.Category;
 public class SwaggerVerificationTest {
 
   @ClassRule
-  public static LocalServerStarterRule serverStarter = new ServerStarterBuilder()
-      .withSecurityManager(SimpleTestSecurityManager.class).withRestService().buildInThisVM();
-
-  private GeodeRestClient restClient;
+  public static ServerStarterRule serverStarter = new ServerStarterRule()
+      .withSecurityManager(SimpleTestSecurityManager.class).withRestService().withAutoStart();
 
   @Test
   public void isSwaggerRunning() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-assembly/src/test/java/org/apache/geode/test/dunit/rules/EmbeddedPulseRule.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/org/apache/geode/test/dunit/rules/EmbeddedPulseRule.java b/geode-assembly/src/test/java/org/apache/geode/test/dunit/rules/EmbeddedPulseRule.java
new file mode 100644
index 0000000..e41d0fe
--- /dev/null
+++ b/geode-assembly/src/test/java/org/apache/geode/test/dunit/rules/EmbeddedPulseRule.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package org.apache.geode.test.dunit.rules;
+
+import org.apache.geode.tools.pulse.internal.data.Repository;
+import org.junit.rules.ExternalResource;
+
+import java.util.function.Supplier;
+
+/**
+ * This is used to test embedded pulse. If your test needs to check pulse's repository object for
+ * assertions, use this rules to properly initialize and cleanup the repository
+ *
+ */
+public class EmbeddedPulseRule extends ExternalResource {
+  private Supplier<Integer> portSupplier;
+  private Repository repository;
+
+  public EmbeddedPulseRule(Supplier<Integer> portSupplier) {
+    this.portSupplier = portSupplier;
+  }
+
+  public Repository getRepository() {
+    return repository;
+  }
+
+  protected void before() throws Throwable {
+    repository = Repository.get();
+    repository.setJmxHost("localhost");
+    repository.setJmxPort(portSupplier.get() + "");
+    repository.setJmxUseLocator(false);
+  }
+
+  /**
+   * Override to tear down your specific external resource.
+   */
+  protected void after() {
+    repository.removeAllClusters();
+  }
+}

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-assembly/src/test/java/org/apache/geode/test/dunit/rules/HttpClientRule.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/org/apache/geode/test/dunit/rules/HttpClientRule.java b/geode-assembly/src/test/java/org/apache/geode/test/dunit/rules/HttpClientRule.java
index 49351d9..7b0fab1 100644
--- a/geode-assembly/src/test/java/org/apache/geode/test/dunit/rules/HttpClientRule.java
+++ b/geode-assembly/src/test/java/org/apache/geode/test/dunit/rules/HttpClientRule.java
@@ -27,44 +27,41 @@ import org.apache.http.client.methods.HttpPost;
 import org.apache.http.client.utils.URIBuilder;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.message.BasicNameValuePair;
-import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.HttpContext;
-import org.junit.Before;
 import org.junit.rules.ExternalResource;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.function.Supplier;
 
+/**
+ * this rules simplifies creating a httpClient for verification of pulse behaviors or any http
+ * client behaviors. Usually after you start up a server/locator with http service, you would want
+ * to connect to it through http client and verify some behavior, you would need to use this rule.
+ *
+ * See @PulseSecuriyTest for examples
+ *
+ */
 public class HttpClientRule extends ExternalResource {
   private String hostName;
-  private int port;
+  private Supplier<Integer> portSupplier;
   private HttpHost host;
   private HttpClient httpClient;
-  private HttpContext context;
-  private LocalLocatorStarterRule locatorStarterRule;
 
-  public HttpClientRule(LocalLocatorStarterRule locatorStarterRule) {
-    this.locatorStarterRule = locatorStarterRule;
-  }
 
-  public HttpClientRule(int port) {
-    this("localhost", port);
+  public HttpClientRule(String hostName, Supplier<Integer> portSupplier) {
+    this.hostName = hostName;
+    this.portSupplier = portSupplier;
   }
 
-  public HttpClientRule(String hostName, int port) {
-    this.hostName = hostName;
-    this.port = port;
+  public HttpClientRule(Supplier<Integer> portSupplier) {
+    this("localhost", portSupplier);
   }
 
-  @Before
+
+  @Override
   protected void before() {
-    if (locatorStarterRule != null) {
-      this.hostName = "localhost";
-      this.port = locatorStarterRule.getHttpPort();
-    }
-    host = new HttpHost(hostName, port);
+    host = new HttpHost(hostName, portSupplier.get());
     httpClient = HttpClients.createDefault();
-    context = new BasicHttpContext();
   }
 
   public HttpResponse loginToPulse(String username, String password) throws Exception {
@@ -107,5 +104,4 @@ public class HttpClientRule extends ExternalResource {
   }
 
 
-
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/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 10ca43b..60f1005 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
@@ -21,8 +21,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.test.dunit.rules.HttpClientRule;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.http.HttpResponse;
 import org.apache.http.util.EntityUtils;
@@ -35,11 +34,11 @@ import org.junit.experimental.categories.Category;
 public class PulseDataExportTest {
 
   @Rule
-  public LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
-      .withRegion(RegionShortcut.REPLICATE, "regionA").buildInThisVM();
+  public ServerStarterRule server =
+      new ServerStarterRule().withJMXManager().withRegion(RegionShortcut.REPLICATE, "regionA");
 
   @Rule
-  public HttpClientRule client = new HttpClientRule(server.getHttpPort());
+  public HttpClientRule client = new HttpClientRule(server::getHttpPort);
 
   @Before
   public void before() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseSecurityTest.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseSecurityTest.java b/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseSecurityTest.java
new file mode 100644
index 0000000..7278c84
--- /dev/null
+++ b/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseSecurityTest.java
@@ -0,0 +1,91 @@
+/*
+ * 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.tools.pulse;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.apache.geode.security.SimpleTestSecurityManager;
+import org.apache.geode.test.dunit.rules.HttpClientRule;
+import org.apache.geode.test.dunit.rules.LocatorStarterRule;
+import org.apache.geode.test.junit.categories.IntegrationTest;
+import org.apache.http.HttpResponse;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.junit.rules.RuleChain;
+
+
+@Category(IntegrationTest.class)
+public class PulseSecurityTest {
+
+  private LocatorStarterRule locator =
+      new LocatorStarterRule().withSecurityManager(SimpleTestSecurityManager.class).withAutoStart();
+
+  private HttpClientRule client = new HttpClientRule(locator::getHttpPort);
+
+  @Rule
+  public RuleChain ruleChain = RuleChain.outerRule(locator).around(client);
+
+
+
+  @Test
+  public void loginWithIncorrectPassword() throws Exception {
+    HttpResponse response = client.loginToPulse("data", "wrongPassword");
+    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(302);
+    assertThat(response.getFirstHeader("Location").getValue())
+        .contains("/pulse/login.html?error=BAD_CREDS");
+
+    client.loginToPulseAndVerify("data", "data");
+  }
+
+  @Test
+  public void loginWithDataOnly() throws Exception {
+    client.loginToPulseAndVerify("data", "data");
+
+    // this would request cluster permission
+    HttpResponse response = client.get("/pulse/clusterDetail.html");
+    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(403);
+
+    // this would require both cluster and data permission
+    response = client.get("/pulse/dataBrowser.html");
+    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(403);
+  }
+
+
+  @Test
+  public void loginAllAccess() throws Exception {
+    client.loginToPulseAndVerify("CLUSTER,DATA", "CLUSTER,DATA");
+
+    HttpResponse response = client.get("/pulse/clusterDetail.html");
+    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(200);
+
+    response = client.get("/pulse/dataBrowser.html");
+    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(200);
+  }
+
+  @Test
+  public void loginWithClusterOnly() throws Exception {
+    client.loginToPulseAndVerify("cluster", "cluster");
+
+    HttpResponse response = client.get("/pulse/clusterDetail.html");
+    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(200);
+
+    // accessing data browser will be denied
+    response = client.get("/pulse/dataBrowser.html");
+    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(403);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseVerificationTest.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseVerificationTest.java b/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseVerificationTest.java
deleted file mode 100644
index 5a300a1..0000000
--- a/geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseVerificationTest.java
+++ /dev/null
@@ -1,90 +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.tools.pulse;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.apache.geode.security.SimpleTestSecurityManager;
-import org.apache.geode.test.dunit.rules.HttpClientRule;
-import org.apache.geode.test.dunit.rules.LocatorStarterBuilder;
-import org.apache.geode.test.dunit.rules.LocalLocatorStarterRule;
-import org.apache.geode.test.junit.categories.IntegrationTest;
-import org.apache.http.HttpResponse;
-import org.junit.ClassRule;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-
-@Category(IntegrationTest.class)
-public class PulseVerificationTest {
-
-  @ClassRule
-  public static LocalLocatorStarterRule locator = new LocatorStarterBuilder()
-      .withSecurityManager(SimpleTestSecurityManager.class).buildInThisVM();
-
-  @Rule
-  public HttpClientRule client = new HttpClientRule(locator);
-
-  @Test
-  public void loginWithIncorrectPassword() throws Exception {
-    HttpResponse response = client.loginToPulse("data", "wrongPassword");
-    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(302);
-    assertThat(response.getFirstHeader("Location").getValue())
-        .contains("/pulse/login.html?error=BAD_CREDS");
-
-    client.loginToPulseAndVerify("data", "data");
-  }
-
-  @Test
-  public void loginWithDataOnly() throws Exception {
-    client.loginToPulseAndVerify("data", "data");
-
-    // this would request cluster permission
-    HttpResponse response = client.get("/pulse/clusterDetail.html");
-    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(403);
-
-    // this would require both cluster and data permission
-    response = client.get("/pulse/dataBrowser.html");
-    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(403);
-  }
-
-
-  @Test
-  public void loginAllAccess() throws Exception {
-    client.loginToPulseAndVerify("CLUSTER,DATA", "CLUSTER,DATA");
-
-    HttpResponse response = client.get("/pulse/clusterDetail.html");
-    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(200);
-
-    response = client.get("/pulse/dataBrowser.html");
-    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(200);
-  }
-
-  @Test
-  public void loginWithClusterOnly() throws Exception {
-    client.loginToPulseAndVerify("cluster", "cluster");
-
-    HttpResponse response = client.get("/pulse/clusterDetail.html");
-    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(200);
-
-    // accessing data browser will be denied
-    response = client.get("/pulse/dataBrowser.html");
-    assertThat(response.getStatusLine().getStatusCode()).isEqualTo(403);
-  }
-
-
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache/ConnectionPoolDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/ConnectionPoolDUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/ConnectionPoolDUnitTest.java
index 2ac5120..2d5a71b 100755
--- a/geode-core/src/test/java/org/apache/geode/cache/ConnectionPoolDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/ConnectionPoolDUnitTest.java
@@ -5040,7 +5040,7 @@ public class ConnectionPoolDUnitTest extends JUnit4CacheTestCase {
   // vm0.invoke(new CacheSerializableRunnable("Create Cache Server") {
   // public void run2() throws CacheException {
   // AttributesFactory factory = getBridgeServerRegionAttributes(null,null);
-  // Region region = withRegion(name, factory.create());
+  // Region region = createRegion(name, factory.create());
   // pause(1000);
   // try {
   // startBridgeServer(0);
@@ -5064,7 +5064,7 @@ public class ConnectionPoolDUnitTest extends JUnit4CacheTestCase {
 
   // ClientServerTestCase.configureConnectionPool(factory,host0,port,-1,true,-1,-1, null);
 
-  // withRegion(name, factory.create());
+  // createRegion(name, factory.create());
   // }
   // };
 

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache/ProxyJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/ProxyJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/ProxyJUnitTest.java
index 05228ad..8cd68dc 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/ProxyJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/ProxyJUnitTest.java
@@ -1031,7 +1031,7 @@ public class ProxyJUnitTest {
     // // on a non-proxy lru
     // {
     // af.setDataPolicy(DataPolicy.NORMAL);
-    // Region r = this.c.withRegion("rLRU", af.create());
+    // Region r = this.c.createRegion("rLRU", af.create());
     // clearCallbackState();
     // assertTrue(clInvokeCount == 0);
     // for (int i=0; i < 10; i++) {
@@ -1048,7 +1048,7 @@ public class ProxyJUnitTest {
         fail("expected IllegalStateException");
       } catch (IllegalStateException expected) {
       }
-      // Region r = this.c.withRegion("rEMPTY", af.create());
+      // Region r = this.c.createRegion("rEMPTY", af.create());
       // clearCallbackState();
       // assertTrue(clInvokeCount == 0);
       // for (int i=0; i < 10; i++) {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache/partition/PartitionRegionHelperDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/partition/PartitionRegionHelperDUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/partition/PartitionRegionHelperDUnitTest.java
index c57ce5b..4236799 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/partition/PartitionRegionHelperDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/partition/PartitionRegionHelperDUnitTest.java
@@ -74,7 +74,7 @@ public class PartitionRegionHelperDUnitTest extends JUnit4CacheTestCase {
     VM vm1 = host.getVM(1);
     VM vm2 = host.getVM(2);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -143,7 +143,7 @@ public class PartitionRegionHelperDUnitTest extends JUnit4CacheTestCase {
     VM vm2 = host.getVM(2);
     VM vm3 = host.getVM(3);
 
-    SerializableRunnable createPrRegion1 = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion1 = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         FixedPartitionAttributes fpa1 =
@@ -163,7 +163,7 @@ public class PartitionRegionHelperDUnitTest extends JUnit4CacheTestCase {
       }
     };
     vm0.invoke(createPrRegion1);
-    SerializableRunnable createPrRegion2 = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion2 = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         FixedPartitionAttributes fpa1 =
@@ -183,7 +183,7 @@ public class PartitionRegionHelperDUnitTest extends JUnit4CacheTestCase {
       }
     };
     vm1.invoke(createPrRegion2);
-    SerializableRunnable createPrRegion3 = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion3 = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         FixedPartitionAttributes fpa1 =
@@ -240,7 +240,7 @@ public class PartitionRegionHelperDUnitTest extends JUnit4CacheTestCase {
     vm0.invoke(checkAssignment);
 
 
-    SerializableRunnable createPrRegion4 = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion4 = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -269,7 +269,7 @@ public class PartitionRegionHelperDUnitTest extends JUnit4CacheTestCase {
     };
     vm3.invoke(createPrRegion4);
 
-    SerializableRunnable checkMembers = new SerializableRunnable("withRegion") {
+    SerializableRunnable checkMembers = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         Region region = cache.getRegion("region1");
@@ -550,7 +550,7 @@ public class PartitionRegionHelperDUnitTest extends JUnit4CacheTestCase {
     VM vm1 = host.getVM(1);
     VM vm2 = host.getVM(2);
 
-    SerializableCallable createPrRegion = new SerializableCallable("withRegion") {
+    SerializableCallable createPrRegion = new SerializableCallable("createRegion") {
       public Object call() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -647,7 +647,7 @@ public class PartitionRegionHelperDUnitTest extends JUnit4CacheTestCase {
     VM vm1 = host.getVM(1);
     VM vm2 = host.getVM(2);
 
-    SerializableCallable createPrRegion = new SerializableCallable("withRegion") {
+    SerializableCallable createPrRegion = new SerializableCallable("createRegion") {
       public Object call() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache/query/BaseLineAndCompareQueryPerfJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/BaseLineAndCompareQueryPerfJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/BaseLineAndCompareQueryPerfJUnitTest.java
index de2f8d3..a46e1c4 100755
--- a/geode-core/src/test/java/org/apache/geode/cache/query/BaseLineAndCompareQueryPerfJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/BaseLineAndCompareQueryPerfJUnitTest.java
@@ -318,7 +318,7 @@ public class BaseLineAndCompareQueryPerfJUnitTest {
       /*
        * ds = DistributedSystem.connect(props); cache = CacheFactory.create(ds); AttributesFactory
        * factory = new AttributesFactory(); factory.setScope(Scope.DISTRIBUTED_ACK);
-       * factory.setValueConstraint(Country.class); region = cache.withRegion("Countries",
+       * factory.setValueConstraint(Country.class); region = cache.createRegion("Countries",
        * factory.create());
        */
       region = CacheUtils.createRegion("Countries", Country.class);
@@ -331,7 +331,7 @@ public class BaseLineAndCompareQueryPerfJUnitTest {
       e.printStackTrace();
     }
 
-  }// end of withRegion
+  }// end of createRegion
 
   public static void populateData() throws Exception {
     /*

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache/query/dunit/QueryIndexDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/dunit/QueryIndexDUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/dunit/QueryIndexDUnitTest.java
index d121fe9..2938800 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/dunit/QueryIndexDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/dunit/QueryIndexDUnitTest.java
@@ -70,7 +70,7 @@ public class QueryIndexDUnitTest extends JUnit4CacheTestCase {
   @Override
   public final void postSetUp() throws Exception {
     int hostCount = Host.getHostCount();
-    SerializableRunnable createRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         Region region = cache.getRegion("portfolios");

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache/query/dunit/RemoteQueryDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/dunit/RemoteQueryDUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/dunit/RemoteQueryDUnitTest.java
index 5f48dae..7d0b469 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/dunit/RemoteQueryDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/dunit/RemoteQueryDUnitTest.java
@@ -521,7 +521,7 @@ public class RemoteQueryDUnitTest extends JUnit4CacheTestCase {
      * void run2() throws CacheException { Properties config = new Properties();
      * config.setProperty(LOCATORS, "localhost[" + DistributedTestUtils.getDUnitLocatorPort() +
      * "]"); getSystem(config); AttributesFactory factory = new AttributesFactory();
-     * factory.setScope(Scope.LOCAL); withRegion(name, factory.create()); Wait.pause(1000); try {
+     * factory.setScope(Scope.LOCAL); createRegion(name, factory.create()); Wait.pause(1000); try {
      * startBridgeServer(0, false); } catch (Exception ex) {
      * Assert.fail("While starting CacheServer", ex); } } });
      * 
@@ -602,7 +602,7 @@ public class RemoteQueryDUnitTest extends JUnit4CacheTestCase {
      * Properties config = new Properties(); config.setProperty(MCAST_PORT, "0"); getSystem(config);
      * getCache(); AttributesFactory factory = new AttributesFactory();
      * factory.setScope(Scope.LOCAL); ClientServerTestCase.configureConnectionPool(factory, host0,
-     * port,-1, true, -1, -1, null); withRegion(name, factory.create()); } });
+     * port,-1, true, -1, -1, null); createRegion(name, factory.create()); } });
      * 
      * // Execute client queries vm1.invoke(new CacheSerializableRunnable("Execute queries") {
      * public void run2() throws CacheException { Region region =

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache/query/functional/IndexWithSngleFrmAndMultCondQryJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/functional/IndexWithSngleFrmAndMultCondQryJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/functional/IndexWithSngleFrmAndMultCondQryJUnitTest.java
index d5195a6..2da970f 100755
--- a/geode-core/src/test/java/org/apache/geode/cache/query/functional/IndexWithSngleFrmAndMultCondQryJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/functional/IndexWithSngleFrmAndMultCondQryJUnitTest.java
@@ -638,7 +638,7 @@ public class IndexWithSngleFrmAndMultCondQryJUnitTest {
 
 
   private void executeQuery_1(Region region, boolean checkReferentialIntegrity) throws Exception {
-    // Region region = CacheUtils.withRegion("pos", Portfolio.class);
+    // Region region = CacheUtils.createRegion("pos", Portfolio.class);
 
     QueryService qs;
     qs = CacheUtils.getQueryService();
@@ -861,7 +861,7 @@ public class IndexWithSngleFrmAndMultCondQryJUnitTest {
   }
 
   private void executeQuery_2(Region region, boolean checkReferentialIntegrity) throws Exception {
-    // Region region = CacheUtils.withRegion("pos", Portfolio.class);
+    // Region region = CacheUtils.createRegion("pos", Portfolio.class);
 
     QueryService qs;
     qs = CacheUtils.getQueryService();
@@ -1073,7 +1073,7 @@ public class IndexWithSngleFrmAndMultCondQryJUnitTest {
   }
 
   private void executeQuery_3(Region region, boolean checkReferentialIntegrity) throws Exception {
-    // Region region = CacheUtils.withRegion("pos", Portfolio.class);
+    // Region region = CacheUtils.createRegion("pos", Portfolio.class);
 
     QueryService qs;
     qs = CacheUtils.getQueryService();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java
index 1661cc8..ef2aa3e 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java
@@ -1205,9 +1205,9 @@ public class LimitClauseJUnitTest {
    * 
    * @Test public void testNotApplyingLimitAtIndexLevelForMultiIndexAndClauseUsageWithOrderBy()
    * throws Exception { //try { Query query; SelectResults result; int limit = 25; Region region =
-   * CacheUtils.withRegion("portfolios1", Portfolio.class); for (int i = 30; i > 0; i--) { Portfolio
-   * p = new Portfolio(i); p.positions.clear(); p.positions.put("IBM", new Position("IBM", i));
-   * region.put("KEY" + i, p); }
+   * CacheUtils.createRegion("portfolios1", Portfolio.class); for (int i = 30; i > 0; i--) {
+   * Portfolio p = new Portfolio(i); p.positions.clear(); p.positions.put("IBM", new Position("IBM",
+   * i)); region.put("KEY" + i, p); }
    * 
    * String queryString =
    * "<trace>SELECT distinct P FROM /portfolios1 P, P.positions.values POS WHERE P.ID > 5 AND POS.secId = 'IBM' ORDER BY P.ID"

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryUtilsJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryUtilsJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryUtilsJUnitTest.java
index 8530556..bb13665 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryUtilsJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryUtilsJUnitTest.java
@@ -212,12 +212,12 @@ public class QueryUtilsJUnitTest {
 
   /*
    * @Test public void testCutDownAndExpandIndexResultsWithManyFinalIters() { region =
-   * CacheUtils.withRegion("portfolio", Portfolio.class); Portfolio[] po = new Portfolio[] { new
+   * CacheUtils.createRegion("portfolio", Portfolio.class); Portfolio[] po = new Portfolio[] { new
    * Portfolio(0), new Portfolio(1), new Portfolio(2), new Portfolio(3)}; region.put("0", new
    * Portfolio(0)); region.put("1", new Portfolio(1)); region.put("2", new Portfolio(2));
    * region.put("3", new Portfolio(3));
    * 
-   * Region r3 = CacheUtils.withRegion("employees", Employee.class); Set add1 = new HashSet();
+   * Region r3 = CacheUtils.createRegion("employees", Employee.class); Set add1 = new HashSet();
    * add1.add(new Address("411045", "Baner")); add1.add(new Address("411001", "DholePatilRd"));
    * for(int i=0;i<4;i++){ r3.put(i+"", new Employee("empName",(20+i),i,"Mr.",(5000+i),add1)); } //
    * compileFromClause returns a List<CompiledIteratorDef> QCompiler compiler = new

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/IndexMaintenanceJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/IndexMaintenanceJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/IndexMaintenanceJUnitTest.java
index b7b590a..3f4b304 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/IndexMaintenanceJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/IndexMaintenanceJUnitTest.java
@@ -1005,7 +1005,7 @@ public class IndexMaintenanceJUnitTest {
   //
   // QueryService qs;
   // qs = CacheUtils.getQueryService();
-  // LocalRegion testRgn = (LocalRegion)CacheUtils.withRegion("testRgn", null);
+  // LocalRegion testRgn = (LocalRegion)CacheUtils.createRegion("testRgn", null);
   // int ID = 1;
   // // Add some test data now
   // // Add 5 main objects. 1 will contain key1, 2 will contain key1 & key2

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache/query/partitioned/PRQueryDUnitHelper.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/partitioned/PRQueryDUnitHelper.java b/geode-core/src/test/java/org/apache/geode/cache/query/partitioned/PRQueryDUnitHelper.java
index e07990d..0f63df5 100755
--- a/geode-core/src/test/java/org/apache/geode/cache/query/partitioned/PRQueryDUnitHelper.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/partitioned/PRQueryDUnitHelper.java
@@ -414,7 +414,7 @@ public class PRQueryDUnitHelper implements Serializable {
         attr.setPartitionAttributes(paf.create());
 
         // skip parent region creation
-        // partitionedregion = cache.withRegion(regionName, attr.create());
+        // partitionedregion = cache.createRegion(regionName, attr.create());
 
         // child region
         attr.setValueConstraint(constraint);

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache30/CacheLoaderTestCase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/CacheLoaderTestCase.java b/geode-core/src/test/java/org/apache/geode/cache30/CacheLoaderTestCase.java
index 1642217..6822c89 100644
--- a/geode-core/src/test/java/org/apache/geode/cache30/CacheLoaderTestCase.java
+++ b/geode-core/src/test/java/org/apache/geode/cache30/CacheLoaderTestCase.java
@@ -142,7 +142,7 @@ public abstract class CacheLoaderTestCase extends CacheWriterTestCase {
   // };
   //
   // Region region =
-  // withRegion(name);
+  // createRegion(name);
   // loader.wasInvoked();
   //
   // Region.Entry entry = region.getEntry(key);
@@ -170,7 +170,7 @@ public abstract class CacheLoaderTestCase extends CacheWriterTestCase {
   //// AttributesFactory factory =
   //// new AttributesFactory(getRegionAttributes());
   //// factory.setCacheLoader(remoteloader);
-  // Region rgn = withRegion(name);
+  // Region rgn = createRegion(name);
   // rgn.put(key, value);
   // flushIfNecessary(rgn);
   // }

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache30/CacheXml66DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/CacheXml66DUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache30/CacheXml66DUnitTest.java
index 738ef3f..01143ff 100644
--- a/geode-core/src/test/java/org/apache/geode/cache30/CacheXml66DUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache30/CacheXml66DUnitTest.java
@@ -3766,7 +3766,7 @@ public abstract class CacheXml66DUnitTest extends CacheXmlTestCase {
   // factory.setScope(Scope.LOCAL);
   // factory.setCapacityController(new HeapLRUCapacityController(42, 32,
   // LRUAlgorithm.OVERFLOW_TO_DISK));
-  // withRegion(name, factory.create());
+  // createRegion(name, factory.create());
   // finishCacheXml(getUniqueName());
   //
   // Region r = getRootRegion().getSubregion(name);
@@ -3795,7 +3795,7 @@ public abstract class CacheXml66DUnitTest extends CacheXmlTestCase {
     // CacheCreation cache = new CacheCreation();
     // RegionAttributesCreation attrs = new RegionAttributesCreation(cache);
     // attrs.setPublisher(true);
-    // cache.withRegion("root", attrs);
+    // cache.createRegion("root", attrs);
     // testXml(cache);
     // assertIndexDetailsEquals(true, cache.getRegion("root").getAttributes().getPublisher());
   }

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache30/DiskRegionDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/DiskRegionDUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache30/DiskRegionDUnitTest.java
index c3553b7..81f3c78 100644
--- a/geode-core/src/test/java/org/apache/geode/cache30/DiskRegionDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache30/DiskRegionDUnitTest.java
@@ -1473,7 +1473,7 @@ public class DiskRegionDUnitTest extends JUnit4CacheTestCase {
   // DiskStoreFactory dsf = getCache().createDiskStoreFactory();
   // factory.setDiskSynchronous(true);
   // factory.setDiskWriteAttributes(dwaf.create());
-  // Region rgn = withRegion(name, factory.create());
+  // Region rgn = createRegion(name, factory.create());
   // for (int i = 0; i < NB1_NUM_ENTRIES; i++) {
   // rgn.put(new Integer(i), values[i]);
   // }
@@ -1481,7 +1481,7 @@ public class DiskRegionDUnitTest extends JUnit4CacheTestCase {
   // //close and create to ensure that all data will go to htree
   // //TODO: Mitul : remove this later to fine tune test to also take oplogs recovery into account
   // rgn.close();
-  // rgn = withRegion(name, factory.createRegionAttributes());
+  // rgn = createRegion(name, factory.createRegionAttributes());
   // closeCache();
   // getCache();
   // getLogWriter().info("DEBUG nbput: finished phase one");
@@ -1498,7 +1498,7 @@ public class DiskRegionDUnitTest extends JUnit4CacheTestCase {
   // factory.setScope(Scope.DISTRIBUTED_ACK);
   // factory.setEarlyAck(false);
   // factory.setPersistBackup(false);
-  // Region region = withRegion(name, factory.create());
+  // Region region = createRegion(name, factory.create());
   // // keep putting until told to stop
   // getLogWriter().info("DEBUG nbput: started async putter");
   // int putCount = 0;
@@ -1557,7 +1557,7 @@ public class DiskRegionDUnitTest extends JUnit4CacheTestCase {
   // DiskRegion.recoverDelay = 10; // artificially slow down recovery
   // getLogWriter().info("DEBUG nbput: started recovery");
   // try {
-  // withRegion(name, factory.create());
+  // createRegion(name, factory.create());
   // }
   // finally {
   // DiskRegion.recoverDelay = 0;

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache30/DiskRegionTestImpl.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/DiskRegionTestImpl.java b/geode-core/src/test/java/org/apache/geode/cache30/DiskRegionTestImpl.java
index 301c232..6fefb55 100644
--- a/geode-core/src/test/java/org/apache/geode/cache30/DiskRegionTestImpl.java
+++ b/geode-core/src/test/java/org/apache/geode/cache30/DiskRegionTestImpl.java
@@ -144,7 +144,7 @@ public class DiskRegionTestImpl implements Serializable {
     // // set mirror KEYS
     // factory.setMirrorType(MirrorType.KEYS);
     // RegionAttributes attrs2 = factory.create();
-    // Region rgn = DiskRegionTestImpl.this.rtc.withRegion(name, attrs2);
+    // Region rgn = DiskRegionTestImpl.this.rtc.createRegion(name, attrs2);
     // }
     // });
 

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java
index dcb6cf3..2687f34 100644
--- a/geode-core/src/test/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java
@@ -325,7 +325,7 @@ public class DistributedAckRegionCCEDUnitTest extends DistributedAckRegionDUnitT
     };
     vm0.invoke(createRegion);
     vm1.invoke(createRegion);
-    // vm2.invoke(withRegion);
+    // vm2.invoke(createRegion);
     vm1.invoke(new SerializableRunnable("Create local tombstone and adjust time") {
       public void run() {
         // make the entry for cckey0 a tombstone in this VM and set its modification time to be

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache30/DistributedMulticastRegionDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/DistributedMulticastRegionDUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache30/DistributedMulticastRegionDUnitTest.java
index f22886b..6b425f3 100755
--- a/geode-core/src/test/java/org/apache/geode/cache30/DistributedMulticastRegionDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache30/DistributedMulticastRegionDUnitTest.java
@@ -154,11 +154,11 @@ public class DistributedMulticastRegionDUnitTest extends JUnit4CacheTestCase {
       vm1.invoke("setSysProps", () -> setSysProps());
 
       // 1. start locator with mcast port
-      vm0.invoke("withRegion", () -> {
+      vm0.invoke("createRegion", () -> {
         createRegion(name, getRegionAttributes());
         return "";
       });
-      vm1.invoke("withRegion", () -> {
+      vm1.invoke("createRegion", () -> {
         createRegion(name, getRegionAttributes());
         return "";
       });

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache30/GlobalRegionCCEDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/GlobalRegionCCEDUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache30/GlobalRegionCCEDUnitTest.java
index 6c3f952..a5b3cf6 100644
--- a/geode-core/src/test/java/org/apache/geode/cache30/GlobalRegionCCEDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache30/GlobalRegionCCEDUnitTest.java
@@ -180,7 +180,7 @@ public class GlobalRegionCCEDUnitTest extends GlobalRegionDUnitTest {
     };
     vm0.invoke(createRegion);
     vm1.invoke(createRegion);
-    // vm2.invoke(withRegion);
+    // vm2.invoke(createRegion);
     vm1.invoke(new SerializableRunnable("Create local tombstone and adjust time") {
       public void run() {
         // make the entry for cckey0 a tombstone in this VM and set its

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache30/MultiVMRegionTestCase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/MultiVMRegionTestCase.java b/geode-core/src/test/java/org/apache/geode/cache30/MultiVMRegionTestCase.java
index f57bc96..e3fb897 100644
--- a/geode-core/src/test/java/org/apache/geode/cache30/MultiVMRegionTestCase.java
+++ b/geode-core/src/test/java/org/apache/geode/cache30/MultiVMRegionTestCase.java
@@ -160,7 +160,7 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
    */
   @Test
   public void testConcurrentOperations() throws Exception {
-    SerializableRunnable createRegion = new CacheSerializableRunnable("withRegion") {
+    SerializableRunnable createRegion = new CacheSerializableRunnable("createRegion") {
 
       @Override
       public void run2() throws CacheException {
@@ -2696,7 +2696,7 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
 
     } catch (Exception e) {
       CacheFactory.getInstance(getSystem()).close();
-      getSystem().getLogWriter().fine("testDistributedPut: Caused exception in withRegion");
+      getSystem().getLogWriter().fine("testDistributedPut: Caused exception in createRegion");
       throw e;
     }
 
@@ -2736,7 +2736,7 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
   // new AttributesFactory(getRegionAttributes());
   // factory.setMirrorType(MirrorType.KEYS);
   // try {
-  // withRegion(name, factory.create());
+  // createRegion(name, factory.create());
   // if (persistBackup) fail("Should have thrown an IllegalStateException");
   // }
   // catch (IllegalStateException e) {
@@ -6252,7 +6252,7 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
 
     } catch (Exception e) {
       CacheFactory.getInstance(getSystem()).close();
-      getSystem().getLogWriter().fine("testTXSimpleOps: Caused exception in withRegion");
+      getSystem().getLogWriter().fine("testTXSimpleOps: Caused exception in createRegion");
       throw e;
     }
 
@@ -6509,7 +6509,8 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
       assertSame(localCmtValue, rgn.getEntry("key").getValue());
     } catch (Exception e) {
       CacheFactory.getInstance(getSystem()).close();
-      getSystem().getLogWriter().fine("testTXUpdateLoadNoConflict: Caused exception in withRegion");
+      getSystem().getLogWriter()
+          .fine("testTXUpdateLoadNoConflict: Caused exception in createRegion");
       throw e;
     }
   }
@@ -7267,7 +7268,7 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
       rgn3.destroyRegion();
     } catch (Exception e) {
       CacheFactory.getInstance(getSystem()).close();
-      getSystem().getLogWriter().fine("testTXMultiRegion: Caused exception in withRegion");
+      getSystem().getLogWriter().fine("testTXMultiRegion: Caused exception in createRegion");
       throw e;
     }
   }
@@ -7405,7 +7406,7 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
       // done in a tx is dropped in a remote mirror that does not have the entry.
     } catch (Exception e) {
       CacheFactory.getInstance(getSystem()).close();
-      getSystem().getLogWriter().fine("textTXRmtMirror: Caused exception in withRegion");
+      getSystem().getLogWriter().fine("textTXRmtMirror: Caused exception in createRegion");
       throw e;
     }
   }
@@ -7878,7 +7879,7 @@ public abstract class MultiVMRegionTestCase extends RegionTestCase {
 
     } catch (Exception e) {
       CacheFactory.getInstance(getSystem()).close();
-      getSystem().getLogWriter().fine("testTXAlgebra: Caused exception in withRegion");
+      getSystem().getLogWriter().fine("testTXAlgebra: Caused exception in createRegion");
       throw e;
     }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/cache30/RegionTestCase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/RegionTestCase.java b/geode-core/src/test/java/org/apache/geode/cache30/RegionTestCase.java
index c4cca34..d87cbd8 100644
--- a/geode-core/src/test/java/org/apache/geode/cache30/RegionTestCase.java
+++ b/geode-core/src/test/java/org/apache/geode/cache30/RegionTestCase.java
@@ -2477,7 +2477,7 @@ public abstract class RegionTestCase extends JUnit4CacheTestCase {
   // Region region = null;
   // System.setProperty(LocalRegion.EXPIRY_MS_PROPERTY", "true");
   // try {
-  // region = withRegion(name, attrs);
+  // region = createRegion(name, attrs);
   // } finally {
   // System.getProperties().remove(LocalRegion.EXPIRY_MS_PROPERTY);
   // }
@@ -3197,7 +3197,7 @@ public abstract class RegionTestCase extends JUnit4CacheTestCase {
   // Region region = null;
   // System.setProperty(LocalRegion.EXPIRY_MS_PROPERTY, "true");
   // try {
-  // region = withRegion(name, attrs);
+  // region = createRegion(name, attrs);
   // } finally {
   // System.getProperties().remove(LocalRegion.EXPIRY_MS_PROPERTY);
   // }

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/distributed/internal/Bug40751DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/Bug40751DUnitTest.java b/geode-core/src/test/java/org/apache/geode/distributed/internal/Bug40751DUnitTest.java
index 008c03e..b9a601d 100644
--- a/geode-core/src/test/java/org/apache/geode/distributed/internal/Bug40751DUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/distributed/internal/Bug40751DUnitTest.java
@@ -57,7 +57,7 @@ public class Bug40751DUnitTest extends JUnit4CacheTestCase {
       VM vm0 = host.getVM(1);
       VM vm1 = host.getVM(2);
 
-      SerializableRunnable createDataRegion = new SerializableRunnable("withRegion") {
+      SerializableRunnable createDataRegion = new SerializableRunnable("createRegion") {
         public void run() {
           Cache cache = getCache();
           AttributesFactory attr = new AttributesFactory();
@@ -70,7 +70,7 @@ public class Bug40751DUnitTest extends JUnit4CacheTestCase {
 
       vm0.invoke(createDataRegion);
 
-      SerializableRunnable createEmptyRegion = new SerializableRunnable("withRegion") {
+      SerializableRunnable createEmptyRegion = new SerializableRunnable("createRegion") {
         public void run() {
           Cache cache = getCache();
           AttributesFactory attr = new AttributesFactory();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/disttx/DistTXDebugDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/disttx/DistTXDebugDUnitTest.java b/geode-core/src/test/java/org/apache/geode/disttx/DistTXDebugDUnitTest.java
index 7415f40..0d2f2b6 100644
--- a/geode-core/src/test/java/org/apache/geode/disttx/DistTXDebugDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/disttx/DistTXDebugDUnitTest.java
@@ -126,7 +126,7 @@ public class DistTXDebugDUnitTest extends JUnit4CacheTestCase {
     attr.setPartitionAttributes(prAttr);
     attr.setConcurrencyChecksEnabled(concurrencyChecks);
     // assertNotNull(basicGetCache());
-    // Region pr = basicGetCache().withRegion(partitionedRegionName,
+    // Region pr = basicGetCache().createRegion(partitionedRegionName,
     // attr.create());
     assertNotNull(basicGetCache());
     Region pr = basicGetCache().createRegion(partitionedRegionName, attr.create());
@@ -163,7 +163,7 @@ public class DistTXDebugDUnitTest extends JUnit4CacheTestCase {
     } else {
       af.setDataPolicy(DataPolicy.REPLICATE);
     }
-    // Region rr = basicGetCache().withRegion(replicatedRegionName,
+    // Region rr = basicGetCache().createRegion(replicatedRegionName,
     // af.create());
     Region rr = basicGetCache().createRegion(replicatedRegionName, af.create());
     assertNotNull(rr);

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/CacheAdvisorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/CacheAdvisorDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/CacheAdvisorDUnitTest.java
index 6ac85d9..2dcf8e9 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/CacheAdvisorDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/CacheAdvisorDUnitTest.java
@@ -99,7 +99,7 @@ public class CacheAdvisorDUnitTest extends JUnit4CacheTestCase {
     final String rgnName = getUniqueName();
     for (int i = 0; i < vms.length; i++) {
       vms[i].invoke(
-          new CacheSerializableRunnable("CacheAdvisorDUnitTest.testGenericAdvice;withRegion") {
+          new CacheSerializableRunnable("CacheAdvisorDUnitTest.testGenericAdvice;createRegion") {
             public void run2() throws CacheException {
               createRegion(rgnName, attrs);
             }
@@ -189,7 +189,7 @@ public class CacheAdvisorDUnitTest extends JUnit4CacheTestCase {
     DistributedRegion rgn = (DistributedRegion) createRegion(rgnName, attrs);
 
     Invoke.invokeInEveryVM(new CacheSerializableRunnable(
-        "CachAdvisorTest.testNetLoadAdviceWithAttributesMutator;withRegion") {
+        "CachAdvisorTest.testNetLoadAdviceWithAttributesMutator;createRegion") {
       public void run2() throws CacheException {
         AttributesFactory f = new AttributesFactory();
         f.setScope(Scope.DISTRIBUTED_ACK);
@@ -233,7 +233,7 @@ public class CacheAdvisorDUnitTest extends JUnit4CacheTestCase {
     final String rgnName = getUniqueName();
     for (int i = 0; i < vms.length; i++) {
       vms[i].invoke(
-          new CacheSerializableRunnable("CacheAdvisorDUnitTest.basicTestClose; withRegion") {
+          new CacheSerializableRunnable("CacheAdvisorDUnitTest.basicTestClose; createRegion") {
             public void run2() throws CacheException {
               createRegion(rgnName, attrs);
             }

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/DeltaSizingDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/DeltaSizingDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/DeltaSizingDUnitTest.java
index a879b77..be21fa3 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/DeltaSizingDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/DeltaSizingDUnitTest.java
@@ -146,7 +146,7 @@ public class DeltaSizingDUnitTest extends JUnit4CacheTestCase {
     VM vm1 = host.getVM(1);
     VM vm2 = host.getVM(2);
 
-    SerializableCallable createDataRegion = new SerializableCallable("withRegion") {
+    SerializableCallable createDataRegion = new SerializableCallable("createRegion") {
       public Object call() throws Exception {
         Cache cache = getCache();
         cache.setCopyOnRead(copyOnRead);
@@ -186,7 +186,7 @@ public class DeltaSizingDUnitTest extends JUnit4CacheTestCase {
     final Integer port1 = (Integer) vm0.invoke(createDataRegion);
     final Integer port2 = (Integer) vm1.invoke(createDataRegion);
 
-    SerializableRunnable createEmptyRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createEmptyRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         cache.setCopyOnRead(copyOnRead);

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/EventTrackerDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/EventTrackerDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/EventTrackerDUnitTest.java
index 219949b..3faf41f 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/EventTrackerDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/EventTrackerDUnitTest.java
@@ -273,7 +273,7 @@ public class EventTrackerDUnitTest extends JUnit4CacheTestCase {
     VM vm1 = host.getVM(1);
     VM vm2 = host.getVM(2);
 
-    SerializableRunnable createRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createRegion = new SerializableRunnable("createRegion") {
 
       public void run() {
         Cache cache = getCache();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/PRTXJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/PRTXJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/PRTXJUnitTest.java
index 1bca936..d2bad64 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/PRTXJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/PRTXJUnitTest.java
@@ -45,14 +45,14 @@ public class PRTXJUnitTest extends TXJUnitTest {
   /*
    * (non-Javadoc)
    * 
-   * @see org.apache.geode.TXTest#withRegion()
+   * @see org.apache.geode.TXTest#createRegion()
    */
   @Override
   protected void createRegion() throws Exception {
     AttributesFactory af = new AttributesFactory();
     af.setConcurrencyChecksEnabled(false); // test validation expects this behavior
     af.setPartitionAttributes(new PartitionAttributesFactory().setTotalNumBuckets(3).create());
-    // this.region = this.cache.withRegion("PRTXJUnitTest", af.create());
+    // this.region = this.cache.createRegion("PRTXJUnitTest", af.create());
     this.region = new PRWithLocalOps("PRTXJUnitTest", af.create(), null, this.cache,
         new InternalRegionArguments().setDestroyLockFlag(true).setRecreateFlag(false)
             .setSnapshotInputStream(null).setImageTarget(null));

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionListenerDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionListenerDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionListenerDUnitTest.java
index 9c38948..7fd470f 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionListenerDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionListenerDUnitTest.java
@@ -162,7 +162,7 @@ public class PartitionListenerDUnitTest extends JUnit4CacheTestCase {
 
   protected DistributedMember createPR(VM vm, final String regionName, final boolean isAccessor)
       throws Throwable {
-    SerializableCallable createPrRegion = new SerializableCallable("withRegion") {
+    SerializableCallable createPrRegion = new SerializableCallable("createRegion") {
 
       public Object call() {
         Cache cache = getCache();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionHADUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionHADUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionHADUnitTest.java
index 2b3a5a9..304861b 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionHADUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionHADUnitTest.java
@@ -90,7 +90,7 @@ public class PartitionedRegionHADUnitTest extends PartitionedRegionDUnitTestCase
     VM vm1 = host.getVM(1);
     VM vm2 = host.getVM(2);
     VM vm3 = host.getVM(3);
-    CacheSerializableRunnable createPR = new CacheSerializableRunnable("withRegion") {
+    CacheSerializableRunnable createPR = new CacheSerializableRunnable("createRegion") {
       public void run2() throws CacheException {
         Cache cache = getCache();
         final CountDownLatch rebalancingFinished = new CountDownLatch(1);

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionRedundancyZoneDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionRedundancyZoneDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionRedundancyZoneDUnitTest.java
index 404bf27..11ecae5 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionRedundancyZoneDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionRedundancyZoneDUnitTest.java
@@ -109,7 +109,7 @@ public class PartitionedRegionRedundancyZoneDUnitTest extends JUnit4CacheTestCas
   }
 
   protected DistributedMember createPR(VM vm, int redundancy) throws Exception {
-    SerializableCallable createPrRegion = new SerializableCallable("withRegion") {
+    SerializableCallable createPrRegion = new SerializableCallable("createRegion") {
       public Object call() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java
index ce09d11..e2328a4 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java
@@ -333,7 +333,7 @@ public class PartitionedRegionStatsDUnitTest extends PartitionedRegionDUnitTestC
     final VM vm0 = host.getVM(0);
     final VM vm1 = host.getVM(1);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -379,7 +379,7 @@ public class PartitionedRegionStatsDUnitTest extends PartitionedRegionDUnitTestC
     final VM vm0 = host.getVM(0);
     final VM vm1 = host.getVM(1);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -435,7 +435,7 @@ public class PartitionedRegionStatsDUnitTest extends PartitionedRegionDUnitTestC
     final VM vm1 = host.getVM(1);
     final VM vm2 = host.getVM(2);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -545,7 +545,7 @@ public class PartitionedRegionStatsDUnitTest extends PartitionedRegionDUnitTestC
     final VM vm0 = host.getVM(0);
     final VM vm1 = host.getVM(1);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionTestUtilsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionTestUtilsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionTestUtilsDUnitTest.java
index 358bece..e769b4c 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionTestUtilsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionTestUtilsDUnitTest.java
@@ -272,7 +272,7 @@ public class PartitionedRegionTestUtilsDUnitTest extends PartitionedRegionDUnitT
     // .setLocalProperties(lp)
     // .createPartitionAttributes());
     //
-    // PartitionedRegion p = (PartitionedRegion) cache.withRegion(r, attr.create());
+    // PartitionedRegion p = (PartitionedRegion) cache.createRegion(r, attr.create());
     // assertNotNull(p);
     //
     // final String key1 = "lcKey1"; final String val1 = "lcVal1";


[3/4] geode git commit: GEODE-2730: refactor rules

Posted by ji...@apache.org.
http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/control/RebalanceOperationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/control/RebalanceOperationDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/control/RebalanceOperationDUnitTest.java
index 694fc61..5f1c7fe 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/control/RebalanceOperationDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/control/RebalanceOperationDUnitTest.java
@@ -128,7 +128,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     VM vm0 = host.getVM(0);
     VM vm1 = host.getVM(1);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -244,7 +244,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     VM vm2 = host.getVM(2);
     VM vm3 = host.getVM(3);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -289,7 +289,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     // make sure we can tell that the buckets have low redundancy
     vm0.invoke(checkLowRedundancy);
 
-    SerializableRunnable closePrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable closePrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         disconnectFromDS();
         // Cache cache = getCache();
@@ -346,7 +346,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
       VM vm0 = host.getVM(0);
       VM vm1 = host.getVM(1);
 
-      SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+      SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
         public void run() {
           Cache cache = getCache();
           AttributesFactory attr = new AttributesFactory();
@@ -467,7 +467,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
       setRedundancyZone(vm1, "A");
       final DistributedMember zoneBMember = setRedundancyZone(vm2, "B");
 
-      SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+      SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
         public void run() {
           Cache cache = getCache();
           AttributesFactory attr = new AttributesFactory();
@@ -667,7 +667,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
         }
       };
 
-      SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+      SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
         public void run() {
           ParallelRecoveryObserver ob =
               (ParallelRecoveryObserver) InternalResourceManager.getResourceObserver();
@@ -958,7 +958,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
 
   private DistributedMember createPrRegion(VM vm, final String region, final int localMaxMemory,
       final String colocatedWith) {
-    SerializableCallable createPrRegion = new SerializableCallable("withRegion") {
+    SerializableCallable createPrRegion = new SerializableCallable("createRegion") {
       public Object call() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -1399,7 +1399,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
   }
 
   private DistributedMember createPRRegionWithAsyncQueue(VM vm0, final int localMaxMemory) {
-    SerializableCallable createPrRegion = new SerializableCallable("withRegion") {
+    SerializableCallable createPrRegion = new SerializableCallable("createRegion") {
       public Object call() {
         Cache cache = getCache();
 
@@ -1446,7 +1446,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     VM vm0 = host.getVM(0);
     VM vm1 = host.getVM(1);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -1559,7 +1559,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     VM vm1 = host.getVM(1);
     final VM vm2 = host.getVM(2);
 
-    final SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    final SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -1669,7 +1669,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     VM vm0 = host.getVM(0);
     VM vm1 = host.getVM(1);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -1812,7 +1812,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     EXPECTED_REBALANCED.add("/region0");
     EXPECTED_REBALANCED.add("/region1");
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -1943,7 +1943,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     VM vm1 = host.getVM(1);
     VM vm2 = host.getVM(2);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -2058,7 +2058,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     VM vm2 = host.getVM(2);
     VM vm3 = host.getVM(3);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -2268,7 +2268,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     VM vm1 = host.getVM(1);
     VM vm2 = host.getVM(2);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Region parent;
         Cache cache = getCache();
@@ -2575,7 +2575,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     VM vm0 = host.getVM(0);
     VM vm1 = host.getVM(1);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();
@@ -2741,7 +2741,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     VM vm2 = host.getVM(2);
     VM vm3 = host.getVM(3);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         DiskStoreFactory dsf = cache.createDiskStoreFactory();
@@ -3009,7 +3009,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
 
     LoadProbe oldProbe = setLoadProbe(vm0, new BucketCountLoadProbe());
     try {
-      SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+      SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
         public void run() {
           Cache cache = getCache();
           AttributesFactory attr = new AttributesFactory();
@@ -3131,7 +3131,7 @@ public class RebalanceOperationDUnitTest extends JUnit4CacheTestCase {
     VM vm0 = host.getVM(0);
     VM vm1 = host.getVM(1);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         System.setProperty(DiskStoreImpl.RECOVER_VALUE_PROPERTY_NAME, "false");
         try {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java
index 83f3b3f..12e5819 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java
@@ -1036,7 +1036,7 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
         server.start();
       }
     } catch (Exception e) {
-      fail("failed in buildInThisVM()" + e);
+      fail("failed in startServer()" + e);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/Bug39356DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/Bug39356DUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/Bug39356DUnitTest.java
index 1d41291..5705c09 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/Bug39356DUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/Bug39356DUnitTest.java
@@ -181,7 +181,7 @@ public class Bug39356DUnitTest extends JUnit4CacheTestCase {
     VM vm0 = host.getVM(0);
     VM vm1 = host.getVM(1);
 
-    SerializableRunnable createPrRegion = new SerializableRunnable("withRegion") {
+    SerializableRunnable createPrRegion = new SerializableRunnable("createRegion") {
       public void run() {
         Cache cache = getCache();
         AttributesFactory attr = new AttributesFactory();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/ShutdownAllDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/ShutdownAllDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/ShutdownAllDUnitTest.java
index 2cdd23b..11254e7 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/ShutdownAllDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/ShutdownAllDUnitTest.java
@@ -416,15 +416,15 @@ public class ShutdownAllDUnitTest extends JUnit4CacheTestCase {
 
   /*
    * @Test public void testStopNonPersistRegions() throws Throwable { Host host = Host.getHost(0);
-   * VM vm0 = host.getVM(0); VM vm1 = host.getVM(1); VM vm2 = host.getVM(2); withRegion(vm0,
-   * "region", null, true, 1); withRegion(vm1, "region", "disk", true, 1);
+   * VM vm0 = host.getVM(0); VM vm1 = host.getVM(1); VM vm2 = host.getVM(2); createRegion(vm0,
+   * "region", null, true, 1); createRegion(vm1, "region", "disk", true, 1);
    * 
    * createData(vm0, 0, 1, "a", "region");
    * 
    * shutDownAllMembers(vm2, 2);
    * 
-   * // restart vms, and let vm0 to do GII from vm0 withRegion(vm1, "region", "disk", true, 1);
-   * withRegion(vm0, "region", null, true, 1);
+   * // restart vms, and let vm0 to do GII from vm0 createRegion(vm1, "region", "disk", true, 1);
+   * createRegion(vm0, "region", null, true, 1);
    * 
    * checkData(vm0, 0, 1, "a", "region"); checkData(vm1, 0, 1, "a", "region");
    * 

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTest.java
index 6d96471..beb3a9a 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTest.java
@@ -1456,12 +1456,12 @@ public class RollingUpgrade2DUnitTest extends JUnit4DistributedTestCase {
 
   private CacheSerializableRunnable invokeCreateRegion(final String regionName,
       final RegionShortcut shortcut) {
-    return new CacheSerializableRunnable("execute: withRegion") {
+    return new CacheSerializableRunnable("execute: createRegion") {
       public void run2() {
         try {
           createRegion(RollingUpgrade2DUnitTest.cache, regionName, shortcut);
         } catch (Exception e) {
-          fail("Error withRegion", e);
+          fail("Error createRegion", e);
         }
       }
     };

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeDUnitTest.java
index 0fffb13..0940ea6 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeDUnitTest.java
@@ -555,7 +555,7 @@ public class RollingUpgradeDUnitTest extends JUnit4DistributedTestCase {
 
   private CacheSerializableRunnable invokeCreateRegion(final String regionName,
       final String shortcutName) {
-    return new CacheSerializableRunnable("execute: withRegion") {
+    return new CacheSerializableRunnable("execute: createRegion") {
       public void run2() {
         try {
           createRegion(RollingUpgradeDUnitTest.cache, regionName, shortcutName);

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/Bug36829DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/Bug36829DUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/Bug36829DUnitTest.java
index d90d41d..69b8a79 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/Bug36829DUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/Bug36829DUnitTest.java
@@ -87,7 +87,7 @@ public class Bug36829DUnitTest extends JUnit4DistributedTestCase {
 
     // creating Region on the Server
     /*
-     * this.serverVM.invoke(() -> CacheServerTestUtil.withRegion( REGION_NAME )); // should be
+     * this.serverVM.invoke(() -> CacheServerTestUtil.createRegion( REGION_NAME )); // should be
      * successful. this.ClientVM.invoke(() -> Bug36829DUnitTest.registerKeyAfterRegionCreation(
      * "Key1" ));
      */

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropogationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropogationDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropogationDUnitTest.java
index 4a67e38..f86b39f 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropogationDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropogationDUnitTest.java
@@ -366,7 +366,7 @@ public class DataSerializerPropogationDUnitTest extends JUnit4DistributedTestCas
       assertNotNull(bs);
       bs.start();
     } catch (Exception ex) {
-      fail("while buildInThisVM()  " + ex);
+      fail("while startServer()  " + ex);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java
index 6aea509..98cb309 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java
@@ -361,7 +361,7 @@ public class HAStartupAndFailoverDUnitTest extends JUnit4DistributedTestCase {
   }
 
   // public static void processException() {
-  // assertIndexDetailsEquals(conn.getServer().getServerPort(), PORT1.intValue());
+  // assertIndexDetailsEquals(conn.getServer().getPort(), PORT1.intValue());
   // try {
   // pool.processException(new Exception("dummy"), conn);
   // //Thread.sleep(10000); // why sleep?
@@ -402,7 +402,7 @@ public class HAStartupAndFailoverDUnitTest extends JUnit4DistributedTestCase {
       assertNotNull(bs);
       bs.start();
     } catch (Exception ex) {
-      fail("while buildInThisVM()  " + ex);
+      fail("while startServer()  " + ex);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/InstantiatorPropagationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/InstantiatorPropagationDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/InstantiatorPropagationDUnitTest.java
index 698f795..1fcb06a 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/InstantiatorPropagationDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/InstantiatorPropagationDUnitTest.java
@@ -408,7 +408,7 @@ public class InstantiatorPropagationDUnitTest extends JUnit4DistributedTestCase
       assertNotNull(bs);
       bs.start();
     } catch (Exception ex) {
-      fail("while buildInThisVM()  " + ex);
+      fail("while startServer()  " + ex);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelTestBase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelTestBase.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelTestBase.java
index 4a98298..52a041b 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelTestBase.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelTestBase.java
@@ -478,7 +478,7 @@ public class RedundancyLevelTestBase extends JUnit4DistributedTestCase {
       assertNotNull(bs);
       bs.start();
     } catch (Exception ex) {
-      Assert.fail("while buildInThisVM()", ex);
+      Assert.fail("while startServer()", ex);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsIntegrationTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsIntegrationTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsIntegrationTest.java
index 3c53dfe..0b012c9 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsIntegrationTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsIntegrationTest.java
@@ -22,19 +22,19 @@ import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
 import org.apache.geode.test.dunit.rules.LocatorStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.junit.Before;
+import org.junit.ClassRule;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-import java.nio.file.Path;
-
 import java.io.File;
+import java.nio.file.Path;
 
 @Category(IntegrationTest.class)
 public class ExportLogsIntegrationTest {
 
-  @Rule
-  public LocatorStarterRule locator = new LocatorStarterRule().withJMXManager().startLocator();
+  @ClassRule
+  public static LocatorStarterRule locator = new LocatorStarterRule().withAutoStart();
 
   @Rule
   public GfshShellConnectionRule gfsh = new GfshShellConnectionRule();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunctionIntegrationTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunctionIntegrationTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunctionIntegrationTest.java
index af9a1e6..e47cefb 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunctionIntegrationTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunctionIntegrationTest.java
@@ -25,8 +25,6 @@ import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.execute.ResultSender;
 import org.apache.geode.internal.cache.GemFireCacheImpl;
 import org.apache.geode.internal.cache.execute.FunctionContextImpl;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.logging.log4j.Level;
@@ -42,7 +40,7 @@ import java.io.IOException;
 public class ExportLogsFunctionIntegrationTest {
 
   @Rule
-  public LocalServerStarterRule serverStarterRule = new ServerStarterBuilder().buildInThisVM();
+  public ServerStarterRule serverStarterRule = new ServerStarterRule().withAutoStart();
   private File serverWorkingDir;
 
   @Before

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshMultilineCommandTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshMultilineCommandTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshMultilineCommandTest.java
index 0d33058..7b11444 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshMultilineCommandTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/shell/GfshMultilineCommandTest.java
@@ -21,8 +21,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
 import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.junit.Rule;
 import org.junit.Test;
@@ -33,8 +32,7 @@ import org.junit.experimental.categories.Category;
 public class GfshMultilineCommandTest {
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withJMXManager().buildInThisVM();
+  public ServerStarterRule server = new ServerStarterRule().withJMXManager().withAutoStart();
 
 
   @Rule

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/cli/util/LogExporterIntegrationTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/util/LogExporterIntegrationTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/util/LogExporterIntegrationTest.java
index a831ac1..dc24a57 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/util/LogExporterIntegrationTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/util/LogExporterIntegrationTest.java
@@ -22,13 +22,9 @@ import static org.assertj.core.api.Assertions.assertThat;
 import com.google.common.collect.Sets;
 
 import org.apache.geode.management.internal.cli.functions.ExportLogsFunctionIntegrationTest;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.Server;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.logging.log4j.Level;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Rule;
@@ -44,34 +40,27 @@ import java.util.Set;
 
 @Category(IntegrationTest.class)
 public class LogExporterIntegrationTest {
+
+  @Rule
+  public ServerStarterRule server = new ServerStarterRule();
+
   private LogExporter logExporter;
 
   private Properties properties;
 
   private LogFilter filter = new LogFilter(Level.INFO, null, null);
 
-  LocalServerStarterRule serverStarterRule;
-
   @Before
   public void before() throws Exception {
     properties = new Properties();
   }
 
-  @After
-  public void after() {
-    if (serverStarterRule != null) {
-      serverStarterRule.after();
-    }
-  }
-
   @Test
-  public void serverStartedWithWrongSuffix() throws Throwable {
-    serverStarterRule =
-        new ServerStarterBuilder().withProperty(LOG_FILE, new File("test.txt").getAbsolutePath())
-            .withProperty(STATISTIC_ARCHIVE_FILE, "archive.archive").buildInThisVM();
-    serverStarterRule.before();
-
-    File serverWorkingDir = serverStarterRule.getWorkingDir();
+  public void serverStartedWithWrongSuffix() throws Exception {
+    properties.setProperty(LOG_FILE, new File("test.txt").getAbsolutePath());
+    properties.setProperty(STATISTIC_ARCHIVE_FILE, "archive.archive");
+    server.withProperties(properties).startServer();
+    File serverWorkingDir = server.getWorkingDir();
 
     logExporter = new LogExporter(filter, new File(serverWorkingDir, "test.log"),
         new File(serverWorkingDir, "stats.gfs"));
@@ -83,18 +72,15 @@ public class LogExporterIntegrationTest {
   }
 
   @Test
-  @Ignore // This test assume that new File() ends up in the workingDir, which is not true
-  public void serverStartedWithCorrectSuffix() throws Throwable {
-
-    serverStarterRule =
-        new ServerStarterBuilder().withProperty(LOG_FILE, new File("test.log").getAbsolutePath())
-            .withProperty(STATISTIC_ARCHIVE_FILE, "archive.gfs").buildInThisVM();
-    serverStarterRule.before();
-
+  public void serverStartedWithCorrectSuffix() throws Exception {
     // ("relative log file is problematic in the test environment")
-    File serverWorkingDir = serverStarterRule.getWorkingDir();
+    properties.setProperty(LOG_FILE, new File("test.log").getAbsolutePath());
+    properties.setProperty(STATISTIC_ARCHIVE_FILE, "archive.gfs");
+    server.withProperties(properties).startServer();
+    File serverWorkingDir = server.getWorkingDir();
 
-    logExporter = new LogExporter(filter, new File("test.log"), new File("archive.gfs"));
+    logExporter = new LogExporter(filter, new File(serverWorkingDir, "test.log"),
+        new File(serverWorkingDir, "archive.gfs"));
     List<Path> logFiles = logExporter.findLogFiles(serverWorkingDir.toPath());
     assertThat(logFiles).hasSize(1);
     assertThat(logFiles.get(0)).hasFileName("test.log");
@@ -106,12 +92,11 @@ public class LogExporterIntegrationTest {
 
   @Test
   @Ignore("fix .gz suffix")
-  public void serverStartedWithGZSuffix() throws Throwable {
-    serverStarterRule = new ServerStarterBuilder().withProperty(LOG_FILE, "test.log.gz")
-        .withProperty(STATISTIC_ARCHIVE_FILE, "archive.gfs.gz").buildInThisVM();
-    serverStarterRule.before();
-
-    File serverWorkingDir = serverStarterRule.getWorkingDir();
+  public void serverStartedWithGZSuffix() throws Exception {
+    properties.setProperty(LOG_FILE, "test.log.gz");
+    properties.setProperty(STATISTIC_ARCHIVE_FILE, "archive.gfs.gz");
+    server.withProperties(properties).startServer();
+    File serverWorkingDir = server.getWorkingDir();
 
     logExporter = new LogExporter(filter, new File(serverWorkingDir, "test.log"),
         new File(serverWorkingDir, "stats.gfs"));
@@ -125,10 +110,8 @@ public class LogExporterIntegrationTest {
   @Test
   public void testNoStatsFile() throws Throwable {
     Path logsFile = Files.createTempFile("server", ".log");
-
-    serverStarterRule =
-        new ServerStarterBuilder().withProperty(LOG_FILE, logsFile.toString()).buildInThisVM();
-    serverStarterRule.before();
+    properties.setProperty(LOG_FILE, logsFile.toString());
+    server.withProperties(properties).startServer();
 
     ExportLogsFunctionIntegrationTest.verifyExportLogsFunctionDoesNotBlowUp();
   }
@@ -136,10 +119,10 @@ public class LogExporterIntegrationTest {
   @Test
   public void testWithRelativeStatsFile() throws Throwable {
     Path logsFile = Files.createTempFile("server", ".log");
-
-    serverStarterRule = new ServerStarterBuilder().withProperty(LOG_FILE, logsFile.toString())
-        .withProperty(STATISTIC_ARCHIVE_FILE, "stats.gfs").buildInThisVM();
-    serverStarterRule.before();
+    // Path statsFile = Files.createTempFile("stats", ".gfs");
+    properties.setProperty(LOG_FILE, logsFile.toString());
+    properties.setProperty(STATISTIC_ARCHIVE_FILE, "stats.gfs");
+    server.withProperties(properties).startServer();
 
     ExportLogsFunctionIntegrationTest.verifyExportLogsFunctionDoesNotBlowUp();
   }
@@ -147,25 +130,25 @@ public class LogExporterIntegrationTest {
   @Test
   public void testWithRelativeLogsFile() throws Throwable {
     Path statsFile = Files.createTempFile("stats", ".gfs");
-
-    serverStarterRule = new ServerStarterBuilder().withProperty(LOG_FILE, "sever.log")
-        .withProperty(STATISTIC_ARCHIVE_FILE, statsFile.toString()).buildInThisVM();
-    serverStarterRule.before();
+    properties.setProperty(LOG_FILE, "sever.log");
+    properties.setProperty(STATISTIC_ARCHIVE_FILE, statsFile.toString());
+    server.withProperties(properties).startServer();
 
     ExportLogsFunctionIntegrationTest.verifyExportLogsFunctionDoesNotBlowUp();
   }
 
   @Test
-  public void testWithAbsoluteLogsStatsFile() throws Throwable {
+  public void testWithAbsoluteLogsStatsFile() throws Exception {
     File logsDir = Files.createTempDirectory("logs").toFile();
     File statsDir = Files.createTempDirectory("stats").toFile();
 
     File logFile = new File(logsDir, "server.log");
     File statsFile = new File(statsDir, "stats.gfs");
 
-    serverStarterRule = new ServerStarterBuilder().withProperty(LOG_FILE, logFile.getAbsolutePath())
-        .withProperty(STATISTIC_ARCHIVE_FILE, statsFile.getAbsolutePath()).buildInThisVM();
-    serverStarterRule.before();
+    properties.setProperty(LOG_FILE, logFile.getAbsolutePath());
+    properties.setProperty(STATISTIC_ARCHIVE_FILE, statsFile.getAbsolutePath());
+
+    server.withProperties(properties).startServer();
 
     logExporter = new LogExporter(filter, logFile, statsFile);
     Path exportedZip = logExporter.export();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/AccessControlMBeanJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/AccessControlMBeanJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/AccessControlMBeanJUnitTest.java
index d992e93..626ca45 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/AccessControlMBeanJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/AccessControlMBeanJUnitTest.java
@@ -19,9 +19,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.geode.test.junit.categories.SecurityTest;
@@ -36,15 +34,15 @@ public class AccessControlMBeanJUnitTest {
   private AccessControlMXBean bean;
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule server = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty(TestSecurityManager.SECURITY_JSON,
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @Before
   public void setUp() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanAuthenticationJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanAuthenticationJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanAuthenticationJUnitTest.java
index 97436e0..9a1605a 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanAuthenticationJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanAuthenticationJUnitTest.java
@@ -19,9 +19,7 @@ import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANA
 import org.apache.geode.management.CacheServerMXBean;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.junit.Before;
@@ -35,15 +33,15 @@ public class CacheServerMBeanAuthenticationJUnitTest {
   private CacheServerMXBean bean;
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule server = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty(TestSecurityManager.SECURITY_JSON,
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @Before
   public void setUp() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanAuthorizationJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanAuthorizationJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanAuthorizationJUnitTest.java
index c9e3553..c7c76f6 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanAuthorizationJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanAuthorizationJUnitTest.java
@@ -20,9 +20,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import org.apache.geode.management.CacheServerMXBean;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.geode.test.junit.categories.SecurityTest;
@@ -37,15 +35,15 @@ public class CacheServerMBeanAuthorizationJUnitTest {
   private CacheServerMXBean bean;
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule server = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty(TestSecurityManager.SECURITY_JSON,
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @Before
   public void setUp() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanShiroJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanShiroJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanShiroJUnitTest.java
index 91efeac..d0ea209 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanShiroJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/CacheServerMBeanShiroJUnitTest.java
@@ -19,9 +19,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import org.apache.geode.management.CacheServerMXBean;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
 import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.geode.test.junit.categories.SecurityTest;
@@ -36,12 +34,12 @@ public class CacheServerMBeanShiroJUnitTest {
   private CacheServerMXBean bean;
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
-      .withProperty(SECURITY_SHIRO_INIT, "shiro.ini").withJMXManager().buildInThisVM();
+  public static ServerStarterRule server = new ServerStarterRule()
+      .withProperty(SECURITY_SHIRO_INIT, "shiro.ini").withJMXManager().withAutoStart();
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @Before
   public void setUp() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/CliCommandsSecurityTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/CliCommandsSecurityTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/CliCommandsSecurityTest.java
index f132163..a66f05b 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/CliCommandsSecurityTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/CliCommandsSecurityTest.java
@@ -23,9 +23,8 @@ import org.apache.geode.management.MemberMXBean;
 import org.apache.geode.security.NotAuthorizedException;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -43,15 +42,15 @@ public class CliCommandsSecurityTest {
   private List<TestCommand> commands = TestCommand.getCommands();
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule server = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty(TestSecurityManager.SECURITY_JSON,
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @Before
   public void setUp() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/DataCommandsSecurityTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/DataCommandsSecurityTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/DataCommandsSecurityTest.java
index f6b5a2e..f746aaf 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/DataCommandsSecurityTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/DataCommandsSecurityTest.java
@@ -22,9 +22,8 @@ import org.apache.geode.management.MemberMXBean;
 import org.apache.geode.security.GemFireSecurityException;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -39,11 +38,11 @@ public class DataCommandsSecurityTest {
   private MemberMXBean bean;
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule server = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty(TestSecurityManager.SECURITY_JSON,
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @BeforeClass
   public static void beforeClass() throws Exception {
@@ -55,7 +54,7 @@ public class DataCommandsSecurityTest {
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @Before
   public void setUp() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/DeployCommandsSecurityTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/DeployCommandsSecurityTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/DeployCommandsSecurityTest.java
index b619032..a4b8c67 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/DeployCommandsSecurityTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/DeployCommandsSecurityTest.java
@@ -22,9 +22,8 @@ import org.apache.geode.management.MemberMXBean;
 import org.apache.geode.security.NotAuthorizedException;
 import org.apache.geode.security.SimpleTestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -43,9 +42,9 @@ public class DeployCommandsSecurityTest {
   private MemberMXBean bean;
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule server = new ServerStarterRule()
       .withProperty(SECURITY_MANAGER, SimpleTestSecurityManager.class.getName()).withJMXManager()
-      .buildInThisVM();
+      .withAutoStart();
 
   @ClassRule
   public static TemporaryFolder temporaryFolder = new TemporaryFolder();
@@ -60,7 +59,7 @@ public class DeployCommandsSecurityTest {
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @Before
   public void setUp() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/DiskStoreMXBeanSecurityJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/DiskStoreMXBeanSecurityJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/DiskStoreMXBeanSecurityJUnitTest.java
index feb00d4..e6502c0 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/DiskStoreMXBeanSecurityJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/DiskStoreMXBeanSecurityJUnitTest.java
@@ -20,9 +20,8 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import org.apache.geode.management.DiskStoreMXBean;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -37,11 +36,11 @@ public class DiskStoreMXBeanSecurityJUnitTest {
   private DiskStoreMXBean bean;
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule server = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty(TestSecurityManager.SECURITY_JSON,
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @BeforeClass
   public static void beforeClass() throws Exception {
@@ -50,7 +49,7 @@ public class DiskStoreMXBeanSecurityJUnitTest {
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @Before
   public void setUp() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/GatewayReceiverMBeanSecurityTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/GatewayReceiverMBeanSecurityTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/GatewayReceiverMBeanSecurityTest.java
index e7fe1d6..73783d5 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/GatewayReceiverMBeanSecurityTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/GatewayReceiverMBeanSecurityTest.java
@@ -22,9 +22,8 @@ import org.apache.geode.management.GatewayReceiverMXBean;
 import org.apache.geode.management.ManagementService;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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.AfterClass;
@@ -47,15 +46,15 @@ public class GatewayReceiverMBeanSecurityTest {
   private GatewayReceiverMXBean bean;
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule server = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty(TestSecurityManager.SECURITY_JSON,
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @BeforeClass
   public static void beforeClass() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/GatewaySenderMBeanSecurityTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/GatewaySenderMBeanSecurityTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/GatewaySenderMBeanSecurityTest.java
index 67cb1cc..887d0dc 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/GatewaySenderMBeanSecurityTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/GatewaySenderMBeanSecurityTest.java
@@ -23,9 +23,8 @@ import org.apache.geode.management.ManagementService;
 import org.apache.geode.management.internal.beans.GatewaySenderMBean;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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.AfterClass;
@@ -47,15 +46,15 @@ public class GatewaySenderMBeanSecurityTest {
   private GatewaySenderMXBean bean;
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule server = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty(TestSecurityManager.SECURITY_JSON,
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @BeforeClass
   public static void beforeClass() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/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 6f2754f..1486866 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
@@ -23,8 +23,7 @@ import org.apache.geode.security.TestPostProcessor;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
 import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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.BeforeClass;
@@ -37,20 +36,20 @@ import org.junit.experimental.categories.Category;
 public class GfshCommandsPostProcessorTest {
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule serverStarter = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_POST_PROCESSOR, TestPostProcessor.class.getName())
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty("security-json",
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @Rule
-  public GfshShellConnectionRule gfshConnection =
-      new GfshShellConnectionRule(server.getJmxPort(), GfshShellConnectionRule.PortType.jmxManger);
+  public GfshShellConnectionRule gfshConnection = new GfshShellConnectionRule(
+      serverStarter::getJmxPort, GfshShellConnectionRule.PortType.jmxManger);
 
   @BeforeClass
   public static void beforeClass() throws Exception {
-    server.getCache().createRegionFactory(RegionShortcut.REPLICATE).create("region1");
+    serverStarter.getCache().createRegionFactory(RegionShortcut.REPLICATE).create("region1");
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/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 3fe8314..84ef3fc 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
@@ -30,8 +30,7 @@ import org.apache.geode.management.internal.cli.result.ResultBuilder;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
 import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -46,15 +45,15 @@ import java.util.List;
 @Category({IntegrationTest.class, SecurityTest.class})
 public class GfshCommandsSecurityTest {
   @ClassRule
-  public static LocalServerStarterRule serverStarter = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule serverStarter = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty("security-json",
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @Rule
   public GfshShellConnectionRule gfshConnection = new GfshShellConnectionRule(
-      serverStarter.getJmxPort(), GfshShellConnectionRule.PortType.jmxManger);
+      serverStarter::getJmxPort, GfshShellConnectionRule.PortType.jmxManger);
 
   @BeforeClass
   public static void beforeClass() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
index 66e2702..6d20a69 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/JavaRmiServerNameTest.java
@@ -18,8 +18,7 @@ package org.apache.geode.management.internal.security;
 
 import static org.junit.Assert.assertEquals;
 
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.junit.After;
 import org.junit.ClassRule;
@@ -32,8 +31,8 @@ public class JavaRmiServerNameTest {
   private static final String JMX_HOST = "myHostname";
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder()
-      .withProperty("jmx-manager-hostname-for-clients", JMX_HOST).withJMXManager().buildInThisVM();
+  public static ServerStarterRule serverStarter = new ServerStarterRule()
+      .withProperty("jmx-manager-hostname-for-clients", JMX_HOST).withJMXManager().withAutoStart();
 
   /**
    * this is for GEODE-1548

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/LockServiceMBeanAuthorizationJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/LockServiceMBeanAuthorizationJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/LockServiceMBeanAuthorizationJUnitTest.java
index d2f0cae..dad2e9c 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/LockServiceMBeanAuthorizationJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/LockServiceMBeanAuthorizationJUnitTest.java
@@ -23,9 +23,8 @@ import org.apache.geode.distributed.internal.locks.DLockService;
 import org.apache.geode.management.LockServiceMXBean;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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.AfterClass;
@@ -41,15 +40,15 @@ public class LockServiceMBeanAuthorizationJUnitTest {
   private LockServiceMXBean lockServiceMBean;
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule server = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty(TestSecurityManager.SECURITY_JSON,
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @BeforeClass
   public static void beforeClassSetUp() {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/MBeanSecurityJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/MBeanSecurityJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/MBeanSecurityJUnitTest.java
index 9dcba94..30ed267 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/MBeanSecurityJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/MBeanSecurityJUnitTest.java
@@ -25,9 +25,8 @@ import org.apache.geode.management.MemberMXBean;
 import org.apache.geode.management.internal.MBeanJMXAdapter;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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.ClassRule;
@@ -48,15 +47,15 @@ import javax.management.ReflectionException;
 @Category({IntegrationTest.class, SecurityTest.class})
 public class MBeanSecurityJUnitTest {
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule server = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty(TestSecurityManager.SECURITY_JSON,
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   /**
    * No user can call createBean or unregisterBean of GemFire Domain

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/ManagerMBeanAuthorizationJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/ManagerMBeanAuthorizationJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/ManagerMBeanAuthorizationJUnitTest.java
index b7447c9..77f68c3 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/ManagerMBeanAuthorizationJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/ManagerMBeanAuthorizationJUnitTest.java
@@ -22,9 +22,8 @@ import org.apache.geode.management.ManagerMXBean;
 import org.apache.geode.management.internal.beans.ManagerMBean;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -42,15 +41,15 @@ public class ManagerMBeanAuthorizationJUnitTest {
   private ManagerMXBean managerMXBean;
 
   @ClassRule
-  public static LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public static ServerStarterRule server = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty(TestSecurityManager.SECURITY_JSON,
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @BeforeClass
   public static void beforeClassSetup() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/management/internal/security/MemberMBeanSecurityJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/MemberMBeanSecurityJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/MemberMBeanSecurityJUnitTest.java
index 11e2026..65fd528 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/MemberMBeanSecurityJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/MemberMBeanSecurityJUnitTest.java
@@ -20,9 +20,8 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import org.apache.geode.management.MemberMXBean;
 import org.apache.geode.security.TestSecurityManager;
 import org.apache.geode.test.dunit.rules.ConnectionConfiguration;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
 import org.apache.geode.test.dunit.rules.MBeanServerConnectionRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -35,15 +34,15 @@ public class MemberMBeanSecurityJUnitTest {
   private MemberMXBean bean;
 
   @Rule // do not use a ClassRule since some test will do a shutdownMember
-  public LocalServerStarterRule server = new ServerStarterBuilder().withJMXManager()
+  public ServerStarterRule server = new ServerStarterRule().withJMXManager()
       .withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
       .withProperty(TestSecurityManager.SECURITY_JSON,
           "org/apache/geode/management/internal/security/cacheServer.json")
-      .buildInThisVM();
+      .withAutoStart();
 
   @Rule
   public MBeanServerConnectionRule connectionRule =
-      new MBeanServerConnectionRule(server.getJmxPort());
+      new MBeanServerConnectionRule(server::getJmxPort);
 
   @Before
   public void setUp() throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientAuthDUnitTest.java
index 76efae5..d7acf79 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientAuthDUnitTest.java
@@ -21,11 +21,9 @@ import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.IgnoredException;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -37,21 +35,14 @@ public class ClientAuthDUnitTest extends JUnit4DistributedTestCase {
   final VM client1 = host.getVM(1);
   final VM client2 = host.getVM(2);
 
-  int serverPort;
-
-  @Before
-  public void setup() {
-    serverPort = server.getServerPort();
-  }
-
   @Rule
-  public transient LocalServerStarterRule server = new ServerStarterBuilder()
-      .withProperty(SECURITY_MANAGER, SimpleTestSecurityManager.class.getName()).buildInThisVM();
+  public ServerStarterRule server = new ServerStarterRule()
+      .withProperty(SECURITY_MANAGER, SimpleTestSecurityManager.class.getName()).withAutoStart();
 
   @Test
   public void authWithCorrectPasswordShouldPass() {
     client1.invoke("logging in super-user with correct password", () -> {
-      SecurityTestUtil.createClientCache("test", "test", serverPort);
+      SecurityTestUtil.createClientCache("test", "test", server.getPort());
     });
   }
 
@@ -59,8 +50,9 @@ public class ClientAuthDUnitTest extends JUnit4DistributedTestCase {
   public void authWithIncorrectPasswordShouldFail() {
     IgnoredException.addIgnoredException(AuthenticationFailedException.class.getName());
     client2.invoke("logging in super-user with wrong password", () -> {
-      assertThatThrownBy(() -> SecurityTestUtil.createClientCache("test", "wrong", serverPort))
-          .isInstanceOf(AuthenticationFailedException.class);
+      assertThatThrownBy(
+          () -> SecurityTestUtil.createClientCache("test", "wrong", server.getPort()))
+              .isInstanceOf(AuthenticationFailedException.class);
     });
   }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientContainsKeyAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientContainsKeyAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientContainsKeyAuthDUnitTest.java
index 0366673..47525f9 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientContainsKeyAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientContainsKeyAuthDUnitTest.java
@@ -26,8 +26,7 @@ import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -44,11 +43,11 @@ public class ClientContainsKeyAuthDUnitTest extends JUnit4DistributedTestCase {
   final VM client2 = host.getVM(2);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .buildInThisVM();
+          .withAutoStart();
 
   @Before
   public void before() throws Exception {
@@ -62,7 +61,7 @@ public class ClientContainsKeyAuthDUnitTest extends JUnit4DistributedTestCase {
   @Test
   public void testContainsKey() throws Exception {
     AsyncInvocation ai1 = client1.invokeAsync(() -> {
-      ClientCache cache = createClientCache("key1User", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("key1User", "1234567", server.getPort());
       final Region region = createProxyRegion(cache, REGION_NAME);
       assertTrue(region.containsKeyOnServer("key1"));
       SecurityTestUtil.assertNotAuthorized(() -> region.containsKeyOnServer("key3"),
@@ -70,7 +69,7 @@ public class ClientContainsKeyAuthDUnitTest extends JUnit4DistributedTestCase {
     });
 
     AsyncInvocation ai2 = client2.invokeAsync(() -> {
-      ClientCache cache = createClientCache("authRegionReader", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionReader", "1234567", server.getPort());
       final Region region = createProxyRegion(cache, REGION_NAME);
       region.containsKeyOnServer("key3");
       assertTrue(region.containsKeyOnServer("key1"));

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientDestroyInvalidateAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientDestroyInvalidateAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientDestroyInvalidateAuthDUnitTest.java
index 841d98e..f60488b 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientDestroyInvalidateAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientDestroyInvalidateAuthDUnitTest.java
@@ -21,8 +21,7 @@ import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -44,11 +43,11 @@ public class ClientDestroyInvalidateAuthDUnitTest extends JUnit4DistributedTestC
   final VM client2 = host.getVM(2);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .buildInThisVM();
+          .withAutoStart();
 
   @Before
   public void before() throws Exception {
@@ -65,7 +64,7 @@ public class ClientDestroyInvalidateAuthDUnitTest extends JUnit4DistributedTestC
     // Delete one key and invalidate another key with an authorized user.
     AsyncInvocation ai1 = client1.invokeAsync(() -> {
       ClientCache cache =
-          SecurityTestUtil.createClientCache("dataUser", "1234567", server.getServerPort());
+          SecurityTestUtil.createClientCache("dataUser", "1234567", server.getPort());
 
       Region region =
           cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
@@ -85,7 +84,7 @@ public class ClientDestroyInvalidateAuthDUnitTest extends JUnit4DistributedTestC
     // Delete one key and invalidate another key with an unauthorized user.
     AsyncInvocation ai2 = client2.invokeAsync(() -> {
       ClientCache cache =
-          SecurityTestUtil.createClientCache("authRegionReader", "1234567", server.getServerPort());
+          SecurityTestUtil.createClientCache("authRegionReader", "1234567", server.getPort());
 
       Region region =
           cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientDestroyRegionAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientDestroyRegionAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientDestroyRegionAuthDUnitTest.java
index 5ea65d8..19960fb 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientDestroyRegionAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientDestroyRegionAuthDUnitTest.java
@@ -24,11 +24,9 @@ import org.apache.geode.cache.client.ClientRegionShortcut;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -36,7 +34,6 @@ import org.junit.experimental.categories.Category;
 @Category({DistributedTest.class, SecurityTest.class})
 public class ClientDestroyRegionAuthDUnitTest extends JUnit4DistributedTestCase {
   private static String REGION_NAME = "testRegion";
-  private int serverPort;
 
   final Host host = Host.getHost(0);
   final VM client1 = host.getVM(1);
@@ -44,22 +41,17 @@ public class ClientDestroyRegionAuthDUnitTest extends JUnit4DistributedTestCase
   final VM client3 = host.getVM(3);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .withRegion(RegionShortcut.REPLICATE, REGION_NAME).buildInThisVM();
-
-  @Before
-  public void setup() {
-    serverPort = server.getServerPort();
-  }
+          .withRegion(RegionShortcut.REPLICATE, REGION_NAME);
 
   @Test
   public void testDestroyRegion() throws InterruptedException {
     client1.invoke(() -> {
       ClientCache cache =
-          SecurityTestUtil.createClientCache("dataWriter", "1234567", server.getServerPort());
+          SecurityTestUtil.createClientCache("dataWriter", "1234567", server.getPort());
 
       Region region =
           cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
@@ -67,8 +59,8 @@ public class ClientDestroyRegionAuthDUnitTest extends JUnit4DistributedTestCase
     });
 
     client2.invoke(() -> {
-      ClientCache cache = SecurityTestUtil.createClientCache("authRegionManager", "1234567",
-          server.getServerPort());
+      ClientCache cache =
+          SecurityTestUtil.createClientCache("authRegionManager", "1234567", server.getPort());
 
       Region region =
           cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
@@ -77,7 +69,7 @@ public class ClientDestroyRegionAuthDUnitTest extends JUnit4DistributedTestCase
 
     client3.invoke(() -> {
       ClientCache cache =
-          SecurityTestUtil.createClientCache("super-user", "1234567", server.getServerPort());
+          SecurityTestUtil.createClientCache("super-user", "1234567", server.getPort());
 
       Region region =
           cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientExecuteFunctionAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientExecuteFunctionAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientExecuteFunctionAuthDUnitTest.java
index 2b4c27c..81ed0d1 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientExecuteFunctionAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientExecuteFunctionAuthDUnitTest.java
@@ -22,9 +22,7 @@ import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
-import org.junit.Before;
+import org.apache.geode.test.dunit.rules.ServerStarterRule;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -49,23 +47,18 @@ public class ClientExecuteFunctionAuthDUnitTest extends JUnit4DistributedTestCas
   private final static Function function = new TestFunction(true, TestFunction.TEST_FUNCTION1);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .withRegion(RegionShortcut.REPLICATE, REGION_NAME).buildInThisVM();
-
-  @Before
-  public void setup() {
-
-  }
+          .withRegion(RegionShortcut.REPLICATE, REGION_NAME);
 
   @Test
   public void testExecuteRegionFunctionWithClientRegistration() {
 
     FunctionService.registerFunction(function);
     client1.invoke("logging in with dataReader", () -> {
-      ClientCache cache = createClientCache("dataReader", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("dataReader", "1234567", server.getPort());
 
       FunctionService.registerFunction(function);
 
@@ -74,7 +67,7 @@ public class ClientExecuteFunctionAuthDUnitTest extends JUnit4DistributedTestCas
     });
 
     client2.invoke("logging in with super-user", () -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
 
       FunctionService.registerFunction(function);
       ResultCollector rc = FunctionService.onServer(cache.getDefaultPool()).withArgs(Boolean.TRUE)
@@ -88,7 +81,7 @@ public class ClientExecuteFunctionAuthDUnitTest extends JUnit4DistributedTestCas
   public void testExecuteRegionFunctionWithOutClientRegistration() {
     FunctionService.registerFunction(function);
     client1.invoke("logging in with dataReader", () -> {
-      ClientCache cache = createClientCache("dataReader", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("dataReader", "1234567", server.getPort());
       assertNotAuthorized(() -> FunctionService.onServer(cache.getDefaultPool())
           .withArgs(Boolean.TRUE).execute(function.getId()), "DATA:WRITE");
     });


[2/4] geode git commit: GEODE-2730: refactor rules

Posted by ji...@apache.org.
http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientExecuteRegionFunctionAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientExecuteRegionFunctionAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientExecuteRegionFunctionAuthDUnitTest.java
index a018f4c..0763407 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientExecuteRegionFunctionAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientExecuteRegionFunctionAuthDUnitTest.java
@@ -29,8 +29,7 @@ import org.apache.geode.internal.cache.functions.TestFunction;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -49,11 +48,11 @@ public class ClientExecuteRegionFunctionAuthDUnitTest extends JUnit4DistributedT
   private final static Function function = new TestFunction(true, TestFunction.TEST_FUNCTION1);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .withRegion(RegionShortcut.REPLICATE, REGION_NAME).buildInThisVM();
+          .withRegion(RegionShortcut.REPLICATE, REGION_NAME);
 
   @Test
   public void testExecuteRegionFunction() {
@@ -61,7 +60,7 @@ public class ClientExecuteRegionFunctionAuthDUnitTest extends JUnit4DistributedT
     FunctionService.registerFunction(function);
 
     client1.invoke("logging in with dataReader", () -> {
-      ClientCache cache = createClientCache("dataReader", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("dataReader", "1234567", server.getPort());
 
       Region region = createProxyRegion(cache, REGION_NAME);
       FunctionService.registerFunction(function);
@@ -71,7 +70,7 @@ public class ClientExecuteRegionFunctionAuthDUnitTest extends JUnit4DistributedT
     });
 
     client2.invoke("logging in with super-user", () -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
 
       Region region = createProxyRegion(cache, REGION_NAME);
       FunctionService.registerFunction(function);

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientGetAllAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientGetAllAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientGetAllAuthDUnitTest.java
index 92eda18..7339c27 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientGetAllAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientGetAllAuthDUnitTest.java
@@ -26,8 +26,7 @@ import org.apache.geode.cache.client.ClientCache;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -47,16 +46,16 @@ public class ClientGetAllAuthDUnitTest extends JUnit4DistributedTestCase {
   final VM client2 = host.getVM(2);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .withRegion(RegionShortcut.REPLICATE, REGION_NAME).buildInThisVM();
+          .withRegion(RegionShortcut.REPLICATE, REGION_NAME);
 
   @Test
   public void testGetAll() {
     client1.invoke("logging in Stranger", () -> {
-      ClientCache cache = createClientCache("stranger", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("stranger", "1234567", server.getPort());
 
       Region region = createProxyRegion(cache, REGION_NAME);
       Map emptyMap = region.getAll(Arrays.asList("key1", "key2", "key3", "key4"));
@@ -64,7 +63,7 @@ public class ClientGetAllAuthDUnitTest extends JUnit4DistributedTestCase {
     });
 
     client2.invoke("logging in authRegionReader", () -> {
-      ClientCache cache = createClientCache("authRegionReader", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionReader", "1234567", server.getPort());
 
       Region region = createProxyRegion(cache, REGION_NAME);
       Map filledMap = region.getAll(Arrays.asList("key1", "key2", "key3", "key4"));

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientGetEntryAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientGetEntryAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientGetEntryAuthDUnitTest.java
index fad77f5..5aaff24 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientGetEntryAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientGetEntryAuthDUnitTest.java
@@ -21,13 +21,13 @@ import static org.apache.geode.security.SecurityTestUtil.createProxyRegion;
 
 import org.apache.geode.cache.CacheTransactionManager;
 import org.apache.geode.cache.Region;
+import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.cache.client.ClientCache;
 import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -45,15 +45,16 @@ public class ClientGetEntryAuthDUnitTest extends JUnit4DistributedTestCase {
   final VM client2 = host.getVM(2);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .buildInThisVM();
+          .withAutoStart();
 
   @Before
   public void before() throws Exception {
-    Region region = server.getCache().createRegionFactory().create(REGION_NAME);
+    Region region =
+        server.getCache().createRegionFactory(RegionShortcut.REPLICATE).create(REGION_NAME);
     for (int i = 0; i < 5; i++) {
       region.put("key" + i, "value" + i);
     }
@@ -63,7 +64,7 @@ public class ClientGetEntryAuthDUnitTest extends JUnit4DistributedTestCase {
   public void testGetEntry() throws Exception {
     // client1 connects to server as a user not authorized to do any operations
     AsyncInvocation ai1 = client1.invokeAsync(() -> {
-      ClientCache cache = createClientCache("stranger", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("stranger", "1234567", server.getPort());
 
       CacheTransactionManager transactionManager = cache.getCacheTransactionManager();
       transactionManager.begin();
@@ -77,7 +78,7 @@ public class ClientGetEntryAuthDUnitTest extends JUnit4DistributedTestCase {
     });
 
     AsyncInvocation ai2 = client2.invokeAsync(() -> {
-      ClientCache cache = createClientCache("authRegionReader", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionReader", "1234567", server.getPort());
 
       CacheTransactionManager transactionManager = cache.getCacheTransactionManager();
       transactionManager.begin();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientGetPutAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientGetPutAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientGetPutAuthDUnitTest.java
index a816a12..2b933bf 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientGetPutAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientGetPutAuthDUnitTest.java
@@ -27,8 +27,7 @@ import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -53,11 +52,11 @@ public class ClientGetPutAuthDUnitTest extends JUnit4DistributedTestCase {
   final VM client3 = host.getVM(3);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .buildInThisVM();
+          .withAutoStart();
 
   @Before
   public void before() throws Exception {
@@ -80,7 +79,7 @@ public class ClientGetPutAuthDUnitTest extends JUnit4DistributedTestCase {
 
     // client1 connects to server as a user not authorized to do any operations
     AsyncInvocation ai1 = client1.invokeAsync(() -> {
-      ClientCache cache = createClientCache("stranger", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("stranger", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
 
       assertNotAuthorized(() -> region.put("key3", "value3"), "DATA:WRITE:AuthRegion:key3");
@@ -99,7 +98,7 @@ public class ClientGetPutAuthDUnitTest extends JUnit4DistributedTestCase {
 
     // client2 connects to user as a user authorized to use AuthRegion region
     AsyncInvocation ai2 = client2.invokeAsync(() -> {
-      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
 
       region.put("key3", "value3");
@@ -119,7 +118,7 @@ public class ClientGetPutAuthDUnitTest extends JUnit4DistributedTestCase {
 
     // client3 connects to user as a user authorized to use key1 in AuthRegion region
     AsyncInvocation ai3 = client3.invokeAsync(() -> {
-      ClientCache cache = createClientCache("key1User", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("key1User", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
 
       assertNotAuthorized(() -> region.put("key2", "value1"), "DATA:WRITE:AuthRegion:key2");

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientRegionClearAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientRegionClearAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientRegionClearAuthDUnitTest.java
index 99a77b6..f512178 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientRegionClearAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientRegionClearAuthDUnitTest.java
@@ -26,8 +26,7 @@ import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.SerializableRunnable;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -44,11 +43,11 @@ public class ClientRegionClearAuthDUnitTest extends JUnit4DistributedTestCase {
   final VM client2 = host.getVM(2);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .withRegion(RegionShortcut.REPLICATE, REGION_NAME).buildInThisVM();
+          .withRegion(RegionShortcut.REPLICATE, REGION_NAME);
 
   @Test
   public void testRegionClear() throws InterruptedException {
@@ -56,7 +55,7 @@ public class ClientRegionClearAuthDUnitTest extends JUnit4DistributedTestCase {
     SerializableRunnable clearUnauthorized = new SerializableRunnable() {
       @Override
       public void run() {
-        ClientCache cache = createClientCache("stranger", "1234567", server.getServerPort());
+        ClientCache cache = createClientCache("stranger", "1234567", server.getPort());
         Region region = createProxyRegion(cache, REGION_NAME);
         assertNotAuthorized(() -> region.clear(), "DATA:WRITE:AuthRegion");
       }
@@ -67,7 +66,7 @@ public class ClientRegionClearAuthDUnitTest extends JUnit4DistributedTestCase {
     SerializableRunnable clearAuthorized = new SerializableRunnable() {
       @Override
       public void run() {
-        ClientCache cache = createClientCache("authRegionUser", "1234567", server.getServerPort());
+        ClientCache cache = createClientCache("authRegionUser", "1234567", server.getPort());
         Region region = createProxyRegion(cache, REGION_NAME);
         region.clear();
       }

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientRegisterInterestAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientRegisterInterestAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientRegisterInterestAuthDUnitTest.java
index 9c24d42..f120723 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientRegisterInterestAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientRegisterInterestAuthDUnitTest.java
@@ -27,8 +27,7 @@ import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -49,31 +48,31 @@ public class ClientRegisterInterestAuthDUnitTest extends JUnit4DistributedTestCa
   final VM client3 = host.getVM(3);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .withRegion(RegionShortcut.REPLICATE, REGION_NAME).buildInThisVM();
+          .withRegion(RegionShortcut.REPLICATE, REGION_NAME);
 
   @Test
   public void testRegisterInterest() throws Exception {
     // client1 connects to server as a user not authorized to do any operations
     AsyncInvocation ai1 = client1.invokeAsync(() -> {
-      ClientCache cache = createClientCache("stranger", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("stranger", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       assertNotAuthorized(() -> region.registerInterest("key3"), "DATA:READ:AuthRegion:key3");
     });
 
     // client2 connects to user as a user authorized to use AuthRegion region
     AsyncInvocation ai2 = client2.invokeAsync(() -> {
-      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       region.registerInterest("key3"); // DATA:READ:AuthRegion:key3;
     });
 
     // client3 connects to user as a user authorized to use key1 in AuthRegion region
     AsyncInvocation ai3 = client3.invokeAsync(() -> {
-      ClientCache cache = createClientCache("key1User", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("key1User", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       assertNotAuthorized(() -> region.registerInterest("key2"), "DATA:READ:AuthRegion:key2");
     });
@@ -87,7 +86,7 @@ public class ClientRegisterInterestAuthDUnitTest extends JUnit4DistributedTestCa
   public void testRegisterInterestRegex() throws Exception {
     // client1 connects to server as a user not authorized to do any operations
     AsyncInvocation ai1 = client1.invokeAsync(() -> {
-      ClientCache cache = createClientCache("stranger", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("stranger", "1234567", server.getPort());
 
       Region region =
           cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
@@ -96,7 +95,7 @@ public class ClientRegisterInterestAuthDUnitTest extends JUnit4DistributedTestCa
 
     // client2 connects to user as a user authorized to use AuthRegion region
     AsyncInvocation ai2 = client2.invokeAsync(() -> {
-      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getPort());
 
       Region region =
           cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
@@ -105,7 +104,7 @@ public class ClientRegisterInterestAuthDUnitTest extends JUnit4DistributedTestCa
 
     // client3 connects to user as a user authorized to use key1 in AuthRegion region
     AsyncInvocation ai3 = client3.invokeAsync(() -> {
-      ClientCache cache = createClientCache("key1User", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("key1User", "1234567", server.getPort());
 
       Region region =
           cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
@@ -126,7 +125,7 @@ public class ClientRegisterInterestAuthDUnitTest extends JUnit4DistributedTestCa
 
     // client1 connects to server as a user not authorized to do any operations
     AsyncInvocation ai1 = client1.invokeAsync(() -> {
-      ClientCache cache = createClientCache("stranger", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("stranger", "1234567", server.getPort());
 
       Region region =
           cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
@@ -135,7 +134,7 @@ public class ClientRegisterInterestAuthDUnitTest extends JUnit4DistributedTestCa
 
     // client2 connects to user as a user authorized to use AuthRegion region
     AsyncInvocation ai2 = client2.invokeAsync(() -> {
-      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getPort());
 
       Region region =
           cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
@@ -144,7 +143,7 @@ public class ClientRegisterInterestAuthDUnitTest extends JUnit4DistributedTestCa
 
     // client3 connects to user as a user authorized to use key1 in AuthRegion region
     AsyncInvocation ai3 = client3.invokeAsync(() -> {
-      ClientCache cache = createClientCache("key1User", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("key1User", "1234567", server.getPort());
 
       Region region =
           cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientRemoveAllAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientRemoveAllAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientRemoveAllAuthDUnitTest.java
index 44887d9..8814b09 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientRemoveAllAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientRemoveAllAuthDUnitTest.java
@@ -27,8 +27,7 @@ import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -47,17 +46,17 @@ public class ClientRemoveAllAuthDUnitTest extends JUnit4DistributedTestCase {
   final VM client2 = host.getVM(2);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .withRegion(RegionShortcut.REPLICATE, REGION_NAME).buildInThisVM();
+          .withRegion(RegionShortcut.REPLICATE, REGION_NAME);
 
   @Test
   public void testRemoveAll() throws Exception {
 
     AsyncInvocation ai1 = client1.invokeAsync(() -> {
-      ClientCache cache = createClientCache("authRegionReader", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionReader", "1234567", server.getPort());
 
       Region region = createProxyRegion(cache, REGION_NAME);
       assertNotAuthorized(() -> region.removeAll(Arrays.asList("key1", "key2", "key3", "key4")),
@@ -65,7 +64,7 @@ public class ClientRemoveAllAuthDUnitTest extends JUnit4DistributedTestCase {
     });
 
     AsyncInvocation ai2 = client2.invokeAsync(() -> {
-      ClientCache cache = createClientCache("authRegionWriter", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionWriter", "1234567", server.getPort());
 
       Region region = createProxyRegion(cache, REGION_NAME);
       region.removeAll(Arrays.asList("key1", "key2", "key3", "key4"));

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/ClientUnregisterInterestAuthDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientUnregisterInterestAuthDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/ClientUnregisterInterestAuthDUnitTest.java
index e62aa6a..25a578d 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientUnregisterInterestAuthDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientUnregisterInterestAuthDUnitTest.java
@@ -25,8 +25,7 @@ import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -43,17 +42,17 @@ public class ClientUnregisterInterestAuthDUnitTest extends JUnit4DistributedTest
   final VM client2 = host.getVM(2);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .withRegion(RegionShortcut.REPLICATE, REGION_NAME).buildInThisVM();
+          .withRegion(RegionShortcut.REPLICATE, REGION_NAME);
 
   @Test
   public void testUnregisterInterest() throws Exception {
     // client2 connects to user as a user authorized to use AuthRegion region
     AsyncInvocation ai1 = client2.invokeAsync(() -> {
-      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("authRegionUser", "1234567", server.getPort());
 
       Region region = createProxyRegion(cache, REGION_NAME);
       region.registerInterest("key3");

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/NoShowValue1PostProcessorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/NoShowValue1PostProcessorDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/NoShowValue1PostProcessorDUnitTest.java
index c6b2735..71051e2 100644
--- a/geode-core/src/test/java/org/apache/geode/security/NoShowValue1PostProcessorDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/NoShowValue1PostProcessorDUnitTest.java
@@ -32,8 +32,7 @@ import org.apache.geode.cache.query.SelectResults;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -54,12 +53,12 @@ public class NoShowValue1PostProcessorDUnitTest extends JUnit4DistributedTestCas
   final VM client1 = host.getVM(1);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
           .withProperty(SECURITY_POST_PROCESSOR, NoShowValue1PostProcessor.class.getName())
-          .buildInThisVM();
+          .withAutoStart();
 
   @Before
   public void before() throws Exception {
@@ -77,7 +76,7 @@ public class NoShowValue1PostProcessorDUnitTest extends JUnit4DistributedTestCas
     keys.add("key2");
 
     client1.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
 
       // post process for get

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java
index c735313..e952386 100644
--- a/geode-core/src/test/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java
@@ -40,8 +40,7 @@ import org.apache.geode.test.dunit.IgnoredException;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.GfshShellConnectionRule;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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.apache.geode.test.junit.runners.CategoryWithParameterizedRunnerFactory;
@@ -81,18 +80,18 @@ public class PDXPostProcessorDUnitTest extends JUnit4DistributedTestCase {
   }
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
           .withProperty(SECURITY_POST_PROCESSOR, PDXPostProcessor.class.getName())
           .withProperty("security-pdx", pdxPersistent + "").withJMXManager()
-          .withRegion(RegionShortcut.REPLICATE, REGION_NAME).buildInThisVM();
+          .withRegion(RegionShortcut.REPLICATE, REGION_NAME);
 
   @Test
   public void testRegionGet() {
     client2.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       // put in a value that's a domain object
       region.put("key1", new SimpleClass(1, (byte) 1));
@@ -101,7 +100,7 @@ public class PDXPostProcessorDUnitTest extends JUnit4DistributedTestCase {
     });
 
     client1.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
 
       // post process for get the client domain object
@@ -122,7 +121,7 @@ public class PDXPostProcessorDUnitTest extends JUnit4DistributedTestCase {
   @Test
   public void testQuery() {
     client2.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       // put in a value that's a domain object
       region.put("key1", new SimpleClass(1, (byte) 1));
@@ -130,7 +129,7 @@ public class PDXPostProcessorDUnitTest extends JUnit4DistributedTestCase {
     });
 
     client1.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
 
       // post process for query
@@ -158,7 +157,7 @@ public class PDXPostProcessorDUnitTest extends JUnit4DistributedTestCase {
   public void testRegisterInterest() {
     IgnoredException.addIgnoredException("NoAvailableServersException");
     client1.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
 
       ClientRegionFactory factory = cache.createClientRegionFactory(ClientRegionShortcut.PROXY);
       factory.addCacheListener(new CacheListenerAdapter() {
@@ -181,7 +180,7 @@ public class PDXPostProcessorDUnitTest extends JUnit4DistributedTestCase {
     });
 
     client2.invoke(() -> {
-      ClientCache cache = createClientCache("dataUser", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("dataUser", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       // put in a value that's a domain object
       region.put("key1", new SimpleClass(1, (byte) 1));
@@ -199,7 +198,7 @@ public class PDXPostProcessorDUnitTest extends JUnit4DistributedTestCase {
   public void testGfshCommand() {
     // have client2 input some domain data into the region
     client2.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       // put in a value that's a domain object
       region.put("key1", new SimpleClass(1, (byte) 1));

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/security/PostProcessorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/PostProcessorDUnitTest.java b/geode-core/src/test/java/org/apache/geode/security/PostProcessorDUnitTest.java
index 89a6752..dc924ab 100644
--- a/geode-core/src/test/java/org/apache/geode/security/PostProcessorDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/security/PostProcessorDUnitTest.java
@@ -34,8 +34,7 @@ import org.apache.geode.cache.util.CacheListenerAdapter;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
-import org.apache.geode.test.dunit.rules.LocalServerStarterRule;
-import org.apache.geode.test.dunit.rules.ServerStarterBuilder;
+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;
@@ -56,11 +55,11 @@ public class PostProcessorDUnitTest extends JUnit4DistributedTestCase {
   final VM client2 = host.getVM(2);
 
   @Rule
-  public LocalServerStarterRule server =
-      new ServerStarterBuilder().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
+  public ServerStarterRule server =
+      new ServerStarterRule().withProperty(SECURITY_MANAGER, TestSecurityManager.class.getName())
           .withProperty(TestSecurityManager.SECURITY_JSON,
               "org/apache/geode/management/internal/security/clientServer.json")
-          .withProperty(SECURITY_POST_PROCESSOR, TestPostProcessor.class.getName()).buildInThisVM();
+          .withProperty(SECURITY_POST_PROCESSOR, TestPostProcessor.class.getName()).withAutoStart();
 
   @Before
   public void before() throws Exception {
@@ -78,7 +77,7 @@ public class PostProcessorDUnitTest extends JUnit4DistributedTestCase {
     keys.add("key2");
 
     client1.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
 
       // post process for get
@@ -96,7 +95,7 @@ public class PostProcessorDUnitTest extends JUnit4DistributedTestCase {
   @Test
   public void testPostProcessQuery() {
     client1.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
 
       // post process for query
@@ -123,7 +122,7 @@ public class PostProcessorDUnitTest extends JUnit4DistributedTestCase {
   @Test
   public void testRegisterInterestPostProcess() {
     client1.invoke(() -> {
-      ClientCache cache = createClientCache("super-user", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("super-user", "1234567", server.getPort());
 
       ClientRegionFactory factory = cache.createClientRegionFactory(ClientRegionShortcut.PROXY);
       factory.addCacheListener(new CacheListenerAdapter() {
@@ -140,7 +139,7 @@ public class PostProcessorDUnitTest extends JUnit4DistributedTestCase {
     });
 
     client2.invoke(() -> {
-      ClientCache cache = createClientCache("dataUser", "1234567", server.getServerPort());
+      ClientCache cache = createClientCache("dataUser", "1234567", server.getPort());
       Region region = createProxyRegion(cache, REGION_NAME);
       region.put("key1", "value2");
     });

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/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 4f84f7b..1fe4175 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
@@ -31,7 +31,6 @@ 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.FlakyTest;
 import org.apache.geode.test.junit.categories.SecurityTest;
 import org.junit.Before;
 import org.junit.Rule;
@@ -64,7 +63,6 @@ public class SecurityClusterConfigDUnitTest {
     lsRule.startLocatorVM(0, props);
   }
 
-  @Category(FlakyTest.class) // GEODE-1977
   @Test
   public void testStartServerWithClusterConfig() throws Exception {
     Properties props = new Properties();
@@ -104,7 +102,6 @@ public class SecurityClusterConfigDUnitTest {
     assertTrue(secProps.containsKey("security-post-processor"));
   }
 
-  @Category(FlakyTest.class) // GEODE-1975
   @Test
   public void serverWithDifferentSecurityManagerShouldThrowException() {
     Properties props = new Properties();
@@ -139,7 +136,6 @@ public class SecurityClusterConfigDUnitTest {
 
   }
 
-  @Category(FlakyTest.class) // GEODE-1974
   @Test
   public void serverConnectingToSecuredLocatorMustUseClusterConfig() {
     Properties props = new Properties();

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/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 02bad30..0a4785d 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
@@ -28,6 +28,8 @@ import org.json.JSONArray;
 import org.junit.rules.TemporaryFolder;
 import org.junit.runner.Description;
 
+import java.util.function.Supplier;
+
 /**
  * Class which eases the connection to the locator/jmxManager in Gfsh shell and execute gfsh
  * commands.
@@ -52,7 +54,7 @@ import org.junit.runner.Description;
  */
 public class GfshShellConnectionRule extends DescribedExternalResource {
 
-  private int port = -1;
+  private Supplier<Integer> portSupplier;
   private PortType portType = PortType.jmxManger;
   private HeadlessGfsh gfsh = null;
   private boolean connected = false;
@@ -66,10 +68,10 @@ public class GfshShellConnectionRule extends DescribedExternalResource {
     }
   }
 
-  public GfshShellConnectionRule(int port, PortType portType) {
+  public GfshShellConnectionRule(Supplier<Integer> portSupplier, PortType portType) {
     this();
     this.portType = portType;
-    this.port = port;
+    this.portSupplier = portSupplier;
   }
 
   @Override
@@ -77,7 +79,7 @@ public class GfshShellConnectionRule extends DescribedExternalResource {
     this.gfsh = new HeadlessGfsh(getClass().getName(), 30,
         temporaryFolder.newFolder("gfsh_files").getAbsolutePath());
     // do not auto connect if no port initialized
-    if (port < 0) {
+    if (portSupplier == null) {
       return;
     }
 
@@ -87,7 +89,7 @@ public class GfshShellConnectionRule extends DescribedExternalResource {
       return;
     }
 
-    connect(port, portType, CliStrings.CONNECT__USERNAME, config.user(),
+    connect(portSupplier.get(), portType, CliStrings.CONNECT__USERNAME, config.user(),
         CliStrings.CONNECT__PASSWORD, config.password());
 
   }

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocalLocatorStarterRule.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocalLocatorStarterRule.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocalLocatorStarterRule.java
deleted file mode 100644
index 21be585..0000000
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocalLocatorStarterRule.java
+++ /dev/null
@@ -1,99 +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.test.dunit.rules;
-
-import static org.apache.geode.distributed.Locator.startLocatorAndDS;
-import static org.junit.Assert.assertTrue;
-
-import org.apache.geode.distributed.ConfigurationProperties;
-import org.apache.geode.distributed.internal.DistributionConfig;
-import org.apache.geode.distributed.internal.InternalLocator;
-import org.apache.geode.internal.AvailablePort;
-import org.apache.geode.internal.datasource.ConfigProperty;
-import org.awaitility.Awaitility;
-import org.junit.rules.ExternalResource;
-
-import java.io.IOException;
-import java.util.Objects;
-import java.util.Properties;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Stream;
-
-public class LocalLocatorStarterRule extends ExternalResource {
-  private volatile InternalLocator internalLocator;
-  private final Properties properties;
-  private final AvailablePort.Keeper locatorPort;
-  private final AvailablePort.Keeper jmxPort;
-  private final AvailablePort.Keeper httpPort;
-  private final AvailablePort.Keeper tcpPort;
-
-  LocalLocatorStarterRule(LocatorStarterBuilder locatorStarterBuilder) {
-    this.properties = locatorStarterBuilder.getProperties();
-    this.locatorPort = locatorStarterBuilder.getLocatorPort();
-    this.jmxPort = locatorStarterBuilder.getJmxPort();
-    this.httpPort = locatorStarterBuilder.getHttpPort();
-    this.tcpPort = locatorStarterBuilder.getTcpPort();
-  }
-
-  public String getHostname() {
-    return "localhost";
-  }
-
-  public int getLocatorPort() {
-    return this.locatorPort.getPort();
-  }
-
-  public int getHttpPort() {
-    String httpPort = properties.getProperty(ConfigurationProperties.HTTP_SERVICE_PORT);
-    if (httpPort == null) {
-      throw new IllegalStateException("No http port specified");
-    }
-    return Integer.valueOf(httpPort);
-  }
-
-  private void releasePortKeepers() {
-    Stream.of(locatorPort, jmxPort, httpPort, tcpPort).filter(Objects::nonNull)
-        .forEach(AvailablePort.Keeper::release);
-  }
-
-  @Override
-  protected void before() {
-    releasePortKeepers();
-    try {
-      // this will start a jmx manager and admin rest service by default
-      this.internalLocator =
-          (InternalLocator) startLocatorAndDS(locatorPort.getPort(), null, properties);
-    } catch (IOException e) {
-      throw new RuntimeException("unable to start up locator.", e);
-    }
-
-    DistributionConfig config = this.internalLocator.getConfig();
-
-    if (config.getEnableClusterConfiguration()) {
-      Awaitility.await().atMost(65, TimeUnit.SECONDS)
-          .until(() -> assertTrue(internalLocator.isSharedConfigurationRunning()));
-    }
-  }
-
-  @Override
-  protected void after() {
-    releasePortKeepers();
-
-    if (internalLocator != null) {
-      internalLocator.stop();
-      internalLocator = null;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocalServerStarterRule.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocalServerStarterRule.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocalServerStarterRule.java
deleted file mode 100644
index 3106948..0000000
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocalServerStarterRule.java
+++ /dev/null
@@ -1,159 +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.test.dunit.rules;
-
-import static org.apache.geode.distributed.Locator.startLocatorAndDS;
-import static org.junit.Assert.assertTrue;
-
-import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.RegionShortcut;
-import org.apache.geode.cache.server.CacheServer;
-import org.apache.geode.distributed.ConfigurationProperties;
-import org.apache.geode.distributed.internal.DistributionConfig;
-import org.apache.geode.distributed.internal.InternalDistributedSystem;
-import org.apache.geode.internal.AvailablePort;
-import org.junit.rules.ExternalResource;
-import org.junit.rules.TemporaryFolder;
-
-import java.io.File;
-import java.io.Serializable;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Properties;
-import java.util.stream.Stream;
-
-public class LocalServerStarterRule extends ExternalResource implements Serializable {
-  private volatile transient Cache cache;
-  private volatile transient CacheServer server;
-  private final transient TemporaryFolder temporaryFolder;
-
-  private final Properties properties;
-  private final Map<String, RegionShortcut> regionsToCreate;
-
-  private final AvailablePort.Keeper serverPort;
-  private final AvailablePort.Keeper jmxPort;
-  private final AvailablePort.Keeper httpPort;
-  private final AvailablePort.Keeper tcpPort;
-
-  LocalServerStarterRule(ServerStarterBuilder serverStarterBuilder) {
-    this.properties = serverStarterBuilder.getProperties();
-    if (serverStarterBuilder.hasAutomaticallyManagedWorkingDir()) {
-      temporaryFolder = new TemporaryFolder();
-    } else {
-      temporaryFolder = null;
-    }
-
-    this.serverPort = serverStarterBuilder.getServerPort();
-    this.jmxPort = serverStarterBuilder.getJmxPort();
-    this.httpPort = serverStarterBuilder.getHttpPort();
-    this.tcpPort = serverStarterBuilder.getTcpPort();
-
-    this.regionsToCreate = serverStarterBuilder.getRegionsToCreate();
-  }
-
-  @Override
-  public void before() throws Throwable {
-    if (temporaryFolder != null) {
-      temporaryFolder.create();
-      this.properties.setProperty(ConfigurationProperties.DEPLOY_WORKING_DIR,
-          temporaryFolder.getRoot().getAbsolutePath());
-    }
-
-    releasePortKeepers();
-    CacheFactory cf = new CacheFactory(this.properties);
-
-    cache = cf.create();
-    server = cache.addCacheServer();
-    server.setPort(this.serverPort.getPort());
-    server.start();
-
-    for (Map.Entry<String, RegionShortcut> region : regionsToCreate.entrySet()) {
-      cache.createRegionFactory(region.getValue()).create(region.getKey());
-    }
-  }
-
-  @Override
-  public void after() {
-    if (cache != null) {
-      cache.close();
-      cache = null;
-    }
-    if (server != null) {
-      server.stop();
-      server = null;
-    }
-
-    if (temporaryFolder != null) {
-      temporaryFolder.delete();
-    }
-
-    releasePortKeepers();
-  }
-
-  private void releasePortKeepers() {
-    Stream.of(serverPort, jmxPort, httpPort, tcpPort).filter(Objects::nonNull)
-        .forEach(AvailablePort.Keeper::release);
-  }
-
-  public int getHttpPort() {
-    String httpPort = properties.getProperty(ConfigurationProperties.HTTP_SERVICE_PORT);
-
-    if (httpPort != null) {
-      return (Integer.valueOf(httpPort));
-    }
-
-    if (properties.getProperty(ConfigurationProperties.START_DEV_REST_API) != null) {
-      throw new IllegalStateException("No HTTP_SERVICE_PORT has been specified");
-    } else {
-      throw new IllegalStateException("Dev rest api not configured for this server");
-    }
-  }
-
-  public Cache getCache() {
-    return cache;
-  }
-
-  public CacheServer getServer() {
-    return server;
-  }
-
-  public File getWorkingDir() {
-    if (cache == null) {
-      throw new IllegalStateException("Server not yet initialized");
-    }
-    return ((InternalDistributedSystem) cache.getDistributedSystem()).getConfig()
-        .getDeployWorkingDir();
-  }
-
-  public String getHostname() {
-    return "localhost";
-  }
-
-
-  public Integer getJmxPort() {
-    String jmxPort = properties.getProperty(ConfigurationProperties.JMX_MANAGER_PORT);
-    if (jmxPort == null) {
-      return null;
-    }
-
-    return Integer.valueOf(jmxPort);
-  }
-
-  public int getServerPort() {
-    return this.serverPort.getPort();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/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 7350241..97c636b 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
@@ -95,7 +95,9 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
     VM locatorVM = getHost(0).getVM(index);
     Locator locator = locatorVM.invoke(() -> {
       locatorStarter = new LocatorStarterRule(workingDir);
-      return locatorStarter.withProperties(properties).startLocator();
+      locatorStarter.withProperties(properties).withAutoStart();
+      locatorStarter.before();
+      return locatorStarter;
     });
     members[index] = new MemberVM(locator, locatorVM);
     return members[index];
@@ -126,7 +128,9 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
     VM serverVM = getHost(0).getVM(index);
     Server server = serverVM.invoke(() -> {
       serverStarter = new ServerStarterRule(workingDir);
-      return serverStarter.withEmbeddedLocator().withName(name).withJMXManager().startServer();
+      serverStarter.withEmbeddedLocator().withName(name).withJMXManager().withAutoStart();
+      serverStarter.before();
+      return serverStarter;
     });
     members[index] = new MemberVM(server, serverVM);
     return members[index];
@@ -149,8 +153,9 @@ public class LocatorServerStartupRule extends ExternalResource implements Serial
     VM serverVM = getHost(0).getVM(index);
     Server server = serverVM.invoke(() -> {
       serverStarter = new ServerStarterRule(workingDir);
-      return serverStarter.withProperties(properties).withConnectionToLocator(locatorPort)
-          .startServer();
+      serverStarter.withProperties(properties).withConnectionToLocator(locatorPort).withAutoStart();
+      serverStarter.before();
+      return serverStarter;
     });
     members[index] = new MemberVM(server, serverVM);
     return members[index];

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterBuilder.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterBuilder.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterBuilder.java
deleted file mode 100644
index 169d41e..0000000
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterBuilder.java
+++ /dev/null
@@ -1,121 +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.test.dunit.rules;
-
-import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_BIND_ADDRESS;
-import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_PORT;
-import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER;
-import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_HOSTNAME_FOR_CLIENTS;
-import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_PORT;
-import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_START;
-import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
-import static org.apache.geode.distributed.ConfigurationProperties.TCP_PORT;
-
-import org.apache.geode.distributed.ConfigurationProperties;
-import org.apache.geode.internal.AvailablePort;
-import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.security.SecurityManager;
-
-import java.util.Properties;
-
-public class LocatorStarterBuilder {
-  private Properties properties = new Properties();
-  private AvailablePort.Keeper locatorPort;
-  private AvailablePort.Keeper jmxPort;
-  private AvailablePort.Keeper httpPort;
-  private AvailablePort.Keeper tcpPort;
-
-  public LocatorStarterBuilder() {}
-
-  public LocatorStarterBuilder withSecurityManager(
-      Class<? extends SecurityManager> securityManager) {
-    properties.setProperty(SECURITY_MANAGER, securityManager.getName());
-    return this;
-  }
-
-  public LocalLocatorStarterRule buildInThisVM() {
-    setDefaultProperties();
-    throwIfPortsAreHardcoded();
-    setPortPropertiesFromKeepers();
-    return new LocalLocatorStarterRule(this);
-  }
-
-  Properties getProperties() {
-    return this.properties;
-  }
-
-  private void setDefaultProperties() {
-    properties.putIfAbsent(ConfigurationProperties.NAME, "locator");
-    // properties.putIfAbsent(LOG_FILE, new File(properties.get(ConfigurationProperties.NAME) +
-    // ".log").getAbsolutePath().toString());
-
-    if (locatorPort == null) {
-      this.locatorPort = AvailablePortHelper.getRandomAvailableTCPPortKeepers(1).get(0);
-    }
-    if (jmxPort == null) {
-      this.jmxPort = AvailablePortHelper.getRandomAvailableTCPPortKeepers(1).get(0);
-    }
-    if (httpPort == null) {
-      this.httpPort = AvailablePortHelper.getRandomAvailableTCPPortKeepers(1).get(0);
-    }
-    if (locatorPort == null) {
-      this.tcpPort = AvailablePortHelper.getRandomAvailableTCPPortKeepers(1).get(0);
-    }
-
-    properties.putIfAbsent(JMX_MANAGER, "true");
-    properties.putIfAbsent(JMX_MANAGER_START, "true");
-    properties.putIfAbsent(HTTP_SERVICE_BIND_ADDRESS, "localhost");
-    properties.putIfAbsent(JMX_MANAGER_HOSTNAME_FOR_CLIENTS, "localhost");
-  }
-
-  private void setPortPropertiesFromKeepers() {
-    if (jmxPort != null) {
-      properties.setProperty(JMX_MANAGER_PORT, Integer.toString(jmxPort.getPort()));
-    }
-
-    if (httpPort != null) {
-      properties.setProperty(HTTP_SERVICE_PORT, Integer.toString(httpPort.getPort()));
-    }
-
-    if (tcpPort != null) {
-      properties.setProperty(TCP_PORT, Integer.toString(tcpPort.getPort()));
-    }
-  }
-
-  private void throwIfPortsAreHardcoded() {
-    if (properties.getProperty(JMX_MANAGER_PORT) != null
-        || properties.getProperty(HTTP_SERVICE_PORT) != null
-        || properties.getProperty(TCP_PORT) != null) {
-      throw new IllegalArgumentException("Ports cannot be hardcoded.");
-    }
-  }
-
-  AvailablePort.Keeper getLocatorPort() {
-    return locatorPort;
-  }
-
-  AvailablePort.Keeper getJmxPort() {
-    return jmxPort;
-  }
-
-  AvailablePort.Keeper getHttpPort() {
-    return httpPort;
-  }
-
-  AvailablePort.Keeper getTcpPort() {
-    return tcpPort;
-  }
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterRule.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterRule.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterRule.java
index 097adb7..e1c14ce 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterRule.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorStarterRule.java
@@ -29,10 +29,14 @@ import java.util.concurrent.TimeUnit;
 /**
  * This is a rule to start up a locator in your current VM. It's useful for your Integration Tests.
  *
- * You can create this rule with and without a Property. If the rule is created with a property, the
- * locator will started automatically for you. If not, you can start the locator by using one of the
- * startLocator function. Either way, the rule will handle shutting down the locator properly for
- * you.
+ * This rules allows you to create/start a locator using any @ConfigurationProperties, you can chain
+ * the configuration of the rule like this: LocatorStarterRule locator = new LocatorStarterRule()
+ * .withProperty(key, value) .withName(name) .withProperties(properties) .withSecurityManager(class)
+ * .withJmxManager() etc, etc. If your rule calls withAutoStart(), the locator will be started
+ * before your test code.
+ *
+ * In your test code, you can use the rule to access the locator's attributes, like the port
+ * information, working dir, name, and the InternalLocator it creates.
  *
  * If you need a rule to start a server/locator in different VMs for Distributed tests, You should
  * use {@link LocatorServerStartupRule}.
@@ -59,14 +63,19 @@ public class LocatorStarterRule extends MemberStarterRule<LocatorStarterRule> im
     }
   }
 
-  public LocatorStarterRule startLocator() {
+  @Override
+  public void before() {
     normalizeProperties();
-    // start locator will start a jmx manager by default, if withJMXManager is not called explicitly
-    // the tests will use random ports by default.
+    // always use a random jmxPort/httpPort when using the rule to start the locator
     if (jmxPort < 0) {
-      withJMXManager();
+      withJMXManager(false);
     }
+    if (autoStart) {
+      startLocator();
+    }
+  }
 
+  public void startLocator() {
     try {
       // this will start a jmx manager and admin rest service by default
       locator = (InternalLocator) startLocatorAndDS(0, null, properties);
@@ -83,6 +92,5 @@ public class LocatorStarterRule extends MemberStarterRule<LocatorStarterRule> im
       Awaitility.await().atMost(65, TimeUnit.SECONDS)
           .until(() -> assertTrue(locator.isSharedConfigurationRunning()));
     }
-    return this;
   }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MBeanServerConnectionRule.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MBeanServerConnectionRule.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MBeanServerConnectionRule.java
index 9c6f81e..3addc4e 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MBeanServerConnectionRule.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MBeanServerConnectionRule.java
@@ -27,6 +27,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
+import java.util.function.Supplier;
 import javax.management.JMX;
 import javax.management.MBeanServerConnection;
 import javax.management.MalformedObjectNameException;
@@ -48,7 +49,7 @@ import javax.management.remote.JMXServiceURL;
  */
 public class MBeanServerConnectionRule extends DescribedExternalResource {
 
-  private int jmxServerPort = -1;
+  private Supplier<Integer> portSupplier;
   private JMXConnector jmxConnector;
   private MBeanServerConnection con;
 
@@ -57,10 +58,10 @@ public class MBeanServerConnectionRule extends DescribedExternalResource {
   /**
    * Rule constructor
    *
-   * @param port The JMX server port to connect to
+   * @param portSupplier The JMX server port to connect to
    */
-  public MBeanServerConnectionRule(int port) {
-    this.jmxServerPort = port;
+  public MBeanServerConnectionRule(Supplier<Integer> portSupplier) {
+    this.portSupplier = portSupplier;
   }
 
   /**
@@ -115,7 +116,7 @@ public class MBeanServerConnectionRule extends DescribedExternalResource {
   @Override
   protected void before(Description description) throws Throwable {
     // do not auto connect if port is not set
-    if (jmxServerPort < 0)
+    if (portSupplier == null)
       return;
 
     // do not auto connect if no ConnectionConfiguration is defined.
@@ -127,7 +128,7 @@ public class MBeanServerConnectionRule extends DescribedExternalResource {
     String user = config.user();
     String password = config.password();
     env.put(JMXConnector.CREDENTIALS, new String[] {user, password});
-    connect(null, jmxServerPort, env);
+    connect(null, portSupplier.get(), env);
   }
 
   public void connect(int jmxPort) throws Exception {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberStarterRule.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberStarterRule.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberStarterRule.java
index 3fda85a..e5e598e 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberStarterRule.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/MemberStarterRule.java
@@ -25,9 +25,10 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_FILE;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.NAME;
+import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
 
 import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.test.dunit.VM;
+import org.apache.geode.security.SecurityManager;
 import org.junit.rules.ExternalResource;
 import org.junit.rules.TemporaryFolder;
 
@@ -36,7 +37,8 @@ import java.io.IOException;
 import java.util.Properties;
 
 /**
- * A server or locator inside a DUnit {@link VM}.
+ * the abstract class that's used by LocatorStarterRule and ServerStarterRule to avoid code
+ * duplication.
  */
 public abstract class MemberStarterRule<T> extends ExternalResource implements Member {
   protected transient TemporaryFolder temporaryFolder;
@@ -50,6 +52,8 @@ public abstract class MemberStarterRule<T> extends ExternalResource implements M
   protected String name;
   protected Properties properties = new Properties();
 
+  protected boolean autoStart = false;
+
   public MemberStarterRule() {
     this(null);
   }
@@ -98,6 +102,16 @@ public abstract class MemberStarterRule<T> extends ExternalResource implements M
     return (T) this;
   }
 
+  public T withSecurityManager(Class<? extends SecurityManager> securityManager) {
+    properties.setProperty(SECURITY_MANAGER, securityManager.getName());
+    return (T) this;
+  }
+
+  public T withAutoStart() {
+    this.autoStart = true;
+    return (T) this;
+  }
+
   public T withName(String name) {
     this.name = name;
     properties.setProperty(NAME, name);
@@ -116,16 +130,19 @@ public abstract class MemberStarterRule<T> extends ExternalResource implements M
   /**
    * be able to start JMX manager and admin rest on default ports
    */
-  public T withJMXManager(boolean useDefault) {
-    // the real port numbers will be set after we started the server/locator.
-    this.jmxPort = 0;
-    this.httpPort = 0;
-    if (!useDefault) {
+  public T withJMXManager(boolean useProductDefaultPorts) {
+    if (!useProductDefaultPorts) {
       // do no override these properties if already exists
       properties.putIfAbsent(JMX_MANAGER_PORT,
           AvailablePortHelper.getRandomAvailableTCPPort() + "");
       properties.putIfAbsent(HTTP_SERVICE_PORT,
           AvailablePortHelper.getRandomAvailableTCPPort() + "");
+      this.jmxPort = Integer.parseInt(properties.getProperty(JMX_MANAGER_PORT));
+      this.httpPort = Integer.parseInt(properties.getProperty(HTTP_SERVICE_PORT));
+    } else {
+      // the real port numbers will be set after we started the server/locator.
+      this.jmxPort = 0;
+      this.httpPort = 0;
     }
     properties.putIfAbsent(JMX_MANAGER, "true");
     properties.putIfAbsent(JMX_MANAGER_START, "true");

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterBuilder.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterBuilder.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterBuilder.java
deleted file mode 100644
index 5d8947c..0000000
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ServerStarterBuilder.java
+++ /dev/null
@@ -1,185 +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.test.dunit.rules;
-
-import static org.apache.geode.distributed.ConfigurationProperties.DEPLOY_WORKING_DIR;
-import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_BIND_ADDRESS;
-import static org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_PORT;
-import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER;
-import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_PORT;
-import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_START;
-import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
-import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
-import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
-import static org.apache.geode.distributed.ConfigurationProperties.START_DEV_REST_API;
-import static org.apache.geode.distributed.ConfigurationProperties.TCP_PORT;
-
-import org.apache.geode.cache.RegionShortcut;
-import org.apache.geode.distributed.ConfigurationProperties;
-import org.apache.geode.internal.AvailablePort;
-import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.security.SecurityManager;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-public class ServerStarterBuilder {
-  private Properties properties = new Properties();
-  private Map<String, RegionShortcut> regionsToCreate = new HashMap<>();
-
-  private AvailablePort.Keeper serverPort;
-  private AvailablePort.Keeper jmxPort;
-  private AvailablePort.Keeper httpPort;
-  private AvailablePort.Keeper tcpPort;
-
-  /**
-   * If this flag is true, the Rule will create a temporary folder and set the server's
-   * DEPLOY_WORKING_DIR to that folder. Otherwise, a user must manage their own working directory.
-   */
-  private boolean hasAutomaticallyManagedWorkingDir;
-
-  public LocalServerStarterRule buildInThisVM() {
-    setDefaultProperties();
-    throwIfPortsAreHardcoded();
-    setPortPropertiesFromKeepers();
-
-    return new LocalServerStarterRule(this);
-  }
-
-  public ServerStarterBuilder withJMXManager() {
-    if (this.jmxPort == null) {
-      this.jmxPort = AvailablePortHelper.getRandomAvailableTCPPortKeepers(1).get(0);
-    }
-
-    if (this.httpPort == null) {
-      this.httpPort = AvailablePortHelper.getRandomAvailableTCPPortKeepers(1).get(0);
-    }
-
-    properties.setProperty(JMX_MANAGER, "true");
-    properties.setProperty(JMX_MANAGER_START, "true");
-    properties.setProperty(HTTP_SERVICE_BIND_ADDRESS, "localhost");
-    return this;
-  }
-
-  /**
-   * Enables the Dev REST API with a random http port
-   */
-  public ServerStarterBuilder withRestService() {
-    if (this.httpPort == null) {
-      this.httpPort = AvailablePortHelper.getRandomAvailableTCPPortKeepers(1).get(0);
-    }
-
-    properties.setProperty(START_DEV_REST_API, "true");
-    properties.setProperty(HTTP_SERVICE_BIND_ADDRESS, "localhost");
-    return this;
-  }
-
-  public ServerStarterBuilder withSecurityManager(
-      Class<? extends SecurityManager> securityManager) {
-    properties.setProperty(SECURITY_MANAGER, securityManager.getName());
-    return this;
-  }
-
-  public ServerStarterBuilder withProperty(String key, String value) {
-    properties.setProperty(key, value);
-    return this;
-  }
-
-  public ServerStarterBuilder withRegion(RegionShortcut type, String name) {
-    regionsToCreate.put(name, type);
-    return this;
-  }
-
-
-  private void setDefaultProperties() {
-    String workingDir = properties.getProperty(DEPLOY_WORKING_DIR);
-    if (workingDir == null) {
-      hasAutomaticallyManagedWorkingDir = true;
-    }
-
-    properties.putIfAbsent(ConfigurationProperties.NAME, "server");
-
-    if (this.serverPort == null) {
-      this.serverPort = AvailablePortHelper.getRandomAvailableTCPPortKeepers(1).get(0);
-    }
-
-    if (this.tcpPort == null) {
-      this.tcpPort = AvailablePortHelper.getRandomAvailableTCPPortKeepers(1).get(0);
-    }
-
-    properties.putIfAbsent(MCAST_PORT, "0");
-    properties.putIfAbsent(LOCATORS, "");
-  }
-
-  /**
-   * We want to make sure that all tests use AvailablePort.Keeper rather than setting port numbers
-   * manually so that we can avoid flaky tests caused by BindExceptions.
-   * 
-   * @throws IllegalArgumentException - if ports are hardcoded.
-   */
-  private void throwIfPortsAreHardcoded() {
-    if (properties.getProperty(JMX_MANAGER_PORT) != null
-        || properties.getProperty(HTTP_SERVICE_PORT) != null
-        || properties.getProperty(TCP_PORT) != null) {
-      throw new IllegalArgumentException("Ports cannot be hardcoded.");
-    }
-  }
-
-  private void setPortPropertiesFromKeepers() {
-    if (jmxPort != null) {
-      properties.setProperty(JMX_MANAGER_PORT, Integer.toString(jmxPort.getPort()));
-    }
-
-    if (httpPort != null) {
-      properties.setProperty(HTTP_SERVICE_PORT, Integer.toString(httpPort.getPort()));
-    }
-
-    if (tcpPort != null) {
-      properties.setProperty(TCP_PORT, Integer.toString(tcpPort.getPort()));
-
-    }
-  }
-
-  AvailablePort.Keeper getServerPort() {
-    return serverPort;
-  }
-
-  AvailablePort.Keeper getJmxPort() {
-    return jmxPort;
-  }
-
-  AvailablePort.Keeper getHttpPort() {
-    return httpPort;
-  }
-
-  AvailablePort.Keeper getTcpPort() {
-    return tcpPort;
-  }
-
-  Map<String, RegionShortcut> getRegionsToCreate() {
-    return this.regionsToCreate;
-  }
-
-  Properties getProperties() {
-    return this.properties;
-  }
-
-  boolean hasAutomaticallyManagedWorkingDir() {
-    return this.hasAutomaticallyManagedWorkingDir;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/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 fea2e9d..0e65354 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
@@ -30,21 +30,33 @@ import org.apache.geode.internal.cache.GemFireCacheImpl;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Properties;
 
 
 /**
  * This is a rule to start up a server in your current VM. It's useful for your Integration Tests.
  *
+ * This rules allows you to create/start a server using any @ConfigurationProperties, you can chain
+ * the configuration of the rule like this: ServerStarterRule server = new ServerStarterRule()
+ * .withProperty(key, value) .withName(name) .withProperties(properties) .withSecurityManager(class)
+ * .withJmxManager() .withRestService() .withEmbeddedLocator() .withRegion(type, name) etc, etc. If
+ * your rule calls withAutoStart(), the server will be started before your test code.
+ *
+ * In your test code, you can use the rule to access the server's attributes, like the port
+ * information, working dir, name, and the cache and cacheServer it creates.
+ *
  * If you need a rule to start a server/locator in different VMs for Distributed tests, You should
  * use {@link LocatorServerStartupRule}.
  */
 public class ServerStarterRule extends MemberStarterRule<ServerStarterRule> implements Server {
-
   private transient Cache cache;
   private transient CacheServer server;
   private int embeddedLocatorPort = -1;
 
+  private Map<String, RegionShortcut> regions = new HashMap<>();
+
   /**
    * Default constructor, if used, the rule will create a temporary folder as the server's working
    * dir, and will delete it when the test is done.
@@ -70,6 +82,17 @@ public class ServerStarterRule extends MemberStarterRule<ServerStarterRule> impl
   }
 
   @Override
+  public void before() {
+    normalizeProperties();
+    if (autoStart) {
+      startServer();
+      regions.forEach((regionName, regionType) -> {
+        getCache().createRegionFactory(regionType).create(regionName);
+      });
+    }
+  }
+
+  @Override
   void stopMember() {
     // make sure this cache is the one currently open. A server cache can be recreated due to
     // importing a new set of cluster configuration.
@@ -104,21 +127,21 @@ public class ServerStarterRule extends MemberStarterRule<ServerStarterRule> impl
     return this;
   }
 
-  public ServerStarterRule startServer() {
-    return startServer(false);
+  public void startServer() {
+    startServer(false);
   }
 
-  public ServerStarterRule createRegion(RegionShortcut type, String name) {
-    cache.createRegionFactory(type).create(name);
+  public ServerStarterRule withRegion(RegionShortcut type, String name) {
+    this.autoStart = true;
+    regions.put(name, type);
     return this;
   }
 
-  public ServerStarterRule startServer(Properties properties, int locatorPort) {
-    return withProperties(properties).withConnectionToLocator(locatorPort).startServer();
+  public void startServer(Properties properties, int locatorPort) {
+    withProperties(properties).withConnectionToLocator(locatorPort).startServer();
   }
 
-  public ServerStarterRule startServer(boolean pdxPersistent) {
-    normalizeProperties();
+  public void startServer(boolean pdxPersistent) {
     CacheFactory cf = new CacheFactory(this.properties);
     cf.setPdxReadSerialized(pdxPersistent);
     cf.setPdxPersistent(pdxPersistent);
@@ -135,7 +158,6 @@ public class ServerStarterRule extends MemberStarterRule<ServerStarterRule> impl
     memberPort = server.getPort();
     jmxPort = config.getJmxManagerPort();
     httpPort = config.getHttpServicePort();
-    return this;
   }
 
   public int getEmbeddedLocatorPort() {

http://git-wip-us.apache.org/repos/asf/geode/blob/6a88f1bc/geode-core/src/test/java/org/apache/geode/test/dunit/rules/test/MemberStarterRuleTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/test/MemberStarterRuleTest.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/test/MemberStarterRuleTest.java
new file mode 100644
index 0000000..7dada04
--- /dev/null
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/test/MemberStarterRuleTest.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package org.apache.geode.test.dunit.rules.test;
+
+import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_PORT;
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.apache.geode.test.dunit.rules.LocatorStarterRule;
+import org.apache.geode.test.junit.categories.UnitTest;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+@Category(UnitTest.class)
+public class MemberStarterRuleTest {
+
+  @Test
+  public void testSetJMXPortWithProperty() {
+    int port = 2000;
+    LocatorStarterRule locator = new LocatorStarterRule().withProperty(JMX_MANAGER_PORT, port + "");
+    locator.before();
+    assertThat(locator.getJmxPort()).isEqualTo(port);
+  }
+
+  @Test
+  public void testSetJMXPortWithPropertyThenAPI() {
+    int port = 2000;
+    LocatorStarterRule locator = new LocatorStarterRule().withProperty(JMX_MANAGER_PORT, port + "");
+
+    // user call withJMXManager again
+    locator.withJMXManager();
+    locator.before();
+
+    assertThat(locator.getJmxPort()).isEqualTo(port);
+  }
+
+  @Test
+  public void testSetJMXPortWithAPIThenProperty() {
+    // this first one wins
+    LocatorStarterRule locator = new LocatorStarterRule().withJMXManager();
+    int port = locator.getJmxPort();
+
+    locator.withProperty(JMX_MANAGER_PORT, "9999");
+    locator.before();
+
+    assertThat(locator.getJmxPort()).isEqualTo(port);
+  }
+
+  @Test
+  public void testUseRandomPortByDefault() {
+    LocatorStarterRule locator = new LocatorStarterRule();
+    locator.before();
+
+    assertThat(locator.getJmxPort()).isNotEqualTo(1099);
+    assertThat(locator.getJmxPort()).isNotEqualTo(-1);
+
+    assertThat(locator.getHttpPort()).isNotEqualTo(7070);
+    assertThat(locator.getHttpPort()).isNotEqualTo(-1);
+  }
+}