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

[49/50] [abbrv] incubator-geode git commit: Merge remote-tracking branch 'origin/develop' into feature/GEODE-1255

Merge remote-tracking branch 'origin/develop' into feature/GEODE-1255


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

Branch: refs/heads/feature/GEODE-1255
Commit: f6334f2f52ed1c787a5a5529ffdf97192a0599e8
Parents: 0fc02ae b8fc3c7
Author: Kirk Lund <kl...@apache.org>
Authored: Tue May 3 13:55:11 2016 -0700
Committer: Kirk Lund <kl...@apache.org>
Committed: Tue May 3 13:55:11 2016 -0700

----------------------------------------------------------------------
 BUILDING.md                                     |    2 +-
 build.gradle                                    |    4 +
 .../SessionReplicationIntegrationJUnitTest.java |   30 +-
 .../session/junit/PerTestClassLoaderRunner.java |  138 +--
 geode-assembly/build.gradle                     |    1 +
 .../LauncherLifecycleCommandsDUnitTest.java     |    3 +
 .../src/test/resources/expected_jars.txt        |    1 +
 geode-core/build.gradle                         |    4 +-
 .../cache/operations/OperationContext.java      |  556 ++++------
 .../gemfire/distributed/DistributedSystem.java  |    7 +-
 .../internal/AbstractDistributionConfig.java    |   48 +-
 .../distributed/internal/ConfigAttribute.java   |    1 -
 .../internal/ConfigAttributeChecker.java        |    1 -
 .../internal/ConfigAttributeDesc.java           |    3 -
 .../internal/ConfigAttributeGetter.java         |    3 -
 .../internal/ConfigAttributeSetter.java         |    3 -
 .../internal/DistributionConfig.java            |    7 +
 .../internal/DistributionConfigImpl.java        |   38 +-
 .../internal/InternalDistributedSystem.java     |  240 ++--
 .../membership/gms/fd/GMSHealthMonitor.java     |    7 +-
 .../gemfire/internal/AbstractConfig.java        |   28 +-
 .../internal/cache/DistributedRegion.java       |   11 +-
 .../internal/cache/GemFireCacheImpl.java        |   20 +-
 .../cache/tier/sockets/CacheClientNotifier.java |   36 +-
 .../gemfire/internal/i18n/LocalizedStrings.java |    2 +
 .../internal/security/AuthorizeRequest.java     |    5 -
 .../internal/security/GeodeSecurityUtil.java    |  167 +++
 .../security/shiro/CustomAuthRealm.java         |  176 +++
 .../security/shiro/JMXShiroAuthenticator.java   |   69 ++
 .../management/AsyncEventQueueMXBean.java       |    5 +
 .../gemfire/management/CacheServerMXBean.java   |   12 +-
 .../gemfire/management/DiskStoreMXBean.java     |    9 +
 .../DistributedLockServiceMXBean.java           |    8 +-
 .../management/DistributedRegionMXBean.java     |    5 +
 .../management/DistributedSystemMXBean.java     |   30 +-
 .../management/GatewayReceiverMXBean.java       |    8 +-
 .../gemfire/management/GatewaySenderMXBean.java |   12 +-
 .../gemfire/management/LocatorMXBean.java       |    5 +
 .../gemfire/management/LockServiceMXBean.java   |   10 +-
 .../gemfire/management/ManagerMXBean.java       |   12 +-
 .../gemfire/management/MemberMXBean.java        |   15 +-
 .../gemfire/management/RegionMXBean.java        |    4 +
 .../management/internal/ManagementAgent.java    |  126 ++-
 .../internal/SystemManagementService.java       |   39 +-
 .../internal/beans/GatewaySenderMBean.java      |    8 +-
 .../internal/beans/MemberMBeanBridge.java       |   17 +-
 .../management/internal/cli/CommandManager.java |    3 -
 .../internal/cli/commands/ClientCommands.java   |   50 +-
 .../internal/cli/commands/ConfigCommands.java   |   44 +-
 .../CreateAlterDestroyRegionCommands.java       |   42 +-
 .../internal/cli/commands/DataCommands.java     |   36 +-
 .../internal/cli/commands/DeployCommands.java   |   21 +-
 .../cli/commands/DiskStoreCommands.java         |   64 +-
 .../cli/commands/DurableClientCommands.java     |   45 +-
 ...ExportImportSharedConfigurationCommands.java |   23 +-
 .../internal/cli/commands/FunctionCommands.java |   33 +-
 .../internal/cli/commands/GfshHelpCommands.java |   13 +-
 .../internal/cli/commands/IndexCommands.java    |   39 +-
 .../cli/commands/LauncherLifecycleCommands.java |   81 +-
 .../internal/cli/commands/MemberCommands.java   |   27 +-
 .../cli/commands/MiscellaneousCommands.java     |   99 +-
 .../internal/cli/commands/PDXCommands.java      |   33 +-
 .../internal/cli/commands/QueueCommands.java    |   25 +-
 .../internal/cli/commands/RegionCommands.java   |   17 +-
 .../internal/cli/commands/ShellCommands.java    |  106 +-
 .../internal/cli/commands/StatusCommands.java   |   24 +-
 .../internal/cli/commands/WanCommands.java      |  336 +++---
 .../internal/cli/remote/CommandProcessor.java   |   24 +-
 .../internal/cli/result/ErrorResultData.java    |   10 +-
 .../internal/cli/result/ResultBuilder.java      |    7 +-
 .../internal/cli/shell/JmxOperationInvoker.java |   70 +-
 .../internal/security/AccessControl.java        |   51 -
 .../internal/security/AccessControlContext.java |   37 -
 .../internal/security/AccessControlMBean.java   |   41 +
 .../internal/security/AccessControlMXBean.java  |    6 +-
 .../internal/security/CLIOperationContext.java  |  138 ---
 .../internal/security/JMXOperationContext.java  |  177 ---
 .../internal/security/JSONAuthorization.java    |  308 ------
 .../internal/security/MBeanServerWrapper.java   |  168 ++-
 .../security/ManagementInterceptor.java         |  271 -----
 .../management/internal/security/Resource.java  |   26 -
 .../internal/security/ResourceConstants.java    |   91 +-
 .../internal/security/ResourceOperation.java    |   13 +-
 .../security/ResourceOperationContext.java      |  221 +---
 .../controllers/AbstractCommandsController.java |   82 +-
 .../controllers/ConfigCommandsController.java   |   20 +-
 .../web/controllers/DataCommandsController.java |   26 +-
 .../DiskStoreCommandsController.java            |   14 +-
 .../controllers/FunctionCommandsController.java |    9 +-
 .../MiscellaneousCommandsController.java        |    8 +-
 .../web/controllers/WanCommandsController.java  |    2 +-
 .../EnvironmentVariablesHandlerInterceptor.java |   92 --
 .../support/LoginHandlerInterceptor.java        |  122 ++
 .../web/http/support/SimpleHttpRequester.java   |  105 +-
 .../web/shell/AbstractHttpOperationInvoker.java |   28 +-
 .../web/shell/RestHttpOperationInvoker.java     |   26 +-
 .../web/shell/SimpleHttpOperationInvoker.java   |   11 +-
 .../gemfire/security/AccessControl.java         |   16 +-
 .../gemfire/security/Authenticator.java         |   18 +-
 .../cache30/ClientMembershipDUnitTest.java      |  347 +++---
 .../gemfire/cache30/ReconnectDUnitTest.java     |  235 ++--
 .../internal/DistributionConfigJUnitTest.java   |   74 +-
 .../gemfire/internal/ConfigSourceJUnitTest.java |    8 +-
 .../extension/mock/MockExtensionCommands.java   |   23 +-
 .../internal/cache/ha/Bug48571DUnitTest.java    |   34 +-
 .../internal/cli/CommandManagerJUnitTest.java   |   45 +-
 .../internal/cli/GfshParserJUnitTest.java       |   45 +-
 .../management/internal/cli/HeadlessGfsh.java   |    2 +-
 .../cli/commands/CliCommandTestBase.java        |  126 ++-
 .../cli/commands/ConfigCommandsDUnitTest.java   |   26 +-
 ...eateAlterDestroyRegionCommandsDUnitTest.java |   34 +-
 .../cli/commands/DeployCommandsDUnitTest.java   |   14 +-
 .../commands/DiskStoreCommandsDUnitTest.java    |   30 +-
 .../commands/DiskStoreCommandsJUnitTest.java    |    1 +
 .../cli/commands/FunctionCommandsDUnitTest.java |  112 +-
 .../commands/GemfireDataCommandsDUnitTest.java  |   28 +-
 ...WithCacheLoaderDuringCacheMissDUnitTest.java |   14 +-
 .../cli/commands/IndexCommandsDUnitTest.java    |   21 +-
 ...stAndDescribeDiskStoreCommandsDUnitTest.java |   14 +-
 .../ListAndDescribeRegionDUnitTest.java         |   13 +-
 .../cli/commands/ListIndexCommandDUnitTest.java |  122 +-
 .../MiscellaneousCommandsDUnitTest.java         |   40 +-
 ...laneousCommandsExportLogsPart1DUnitTest.java |   15 +-
 ...laneousCommandsExportLogsPart2DUnitTest.java |   16 +-
 ...laneousCommandsExportLogsPart3DUnitTest.java |   24 +-
 ...laneousCommandsExportLogsPart4DUnitTest.java |   15 +-
 .../cli/commands/QueueCommandsDUnitTest.java    |   16 +-
 .../SharedConfigurationCommandsDUnitTest.java   |    9 +-
 .../cli/commands/ShellCommandsDUnitTest.java    |   12 +-
 .../cli/commands/ShowMetricsDUnitTest.java      |   16 +-
 .../cli/commands/ShowStackTraceDUnitTest.java   |   14 +-
 .../cli/commands/ToUpperResultCollector.java    |   65 ++
 .../cli/commands/UserCommandsDUnitTest.java     |   16 +-
 .../shell/GfshExecutionStrategyJUnitTest.java   |   36 +-
 .../cli/shell/GfshHistoryJUnitTest.java         |    2 -
 .../security/AccessControlMBeanJUnitTest.java   |   58 +
 ...rDistributedSystemMXBeanIntegrationTest.java |   50 -
 ...horizeOperationForMBeansIntegrationTest.java |  323 ------
 ...erationForRegionCommandsIntegrationTest.java |  136 ---
 ...CacheServerMBeanAuthenticationJUnitTest.java |   58 +
 .../CacheServerMBeanAuthorizationJUnitTest.java |   90 ++
 .../CacheServerMBeanShiroJUnitTest.java         |   93 ++
 .../security/CliCommandsSecurityTest.java       |   83 ++
 .../security/DataCommandsSecurityTest.java      |   83 ++
 .../DiskStoreMXBeanSecurityJUnitTest.java       |   83 ++
 .../security/ExampleJSONAuthorization.java      |  197 ++++
 .../GatewayReceiverMBeanSecurityTest.java       |   90 ++
 .../GatewaySenderMBeanSecurityTest.java         |  105 ++
 .../GeodeSecurityUtilCustomRealmJUnitTest.java  |   52 +
 .../GeodeSecurityUtilWithIniFileJUnitTest.java  |  147 +++
 .../security/GfshCommandsSecurityTest.java      |  165 +++
 .../security/GfshShellConnectionRule.java       |  109 ++
 .../security/JMXConnectionConfiguration.java    |   33 +
 .../internal/security/JSONAuthorization.java    |  201 ++++
 ...JSONAuthorizationDetailsIntegrationTest.java |  163 ---
 .../JsonAuthorizationCacheStartRule.java        |   83 ++
 .../LockServiceMBeanAuthorizationJUnitTest.java |   90 ++
 .../security/MBeanSecurityJUnitTest.java        |  117 ++
 .../security/MBeanServerConnectionRule.java     |  130 +++
 .../ManagerMBeanAuthorizationJUnitTest.java     |   78 ++
 .../security/MemberMBeanSecurityJUnitTest.java  |  110 ++
 ...tionCodesForDataCommandsIntegrationTest.java |  101 --
 ...tionCodesForDistributedSystemMXBeanTest.java |   76 --
 .../ResourceOperationContextJUnitTest.java      |   88 ++
 .../internal/security/ShiroCacheStartRule.java  |   63 ++
 .../internal/security/TestCommand.java          |  227 ++++
 .../ReadOpFileAccessControllerJUnitTest.java    |   19 +-
 .../security/ClientAuthorizationDUnitTest.java  |    7 +-
 .../security/ClientAuthorizationTestCase.java   |   20 +-
 .../DeltaClientPostAuthorizationDUnitTest.java  |   21 +-
 .../security/templates/XmlAuthorization.java    |    2 +-
 .../com/gemstone/gemfire/test/dunit/VM.java     |   62 +-
 .../gemstone/gemfire/util/test/TestUtil.java    |    8 +-
 .../gemfire/codeAnalysis/excludedClasses.txt    |   28 +-
 .../codeAnalysis/sanctionedSerializables.txt    |    2 +
 .../management/internal/security/auth1.json     |   28 +-
 .../management/internal/security/auth3.json     |   55 +-
 .../internal/security/cacheServer.json          |  188 ++++
 .../management/internal/security/shiro-ini.json |   87 ++
 .../internal/security/testInheritRole.json      |   40 -
 .../security/testSimpleUserAndRole.json         |   14 -
 .../testUserAndRoleRegionServerGroup.json       |   16 -
 .../internal/security/testUserMultipleRole.json |   20 -
 geode-core/src/test/resources/shiro.ini         |   40 +
 .../cli/commands/ClientCommandsDUnitTest.java   |   53 +-
 .../DurableClientCommandsDUnitTest.java         |    2 +-
 .../junit/rules/DescribedExternalResource.java  |   63 ++
 .../gemfire/cache/lucene/LuceneIndex.java       |    2 +-
 .../LuceneIndexForReplicatedRegion.java         |    2 +-
 .../cache/lucene/internal/LuceneIndexImpl.java  |   14 +-
 .../lucene/internal/LuceneServiceImpl.java      |   21 +-
 .../internal/xml/LuceneIndexCreation.java       |   42 +-
 .../internal/xml/LuceneIndexXmlGenerator.java   |    5 +
 .../lucene/internal/xml/LuceneXmlConstants.java |    1 +
 .../lucene/internal/xml/LuceneXmlParser.java    |   27 +-
 .../geode.apache.org/lucene/lucene-1.0.xsd      |    1 +
 .../LuceneFunctionReadPathDUnitTest.java        |   17 +-
 ...uceneIndexXmlParserIntegrationJUnitTest.java |   52 +-
 .../xml/LuceneIndexXmlParserJUnitTest.java      |   97 +-
 ...erIntegrationJUnitTest.createIndex.cache.xml |    7 +-
 ...nJUnitTest.parseIndexWithAnalyzers.cache.xml |   36 +
 geode-pulse/build.gradle                        |    1 +
 .../tools/pulse/internal/PulseAppListener.java  |   68 +-
 .../internal/controllers/PulseController.java   |   28 +-
 .../tools/pulse/internal/data/Cluster.java      |   14 +-
 .../pulse/internal/data/JMXDataUpdater.java     |  217 ++--
 .../pulse/internal/data/PulseConstants.java     |   14 +
 .../tools/pulse/internal/data/Repository.java   |   54 +-
 .../pulse/internal/log/PulseLogWriter.java      |    4 -
 .../security/GemFireAuthentication.java         |   91 ++
 .../security/GemFireAuthenticationProvider.java |   80 ++
 .../pulse/internal/security/LogoutHandler.java  |   55 +
 geode-pulse/src/main/resources/pulse.properties |   12 +-
 .../src/main/webapp/WEB-INF/spring-security.xml |   59 +-
 .../controllers/PulseControllerJUnitTest.java   |   56 +-
 .../tools/pulse/testbed/driver/PulseUITest.java |    2 +-
 .../pulse/tests/DataBrowserResultLoader.java    |   14 +-
 .../tools/pulse/tests/PulseAbstractTest.java    | 1047 ++++++++++++++++++
 .../tools/pulse/tests/PulseAuthTest.java        |   33 +
 .../tools/pulse/tests/PulseAutomatedTest.java   |   17 +-
 .../tools/pulse/tests/PulseBaseTest.java        |    4 +-
 .../tools/pulse/tests/PulseNoAuthTest.java      |   33 +
 .../gemfire/tools/pulse/tests/PulseTest.java    | 1039 -----------------
 .../gemfire/tools/pulse/tests/Region.java       |    2 +-
 .../gemfire/tools/pulse/tests/Server.java       |  156 ++-
 geode-pulse/src/test/resources/pulse-auth.json  |   21 +
 .../cache/wan/CacheClientNotifierDUnitTest.java |  106 +-
 .../cache/wan/Simple2CacheServerDUnitTest.java  |  157 +++
 .../wan/wancommand/WANCommandTestBase.java      |  104 +-
 ...anCommandCreateGatewayReceiverDUnitTest.java |  174 +--
 .../WanCommandCreateGatewaySenderDUnitTest.java |  192 ++--
 ...WanCommandGatewayReceiverStartDUnitTest.java |  120 +-
 .../WanCommandGatewayReceiverStopDUnitTest.java |  120 +-
 .../WanCommandGatewaySenderStartDUnitTest.java  |  177 ++-
 .../WanCommandGatewaySenderStopDUnitTest.java   |  158 +--
 .../wan/wancommand/WanCommandListDUnitTest.java |  135 ++-
 .../WanCommandPauseResumeDUnitTest.java         |  370 +++----
 .../wancommand/WanCommandStatusDUnitTest.java   |  174 +--
 .../src/main/webapp/WEB-INF/gemfire-servlet.xml |    2 +-
 ...entVariablesHandlerInterceptorJUnitTest.java |  267 -----
 .../LoginHandlerInterceptorJUnitTest.java       |  274 +++++
 gradle.properties                               |    1 +
 gradle/dependency-versions.properties           |    1 +
 gradle/wrapper/gradle-wrapper.jar               |  Bin 53637 -> 53639 bytes
 gradle/wrapper/gradle-wrapper.properties        |    2 +-
 settings.gradle                                 |    1 -
 246 files changed, 10184 insertions(+), 7052 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6334f2f/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/HeadlessGfsh.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6334f2f/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CliCommandTestBase.java
----------------------------------------------------------------------
diff --cc geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CliCommandTestBase.java
index 0ab68c8,f2dc80f..3b99733
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CliCommandTestBase.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CliCommandTestBase.java
@@@ -30,21 -45,8 +45,11 @@@ import com.gemstone.gemfire.management.
  import com.gemstone.gemfire.test.dunit.Host;
  import com.gemstone.gemfire.test.dunit.cache.internal.JUnit4CacheTestCase;
  
- import java.io.IOException;
- import java.io.PrintStream;
- import java.net.InetAddress;
- import java.net.UnknownHostException;
- import java.util.Map;
- import java.util.Properties;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- 
- import static com.gemstone.gemfire.test.dunit.Assert.*;
- import static com.gemstone.gemfire.test.dunit.LogWriterUtils.getLogWriter;
+ import org.junit.runners.Parameterized;
  
 +import org.junit.Rule;
 +import org.junit.rules.TemporaryFolder;
 +
  /**
   * Base class for all the CLI/gfsh command dunit tests.
   */
@@@ -58,30 -58,35 +61,51 @@@ public abstract class CliCommandTestBas
  
    private transient HeadlessGfsh shell;
  
-   private boolean useHttpOnConnect = Boolean.getBoolean("useHTTP");
+   protected boolean useHttpOnConnect = false;
+   protected boolean enableAuth = false;
+   protected String jsonAuthorization = "cacheServer.json";
+   protected String username = "super-user";
+   protected String password = "1234567";
  
 -  protected int httpPort;
 -  protected int jmxPort;
 +  private transient int httpPort;
 +  private transient int jmxPort;
 +  private transient String jmxHost;
 +  protected transient String gfshDir;
  
 -  protected String jmxHost;
 +  @Rule
 +  public transient TemporaryFolder temporaryFolder = new TemporaryFolder();
  
+   public CliCommandTestBase(){
+     this(false);
+   }
+ 
+   // Junit will use the parameters to initialize the test class and run the tests with different parameters
+   public CliCommandTestBase(boolean useHttpOnConnect){
+     this.useHttpOnConnect = useHttpOnConnect;
+   }
+ 
+   @Parameterized.Parameters
+   public static Collection parameters() {
+     return Arrays.asList(new Object[][] {
 -        { false},  // useHttpOnConnect=false,
 -        { true } // useHttpOnConnect=true,
++            { false},  // useHttpOnConnect=false,
++            { true } // useHttpOnConnect=true,
+     });
+   }
+ 
    @Override
 +  public final void postSetUp() throws Exception {
 +    setUpCliCommandTestBase();
 +    postSetUpCliCommandTestBase();
 +  }
 +
 +  private void setUpCliCommandTestBase() throws Exception {
 +    this.gfshDir = this.temporaryFolder.newFolder("gfsh_files").getCanonicalPath();
 +  }
 +
 +  protected void postSetUpCliCommandTestBase() throws Exception {
 +  }
 +
 +  @Override
    public final void preTearDownCacheTestCase() throws Exception {
      preTearDownCliCommandTestBase();
      destroyDefaultSetup();
@@@ -151,8 -166,7 +185,7 @@@
    /**
     * Destroy all of the components created for the default setup.
     */
-   @SuppressWarnings("serial")
 -    protected final void destroyDefaultSetup() {
 +  protected final void destroyDefaultSetup() {
      if (this.shell != null) {
        executeCommand(shell, "exit");
        this.shell.terminate();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6334f2f/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/DeployCommandsDUnitTest.java
----------------------------------------------------------------------
diff --cc geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/DeployCommandsDUnitTest.java
index fc8bb05,e4b50b9..ac26b1b
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/DeployCommandsDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/DeployCommandsDUnitTest.java
@@@ -55,17 -56,20 +56,22 @@@ import org.junit.runners.Parameterized
   */
  @Category(DistributedTest.class)
  @SuppressWarnings("serial")
+ @RunWith(Parameterized.class)
  public class DeployCommandsDUnitTest extends CliCommandTestBase {
  
 -  File newDeployableJarFile = new File("DeployCommandsDUnit1.jar");
 -
 -  transient private ClassBuilder classBuilder = new ClassBuilder();
 -  transient private CommandProcessor commandProcessor;
 +  private final Pattern pattern = Pattern.compile("^" + JarDeployer.JAR_PREFIX + "DeployCommandsDUnit.*#\\d++$");
 +  private File newDeployableJarFile;
 +  private transient ClassBuilder classBuilder;
 +  private transient CommandProcessor commandProcessor;
  
+   public DeployCommandsDUnitTest(boolean useHttpOnConnect){
+     super(useHttpOnConnect);
+   }
+ 
    @Override
 -  public final void postSetUp() throws Exception {
 +  public final void postSetUpCliCommandTestBase() throws Exception {
 +    this.newDeployableJarFile = new File(this.temporaryFolder.getRoot().getCanonicalPath() + File.separator + "DeployCommandsDUnit1.jar");
 +    this.classBuilder = new ClassBuilder();
      this.commandProcessor = new CommandProcessor();
      assertFalse(this.commandProcessor.isStopped());
  

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6334f2f/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/GetCommandOnRegionWithCacheLoaderDuringCacheMissDUnitTest.java
----------------------------------------------------------------------
diff --cc geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/GetCommandOnRegionWithCacheLoaderDuringCacheMissDUnitTest.java
index 9390ba0,55ef25c..ecf88bf
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/GetCommandOnRegionWithCacheLoaderDuringCacheMissDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/GetCommandOnRegionWithCacheLoaderDuringCacheMissDUnitTest.java
@@@ -70,63 -73,17 +72,67 @@@ public class GetCommandOnRegionWithCach
    private static final String GEMFIRE_LOG_LEVEL = System.getProperty("logLevel", "config");
    private static final String USERS_REGION_NAME = "Users";
  
 -
+   public GetCommandOnRegionWithCacheLoaderDuringCacheMissDUnitTest(boolean useHttpOnConnect){
+     super(useHttpOnConnect);
+   }
+ 
 -  protected static String getRegionPath(final String regionName) {
 -    return (regionName.startsWith(Region.SEPARATOR) ? regionName : String.format("%1$s%2$s", Region.SEPARATOR,
 -        regionName));
 +  @Override
 +  public final void postSetUpCliCommandTestBase() throws Exception {
 +    Properties managerDistributedSystemProperties = createDistributedSystemProperties(GEMFIRE_MANAGER_NAME);
-     HeadlessGfsh gfsh = createDefaultSetup(managerDistributedSystemProperties);
++    HeadlessGfsh gfsh = setUpJmxManagerOnVm0ThenConnect(managerDistributedSystemProperties);
 +
 +    assertNotNull(gfsh);
 +    assertTrue(gfsh.isConnectedAndReady());
 +
 +    setupGemFire();
 +    verifyGemFireSetup(createPeer(getHost(0).getVM(0), managerDistributedSystemProperties));
 +  }
 +
 +  @Test
 +  public void testGetOnCacheMiss() {
 +    doHousekeeping();
 +
 +    CommandStringBuilder command = new CommandStringBuilder(CliStrings.GET);
 +    command.addOption(CliStrings.GET__REGIONNAME, USERS_REGION_NAME);
 +    command.addOption(CliStrings.GET__KEY, "jonbloom");
 +
 +    assertResult(true, runCommand(command.toString()));
 +
 +    command = new CommandStringBuilder(CliStrings.GET);
 +    command.addOption(CliStrings.GET__REGIONNAME, USERS_REGION_NAME);
 +    command.addOption(CliStrings.GET__KEY, "jondoe");
 +    command.addOption(CliStrings.GET__LOAD, "false");
 +
 +    assertResult(false, runCommand(command.toString()));
 +
 +    command = new CommandStringBuilder(CliStrings.GET);
 +    command.addOption(CliStrings.GET__REGIONNAME, USERS_REGION_NAME);
 +    command.addOption(CliStrings.GET__KEY, "jondoe");
 +    command.addOption(CliStrings.GET__LOAD, "true");
 +
 +    assertResult(true, runCommand(command.toString()));
 +
 +    // NOTE test the unspecified default value for the --load-on-cache-miss
 +    command = new CommandStringBuilder(CliStrings.GET);
 +    command.addOption(CliStrings.GET__REGIONNAME, USERS_REGION_NAME);
 +    command.addOption(CliStrings.GET__KEY, "janedoe");
 +
 +    assertResult(true, runCommand(command.toString()));
 +
 +    // NOTE now test an absolute cache miss both for in the Region as well as the CacheLoader
 +    command = new CommandStringBuilder(CliStrings.GET);
 +    command.addOption(CliStrings.GET__REGIONNAME, USERS_REGION_NAME);
 +    command.addOption(CliStrings.GET__KEY, "nonexistinguser");
 +    command.addOption(CliStrings.GET__LOAD, "true");
 +
 +    assertResult(false, runCommand(command.toString()));
 +  }
 +
 +  private static String getRegionPath(final String regionName) {
 +    return (regionName.startsWith(Region.SEPARATOR) ? regionName : String.format("%1$s%2$s", Region.SEPARATOR, regionName));
    }
  
 -  protected static String toString(final Result result) {
 +  private static String toString(final Result result) {
      assert result != null : "The Result object from the command execution was null!";
  
      StringBuilder buffer = new StringBuilder(System.getProperty("line.separator"));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6334f2f/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListAndDescribeDiskStoreCommandsDUnitTest.java
----------------------------------------------------------------------
diff --cc geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListAndDescribeDiskStoreCommandsDUnitTest.java
index fcf3fc7,bb46b75..1f09e4d
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListAndDescribeDiskStoreCommandsDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListAndDescribeDiskStoreCommandsDUnitTest.java
@@@ -49,51 -50,14 +50,56 @@@ import org.junit.runners.Parameterized
   * @since 7.0
   */
  @Category(DistributedTest.class)
+ @RunWith(Parameterized.class)
  public class ListAndDescribeDiskStoreCommandsDUnitTest extends CliCommandTestBase {
  
+   public ListAndDescribeDiskStoreCommandsDUnitTest(boolean useHttpOnConnect) {
+     super(useHttpOnConnect);
+   }
+ 
 -  protected static String toString(final Result result) {
 +  @Override
 +  public final void postSetUpCliCommandTestBase() throws Exception {
-     createDefaultSetup(null);
++    setUpJmxManagerOnVm0ThenConnect(null);
 +    setupGemFire();
 +  }
 +
 +  @Test
 +  public void testListDiskStore() throws Exception {
 +    final Result result = executeCommand(CliStrings.LIST_DISK_STORE);
 +
 +    assertNotNull(result);
 +    getLogWriter().info(toString(result));
 +    assertEquals(Result.Status.OK, result.getStatus());
 +  }
 +
 +  @Test
 +  public void testDescribeDiskStore() throws Exception {
 +    final Result result = executeCommand(CliStrings.DESCRIBE_DISK_STORE + " --member=producerServer --name=producerData");
 +
 +    assertNotNull(result);
 +    getLogWriter().info(toString(result));
 +    assertEquals(Result.Status.OK, result.getStatus());
 +  }
 +
 +  @Test
 +  public void testDescribeDiskStoreWithInvalidMemberName() throws Exception {
 +    final Result commandResult = executeCommand(CliStrings.DESCRIBE_DISK_STORE + " --member=badMemberName --name=producerData");
 +
 +    assertNotNull(commandResult);
 +    assertEquals(Result.Status.ERROR, commandResult.getStatus());
 +    assertEquals(CliStrings.format(CliStrings.MEMBER_NOT_FOUND_ERROR_MESSAGE, "badMemberName"), toString(commandResult));
 +  }
 +
 +  @Test
 +  public void testDescribeDiskStoreWithInvalidDiskStoreName() {
 +    final Result commandResult = executeCommand(CliStrings.DESCRIBE_DISK_STORE + " --member=producerServer --name=badDiskStoreName");
 +
 +    assertNotNull(commandResult);
 +    assertEquals(Result.Status.ERROR, commandResult.getStatus());
 +    assertEquals("A disk store with name (badDiskStoreName) was not found on member (producerServer).", toString(commandResult));
 +  }
 +
 +  private static String toString(final Result result) {
      assert result != null : "The Result object from the command execution cannot be null!";
  
      final StringBuilder buffer = new StringBuilder(System.getProperty("line.separator"));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6334f2f/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListIndexCommandDUnitTest.java
----------------------------------------------------------------------
diff --cc geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListIndexCommandDUnitTest.java
index 3013ba6,97ca98a..c527a80
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListIndexCommandDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListIndexCommandDUnitTest.java
@@@ -31,9 -31,6 +31,11 @@@ import java.util.Random
  import java.util.Set;
  import java.util.concurrent.atomic.AtomicLong;
  
 +import org.junit.Test;
 +import org.junit.experimental.categories.Category;
++import org.junit.runner.RunWith;
++import org.junit.runners.Parameterized;
 +
  import com.gemstone.gemfire.cache.Cache;
  import com.gemstone.gemfire.cache.DataPolicy;
  import com.gemstone.gemfire.cache.Region;
@@@ -58,7 -55,11 +60,7 @@@ import com.gemstone.gemfire.test.junit.
  
  /**
   * The ListIndexCommandDUnitTest class is distributed test suite of test cases for testing the index-based GemFire shell
-- * (Gfsh) commands. </p>
++ * (Gfsh) commands.
   *
   * @see com.gemstone.gemfire.management.internal.cli.commands.CliCommandTestBase
   * @see com.gemstone.gemfire.management.internal.cli.commands.IndexCommands
@@@ -66,13 -67,18 +68,24 @@@
   */
  @SuppressWarnings("unused")
  @Category(DistributedTest.class)
+ @RunWith(Parameterized.class)
  public class ListIndexCommandDUnitTest extends CliCommandTestBase {
  
--  protected static final int DEFAULT_REGION_INITIAL_CAPACITY = 10000;
++  private static final int DEFAULT_REGION_INITIAL_CAPACITY = 10000;
  
    private final AtomicLong idGenerator = new AtomicLong(0l);
  
-   protected static String toString(final Result result) {
+   public ListIndexCommandDUnitTest(boolean useHttpOnConnect) {
+     super(useHttpOnConnect);
+   }
+ 
 -  protected static String toString(final Result result) {
++  @Override
++  public final void postSetUpCliCommandTestBase() throws Exception {
++    setUpJmxManagerOnVm0ThenConnect(null);
++    setupGemFire();
++  }
++
++  private static String toString(final Result result) {
      assert result != null : "The Result object from the command execution cannot be null!";
  
      final StringBuilder buffer = new StringBuilder(System.getProperty("line.separator"));
@@@ -85,48 -91,48 +98,41 @@@
      return buffer.toString();
    }
  
--  @Override
-   public final void postSetUpCliCommandTestBase() throws Exception {
-     createDefaultSetup(null);
 -  public final void postSetUp() throws Exception {
 -    setUpJmxManagerOnVm0ThenConnect(null);
--    setupGemFire();
--  }
--
--  protected Index createIndex(final String name, final String indexedExpression, final String fromClause) {
++  private Index createIndex(final String name, final String indexedExpression, final String fromClause) {
      return createIndex(name, IndexType.FUNCTIONAL, indexedExpression, fromClause);
    }
  
--  protected Index createIndex(final String name, final IndexType type, final String indexedExpression,
--      final String fromClause) {
++  private Index createIndex(final String name, final IndexType type, final String indexedExpression, final String fromClause) {
      return new IndexAdapter(name, type, indexedExpression, fromClause);
    }
  
--  protected Peer createPeer(final VM vm, final Properties distributedSystemProperties,
--      final RegionDefinition... regions) {
++  private Peer createPeer(final VM vm, final Properties distributedSystemProperties, final RegionDefinition... regions) {
      final Peer peer = new Peer(vm, distributedSystemProperties);
      peer.add(regions);
      return peer;
    }
  
--  protected RegionDefinition createRegionDefinition(final String regionName, final Class<?> keyConstraint,
--      final Class<?> valueConstraint, final Index... indexes) {
++  private RegionDefinition createRegionDefinition(final String regionName, final Class<?> keyConstraint, final Class<?> valueConstraint, final Index... indexes) {
      final RegionDefinition regionDefinition = new RegionDefinition(regionName, keyConstraint, valueConstraint);
      regionDefinition.add(indexes);
      return regionDefinition;
    }
  
--  protected void setupGemFire() throws Exception {
++  private void setupGemFire() throws Exception {
      final Host host = Host.getHost(0);
  
      final VM vm1 = host.getVM(1);
      final VM vm2 = host.getVM(2);
  
--    final Peer peer1 = createPeer(vm1, createDistributedSystemProperties("consumerServer"),
--        createRegionDefinition("consumers", Long.class, Consumer.class,
--            createIndex("cidIdx", IndexType.PRIMARY_KEY, "id", "/consumers"),
--            createIndex("cnameIdx", "name", "/consumers")));
++    final Peer peer1 = createPeer(vm1,
++                                  createDistributedSystemProperties("consumerServer"),
++                                  createRegionDefinition("consumers", Long.class, Consumer.class,
++                                          createIndex("cidIdx", IndexType.PRIMARY_KEY, "id", "/consumers"),
++                                          createIndex("cnameIdx", "name", "/consumers")));
  
--    final Peer peer2 = createPeer(vm2, createDistributedSystemProperties("producerServer"),
--        createRegionDefinition("producers", Long.class, Producer.class, createIndex("pidIdx", "id", "/producers")));
++    final Peer peer2 = createPeer(vm2,
++                                  createDistributedSystemProperties("producerServer"),
++                                  createRegionDefinition("producers", Long.class, Producer.class, createIndex("pidIdx", "id", "/producers")));
  
      createRegionWithIndexes(peer1);
      createRegionWithIndexes(peer2);
@@@ -135,7 -141,7 +141,7 @@@
      loadProducerData(peer2, 10000);
    }
  
--  protected Properties createDistributedSystemProperties(final String gemfireName) {
++  private Properties createDistributedSystemProperties(final String gemfireName) {
      final Properties distributedSystemProperties = new Properties();
  
      distributedSystemProperties.setProperty(DistributionConfig.LOG_LEVEL_NAME, getDUnitLogLevel());
@@@ -144,9 -150,9 +150,8 @@@
      return distributedSystemProperties;
    }
  
--  protected void createRegionWithIndexes(final Peer peer) throws Exception {
--    peer.run(new SerializableRunnable(
--        String.format("Creating Regions with Indexes on GemFire peer (%1$s).", peer.getName())) {
++  private void createRegionWithIndexes(final Peer peer) throws Exception {
++    peer.run(new SerializableRunnable(String.format("Creating Regions with Indexes on GemFire peer (%1$s).", peer.getName())) {
        public void run() {
          // create the GemFire distributed system with custom configuration properties...
          getSystem(peer.getConfiguration());
@@@ -176,16 -182,16 +181,14 @@@
                }
              }
            } catch (Exception e) {
--            getLogWriter().error(
--                String.format("Error occurred creating Index (%1$s) on Region (%2$s) - (%3$s)", indexName,
--                    region.getFullPath(), e.getMessage()));
++            getLogWriter().error(String.format("Error occurred creating Index (%1$s) on Region (%2$s) - (%3$s)", indexName, region.getFullPath(), e.getMessage()));
            }
          }
        }
      });
    }
  
--  protected void loadConsumerData(final Peer peer, final int operationsTotal) throws Exception {
++  private void loadConsumerData(final Peer peer, final int operationsTotal) throws Exception {
      peer.run(new SerializableRunnable("Load /consumers Region with data") {
        public void run() {
          final Cache cache = getCache();
@@@ -231,7 -237,7 +234,7 @@@
      });
    }
  
--  protected void loadProducerData(final Peer peer, final int operationsTotal) throws Exception {
++  private void loadProducerData(final Peer peer, final int operationsTotal) throws Exception {
      peer.run(new SerializableRunnable("Load /producers Region with data") {
        public void run() {
          final Cache cache = getCache();
@@@ -276,14 -282,14 +279,13 @@@
    }
  
    @SuppressWarnings("unchecked")
--  protected <T extends Comparable<T>, B extends AbstractBean<T>> B query(final Cache cache, final String queryString) {
++  private <T extends Comparable<T>, B extends AbstractBean<T>> B query(final Cache cache, final String queryString) {
      try {
        getLogWriter().info(String.format("Running Query (%1$s) in GemFire...", queryString));
  
        final SelectResults<B> results = (SelectResults<B>) cache.getQueryService().newQuery(queryString).execute();
  
--      getLogWriter().info(
--          String.format("Running Query (%1$s) in GemFire returned (%2$d) result(s).", queryString, results.size()));
++      getLogWriter().info(String.format("Running Query (%1$s) in GemFire returned (%2$d) result(s).", queryString, results.size()));
  
        return (results.iterator().hasNext() ? results.iterator().next() : null);
      } catch (Exception e) {
@@@ -291,23 -297,23 +293,17 @@@
      }
    }
  
--  protected <T extends Comparable<T>, B extends AbstractBean<T>> B query(final Region<T, B> region,
--      final String queryPredicate) {
++  private <T extends Comparable<T>, B extends AbstractBean<T>> B query(final Region<T, B> region, final String queryPredicate) {
      try {
--      getLogWriter().info(
--          String.format("Running Query (%1$s) on Region (%2$s)...", queryPredicate, region.getFullPath()));
++      getLogWriter().info(String.format("Running Query (%1$s) on Region (%2$s)...", queryPredicate, region.getFullPath()));
  
        final SelectResults<B> results = region.query(queryPredicate);
  
--      getLogWriter().info(
--          String.format("Running Query (%1$s) on Region (%2$s) returned (%3$d) result(s).", queryPredicate,
--              region.getFullPath(), results.size()));
++      getLogWriter().info(String.format("Running Query (%1$s) on Region (%2$s) returned (%3$d) result(s).", queryPredicate, region.getFullPath(), results.size()));
  
        return (results.iterator().hasNext() ? results.iterator().next() : null);
      } catch (Exception e) {
--      throw new RuntimeException(
--          String.format("An error occurred running Query (%1$s) on Region (%2$s)!", queryPredicate,
--              region.getFullPath()), e);
++      throw new RuntimeException(String.format("An error occurred running Query (%1$s) on Region (%2$s)!", queryPredicate, region.getFullPath()), e);
      }
    }
  
@@@ -320,7 -326,7 +316,7 @@@
      assertEquals(Result.Status.OK, result.getStatus());
    }
  
--  protected static class Peer implements Iterable<RegionDefinition>, Serializable {
++  private static class Peer implements Iterable<RegionDefinition>, Serializable {
  
      private final Properties distributedSystemProperties;
  
@@@ -350,6 -356,6 +346,7 @@@
        return (regionDefinitions != null && regions.addAll(Arrays.asList(regionDefinitions)));
      }
  
++    @Override
      public Iterator<RegionDefinition> iterator() {
        return Collections.unmodifiableSet(regions).iterator();
      }
@@@ -377,7 -383,7 +374,7 @@@
      }
    }
  
--  protected static class IndexAdapter implements Index, Serializable {
++  private static class IndexAdapter implements Index, Serializable {
  
      private final IndexDetails.IndexType type;
  
@@@ -389,11 -395,11 +386,9 @@@
        this(name, IndexType.FUNCTIONAL, indexedExpression, fromClause);
      }
  
--    protected IndexAdapter(final String name, final IndexType type, final String indexedExpression,
--        final String fromClause) {
++    protected IndexAdapter(final String name, final IndexType type, final String indexedExpression, final String fromClause) {
        assert name != null : "The name of the Index cannot be null!";
--      assert indexedExpression != null : String.format("The expression to index for Index (%1$s) cannot be null!",
--          name);
++      assert indexedExpression != null : String.format("The expression to index for Index (%1$s) cannot be null!", name);
        assert fromClause != null : String.format("The from clause for Index (%1$s) cannot be null!", name);
  
        this.type = ObjectUtils.defaultIfNull(IndexDetails.IndexType.valueOf(type), IndexDetails.IndexType.FUNCTIONAL);
@@@ -402,42 -408,42 +397,52 @@@
        this.fromClause = fromClause;
      }
  
++    @Override
      public String getName() {
        return this.name;
      }
  
++    @Override
      public String getFromClause() {
        return this.fromClause;
      }
  
++    @Override
      public String getCanonicalizedFromClause() {
        return this.fromClause;
      }
  
++    @Override
      public String getIndexedExpression() {
        return this.indexedExpression;
      }
  
++    @Override
      public String getCanonicalizedIndexedExpression() {
        return this.indexedExpression;
      }
  
++    @Override
      public String getProjectionAttributes() {
        throw new UnsupportedOperationException("Not Implemented!");
      }
  
++    @Override
      public String getCanonicalizedProjectionAttributes() {
        throw new UnsupportedOperationException("Not Implemented!");
      }
  
++    @Override
      public Region<?, ?> getRegion() {
        throw new UnsupportedOperationException("Not Implemented!");
      }
  
++    @Override
      public IndexStatistics getStatistics() {
        throw new UnsupportedOperationException("Not Implemented!");
      }
  
++    @Override
      public IndexType getType() {
        return type.getType();
      }
@@@ -454,7 -460,7 +459,7 @@@
      }
    }
  
--  protected static class RegionDefinition implements Iterable<Index>, Serializable {
++  private static class RegionDefinition implements Iterable<Index>, Serializable {
  
      private final Class<?> keyConstraint;
      private final Class<?> valueConstraint;
@@@ -487,6 -493,6 +492,7 @@@
        return (indexes != null && this.indexes.addAll(Arrays.asList(indexes)));
      }
  
++    @Override
      public Iterator<Index> iterator() {
        return Collections.unmodifiableSet(indexes).iterator();
      }
@@@ -528,7 -534,7 +534,7 @@@
      }
    }
  
--  protected static abstract class AbstractBean<T extends Comparable<T>> implements MutableIdentifiable<T>, Serializable {
++  private static abstract class AbstractBean<T extends Comparable<T>> implements MutableIdentifiable<T>, Serializable {
  
      private T id;
      private String name;
@@@ -540,10 -546,10 +546,12 @@@
        this.id = id;
      }
  
++    @Override
      public T getId() {
        return id;
      }
  
++    @Override
      public void setId(final T id) {
        this.id = id;
      }
@@@ -588,7 -594,7 +596,7 @@@
      }
    }
  
--  public static class Consumer extends AbstractBean<Long> {
++  private static class Consumer extends AbstractBean<Long> {
  
      private volatile int units;
  
@@@ -608,7 -614,7 +616,7 @@@
      }
    }
  
--  public static class Producer extends AbstractBean<Long> {
++  private static class Producer extends AbstractBean<Long> {
  
      private volatile int units;
  
@@@ -628,7 -634,7 +636,7 @@@
      }
    }
  
--  public static class Proxy extends AbstractBean<Long> {
++  private static class Proxy extends AbstractBean<Long> {
  
      private final AbstractBean<Long> bean;
      private int unitsSnapshot;
@@@ -661,7 -667,7 +669,7 @@@
      }
    }
  
--  protected static enum CrudOperation {
++  private static enum CrudOperation {
      CREATE,
      RETRIEVE,
      UPDATE,

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6334f2f/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/SharedConfigurationCommandsDUnitTest.java
----------------------------------------------------------------------
diff --cc geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/SharedConfigurationCommandsDUnitTest.java
index 4182601,d871062..917678d
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/SharedConfigurationCommandsDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/SharedConfigurationCommandsDUnitTest.java
@@@ -31,9 -25,8 +31,11 @@@ import java.io.IOException
  import java.util.Properties;
  import java.util.Set;
  
 +import org.junit.Test;
 +import org.junit.experimental.categories.Category;
++import org.junit.runner.RunWith;
++import org.junit.runners.Parameterized;
 +
  import com.gemstone.gemfire.cache.Cache;
  import com.gemstone.gemfire.cache.CacheFactory;
  import com.gemstone.gemfire.distributed.DistributedMember;
@@@ -58,94 -61,75 +60,99 @@@ import com.gemstone.gemfire.test.junit.
   * DUnit test to test export and import of shared configuration.
   */
  @Category(DistributedTest.class)
 -@SuppressWarnings("unchecked")
+ @RunWith(Parameterized.class)
++@SuppressWarnings("unchecked")
  public class SharedConfigurationCommandsDUnitTest extends CliCommandTestBase {
  
 -  private static final long serialVersionUID = 1L;
    private static final int TIMEOUT = 10000;
    private static final int INTERVAL = 500;
  
 -  File newDeployableJarFile = new File("DeployCommandsDUnit1.jar");
 -  private transient ClassBuilder classBuilder = new ClassBuilder();
 +  private final String region1Name = "r1";
 +  private final String region2Name = "r2";
 +  private final String logLevel = "info";
 +
 +  private String groupName;
 +
 +  private String deployedJarName;
 +  private File newDeployableJarFile;
 +  private ClassBuilder classBuilder;
 +
 +  private String sharedConfigZipFileName;
 +  private String startArchiveFileName;
 +  private int[] ports;
 +
 +  private int locator1Port;
 +  private String locator1Name;
 +  private String locator1LogFilePath;
 +
 +  private int locator2Port;
 +  private String locator2Name;
 +  private String locator2LogFilePath;
 +
 +  private int locator1HttpPort;
 +  private int locator1JmxPort;
 +  private String locator1JmxHost;
  
+   public SharedConfigurationCommandsDUnitTest(boolean useHttpOnConnect) {
+     super(useHttpOnConnect);
+   }
+ 
 -  @Test
 -  public void testExportImportSharedConfiguration() {
 +  @Override
 +  protected final void postSetUpCliCommandTestBase() throws Exception {
      disconnectAllFromDS();
  
 -    final String region1Name = "r1";
 -    final String region2Name = "r2";
 -    final String groupName = "testRegionSharedConfigGroup";
 -    final String sharedConfigZipFileName = "sharedConfig.zip";
 -    final String deployedJarName = "DeployCommandsDUnit1.jar";
 -    final String logLevel = "info";
 -    final String startArchiveFileName = "stats.gfs";
 -    final int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(3);
 -
 -    // TODO Sourabh - the code below is similar to CliCommandTestBase.setUpJmxManagerOnVm0ThenConnect(..); we may want to consider
 -    // refactoring this and combine the duplicate code blocks using either the Template Method and/or Strategy design
 -    // patterns.  We can talk about this.
 -    // Start the Locator and wait for shared configuration to be available
 -    final int locator1Port = ports[0];
 -    final String locator1Name = "locator1-" + locator1Port;
 -    VM locatorAndMgr = Host.getHost(0).getVM(3);
 -    Object[] result = (Object[]) locatorAndMgr.invoke(new SerializableCallable() {
 -      @Override
 -      public Object call() {
 -        int httpPort;
 -        int jmxPort;
 -        String jmxHost;
 +    this.groupName = getName();
- 
 +    this.deployedJarName = "DeployCommandsDUnit1.jar";
 +    this.newDeployableJarFile = new File(this.temporaryFolder.getRoot().getCanonicalPath() + File.separator + deployedJarName);
 +    this.classBuilder = new ClassBuilder();
  
 -        try {
 -          jmxHost = InetAddress.getLocalHost().getHostName();
 -        } catch (UnknownHostException ignore) {
 -          jmxHost = "localhost";
 -        }
 +    this.sharedConfigZipFileName = this.temporaryFolder.getRoot().getCanonicalPath() + File.separator + "sharedConfig.zip";
 +    this.startArchiveFileName = this.temporaryFolder.getRoot().getCanonicalPath() + File.separator + "stats.gfs";
 +    this.ports = getRandomAvailableTCPPorts(4);
  
 -        final int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);
 +    this.locator1Port = this.ports[0];
 +    this.locator1Name = "locator1-" + this.locator1Port;
 +    this.locator1LogFilePath = this.temporaryFolder.getRoot().getCanonicalPath() + File.separator + "locator-" + this.locator1Port + ".log";
  
 -        jmxPort = ports[0];
 -        httpPort = ports[1];
 +    this.locator2Port = this.ports[1];
 +    this.locator2Name = "Locator2-" + this.locator2Port;
 +    this.locator2LogFilePath = this.temporaryFolder.getRoot().getCanonicalPath() + File.separator + "locator-" + this.locator2Port + ".log";
  
 -        final File locatorLogFile = new File("locator-" + locator1Port + ".log");
 +    this.locator1HttpPort = ports[2];
 +    this.locator1JmxPort = ports[3];
 +    this.locator1JmxHost = getIPLiteral();
 +  }
 +
 +  @Override
 +  public final void postTearDownCacheTestCase() throws Exception {
 +    for (int i = 0; i < 4; i++) {
 +      getHost(0).getVM(i).invoke(SharedConfigurationTestUtils.cleanupLocator);
 +    }
 +  }
 +
 +  @Test
 +  public void testExportImportSharedConfiguration() throws IOException {
 +    // Start the Locator and wait for shared configuration to be available
 +    VM locatorAndMgr = getHost(0).getVM(3);
 +    Set<DistributedMember> normalMembers1 = (Set<DistributedMember>) locatorAndMgr.invoke(new SerializableCallable() {
 +      @Override
 +      public Object call() {
 +        final File locatorLogFile = new File(locator1LogFilePath);
  
          final Properties locatorProps = new Properties();
 -        locatorProps.setProperty(DistributionConfig.NAME_NAME, locator1Name);
 -        locatorProps.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
 -        locatorProps.setProperty(DistributionConfig.LOG_LEVEL_NAME, "config");
 -        locatorProps.setProperty(DistributionConfig.ENABLE_CLUSTER_CONFIGURATION_NAME, "true");
 -        locatorProps.setProperty(DistributionConfig.JMX_MANAGER_NAME, "true");
 -        locatorProps.setProperty(DistributionConfig.JMX_MANAGER_START_NAME, "true");
 -        locatorProps.setProperty(DistributionConfig.JMX_MANAGER_BIND_ADDRESS_NAME, String.valueOf(jmxHost));
 -        locatorProps.setProperty(DistributionConfig.JMX_MANAGER_PORT_NAME, String.valueOf(jmxPort));
 -        locatorProps.setProperty(DistributionConfig.HTTP_SERVICE_PORT_NAME, String.valueOf(httpPort));
 +        locatorProps.setProperty(NAME_NAME, locator1Name);
 +        locatorProps.setProperty(MCAST_PORT_NAME, "0");
 +        locatorProps.setProperty(LOG_LEVEL_NAME, "config");
 +        locatorProps.setProperty(ENABLE_CLUSTER_CONFIGURATION_NAME, "true");
 +        locatorProps.setProperty(JMX_MANAGER_NAME, "true");
 +        locatorProps.setProperty(JMX_MANAGER_START_NAME, "true");
 +        locatorProps.setProperty(JMX_MANAGER_BIND_ADDRESS_NAME, String.valueOf(locator1JmxHost));
 +        locatorProps.setProperty(JMX_MANAGER_PORT_NAME, String.valueOf(locator1JmxPort));
 +        locatorProps.setProperty(HTTP_SERVICE_PORT_NAME, String.valueOf(locator1HttpPort));
  
          try {
 -          final InternalLocator locator = (InternalLocator) Locator.startLocatorAndDS(locator1Port, locatorLogFile,
 -              null, locatorProps);
 +          final InternalLocator locator = (InternalLocator) Locator.startLocatorAndDS(locator1Port, locatorLogFile, null, locatorProps);
 +
            WaitCriterion wc = new WaitCriterion() {
              @Override
              public boolean done() {

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6334f2f/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommandsDUnitTest.java
----------------------------------------------------------------------
diff --cc geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommandsDUnitTest.java
index 2518b7d,d4fe871..ff73297
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommandsDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommandsDUnitTest.java
@@@ -45,8 -47,12 +47,12 @@@ public class ShellCommandsDUnitTest ext
  
    private static final long serialVersionUID = 1L;
  
+   public ShellCommandsDUnitTest(boolean useHttpOnConnect) {
+     super(useHttpOnConnect);
+   }
+ 
    @Override
 -  public final void postSetUp() throws Exception {
 +  public final void postSetUpCliCommandTestBase() throws Exception {
      getDefaultShell();
    }
  

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6334f2f/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/UserCommandsDUnitTest.java
----------------------------------------------------------------------
diff --cc geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/UserCommandsDUnitTest.java
index 9ab3fb4,9f44c14..b6fa8c4
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/UserCommandsDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/UserCommandsDUnitTest.java
@@@ -52,8 -54,12 +54,12 @@@ public class UserCommandsDUnitTest exte
    final File jarFile = new File(this.jarDirectory, "UserCommandsDUnit.jar");
    boolean deleteJarDirectory = false;
  
+   public UserCommandsDUnitTest(boolean useHttpOnConnect) {
+     super(useHttpOnConnect);
+   }
+ 
    @Override
 -  public final void postSetUp() throws Exception {
 +  public final void postSetUpCliCommandTestBase() throws Exception {
      createUserCommandJarFile();
    }
  

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6334f2f/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/wancommand/WANCommandTestBase.java
----------------------------------------------------------------------