You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by jb...@apache.org on 2018/08/07 21:43:38 UTC

[geode] branch develop updated: GEODE-5530: Moves shared test sources to frameworks. (#2262)

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

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


The following commit(s) were added to refs/heads/develop by this push:
     new a27bb5a  GEODE-5530: Moves shared test sources to frameworks. (#2262)
a27bb5a is described below

commit a27bb5a2367c619980e1334decc4cd4d342ac512
Author: Jacob Barrett <jb...@pivotal.io>
AuthorDate: Tue Aug 7 14:43:33 2018 -0700

    GEODE-5530: Moves shared test sources to frameworks. (#2262)
    
    Co-authored-by: Jacob Barrett <jb...@pivotal.io>
    Co-authored-by: Finn Southerland <fs...@pivotal.io>
---
 extensions/geode-modules-session/build.gradle      |    6 +-
 extensions/geode-modules-tomcat7/build.gradle      |    5 +-
 extensions/geode-modules-tomcat8/build.gradle      |    4 +-
 extensions/geode-modules/build.gradle              |    9 +-
 .../geode/modules/session/TestSessionsBase.java    |    0
 geode-assembly/build.gradle                        |   21 +-
 .../geode/session/tests/ContainerInstall.java      |    0
 .../geode/session/tests/ContainerManager.java      |    0
 .../session/tests/GenericAppServerContainer.java   |    0
 .../session/tests/GenericAppServerInstall.java     |    0
 .../geode/session/tests/ServerContainer.java       |    0
 .../geode/session/tests/TomcatContainer.java       |    0
 .../apache/geode/session/tests/TomcatInstall.java  |    0
 .../rest/internal/web/RestSecurityWithSSLTest.java |   13 +-
 geode-connectors/build.gradle                      |   12 +-
 .../org/apache/geode/codeAnalysis/openBugs.txt     |    0
 .../internal/cli/JDBCCommandsAvailabilityTest.java |    4 +-
 geode-core/build.gradle                            |    6 +-
 .../apache/geode/cache30/CacheXml70DUnitTest.java  |   53 +-
 .../internal/cache/DeltaPropagationDUnitTest.java  |   44 +-
 .../cache/HAOverflowMemObjectSizerDUnitTest.java   |   10 +-
 .../cache/execute/PRColocationDUnitTest.java       |   13 -
 .../cache/execute/PRTransactionDUnitTest.java      |    2 +-
 .../geode/internal/cache/ha/FailoverDUnitTest.java |    6 +-
 .../geode/internal/cache/ha/HAClearDUnitTest.java  |    6 +-
 .../internal/cache/ha/HAConflationDUnitTest.java   |    4 +-
 .../cache/ha/HAEventIdPropagationDUnitTest.java    |    4 +-
 .../geode/internal/cache/ha/HAGIIDUnitTest.java    |    8 +-
 .../cache/ha/HARQueueNewImplDUnitTest.java         |   50 +-
 .../ha/HARegionQueueExpiryRegressionTest.java      |    2 +-
 .../tier/sockets/ClientConflationDUnitTest.java    |    2 +-
 .../tier/sockets/ClientServerMiscDUnitTest.java    | 1383 +-------------------
 .../cache/tier/sockets/ConflationDUnitTest.java    |   28 +-
 .../configuration/DeployJarWithSSLDUnitTest.java   |   20 +-
 .../internal/net/SSLSocketIntegrationTest.java     |    2 +-
 .../internal/deployment/FunctionScannerTest.java   |   10 +-
 .../commands/CommandAvailabilityIndicatorTest.java |   42 +-
 geode-cq/build.gradle                              |   13 +-
 .../cache/PRDeltaPropagationDUnitTest.java         |   16 +-
 .../internal/cache/ha/CQListGIIDUnitTest.java      |   16 +-
 .../internal/cache/ha/HADispatcherDUnitTest.java   |    4 +-
 .../tier/sockets/ClientServerMiscBCDUnitTest.java  |    4 +-
 geode-dunit/build.gradle                           |   55 +
 .../java/batterytest/greplogs/ExpectedStrings.java |    0
 .../java/batterytest/greplogs/LogConsumer.java     |    0
 .../src/main}/java/hydra/MethExecutor.java         |    0
 .../src/main}/java/hydra/MethExecutorResult.java   |    0
 .../cache/client/internal/LocatorTestBase.java     |    0
 .../apache/geode/cache/query/QueryTestUtils.java   |    0
 .../cache/query/cq/dunit/CqQueryTestListener.java  |    0
 .../cache/query/dunit/CloseCacheAuthorization.java |    0
 .../geode/cache/query/dunit/HelperTestCase.java    |    2 +-
 .../geode/cache30/CacheSerializableRunnable.java   |    0
 .../org/apache/geode/cache30/CacheTestCase.java    |    0
 .../geode/cache30/CacheXml70DUnitTestHelper.java   |   74 ++
 .../org/apache/geode/cache30/CacheXmlTestCase.java |    0
 .../cache30/CertifiableTestCacheListener.java      |    0
 .../apache/geode/cache30/ClientServerTestCase.java |    0
 .../geode/cache30/MultiVMRegionTestCase.java       |    0
 .../org/apache/geode/cache30/RegionTestCase.java   |    0
 .../apache/geode/cache30/TestCacheCallback.java    |    0
 .../apache/geode/cache30/TestCacheListener.java    |    0
 .../org/apache/geode/cache30/TestCacheLoader.java  |    0
 .../org/apache/geode/cache30/TestCacheWriter.java  |    0
 .../AnalyzeSerializablesJUnitTest.java             |   25 +-
 .../geode/codeAnalysis/ClassAndMethodDetails.java  |    0
 .../apache/geode/codeAnalysis/ClassAndMethods.java |    0
 .../codeAnalysis/ClassAndVariableDetails.java      |    0
 .../geode/codeAnalysis/ClassAndVariables.java      |    0
 .../geode/codeAnalysis/CompiledClassUtils.java     |    0
 .../codeAnalysis/decode/CompiledAttribute.java     |    0
 .../geode/codeAnalysis/decode/CompiledClass.java   |    0
 .../geode/codeAnalysis/decode/CompiledCode.java    |    0
 .../geode/codeAnalysis/decode/CompiledField.java   |    0
 .../geode/codeAnalysis/decode/CompiledMethod.java  |    0
 .../apache/geode/codeAnalysis/decode/cp/Cp.java    |    0
 .../geode/codeAnalysis/decode/cp/CpClass.java      |    0
 .../geode/codeAnalysis/decode/cp/CpDouble.java     |    0
 .../geode/codeAnalysis/decode/cp/CpFieldref.java   |    0
 .../geode/codeAnalysis/decode/cp/CpFloat.java      |    0
 .../geode/codeAnalysis/decode/cp/CpInteger.java    |    0
 .../decode/cp/CpInterfaceMethodref.java            |    0
 .../codeAnalysis/decode/cp/CpInvokeDynamic.java    |    0
 .../geode/codeAnalysis/decode/cp/CpLong.java       |    0
 .../codeAnalysis/decode/cp/CpMethodHandle.java     |    0
 .../geode/codeAnalysis/decode/cp/CpMethodType.java |    0
 .../geode/codeAnalysis/decode/cp/CpMethodref.java  |    0
 .../codeAnalysis/decode/cp/CpNameAndType.java      |    0
 .../geode/codeAnalysis/decode/cp/CpString.java     |    0
 .../geode/codeAnalysis/decode/cp/CpUtf8.java       |    0
 .../membership/gms/MembershipManagerHelper.java    |    0
 .../apache/geode/internal/AvailablePortHelper.java |    0
 .../cache/CustomerIDPartitionResolver.java         |    0
 .../cache/execute/CustomerIDPartitionResolver.java |    0
 .../cache/execute/PRColocationDUnitTestHelper.java |   25 +-
 .../internal/cache/execute/data/Customer.java      |    4 +-
 .../geode/internal/cache/execute/data/Order.java   |    4 +-
 .../internal/cache/execute/data/Shipment.java      |    4 +-
 .../cache/tier/sockets/CacheServerTestUtil.java    |    0
 .../sockets/ClientServerMiscDUnitTestBase.java     |   64 +-
 .../tier/sockets/ConflationDUnitTestHelper.java    |   31 +-
 .../cache/wan/AsyncEventQueueTestBase.java         |    0
 .../org/apache/geode/management/MBeanUtil.java     |    0
 .../apache/geode/management/MXBeanAwaitility.java  |    0
 .../geode/management/ManagementTestBase.java       |    5 +-
 .../management/internal/cli/HeadlessGfsh.java      |    0
 .../internal/cli/commands/CliCommandTestBase.java  |    0
 .../internal/configuration/ClusterConfig.java      |    0
 .../configuration/ClusterConfigTestBase.java       |    0
 .../security/ClientAuthorizationTestCase.java      |    0
 .../apache/geode/security/SecurityTestUtil.java    |    0
 .../apache/geode/security/SecurityTestUtils.java   |    0
 .../generator/AuthzCredentialGenerator.java        |    0
 .../security/generator/CredentialGenerator.java    |    0
 .../generator/DummyAuthzCredentialGenerator.java   |    0
 .../generator/DummyCredentialGenerator.java        |    0
 .../generator/LdapUserCredentialGenerator.java     |    0
 .../generator/PKCSCredentialGenerator.java         |    0
 .../security/generator/SSLCredentialGenerator.java |    0
 .../UserPasswordWithExtraPropsAuthInit.java        |    0
 .../generator/XmlAuthzCredentialGenerator.java     |    0
 .../geode/security/query/QuerySecurityBase.java    |    2 +-
 .../security/templates/DummyAuthenticator.java     |    0
 .../security/templates/DummyAuthorization.java     |    0
 .../templates/FunctionSecurityPrmsHolder.java      |    0
 .../security/templates/LdapUserAuthenticator.java  |    0
 .../geode/security/templates/PKCSAuthInit.java     |    0
 .../security/templates/PKCSAuthenticator.java      |    0
 .../geode/security/templates/PKCSPrincipal.java    |    0
 .../security/templates/PKCSPrincipalTest.java      |    0
 .../security/templates/SimpleAccessController.java |    0
 .../security/templates/SimpleAuthenticator.java    |    0
 .../security/templates/UsernamePrincipal.java      |    0
 .../security/templates/UsernamePrincipalTest.java  |    0
 .../geode/security/templates/XmlAuthorization.java |    0
 .../geode/security/templates/XmlErrorHandler.java  |    0
 .../java/org/apache/geode/test/dunit/Assert.java   |    0
 .../apache/geode/test/dunit/AsyncInvocation.java   |    0
 .../apache/geode/test/dunit/DUnitBlackboard.java   |    0
 .../java/org/apache/geode/test/dunit/DUnitEnv.java |    0
 .../org/apache/geode/test/dunit/Disconnect.java    |    0
 .../geode/test/dunit/DistributedTestCase.java      |    0
 .../geode/test/dunit/DistributedTestUtils.java     |    0
 .../java/org/apache/geode/test/dunit/Host.java     |    0
 .../apache/geode/test/dunit/IgnoredException.java  |    0
 .../java/org/apache/geode/test/dunit/Invoke.java   |    0
 .../java/org/apache/geode/test/dunit/Jitter.java   |    0
 .../java/org/apache/geode/test/dunit/LocalVM.java  |    0
 .../apache/geode/test/dunit/LogWriterUtils.java    |    0
 .../org/apache/geode/test/dunit/NamedCallable.java |    0
 .../org/apache/geode/test/dunit/NamedRunnable.java |    0
 .../org/apache/geode/test/dunit/NetworkUtils.java  |    0
 .../org/apache/geode/test/dunit/RMIException.java  |    0
 .../geode/test/dunit/RepeatableRunnable.java       |    0
 .../geode/test/dunit/SerializableCallable.java     |    0
 .../geode/test/dunit/SerializableCallableIF.java   |    0
 .../geode/test/dunit/SerializableConsumerIF.java   |    0
 .../geode/test/dunit/SerializableRunnable.java     |    0
 .../geode/test/dunit/SerializableRunnableIF.java   |    0
 .../geode/test/dunit/StoppableWaitCriterion.java   |    0
 .../org/apache/geode/test/dunit/ThreadUtils.java   |    0
 .../main}/java/org/apache/geode/test/dunit/VM.java |    0
 .../java/org/apache/geode/test/dunit/Wait.java     |    0
 .../org/apache/geode/test/dunit/WaitCriterion.java |    0
 .../geode/test/dunit/cache/CacheTestCase.java      |    0
 .../cache/examples/CacheTestCaseExampleTest.java   |    0
 .../dunit/cache/internal/CacheTestFixture.java     |    0
 .../dunit/cache/internal/JUnit4CacheTestCase.java  |    0
 .../examples/AsyncInvokeCallableExampleTest.java   |    0
 .../examples/AsyncInvokeRunnableExampleTest.java   |    0
 .../dunit/examples/BeforeClassExampleTest.java     |    0
 .../CatchingUnexpectedExceptionExampleTest.java    |    0
 .../examples/DistributedTestCaseExampleTest.java   |    0
 .../examples/DistributedTestRuleExampleTest.java   |    0
 .../DoNotHandleUnexpectedExceptionExampleTest.java |    0
 .../dunit/examples/FixtureOrderingExampleTest.java |    0
 .../dunit/examples/InvokeRunnableExampleTest.java  |    0
 .../examples/LocatorPortClusterExampleTest.java    |    0
 .../examples/ReplaceTryFinallyExampleTest.java     |    0
 .../dunit/internal/DUnitBlackboardDUnitTest.java   |    0
 .../dunit/internal/DistributedTestFixture.java     |    0
 .../test/dunit/internal/InternalBlackboard.java    |    0
 .../dunit/internal/InternalBlackboardImpl.java     |    0
 .../dunit/internal/JUnit4DistributedTestCase.java  |    0
 .../dunit/rules/AbstractDistributedTestRule.java   |    0
 .../apache/geode/test/dunit/rules/CacheRule.java   |    0
 .../test/dunit/rules/CleanupDUnitVMsRule.java      |    0
 .../geode/test/dunit/rules/ClientCacheRule.java    |    0
 .../apache/geode/test/dunit/rules/ClientVM.java    |    0
 .../geode/test/dunit/rules/ClusterStartupRule.java |    0
 .../test/dunit/rules/DistributedDiskDirRule.java   |    0
 .../dunit/rules/DistributedExternalResource.java   |    0
 .../rules/DistributedRestoreSystemProperties.java  |    0
 .../test/dunit/rules/DistributedTestRule.java      |    0
 .../DistributedUseJacksonForJsonPathRule.java      |    0
 .../apache/geode/test/dunit/rules/MemberVM.java    |    0
 .../geode/test/dunit/rules/RemoteInvoker.java      |    0
 .../geode/test/dunit/rules/SharedCountersRule.java |    0
 .../test/dunit/rules/SharedErrorCollector.java     |    0
 .../tests/CacheRuleBuilderDistributedTest.java     |    0
 .../rules/tests/CacheRuleDistributedTest.java      |    0
 ...tartupRuleCanSpecifyOlderVersionsDUnitTest.java |    0
 ...utedRestoreSystemPropertiesDistributedTest.java |    0
 .../tests/DistributedTestRuleDistributedTest.java  |    0
 .../tests/MemberStarterRuleAwaitDUnitTest.java     |    0
 .../MemberStarterRuleAwaitIntegrationTest.java     |    0
 .../tests/MemberStarterRuleIntegrationTest.java    |    0
 .../dunit/rules/tests/MemberStarterRuleTest.java   |    0
 .../tests/SharedCountersRuleDistributedTest.java   |    0
 .../tests/SharedErrorCollectorDistributedTest.java |    0
 .../geode/test/dunit/standalone/BounceResult.java  |    0
 .../geode/test/dunit/standalone/ChildVM.java       |    0
 .../geode/test/dunit/standalone/DUnitLauncher.java |    0
 .../test/dunit/standalone/ProcessManager.java      |    0
 .../geode/test/dunit/standalone/RemoteDUnitVM.java |    0
 .../test/dunit/standalone/RemoteDUnitVMIF.java     |    0
 .../test/dunit/standalone/StandAloneDUnitEnv.java  |    0
 .../test/dunit/tests/BasicDistributedTest.java     |    0
 .../tests/GetCurrentVmNumDistributedTest.java      |    0
 .../geode/test/dunit/tests/VMDistributedTest.java  |    0
 .../geode/test/junit/rules/ClientCacheRule.java    |    0
 .../test/junit/rules/ConnectionConfiguration.java  |    0
 .../apache/geode/test/junit/rules/DiskDirRule.java |    0
 .../geode/test/junit/rules/GfshCommandRule.java    |    0
 .../org/apache/geode/test/junit/rules/Locator.java |    0
 .../geode/test/junit/rules/LocatorStarterRule.java |    0
 .../junit/rules/MBeanServerConnectionRule.java     |    0
 .../org/apache/geode/test/junit/rules/Member.java  |    0
 .../geode/test/junit/rules/MemberStarterRule.java  |    0
 .../org/apache/geode/test/junit/rules/Server.java  |    0
 .../geode/test/junit/rules/ServerStarterRule.java  |    0
 .../apache/geode/test/junit/rules/VMProvider.java  |    0
 .../cache/client/internal/cacheserver.keystore     |  Bin
 .../cache/client/internal/cacheserver.truststore   |  Bin
 .../geode/cache/client/internal/client.keystore    |  Bin
 .../geode/cache/client/internal/client.truststore  |  Bin
 .../geode/management/internal/security/auth1.json  |    0
 .../geode/management/internal/security/auth2.json  |    0
 .../geode/management/internal/security/auth3.json  |    0
 .../management/internal/security/cacheServer.json  |    0
 .../management/internal/security/clientServer.json |    0
 .../management/internal/security/shiro-ini.json    |    0
 .../geode/security/generator/authz-dummy.xml       |    0
 .../apache/geode/security/generator/authz-ldap.xml |    0
 .../security/generator/authz-multiUser-dummy.xml   |    0
 .../security/generator/authz-multiUser-ldap.xml    |    0
 .../security/generator/keys/gemfire1.keystore      |  Bin
 .../security/generator/keys/gemfire10.keystore     |  Bin
 .../security/generator/keys/gemfire11.keystore     |  Bin
 .../security/generator/keys/gemfire2.keystore      |  Bin
 .../security/generator/keys/gemfire3.keystore      |  Bin
 .../security/generator/keys/gemfire4.keystore      |  Bin
 .../security/generator/keys/gemfire5.keystore      |  Bin
 .../security/generator/keys/gemfire6.keystore      |  Bin
 .../security/generator/keys/gemfire7.keystore      |  Bin
 .../security/generator/keys/gemfire8.keystore      |  Bin
 .../security/generator/keys/gemfire9.keystore      |  Bin
 .../security/generator/keys/ibm/gemfire1.keystore  |  Bin
 .../security/generator/keys/ibm/gemfire10.keystore |  Bin
 .../security/generator/keys/ibm/gemfire11.keystore |  Bin
 .../security/generator/keys/ibm/gemfire2.keystore  |  Bin
 .../security/generator/keys/ibm/gemfire3.keystore  |  Bin
 .../security/generator/keys/ibm/gemfire4.keystore  |  Bin
 .../security/generator/keys/ibm/gemfire5.keystore  |  Bin
 .../security/generator/keys/ibm/gemfire6.keystore  |  Bin
 .../security/generator/keys/ibm/gemfire7.keystore  |  Bin
 .../security/generator/keys/ibm/gemfire8.keystore  |  Bin
 .../security/generator/keys/ibm/gemfire9.keystore  |  Bin
 .../security/generator/keys/ibm/publickeyfile      |  Bin
 .../geode/security/generator/keys/publickeyfile    |  Bin
 .../org/apache/geode/security/peerAuth.json        |    0
 .../apache/geode/security/templates/authz5_5.dtd   |    0
 .../apache/geode/security/templates/authz6_0.dtd   |    0
 geode-experimental-driver/build.gradle             |    4 +-
 geode-junit/build.gradle                           |    2 +
 .../src/main}/java/com/examples/ds/Address.java    |    0
 .../src/main}/java/com/examples/ds/Company.java    |    0
 .../java/com/examples/ds/CompanySerializer.java    |    0
 .../src/main}/java/com/examples/ds/Employee.java   |    0
 .../java/com/examples/ds/PutDataSerializables.java |    0
 .../src/main}/java/com/examples/ds/User.java       |    0
 .../com/examples/snapshot/MyDataSerializer.java    |    0
 .../main}/java/com/examples/snapshot/MyObject.java |    0
 .../snapshot/MyObjectDataSerializable.java         |    0
 .../java/com/examples/snapshot/MyObjectPdx.java    |    0
 .../examples/snapshot/MyObjectPdxSerializable.java |    0
 .../com/examples/snapshot/MyPdxSerializer.java     |    0
 .../main}/java/org/apache/geode/DeltaTestImpl.java |    0
 .../org/apache/geode/cache/query/CacheUtils.java   |    0
 .../org/apache/geode/cache/query/data/Address.java |    0
 .../org/apache/geode/cache/query/data/City.java    |    0
 .../geode/cache/query/data/CollectionHolder.java   |    0
 .../geode/cache/query/data/ComparableWrapper.java  |    0
 .../org/apache/geode/cache/query/data/Country.java |    0
 .../org/apache/geode/cache/query/data/Data.java    |    0
 .../apache/geode/cache/query/data/District.java    |    0
 .../apache/geode/cache/query/data/Employee.java    |    0
 .../apache/geode/cache/query/data/Instrument.java  |    0
 .../apache/geode/cache/query/data/Inventory.java   |    0
 .../apache/geode/cache/query/data/Keywords.java    |    0
 .../org/apache/geode/cache/query/data/Manager.java |    0
 .../org/apache/geode/cache/query/data/Numbers.java |    0
 .../org/apache/geode/cache/query/data/PhoneNo.java |    0
 .../apache/geode/cache/query/data/Portfolio.java   |    0
 .../geode/cache/query/data/PortfolioData.java      |    0
 .../geode/cache/query/data/PortfolioNoDS.java      |    0
 .../geode/cache/query/data/PortfolioPdx.java       |    0
 .../apache/geode/cache/query/data/Position.java    |    0
 .../geode/cache/query/data/PositionNoDS.java       |    0
 .../apache/geode/cache/query/data/PositionPdx.java |    0
 .../cache/query/data/ProhibitedSecurityQuote.java  |    0
 .../org/apache/geode/cache/query/data/Quote.java   |    0
 .../apache/geode/cache/query/data/Restricted.java  |    0
 .../geode/cache/query/data/SecurityMaster.java     |    0
 .../org/apache/geode/cache/query/data/State.java   |    0
 .../org/apache/geode/cache/query/data/Street.java  |    0
 .../org/apache/geode/cache/query/data/Student.java |    0
 .../apache/geode/cache/query/data/TestData.java    |    0
 .../apache/geode/cache/query/data/TradingLine.java |    0
 .../org/apache/geode/cache/query/data/Vehicle.java |    0
 .../org/apache/geode/cache/query/data/Village.java |    0
 .../apache/geode/cache/util/TxEventTestUtil.java   |    0
 .../geode/cache30/MyGatewayEventFilter1.java       |    0
 .../geode/cache30/MyGatewayEventFilter2.java       |    0
 .../geode/cache30/MyGatewayTransportFilter1.java   |    0
 .../geode/cache30/MyGatewayTransportFilter2.java   |    0
 .../TestServerLauncherCacheProvider.java           |    3 +-
 .../internal/cache/TestObjectWithIdentifier.java   |    0
 .../execute/MyFunctionExecutionException.java      |    0
 .../geode/internal/cache/execute/data/CustId.java  |    0
 .../geode/internal/cache/execute/data/OrderId.java |    0
 .../internal/cache/execute/data/ShipmentId.java    |    0
 .../extension/mock/AbstractMockExtension.java      |    0
 .../mock/AbstractMockExtensionXmlGenerator.java    |    0
 .../mock/AlterMockCacheExtensionFunction.java      |    0
 .../mock/AlterMockRegionExtensionFunction.java     |    0
 .../mock/CreateMockCacheExtensionFunction.java     |    0
 .../mock/CreateMockRegionExtensionFunction.java    |    0
 .../mock/DestroyMockCacheExtensionFunction.java    |    0
 .../mock/DestroyMockRegionExtensionFunction.java   |    0
 .../cache/extension/mock/MockCacheExtension.java   |    0
 .../mock/MockCacheExtensionXmlGenerator.java       |    0
 .../extension/mock/MockExtensionCommands.java      |    0
 .../extension/mock/MockExtensionXmlParser.java     |    0
 .../cache/extension/mock/MockRegionExtension.java  |    0
 .../mock/MockRegionExtensionXmlGenerator.java      |    0
 .../cache/wan/CustomAsyncEventListener.java        |    0
 .../apache/geode/internal/cache/wan/Filter70.java  |    0
 .../internal/cache/wan/MyAsyncEventListener.java   |    0
 .../internal/cache/wan/MyAsyncEventListener2.java  |    0
 .../cache/wan/MyDistributedSystemListener.java     |    0
 .../internal/cache/wan/MyGatewayEventFilter.java   |    0
 .../cache/wan/MyGatewaySenderEventListener.java    |    0
 .../cache/wan/MyGatewaySenderEventListener2.java   |    0
 .../cache/wan/MyGatewayTransportFilter1.java       |    0
 .../cache/wan/MyGatewayTransportFilter2.java       |    0
 .../cache/wan/MyGatewayTransportFilter3.java       |    0
 .../cache/wan/MyGatewayTransportFilter4.java       |    0
 .../wan/PossibleDuplicateAsyncEventListener.java   |    0
 .../geode/internal/cache/wan/QueueListener.java    |    0
 .../cache/wan/WaitingAsyncEventListener.java       |    0
 .../management/internal/cli/ResultHandler.java     |    0
 .../CommandAvailabilityIndicatorTestHelper.java    |    9 +-
 .../cli/commands/ToUpperResultCollector.java       |    0
 .../internal/cli/domain/MyCacheListener.java       |    0
 .../internal/cli/domain/MyCacheLoader.java         |    0
 .../internal/cli/domain/MyCacheWriter.java         |    0
 .../management/internal/cli/domain/Stock.java      |    0
 .../geode/management/internal/cli/dto/Car.java     |    0
 .../geode/management/internal/cli/dto/Key.java     |    0
 .../geode/management/internal/cli/dto/Key1.java    |    0
 .../geode/management/internal/cli/dto/Key2.java    |    0
 .../internal/cli/dto/ObjectWithCharAttr.java       |    0
 .../geode/management/internal/cli/dto/Value.java   |    0
 .../geode/management/internal/cli/dto/Value1.java  |    0
 .../geode/management/internal/cli/dto/Value2.java  |    0
 .../internal/configuration/ConfigGroup.java        |    0
 .../management/internal/security/TestCommand.java  |    0
 .../internal/security/TestFunctions.java           |    0
 .../java/org/apache/geode/pdx/DSInsidePdx.java     |    0
 .../java/org/apache/geode/pdx/DomainObject.java    |    0
 .../java/org/apache/geode/pdx/DomainObjectBad.java |    0
 .../geode/pdx/DomainObjectClassLoadable.java       |    0
 .../org/apache/geode/pdx/DomainObjectPdxAuto.java  |    0
 .../DomainObjectPdxAutoNoDefaultConstructor.java   |    0
 .../main}/java/org/apache/geode/pdx/Employee.java  |    0
 .../main}/java/org/apache/geode/pdx/NestedPdx.java |    0
 .../org/apache/geode/pdx/NonDelegatingLoader.java  |    0
 .../java/org/apache/geode/pdx/PdxInsideDS.java     |    0
 .../apache/geode/pdx/SeparateClassloaderPdx.java   |    0
 .../java/org/apache/geode/pdx/SimpleClass.java     |    0
 .../java/org/apache/geode/pdx/SimpleClass1.java    |    0
 .../java/org/apache/geode/pdx/SimpleClass2.java    |    0
 .../apache/geode/security/PDXPostProcessor.java    |    0
 .../geode/security/SimpleTestSecurityManager.java  |    0
 .../apache/geode/security/TestPostProcessor.java   |    0
 .../apache/geode/security/TestSecurityManager.java |    0
 .../geode/security/query/UserPermissions.java      |    0
 .../security/query/data/PdxQueryTestObject.java    |    0
 .../apache/geode/security/query/data/PdxTrade.java |    0
 .../geode/security/query/data/QueryTestObject.java |    0
 .../security/templates/UserPasswordAuthInit.java   |    0
 .../java/org/apache/geode/test/fake/Fakes.java     |    0
 .../assertions/AbstractResultModelAssert.java      |    0
 .../test/junit/assertions/CommandResultAssert.java |    0
 .../junit/assertions/CommandResultExecution.java   |    0
 .../junit/assertions/DataResultModelAssert.java    |    0
 .../junit/assertions/InfoResultModelAssert.java    |    0
 .../junit/assertions/TabularResultModelAssert.java |    0
 .../geode/test/junit/rules/GfshParserRule.java     |    0
 .../java/org/apache/geode/util/test/TestUtil.java  |   18 +-
 .../apache/geode/security/templates/security.json  |    0
 .../src/main}/resources/ssl/trusted.keystore       |  Bin
 .../src/main}/resources/ssl/untrusted.keystore     |  Bin
 geode-lucene/build.gradle                          |   14 +-
 geode-old-client-support/build.gradle              |    5 +-
 geode-protobuf/build.gradle                        |    8 +-
 geode-rebalancer/build.gradle                      |    3 +-
 geode-wan/build.gradle                             |   13 +-
 .../geode/cache/CacheXml70GatewayDUnitTest.java    |    6 +-
 .../geode/cache/CacheXml80GatewayDUnitTest.java    |    5 +-
 geode-web-api/build.gradle                         |    8 +-
 geode-web/build.gradle                             |   11 +-
 .../cli/commands/ConnectCommandWithSSLTest.java    |   23 +-
 settings.gradle                                    |    1 +
 425 files changed, 425 insertions(+), 1825 deletions(-)

diff --git a/extensions/geode-modules-session/build.gradle b/extensions/geode-modules-session/build.gradle
index ab3f13f..12339da 100644
--- a/extensions/geode-modules-session/build.gradle
+++ b/extensions/geode-modules-session/build.gradle
@@ -21,6 +21,8 @@ dependencies {
   compile project(':extensions/geode-modules-session-internal')
   compile project(':geode-core')
 
+  testCompile project(':geode-junit')
+
   testCompile 'javax.servlet:javax.servlet-api:' + project.'javax.servlet-api.version'
   testCompile 'org.slf4j:slf4j-api:' + project.'slf4j-api.version'
   testCompile('com.mockrunner:mockrunner-servlet:' + project.'mockrunner.version') {
@@ -33,10 +35,8 @@ dependencies {
     exclude group: 'javax.servlet'
   }
 
-  testCompile project(path: ':geode-junit')
 
-  // TODO build - move dunit framework to shared module.
-  integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+  integrationTestCompile project(":geode-dunit")
 }
 
 jar {
diff --git a/extensions/geode-modules-tomcat7/build.gradle b/extensions/geode-modules-tomcat7/build.gradle
index 8d800340..8f3ecf0 100644
--- a/extensions/geode-modules-tomcat7/build.gradle
+++ b/extensions/geode-modules-tomcat7/build.gradle
@@ -40,11 +40,10 @@ dependencies {
   testRuntime 'org.eclipse.persistence:javax.persistence:' + project.'javax.persistence-api.version'
 
   testCompile project(path: ':geode-junit')
-  testCompile files(project(':geode-core').sourceSets.test.output)
   testCompile files(project(':extensions/geode-modules').sourceSets.test.output)
 
-  // TODO build - move dunit framework to shared module.
-  integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+  integrationTestCompile project(":geode-dunit")
+  integrationTestCompile files(project(':extensions/geode-modules').sourceSets.integrationTest.output)
 
   eclipse.classpath.file {
     whenMerged { classpath ->
diff --git a/extensions/geode-modules-tomcat8/build.gradle b/extensions/geode-modules-tomcat8/build.gradle
index 929e688..a72721a 100644
--- a/extensions/geode-modules-tomcat8/build.gradle
+++ b/extensions/geode-modules-tomcat8/build.gradle
@@ -44,9 +44,7 @@ dependencies {
   testCompile files(project(':extensions/geode-modules').sourceSets.test.output)
   testCompile files(project(':geode-old-versions').sourceSets.main.output)
 
-  // TODO build - move dunit framework to shared module.
-  distributedTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-  distributedTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+  distributedTestCompile project(":geode-dunit")
 
   eclipse.classpath.file {
     whenMerged { classpath ->
diff --git a/extensions/geode-modules/build.gradle b/extensions/geode-modules/build.gradle
index cf16303..2672576 100644
--- a/extensions/geode-modules/build.gradle
+++ b/extensions/geode-modules/build.gradle
@@ -28,16 +28,13 @@ dependencies {
   }
   compile 'org.apache.tomcat:juli:' + project.'tomcat6.version'
 
+  testCompile project(':geode-junit')
+
   testCompile 'org.apache.bcel:bcel:' + project.'bcel.version'
   testCompile 'org.httpunit:httpunit:' + project.'httpunit.version'
   testRuntime 'org.apache.tomcat:coyote:' + project.'tomcat6.version'
 
-  testCompile project(path: ':geode-junit')
-  // TODO build - move shared source to common library.
-  testCompile files(project(':geode-core').sourceSets.test.output)
-
-  // TODO build - move dunit framework to shared module.
-  integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+  integrationTestCompile project(":geode-dunit")
 }
 
 disableMavenPublishing()
diff --git a/extensions/geode-modules/src/test/java/org/apache/geode/modules/session/TestSessionsBase.java b/extensions/geode-modules/src/integrationTest/java/org/apache/geode/modules/session/TestSessionsBase.java
similarity index 100%
rename from extensions/geode-modules/src/test/java/org/apache/geode/modules/session/TestSessionsBase.java
rename to extensions/geode-modules/src/integrationTest/java/org/apache/geode/modules/session/TestSessionsBase.java
diff --git a/geode-assembly/build.gradle b/geode-assembly/build.gradle
index 970623d..7179312 100755
--- a/geode-assembly/build.gradle
+++ b/geode-assembly/build.gradle
@@ -124,14 +124,19 @@ dependencies {
 
   testCompile files(project(':geode-old-versions').sourceSets.main.output)
 
-  // TODO build - move dunit framework to shared module.
-  integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-  distributedTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-  distributedTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-  acceptanceTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-  uiTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-  uiTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-  upgradeTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+  integrationTestCompile project(":geode-dunit")
+
+  distributedTestCompile project(":geode-dunit")
+
+  acceptanceTestCompile project(":geode-dunit")
+  // TODO refactor out common test framework
+  upgradeTestCompile sourceSets.distributedTest.output
+
+  uiTestCompile project(":geode-dunit")
+
+  upgradeTestCompile project(":geode-dunit")
+  // TODO refactor out common test framework
+  upgradeTestCompile sourceSets.distributedTest.output
 }
 
 sourceSets {
diff --git a/geode-assembly/src/test/java/org/apache/geode/session/tests/ContainerInstall.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/ContainerInstall.java
similarity index 100%
rename from geode-assembly/src/test/java/org/apache/geode/session/tests/ContainerInstall.java
rename to geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/ContainerInstall.java
diff --git a/geode-assembly/src/test/java/org/apache/geode/session/tests/ContainerManager.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/ContainerManager.java
similarity index 100%
rename from geode-assembly/src/test/java/org/apache/geode/session/tests/ContainerManager.java
rename to geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/ContainerManager.java
diff --git a/geode-assembly/src/test/java/org/apache/geode/session/tests/GenericAppServerContainer.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerContainer.java
similarity index 100%
rename from geode-assembly/src/test/java/org/apache/geode/session/tests/GenericAppServerContainer.java
rename to geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerContainer.java
diff --git a/geode-assembly/src/test/java/org/apache/geode/session/tests/GenericAppServerInstall.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
similarity index 100%
rename from geode-assembly/src/test/java/org/apache/geode/session/tests/GenericAppServerInstall.java
rename to geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
diff --git a/geode-assembly/src/test/java/org/apache/geode/session/tests/ServerContainer.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/ServerContainer.java
similarity index 100%
rename from geode-assembly/src/test/java/org/apache/geode/session/tests/ServerContainer.java
rename to geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/ServerContainer.java
diff --git a/geode-assembly/src/test/java/org/apache/geode/session/tests/TomcatContainer.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/TomcatContainer.java
similarity index 100%
rename from geode-assembly/src/test/java/org/apache/geode/session/tests/TomcatContainer.java
rename to geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/TomcatContainer.java
diff --git a/geode-assembly/src/test/java/org/apache/geode/session/tests/TomcatInstall.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/TomcatInstall.java
similarity index 100%
rename from geode-assembly/src/test/java/org/apache/geode/session/tests/TomcatInstall.java
rename to geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/TomcatInstall.java
diff --git a/geode-assembly/src/integrationTest/java/org/apache/geode/rest/internal/web/RestSecurityWithSSLTest.java b/geode-assembly/src/integrationTest/java/org/apache/geode/rest/internal/web/RestSecurityWithSSLTest.java
index f89c5ab..88ecebb 100644
--- a/geode-assembly/src/integrationTest/java/org/apache/geode/rest/internal/web/RestSecurityWithSSLTest.java
+++ b/geode-assembly/src/integrationTest/java/org/apache/geode/rest/internal/web/RestSecurityWithSSLTest.java
@@ -24,8 +24,9 @@ import static org.apache.geode.distributed.ConfigurationProperties.SSL_PROTOCOLS
 import static org.apache.geode.distributed.ConfigurationProperties.SSL_TRUSTSTORE;
 import static org.apache.geode.distributed.ConfigurationProperties.SSL_TRUSTSTORE_PASSWORD;
 import static org.apache.geode.test.junit.rules.HttpResponseAssert.assertResponse;
+import static org.apache.geode.util.test.TestUtil.getResourcePath;
 
-import java.net.URL;
+import java.io.File;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -42,8 +43,8 @@ import org.apache.geode.test.junit.rules.ServerStarterRule;
 @Category({SecurityTest.class, RestAPITest.class})
 public class RestSecurityWithSSLTest {
 
-  private static final URL KEYSTORE_URL =
-      RestSecurityWithSSLTest.class.getClassLoader().getResource("ssl/trusted.keystore");
+  private static File KEYSTORE_FILE =
+      new File(getResourcePath(RestSecurityWithSSLTest.class, "/ssl/trusted.keystore"));
 
   @Rule
   public RequiresGeodeHome requiresGeodeHome = new RequiresGeodeHome();
@@ -52,14 +53,14 @@ public class RestSecurityWithSSLTest {
   public ServerStarterRule serverStarter = new ServerStarterRule().withRestService()
       .withProperty(SECURITY_MANAGER, SimpleTestSecurityManager.class.getName())
       .withProperty(SSL_ENABLED_COMPONENTS, SecurableCommunicationChannel.WEB.getConstant())
-      .withProperty(SSL_KEYSTORE, KEYSTORE_URL.getPath())
+      .withProperty(SSL_KEYSTORE, KEYSTORE_FILE.getPath())
       .withProperty(SSL_KEYSTORE_PASSWORD, "password").withProperty(SSL_KEYSTORE_TYPE, "JKS")
-      .withProperty(SSL_TRUSTSTORE, KEYSTORE_URL.getPath())
+      .withProperty(SSL_TRUSTSTORE, KEYSTORE_FILE.getPath())
       .withProperty(SSL_TRUSTSTORE_PASSWORD, "password")
       .withProperty(SSL_PROTOCOLS, "TLSv1.2,TLSv1.1").withAutoStart();
 
   @Test
-  public void testRestSecurityWithSSL() throws Exception {
+  public void testRestSecurityWithSSL() {
     GeodeDevRestClient restClient =
         new GeodeDevRestClient("localhost", serverStarter.getHttpPort(), true);
     assertResponse(restClient.doGet("/servers", "cluster", "cluster"))
diff --git a/geode-connectors/build.gradle b/geode-connectors/build.gradle
index b2cbd12..58e3793 100644
--- a/geode-connectors/build.gradle
+++ b/geode-connectors/build.gradle
@@ -39,15 +39,13 @@ dependencies {
     testCompile 'com.palantir.docker.compose:docker-compose-rule-junit4:0.31.1'
     testCompile 'com.pholser:junit-quickcheck-core:' + project.'junit-quickcheck.version'
     testCompile 'com.pholser:junit-quickcheck-generators:' + project.'junit-quickcheck.version'
-    testCompile files(project(':geode-core').sourceSets.test.output)
     testCompile files(project(':geode-old-versions').sourceSets.main.output)
 
-    // TODO build - move dunit framework to shared module.
-    integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-    distributedTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-    distributedTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-    acceptanceTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-    acceptanceTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+    integrationTestCompile project(":geode-dunit")
+
+    distributedTestCompile project(":geode-dunit")
+
+    acceptanceTestCompile project(":geode-dunit")
 }
 
 integrationTest.forkEvery 0
diff --git a/geode-connectors/src/integrationTest/resources/org/apache/geode/codeAnalysis/openBugs.txt b/geode-connectors/src/integrationTest/resources/org/apache/geode/codeAnalysis/openBugs.txt
new file mode 100644
index 0000000..e69de29
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JDBCCommandsAvailabilityTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JDBCCommandsAvailabilityTest.java
index f572248..2f4fac4 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JDBCCommandsAvailabilityTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JDBCCommandsAvailabilityTest.java
@@ -26,7 +26,7 @@ import org.junit.Test;
 import org.springframework.shell.core.CommandMarker;
 
 import org.apache.geode.management.internal.cli.CommandManager;
-import org.apache.geode.management.internal.cli.commands.CommandAvailabilityIndicatorTest;
+import org.apache.geode.management.internal.cli.commands.CommandAvailabilityIndicatorTestHelper;
 
 
 public class JDBCCommandsAvailabilityTest {
@@ -40,6 +40,6 @@ public class JDBCCommandsAvailabilityTest {
     // make sure the jdbc commands are loaded
     assertThat(collections).contains(CreateConnectionCommand.class);
 
-    CommandAvailabilityIndicatorTest.assertOnlineCommandsHasAvailabilityIndicator(manager);
+    CommandAvailabilityIndicatorTestHelper.assertOnlineCommandsHasAvailabilityIndicator(manager);
   }
 }
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index 173428d..a9deec6 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -169,9 +169,9 @@ dependencies {
   testRuntime 'xerces:xercesImpl:' + project.'xercesImpl.version'
   testCompile project(':geode-concurrency-test')
 
-  distributedTestCompile files(sourceSets.integrationTest.output)
-  upgradeTestCompile files(sourceSets.distributedTest.output)
-  upgradeTestCompile files(sourceSets.integrationTest.output)
+  integrationTestCompile project(":geode-dunit")
+  distributedTestCompile project(":geode-dunit")
+  upgradeTestCompile project(":geode-dunit")
 }
 
 def generatedResources = "$buildDir/generated-resources/main"
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/CacheXml70DUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/CacheXml70DUnitTest.java
index feeb7f9..ff3a6ad 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/CacheXml70DUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/CacheXml70DUnitTest.java
@@ -18,7 +18,6 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import java.util.List;
 import java.util.Properties;
 import java.util.Set;
 
@@ -29,7 +28,6 @@ import org.apache.geode.cache.DataPolicy;
 import org.apache.geode.cache.Declarable;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.Scope;
-import org.apache.geode.cache.asyncqueue.AsyncEvent;
 import org.apache.geode.cache.asyncqueue.AsyncEventListener;
 import org.apache.geode.cache.asyncqueue.AsyncEventQueue;
 import org.apache.geode.cache.asyncqueue.AsyncEventQueueFactory;
@@ -134,7 +132,7 @@ public class CacheXml70DUnitTest extends CacheXml66DUnitTest {
     factory.setParallel(false);
     factory.setDispatcherThreads(19);
 
-    AsyncEventListener eventListener = new MyAsyncEventListener();
+    AsyncEventListener eventListener = new CacheXml70DUnitTestHelper.MyAsyncEventListener();
     AsyncEventQueue asyncEventQueue = factory.create(id, eventListener);
 
     RegionAttributesCreation attrs = new RegionAttributesCreation();
@@ -150,7 +148,7 @@ public class CacheXml70DUnitTest extends CacheXml66DUnitTest {
         asyncEventQueuesOnCache.size() > 0);
 
     for (AsyncEventQueue asyncEventQueueOnCache : asyncEventQueuesOnCache) {
-      validateAsyncEventQueue(asyncEventQueue, asyncEventQueueOnCache);
+      CacheXml70DUnitTestHelper.validateAsyncEventQueue(asyncEventQueue, asyncEventQueueOnCache);
     }
   }
 
@@ -169,7 +167,7 @@ public class CacheXml70DUnitTest extends CacheXml66DUnitTest {
     factory.setDispatcherThreads(5);
     factory.setOrderPolicy(OrderPolicy.THREAD);
 
-    AsyncEventListener eventListener = new MyAsyncEventListener();
+    AsyncEventListener eventListener = new CacheXml70DUnitTestHelper.MyAsyncEventListener();
     AsyncEventQueue asyncEventQueue = factory.create(id, eventListener);
 
     RegionAttributesCreation attrs = new RegionAttributesCreation();
@@ -207,7 +205,7 @@ public class CacheXml70DUnitTest extends CacheXml66DUnitTest {
     factory.setParallel(false);
     factory.setDispatcherThreads(33);
 
-    AsyncEventListener eventListener = new MyAsyncEventListener();
+    AsyncEventListener eventListener = new CacheXml70DUnitTestHelper.MyAsyncEventListener();
     AsyncEventQueue asyncEventQueue = factory.create(id, eventListener);
 
     RegionAttributesCreation attrs = new RegionAttributesCreation();
@@ -223,24 +221,10 @@ public class CacheXml70DUnitTest extends CacheXml66DUnitTest {
         asyncEventQueuesOnCache.size() > 0);
 
     for (AsyncEventQueue asyncEventQueueOnCache : asyncEventQueuesOnCache) {
-      CacheXml70DUnitTest.validateAsyncEventQueue(asyncEventQueue, asyncEventQueueOnCache);
+      CacheXml70DUnitTestHelper.validateAsyncEventQueue(asyncEventQueue, asyncEventQueueOnCache);
     }
   }
 
-  public static class MyAsyncEventListener implements AsyncEventListener, Declarable {
-
-    @Override
-    public boolean processEvents(List<AsyncEvent> events) {
-      return true;
-    }
-
-    @Override
-    public void close() {}
-
-    @Override
-    public void init(Properties properties) {}
-  }
-
   public static class MyGatewayConflictResolver implements GatewayConflictResolver, Declarable {
 
     @Override
@@ -250,33 +234,6 @@ public class CacheXml70DUnitTest extends CacheXml66DUnitTest {
     public void init(Properties p) {}
   }
 
-  public static void validateAsyncEventQueue(AsyncEventQueue eventChannelFromXml,
-      AsyncEventQueue channel) {
-    assertEquals("AsyncEventQueue id doesn't match", eventChannelFromXml.getId(), channel.getId());
-    assertEquals("AsyncEventQueue batchSize doesn't match", eventChannelFromXml.getBatchSize(),
-        channel.getBatchSize());
-    assertEquals("AsyncEventQueue batchTimeInterval doesn't match",
-        eventChannelFromXml.getBatchTimeInterval(), channel.getBatchTimeInterval());
-    assertEquals("AsyncEventQueue batchConflationEnabled doesn't match",
-        eventChannelFromXml.isBatchConflationEnabled(), channel.isBatchConflationEnabled());
-    assertEquals("AsyncEventQueue persistent doesn't match", eventChannelFromXml.isPersistent(),
-        channel.isPersistent());
-    assertEquals("AsyncEventQueue diskStoreName doesn't match",
-        eventChannelFromXml.getDiskStoreName(), channel.getDiskStoreName());
-    assertEquals("AsyncEventQueue isDiskSynchronous doesn't match",
-        eventChannelFromXml.isDiskSynchronous(), channel.isDiskSynchronous());
-    assertEquals("AsyncEventQueue maximumQueueMemory doesn't match",
-        eventChannelFromXml.getMaximumQueueMemory(), channel.getMaximumQueueMemory());
-    assertEquals("AsyncEventQueue Parallel doesn't match", eventChannelFromXml.isParallel(),
-        channel.isParallel());
-    assertEquals("AsyncEventQueue GatewayEventFilters doesn't match",
-        eventChannelFromXml.getGatewayEventFilters().size(),
-        channel.getGatewayEventFilters().size());
-    assertTrue("AsyncEventQueue should be instanceof Creation",
-        eventChannelFromXml instanceof AsyncEventQueueCreation);
-    assertTrue("AsyncEventQueue should be instanceof Impl", channel instanceof AsyncEventQueueImpl);
-  }
-
   private void validateConcurrentAsyncEventQueue(AsyncEventQueue eventChannelFromXml,
       AsyncEventQueue channel) {
     assertEquals("AsyncEventQueue id doesn't match", eventChannelFromXml.getId(), channel.getId());
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/DeltaPropagationDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/DeltaPropagationDUnitTest.java
index f76d099..522c9c1 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/DeltaPropagationDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/DeltaPropagationDUnitTest.java
@@ -63,7 +63,7 @@ import org.apache.geode.internal.AvailablePort;
 import org.apache.geode.internal.cache.eviction.EvictionController;
 import org.apache.geode.internal.cache.ha.HARegionQueue;
 import org.apache.geode.internal.cache.tier.sockets.CacheServerTestUtil;
-import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTest;
+import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper;
 import org.apache.geode.internal.tcp.ConnectionTable;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.SerializableCallableIF;
@@ -169,8 +169,8 @@ public class DeltaPropagationDUnitTest extends JUnit4DistributedTestCase {
     vm3.invoke((SerializableCallableIF) this::closeCache);
 
     // Unset the isSlowStartForTesting flag
-    vm0.invoke(ConflationDUnitTest::unsetIsSlowStart);
-    vm1.invoke(ConflationDUnitTest::unsetIsSlowStart);
+    vm0.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
+    vm1.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
     // then close the servers
     vm0.invoke((SerializableRunnableIF) this::closeCache);
     vm1.invoke((SerializableRunnableIF) this::closeCache);
@@ -502,8 +502,8 @@ public class DeltaPropagationDUnitTest extends JUnit4DistributedTestCase {
     PORT1 = vm0.invoke(() -> createServerCache(HARegionQueue.HA_EVICTION_POLICY_NONE, 1));
     PORT2 = vm1.invoke(() -> createServerCache(HARegionQueue.HA_EVICTION_POLICY_ENTRY, 1));
 
-    vm0.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
-    vm1.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
+    vm0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
+    vm1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
 
     createClientCache(PORT2, -1, "0", CLIENT_LISTENER);
 
@@ -514,7 +514,7 @@ public class DeltaPropagationDUnitTest extends JUnit4DistributedTestCase {
     vm0.invoke(this::createAndUpdateDeltas);
     vm1.invoke(() -> confirmEviction(PORT2));
 
-    vm1.invoke(ConflationDUnitTest::unsetIsSlowStart);
+    vm1.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
 
     waitForLastKey();
 
@@ -551,9 +551,9 @@ public class DeltaPropagationDUnitTest extends JUnit4DistributedTestCase {
 
     // Do puts after slowing the dispatcher.
     try {
-      vm0.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
-      vm1.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
-      vm2.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
+      vm0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
+      vm1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
+      vm2.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
 
       createClientCache(new int[] {PORT1, PORT2, port3}, "1",
           DistributionConfig.CLIENT_CONFLATION_PROP_VALUE_DEFAULT, CLIENT_LISTENER, null, null);
@@ -575,9 +575,9 @@ public class DeltaPropagationDUnitTest extends JUnit4DistributedTestCase {
       primary = (((PoolImpl) testPool).getPrimaryPort() == PORT1) ? vm0
           : ((((PoolImpl) testPool).getPrimaryPort() == PORT2) ? vm1 : vm2);
 
-      vm0.invoke(ConflationDUnitTest::unsetIsSlowStart);
-      vm1.invoke(ConflationDUnitTest::unsetIsSlowStart);
-      vm2.invoke(ConflationDUnitTest::unsetIsSlowStart);
+      vm0.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
+      vm1.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
+      vm2.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
 
       primary.invoke((SerializableRunnableIF) this::closeCache);
       Thread.sleep(5000);
@@ -590,9 +590,9 @@ public class DeltaPropagationDUnitTest extends JUnit4DistributedTestCase {
       assertTrue((EVENTS_SIZE - 1) + " deltas were to be received but were " + fromDeltasOnClient,
           fromDeltasOnClient == (EVENTS_SIZE - 1));
     } finally {
-      vm0.invoke(ConflationDUnitTest::unsetIsSlowStart);
-      vm1.invoke(ConflationDUnitTest::unsetIsSlowStart);
-      vm2.invoke(ConflationDUnitTest::unsetIsSlowStart);
+      vm0.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
+      vm1.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
+      vm2.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
     }
   }
 
@@ -616,7 +616,7 @@ public class DeltaPropagationDUnitTest extends JUnit4DistributedTestCase {
 
     // Step 1
     try {
-      vm0.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
+      vm0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
 
       // Step 2
       String durableClientId = getName() + "_client";
@@ -637,7 +637,7 @@ public class DeltaPropagationDUnitTest extends JUnit4DistributedTestCase {
       vm0.invoke((SerializableRunnableIF) this::doPuts);
 
       // Step 4
-      vm0.invoke(ConflationDUnitTest::unsetIsSlowStart);
+      vm0.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
 
       // Step 5
       // verifyDurableClientDisconnected();
@@ -656,7 +656,7 @@ public class DeltaPropagationDUnitTest extends JUnit4DistributedTestCase {
           fromDeltasOnClient < 1);
     } finally {
       // Step 4
-      vm0.invoke(ConflationDUnitTest::unsetIsSlowStart);
+      vm0.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
     }
 
   }
@@ -680,9 +680,9 @@ public class DeltaPropagationDUnitTest extends JUnit4DistributedTestCase {
 
     try {
       // Step 1
-      vm0.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
+      vm0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
       PORT2 = vm1.invoke(() -> createServerCache(HARegionQueue.HA_EVICTION_POLICY_MEMORY));
-      vm1.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
+      vm1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
 
       // Step 2
       String durableClientId = getName() + "_client";
@@ -704,8 +704,8 @@ public class DeltaPropagationDUnitTest extends JUnit4DistributedTestCase {
       vm0.invoke((SerializableRunnableIF) this::doPuts);
     } finally {
       // Step 4
-      vm0.invoke(ConflationDUnitTest::unsetIsSlowStart);
-      vm1.invoke(ConflationDUnitTest::unsetIsSlowStart);
+      vm0.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
+      vm1.invoke(ConflationDUnitTestHelper::unsetIsSlowStart);
     }
 
     // Step 5
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/HAOverflowMemObjectSizerDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/HAOverflowMemObjectSizerDUnitTest.java
index 23d1d59..fbc34f5 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/HAOverflowMemObjectSizerDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/HAOverflowMemObjectSizerDUnitTest.java
@@ -42,7 +42,7 @@ import org.apache.geode.internal.AvailablePort;
 import org.apache.geode.internal.cache.eviction.EvictionController;
 import org.apache.geode.internal.cache.eviction.MemoryLRUController;
 import org.apache.geode.internal.cache.tier.sockets.ClientUpdateMessageImpl;
-import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTest;
+import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.NetworkUtils;
 import org.apache.geode.test.dunit.VM;
@@ -94,13 +94,13 @@ public class HAOverflowMemObjectSizerDUnitTest extends JUnit4DistributedTestCase
 
   @Override
   public final void preTearDown() throws Exception {
-    serverVM.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    serverVM.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
     client.invoke(() -> HAOverflowMemObjectSizerDUnitTest.closeCache());
     serverVM.invoke(() -> HAOverflowMemObjectSizerDUnitTest.closeCache());
   }
 
   public static void cleanUp(Long limit) {
-    ConflationDUnitTest.unsetIsSlowStart();
+    ConflationDUnitTestHelper.unsetIsSlowStart();
     if (region != null) {
       Set entries = region.entrySet();
       entries = region.entrySet();
@@ -182,7 +182,7 @@ public class HAOverflowMemObjectSizerDUnitTest extends JUnit4DistributedTestCase
     Integer port1 = (Integer) serverVM
         .invoke(() -> HAOverflowMemObjectSizerDUnitTest.createCacheServer(new Boolean(true)));
     serverPort1 = port1;
-    serverVM.invoke(() -> ConflationDUnitTest.setIsSlowStart("15000"));
+    serverVM.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("15000"));
 
     client.invoke(() -> HAOverflowMemObjectSizerDUnitTest.createCacheClient(port1,
         NetworkUtils.getServerHostName(client.getHost())));
@@ -205,7 +205,7 @@ public class HAOverflowMemObjectSizerDUnitTest extends JUnit4DistributedTestCase
         .invoke(() -> HAOverflowMemObjectSizerDUnitTest.createCacheServer(new Boolean(false)));
     serverPort2 = port2;
 
-    serverVM.invoke(() -> ConflationDUnitTest.setIsSlowStart("15000"));
+    serverVM.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("15000"));
 
     client.invoke(() -> HAOverflowMemObjectSizerDUnitTest.createCacheClient(port2,
         NetworkUtils.getServerHostName(client.getHost())));
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/PRColocationDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/PRColocationDUnitTest.java
index 0dc1b93..17ec593 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/PRColocationDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/PRColocationDUnitTest.java
@@ -98,8 +98,6 @@ public class PRColocationDUnitTest extends JUnit4CacheTestCase {
 
   protected static int totalNumBucketsInTest = 0;
 
-  protected static int defaultStringSize = 0;
-
   static final String CustomerPartitionedRegionName = "CustomerPartitionedRegion";
 
   static final String OrderPartitionedRegionName = "OrderPartitionedRegion";
@@ -2583,17 +2581,6 @@ public class PRColocationDUnitTest extends JUnit4CacheTestCase {
 
   }
 
-  public static String getDefaultAddOnString() {
-    if (defaultStringSize == 0) {
-      return "";
-    }
-    StringBuffer buf = new StringBuffer(defaultStringSize);
-    for (int i = 0; i < defaultStringSize; i++) {
-      buf.append("a");
-    }
-    return buf.toString();
-  }
-
   static class DummyKeyBasedRoutingResolver implements PartitionResolver, DataSerializable {
     Integer dummyID;
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/PRTransactionDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/PRTransactionDUnitTest.java
index 2d12d79..0575e6f 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/PRTransactionDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/PRTransactionDUnitTest.java
@@ -1043,7 +1043,7 @@ public class PRTransactionDUnitTest extends PRColocationDUnitTest {
 
   @Test
   public void testPRTXPerformance() throws Exception {
-    defaultStringSize = 1024;
+    PRColocationDUnitTestHelper.defaultStringSize = 1024;
 
     createPopulateAndVerifyCoLocatedPRs(1);
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/FailoverDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/FailoverDUnitTest.java
index cc96fe9..f0574cd 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/FailoverDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/FailoverDUnitTest.java
@@ -45,7 +45,7 @@ import org.apache.geode.internal.AvailablePort;
 import org.apache.geode.internal.cache.ClientServerObserverAdapter;
 import org.apache.geode.internal.cache.ClientServerObserverHolder;
 import org.apache.geode.internal.cache.tier.sockets.CacheServerTestUtil;
-import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTest;
+import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper;
 import org.apache.geode.test.dunit.Assert;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.NetworkUtils;
@@ -82,8 +82,8 @@ public class FailoverDUnitTest extends JUnit4DistributedTestCase {
     vm1 = host.getVM(1);
 
     // start servers first
-    vm0.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
-    vm1.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    vm0.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
+    vm1.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
     PORT1 = ((Integer) vm0.invoke(() -> FailoverDUnitTest.createServerCache())).intValue();
     PORT2 = ((Integer) vm1.invoke(() -> FailoverDUnitTest.createServerCache())).intValue();
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAClearDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAClearDUnitTest.java
index 550718c..5f42c55 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAClearDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAClearDUnitTest.java
@@ -45,7 +45,7 @@ import org.apache.geode.internal.cache.CacheObserverAdapter;
 import org.apache.geode.internal.cache.CacheObserverHolder;
 import org.apache.geode.internal.cache.CacheServerImpl;
 import org.apache.geode.internal.cache.LocalRegion;
-import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTest;
+import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.LogWriterUtils;
 import org.apache.geode.test.dunit.NetworkUtils;
@@ -91,10 +91,10 @@ public class HAClearDUnitTest extends JUnit4DistributedTestCase {
     final Host host = Host.getHost(0);
 
     server1 = host.getVM(0);
-    server1.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    server1.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
 
     server2 = host.getVM(1);
-    server2.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    server2.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
 
     client1 = host.getVM(2);
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAConflationDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAConflationDUnitTest.java
index 839e125..646cdfa 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAConflationDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAConflationDUnitTest.java
@@ -39,7 +39,7 @@ import org.apache.geode.cache30.ClientServerTestCase;
 import org.apache.geode.distributed.DistributedSystem;
 import org.apache.geode.internal.AvailablePort;
 import org.apache.geode.internal.cache.CacheServerImpl;
-import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTest;
+import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.NetworkUtils;
 import org.apache.geode.test.dunit.VM;
@@ -106,7 +106,7 @@ public class HAConflationDUnitTest extends JUnit4CacheTestCase {
 
     int PORT1 = ((Integer) server1
         .invoke(() -> HAConflationDUnitTest.createServerCache(new Boolean(false)))).intValue();
-    server1.invoke(() -> ConflationDUnitTest.setIsSlowStart());
+    server1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart());
     server1.invoke(() -> HAConflationDUnitTest.makeDispatcherSlow());
     client1
         .invoke(() -> HAConflationDUnitTest.createClientCache(NetworkUtils.getServerHostName(host),
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAEventIdPropagationDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAEventIdPropagationDUnitTest.java
index 20a228a..e6385b0 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAEventIdPropagationDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAEventIdPropagationDUnitTest.java
@@ -54,7 +54,7 @@ import org.apache.geode.internal.cache.CacheServerImpl;
 import org.apache.geode.internal.cache.EntryEventImpl;
 import org.apache.geode.internal.cache.EventID;
 import org.apache.geode.internal.cache.RegionEventImpl;
-import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTest;
+import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper;
 import org.apache.geode.test.dunit.Assert;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.LogWriterUtils;
@@ -94,7 +94,7 @@ public class HAEventIdPropagationDUnitTest extends JUnit4DistributedTestCase {
   public final void postSetUp() throws Exception {
     final Host host = Host.getHost(0);
     server1 = host.getVM(0);
-    server1.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    server1.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
     client1 = host.getVM(2);
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAGIIDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAGIIDUnitTest.java
index 5c057a9..85967e3 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAGIIDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HAGIIDUnitTest.java
@@ -51,7 +51,7 @@ import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.RegionEventImpl;
 import org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier;
 import org.apache.geode.internal.cache.tier.sockets.ClientTombstoneMessage;
-import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTest;
+import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.test.dunit.Assert;
 import org.apache.geode.test.dunit.Host;
@@ -95,7 +95,7 @@ public class HAGIIDUnitTest extends JUnit4DistributedTestCase {
 
     // start server1
     int PORT1 = ((Integer) server0.invoke(() -> HAGIIDUnitTest.createServer1Cache())).intValue();
-    server0.invoke(() -> ConflationDUnitTest.setIsSlowStart());
+    server0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart());
     server0.invoke(() -> HAGIIDUnitTest.setSystemProperty());
 
 
@@ -398,8 +398,8 @@ public class HAGIIDUnitTest extends JUnit4DistributedTestCase {
 
   @Override
   public final void preTearDown() throws Exception {
-    ConflationDUnitTest.unsetIsSlowStart();
-    Invoke.invokeInEveryVM(ConflationDUnitTest.class, "unsetIsSlowStart");
+    ConflationDUnitTestHelper.unsetIsSlowStart();
+    Invoke.invokeInEveryVM(ConflationDUnitTestHelper.class, "unsetIsSlowStart");
     // close the clients first
     client0.invoke(() -> HAGIIDUnitTest.closeCache());
     // then close the servers
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java
index 001a25a..3ae69c5 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java
@@ -57,7 +57,7 @@ import org.apache.geode.internal.cache.CacheServerImpl;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.tier.sockets.CacheServerTestUtil;
 import org.apache.geode.internal.cache.tier.sockets.ClientUpdateMessage;
-import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTest;
+import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper;
 import org.apache.geode.internal.cache.tier.sockets.HAEventWrapper;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.VM;
@@ -127,8 +127,8 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
     clientVM2.invoke(() -> HARQueueNewImplDUnitTest.closeCache());
 
     // Unset the isSlowStartForTesting flag
-    serverVM0.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
-    serverVM1.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
+    serverVM1.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
 
     // then close the servers
     serverVM0.invoke(() -> HARQueueNewImplDUnitTest.closeCache());
@@ -324,8 +324,8 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
   @Test
   public void testClientMsgsRegionSize() throws Exception {
     // slow start for dispatcher
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("30000"));
-    serverVM1.invoke(() -> ConflationDUnitTest.setIsSlowStart("30000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("30000"));
+    serverVM1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("30000"));
 
     createClientCache(getServerHostName(Host.getHost(0)), new Integer(PORT1), new Integer(PORT2),
         "1");
@@ -360,8 +360,8 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
   @Test
   public void testRefCountForNormalAndGIIPut() throws Exception {
     // slow start for dispatcher
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("240000"));
-    serverVM1.invoke(() -> ConflationDUnitTest.setIsSlowStart("240000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("240000"));
+    serverVM1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("240000"));
 
     createClientCache(getServerHostName(Host.getHost(0)), new Integer(PORT1), new Integer(PORT2),
         "1");
@@ -415,7 +415,7 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
    */
   @Test
   public void testRefCountForPeekAndRemove() throws Exception {
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("30000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("30000"));
 
     createClientCache(getServerHostName(Host.getHost(0)), new Integer(PORT1), new Integer(PORT2),
         "1");
@@ -435,7 +435,7 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
     serverVM0.invoke(() -> HARQueueNewImplDUnitTest.verifyRegionSize(new Integer(5), new Integer(5),
         new Integer(PORT1)));
 
-    serverVM0.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
     serverVM0.invoke(() -> HARQueueNewImplDUnitTest
         .waitTillMessagesAreDispatched(new Integer(PORT1), new Long(5000)));
 
@@ -449,7 +449,7 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
    */
   @Test
   public void testRefCountForQRM() throws Exception {
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("30000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("30000"));
 
     createClientCache(getServerHostName(Host.getHost(0)), new Integer(PORT1), new Integer(PORT2),
         "1");
@@ -473,7 +473,7 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
     serverVM1.invoke(() -> HARQueueNewImplDUnitTest.verifyRegionSize(new Integer(5), new Integer(5),
         new Integer(PORT2)));
 
-    serverVM0.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
 
     serverVM1.invoke(() -> HARQueueNewImplDUnitTest.verifyRegionSize(new Integer(5), new Integer(0),
         new Integer(PORT2)));
@@ -487,8 +487,8 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
   @Test
   public void testRefCountForDestroy() throws Exception {
     // slow start for dispatcher
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("30000"));
-    serverVM1.invoke(() -> ConflationDUnitTest.setIsSlowStart("30000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("30000"));
+    serverVM1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("30000"));
 
     createClientCache(getServerHostName(Host.getHost(0)), new Integer(PORT1), new Integer(PORT2),
         "1");
@@ -540,8 +540,8 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
    */
   @Test
   public void testConcurrentGIIAndDispatch() throws Exception {
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("40000"));
-    serverVM1.invoke(() -> ConflationDUnitTest.setIsSlowStart("40000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("40000"));
+    serverVM1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("40000"));
 
     createClientCache(getServerHostName(Host.getHost(0)), new Integer(PORT1), new Integer(PORT2),
         "1");
@@ -574,8 +574,8 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
     serverVM0.invoke(HARQueueNewImplDUnitTest.class, "populateValuesOfSomeKeysInClientMsgsRegion",
         new Object[] {new Integer(PORT1), new String[] {"k1", "k3"}});
 
-    serverVM0.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
-    serverVM1.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
+    serverVM1.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
   }
 
   /**
@@ -585,7 +585,7 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
   @Test
   public void testTwoBridgeServersInOneVMDoShareCMR() throws Exception {
     // slow start for dispatcher
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("30000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("30000"));
 
     Integer port3 = (Integer) serverVM0
         .invoke(() -> HARQueueNewImplDUnitTest.createOneMoreBridgeServer(Boolean.TRUE));
@@ -651,7 +651,7 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
   @Test
   public void testHAEventWrapperDoesNotHoldCUMOnceInsideCMR() throws Exception {
     // slow start for dispatcher
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("30000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("30000"));
 
     createClientCache(getServerHostName(Host.getHost(0)), new Integer(PORT1), new Integer(PORT2),
         "1");
@@ -696,7 +696,7 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
             .intValue();
     Boolean isRegion = Boolean.FALSE;
     // slow start for dispatcher
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("30000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("30000"));
 
     createClientCache(getServerHostName(Host.getHost(0)), new Integer(PORT1), new Integer(PORT2),
         "1");
@@ -734,7 +734,7 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
   public void testCMRCreatedForMemOrEntryEvictionPolicy() throws Exception {
     Boolean isRegion = Boolean.TRUE;
     // slow start for dispatcher
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("30000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("30000"));
 
     createClientCache(getServerHostName(Host.getHost(0)), new Integer(PORT1), new Integer(PORT2),
         "1");
@@ -810,8 +810,8 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
         () -> HARQueueNewImplDUnitTest.createServerCache(HARegionQueue.HA_EVICTION_POLICY_NONE)))
             .intValue();
 
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
-    serverVM1.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
+    serverVM1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
 
     createClientCache(getServerHostName(Host.getHost(0)), new Integer(PORT1), new Integer(PORT2),
         "1");
@@ -833,8 +833,8 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
     Long usedMemInVM1 = (Long) serverVM1.invoke(() -> HARQueueNewImplDUnitTest
         .getUsedMemoryAndVerifyRegionSize(new Integer(1), numOfEntries, new Integer(-1)));
 
-    serverVM0.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
-    serverVM1.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
+    serverVM1.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
 
     logger.fine("Used Mem: " + usedMemInVM1.longValue() + "(without overflow), "
         + usedMemInVM0.longValue() + "(with overflow)");
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueExpiryRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueExpiryRegressionTest.java
index a6b9427..b29686a 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueExpiryRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueExpiryRegressionTest.java
@@ -18,7 +18,7 @@ import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache30.ClientServerTestCase.configureConnectionPool;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
-import static org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTest.setIsSlowStart;
+import static org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper.setIsSlowStart;
 import static org.apache.geode.internal.lang.SystemPropertyHelper.GEODE_PREFIX;
 import static org.apache.geode.internal.lang.SystemPropertyHelper.HA_REGION_QUEUE_EXPIRY_TIME_PROPERTY;
 import static org.apache.geode.test.dunit.Host.getHost;
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientConflationDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientConflationDUnitTest.java
index 3a83727..8e31c82 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientConflationDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientConflationDUnitTest.java
@@ -143,7 +143,7 @@ public class ClientConflationDUnitTest extends JUnit4DistributedTestCase {
     vm1.invoke(() -> ClientConflationDUnitTest.assertAllCountersZero());
     vm1.invoke(() -> ClientConflationDUnitTest.registerInterest());
     putEntries();
-    vm0.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    vm0.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
     Thread.sleep(20000);
     vm0.invoke(() -> ClientConflationDUnitTest.assertAllQueuesEmpty());
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
index 7c3772f..5aa5a83 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
@@ -12,1388 +12,9 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache.tier.sockets;
-
-import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
-import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.util.Arrays;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
-import org.awaitility.Awaitility;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.GemFireConfigException;
-import org.apache.geode.GemFireIOException;
-import org.apache.geode.cache.AttributesFactory;
-import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheException;
-import org.apache.geode.cache.CacheWriterException;
-import org.apache.geode.cache.DataPolicy;
-import org.apache.geode.cache.EntryEvent;
-import org.apache.geode.cache.PartitionAttributesFactory;
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.RegionAttributes;
-import org.apache.geode.cache.RegionShortcut;
-import org.apache.geode.cache.Scope;
-import org.apache.geode.cache.client.ClientCache;
-import org.apache.geode.cache.client.ClientCacheFactory;
-import org.apache.geode.cache.client.ClientRegionShortcut;
-import org.apache.geode.cache.client.NoAvailableServersException;
-import org.apache.geode.cache.client.Pool;
-import org.apache.geode.cache.client.PoolFactory;
-import org.apache.geode.cache.client.PoolManager;
-import org.apache.geode.cache.client.internal.Connection;
-import org.apache.geode.cache.client.internal.Op;
-import org.apache.geode.cache.client.internal.PoolImpl;
-import org.apache.geode.cache.client.internal.QueueConnectionImpl;
-import org.apache.geode.cache.client.internal.RegisterInterestTracker;
-import org.apache.geode.cache.server.CacheServer;
-import org.apache.geode.cache.util.CacheListenerAdapter;
-import org.apache.geode.cache30.CacheSerializableRunnable;
-import org.apache.geode.distributed.DistributedMember;
-import org.apache.geode.distributed.DistributedSystem;
-import org.apache.geode.distributed.DistributedSystemDisconnectedException;
-import org.apache.geode.distributed.internal.DistributionConfig;
-import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.internal.AvailablePort;
-import org.apache.geode.internal.OSProcess;
-import org.apache.geode.internal.cache.CacheServerImpl;
-import org.apache.geode.internal.cache.GemFireCacheImpl;
-import org.apache.geode.internal.cache.LocalRegion;
-import org.apache.geode.internal.cache.ha.ThreadIdentifier;
-import org.apache.geode.internal.logging.LogService;
-import org.apache.geode.test.dunit.DistributedTestUtils;
-import org.apache.geode.test.dunit.Host;
-import org.apache.geode.test.dunit.IgnoredException;
-import org.apache.geode.test.dunit.NetworkUtils;
-import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.Wait;
-import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase;
-import org.apache.geode.test.dunit.standalone.VersionManager;
-import org.apache.geode.test.junit.categories.ClientServerTest;
-
-/**
- * Tests client server corner cases between Region and Pool
- */
-@Category({ClientServerTest.class})
-public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
-
-  protected static PoolImpl pool = null;
-
-  protected static Connection conn = null;
-
-  private static Cache static_cache;
-
-  private static int PORT1;
-
-  private static final String k1 = "k1";
-
-  private static final String k2 = "k2";
-
-  private static final String server_k1 = "server-k1";
-
-  private static final String server_k2 = "server-k2";
-
-  private static final String REGION_NAME1 = "ClientServerMiscDUnitTest_region1";
-
-  static final String REGION_NAME2 = "ClientServerMiscDUnitTest_region2";
-
-  private static final String PR_REGION_NAME = "ClientServerMiscDUnitTest_PRregion";
-
-  private static Host host;
-
-  protected static VM server1;
-
-  protected static VM server2;
-
-  private static RegionAttributes attrs;
-
-  // variables for concurrent map API test
-  Properties props = new Properties();
-  private final int putRange_1Start = 1;
-  private final int putRange_1End = 5;
-  private final int putRange_2Start = 6;
-  private final int putRange_2End = 10;
-
-
-  String testVersion; // version for client caches for backward-compatibility
-                      // testing
-
-  public ClientServerMiscDUnitTest() {
-    testVersion = VersionManager.CURRENT_VERSION;
-  }
-
-  @Override
-  public final void postSetUp() {
-    host = Host.getHost(0);
-    server1 = host.getVM(VersionManager.CURRENT_VERSION, 2);
-    server2 = host.getVM(VersionManager.CURRENT_VERSION, 3);
-  }
-
-  int initServerCache(boolean notifyBySub) {
-    return initServerCache(notifyBySub, false);
-  }
-
-  int initServerCache2() {
-    return initServerCache2(false);
-  }
-
-  private int initServerCache(boolean notifyBySub, boolean isHA) {
-    return initServerCache(notifyBySub, server1, isHA);
-  }
-
-  private int initServerCache2(boolean isHA) {
-    return initServerCache(true, server2, isHA);
-  }
-
-  int initServerCache(boolean notifyBySub, VM vm, boolean isHA) {
-    return vm.invoke(() -> createServerCache(notifyBySub, getMaxThreads(), isHA));
-  }
-
-  @Test
-  public void testConcurrentOperationsWithDRandPR() {
-    int port1 = initServerCache(true); // vm0
-    int port2 = initServerCache2(); // vm1
-    String serverName = NetworkUtils.getServerHostName();
-    host.getVM(testVersion, 0).invoke(() -> createClientCacheV(serverName, port1));
-    host.getVM(testVersion, 1).invoke(() -> createClientCacheV(serverName, port2));
-    LogService.getLogger()
-        .info("Testing concurrent map operations from a client with a distributed region");
-    concurrentMapTest(host.getVM(testVersion, 0), "/" + REGION_NAME1);
-    // TODO add verification in vm1
-    LogService.getLogger()
-        .info("Testing concurrent map operations from a client with a partitioned region");
-    concurrentMapTest(host.getVM(testVersion, 0), "/" + PR_REGION_NAME);
-    // TODO add verification in vm1
-  }
-
-  /**
-   * When a client's subscription thread connects to a server it should receive the server's
-   * pingInterval setting. This is used by the client to set a read-timeout in order to avoid
-   * hanging should the server's machine crash.
-   *
-   * @see MessageJUnitTest#messageWillTimeoutDuringRecvOnInactiveSocket
-   */
-  @Test
-  public void testClientReceivesPingIntervalSetting() {
-    VM clientVM = Host.getHost(0).getVM(testVersion, 0);
-
-    final int port = initServerCache(true);
-    final String host = NetworkUtils.getServerHostName();
-
-    clientVM.invoke("create client cache and verify", () -> {
-      createClientCacheAndVerifyPingIntervalIsSet(host, port);
-    });
-  }
-
-  void createClientCacheAndVerifyPingIntervalIsSet(String host, int port) throws Exception {
-    PoolImpl pool = null;
-    try {
-      Properties props = new Properties();
-      props.setProperty(MCAST_PORT, "0");
-      props.setProperty(LOCATORS, "");
-
-      createCache(props);
-
-      pool = (PoolImpl) PoolManager.createFactory().addServer(host, port)
-          .setSubscriptionEnabled(true).setThreadLocalConnections(false).setReadTimeout(1000)
-          .setSocketBufferSize(32768).setMinConnections(1).setSubscriptionRedundancy(-1)
-          .setPingInterval(2000).create("test pool");
-
-      Region<Object, Object> region = cache.createRegionFactory(RegionShortcut.LOCAL)
-          .setPoolName("test pool").create(REGION_NAME1);
-      region.registerInterest(".*");
-
-      /** get the subscription connection and verify that it has the correct timeout setting */
-      QueueConnectionImpl primaryConnection = (QueueConnectionImpl) pool.getPrimaryConnection();
-      int pingInterval = ((CacheClientUpdater) primaryConnection.getUpdater())
-          .getServerQueueStatus().getPingInterval();
-      assertNotEquals(0, pingInterval);
-      assertEquals(CacheClientNotifier.getClientPingInterval(), pingInterval);
-    } finally {
-      cache.close();
-    }
-
-  }
-
-  @Test
-  public void testConcurrentOperationsWithDRandPRandEmptyClient() {
-    int port1 = initServerCache(true); // vm0
-    int port2 = initServerCache2(); // vm1
-    String serverName = NetworkUtils.getServerHostName();
-    host.getVM(testVersion, 0).invoke(() -> createEmptyClientCache(serverName, port1));
-    host.getVM(testVersion, 1).invoke(() -> createClientCacheV(serverName, port2));
-    LogService.getLogger()
-        .info("Testing concurrent map operations from a client with a distributed region");
-    concurrentMapTest(host.getVM(testVersion, 0), "/" + REGION_NAME1);
-    // TODO add verification in vm1
-    LogService.getLogger()
-        .info("Testing concurrent map operations from a client with a partitioned region");
-    concurrentMapTest(host.getVM(testVersion, 0), "/" + PR_REGION_NAME);
-    // TODO add verification in vm1
-  }
-
-  /**
-   * Do putIfAbsent(), replace(Object, Object), replace(Object, Object, Object), remove(Object,
-   * Object) operations
-   */
-  private void concurrentMapTest(final VM clientVM, final String rName) {
-
-    // String exceptionStr = "";
-    clientVM.invoke(new CacheSerializableRunnable("doConcurrentMapOperations") {
-      public void run2() throws CacheException {
-        Cache cache = getCache();
-        final Region pr = cache.getRegion(rName);
-        assertNotNull(rName + " not created", pr);
-        boolean isEmpty = pr.getAttributes().getDataPolicy() == DataPolicy.EMPTY;
-
-        // test successful putIfAbsent
-        for (int i = putRange_1Start; i <= putRange_1End; i++) {
-          Object putResult = pr.putIfAbsent(Integer.toString(i), Integer.toString(i));
-          assertNull("Expected null, but got " + putResult + " for key " + i, putResult);
-        }
-        int size;
-        if (!isEmpty) {
-          size = pr.size();
-          assertEquals("Size doesn't return expected value", putRange_1End, size);
-          assertFalse("isEmpty doesnt return proper state of the PartitionedRegion", pr.isEmpty());
-        }
-
-        // test unsuccessful putIfAbsent
-        for (int i = putRange_1Start; i <= putRange_1End; i++) {
-          Object putResult = pr.putIfAbsent(Integer.toString(i), Integer.toString(i + 1));
-          assertEquals("for i=" + i, Integer.toString(i), putResult);
-          assertEquals("for i=" + i, Integer.toString(i), pr.get(Integer.toString(i)));
-        }
-        if (!isEmpty) {
-          size = pr.size();
-          assertEquals("Size doesn't return expected value", putRange_1End, size);
-          assertFalse("isEmpty doesnt return proper state of the PartitionedRegion", pr.isEmpty());
-        }
-
-        // test successful replace(key, oldValue, newValue)
-        for (int i = putRange_1Start; i <= putRange_1End; i++) {
-          boolean replaceSucceeded =
-              pr.replace(Integer.toString(i), Integer.toString(i), "replaced" + i);
-          assertTrue("for i=" + i, replaceSucceeded);
-          assertEquals("for i=" + i, "replaced" + i, pr.get(Integer.toString(i)));
-        }
-        if (!isEmpty) {
-          size = pr.size();
-          assertEquals("Size doesn't return expected value", putRange_1End, size);
-          assertFalse("isEmpty doesnt return proper state of the PartitionedRegion", pr.isEmpty());
-        }
-
-        // test unsuccessful replace(key, oldValue, newValue)
-        for (int i = putRange_1Start; i <= putRange_2End; i++) {
-          boolean replaceSucceeded = pr.replace(Integer.toString(i), Integer.toString(i), // wrong
-                                                                                          // expected
-                                                                                          // old
-                                                                                          // value
-              "not" + i);
-          assertFalse("for i=" + i, replaceSucceeded);
-          assertEquals("for i=" + i, i <= putRange_1End ? "replaced" + i : null,
-              pr.get(Integer.toString(i)));
-        }
-        if (!isEmpty) {
-          size = pr.size();
-          assertEquals("Size doesn't return expected value", putRange_1End, size);
-          assertFalse("isEmpty doesnt return proper state of the PartitionedRegion", pr.isEmpty());
-        }
-
-        // test successful replace(key, value)
-        for (int i = putRange_1Start; i <= putRange_1End; i++) {
-          Object replaceResult = pr.replace(Integer.toString(i), "twice replaced" + i);
-          assertEquals("for i=" + i, "replaced" + i, replaceResult);
-          assertEquals("for i=" + i, "twice replaced" + i, pr.get(Integer.toString(i)));
-        }
-        if (!isEmpty) {
-          size = pr.size();
-          assertEquals("Size doesn't return expected value", putRange_1End, size);
-          assertFalse("isEmpty doesnt return proper state of the PartitionedRegion", pr.isEmpty());
-        }
-
-        // test unsuccessful replace(key, value)
-        for (int i = putRange_2Start; i <= putRange_2End; i++) {
-          Object replaceResult = pr.replace(Integer.toString(i), "thrice replaced" + i);
-          assertNull("for i=" + i, replaceResult);
-          assertNull("for i=" + i, pr.get(Integer.toString(i)));
-        }
-        if (!isEmpty) {
-          size = pr.size();
-          assertEquals("Size doesn't return expected value", putRange_1End, size);
-          assertFalse("isEmpty doesnt return proper state of the PartitionedRegion", pr.isEmpty());
-        }
-
-        // test unsuccessful remove(key, value)
-        for (int i = putRange_1Start; i <= putRange_2End; i++) {
-          boolean removeResult = pr.remove(Integer.toString(i), Integer.toString(-i));
-          assertFalse("for i=" + i, removeResult);
-          assertEquals("for i=" + i, i <= putRange_1End ? "twice replaced" + i : null,
-              pr.get(Integer.toString(i)));
-        }
-        if (!isEmpty) {
-          size = pr.size();
-          assertEquals("Size doesn't return expected value", putRange_1End, size);
-          assertFalse("isEmpty doesnt return proper state of the PartitionedRegion", pr.isEmpty());
-        }
-
-        // test successful remove(key, value)
-        for (int i = putRange_1Start; i <= putRange_1End; i++) {
-          boolean removeResult = pr.remove(Integer.toString(i), "twice replaced" + i);
-          assertTrue("for i=" + i, removeResult);
-          assertNull("for i=" + i, pr.get(Integer.toString(i)));
-        }
-        if (!isEmpty) {
-          size = pr.size();
-          assertEquals("Size doesn't return expected value", 0, size);
-          pr.localClear();
-          assertTrue("isEmpty doesnt return proper state of the PartitionedRegion", pr.isEmpty());
-        }
-
-        if (!isEmpty) {
-          // bug #42169 - entry not updated on server when locally destroyed on client
-          String key42169 = "key42169";
-          pr.put(key42169, "initialValue42169");
-          pr.localDestroy(key42169);
-          boolean success = pr.replace(key42169, "initialValue42169", "newValue42169");
-          assertTrue("expected replace to succeed", success);
-          pr.destroy(key42169);
-          pr.put(key42169, "secondRound");
-          pr.localDestroy(key42169);
-          Object result = pr.putIfAbsent(key42169, null);
-          assertEquals("expected putIfAbsent to fail", result, "secondRound");
-          pr.destroy(key42169);
-        }
-
-        if (isEmpty) {
-          String key41265 = "key41265";
-          boolean success = pr.remove(key41265, null);
-          assertFalse("expected remove to fail because key does not exist", success);
-        }
-
-        // test null values
-
-        // putIfAbsent with null value creates invalid entry
-        Object oldValue = pr.putIfAbsent("keyForNull", null);
-        assertNull(oldValue);
-        if (!isEmpty) {
-          assertTrue(pr.containsKey("keyForNull"));
-          assertTrue(!pr.containsValueForKey("keyForNull"));
-        }
-
-        // replace allows null value for oldValue, meaning invalidated entry
-        assertTrue(pr.replace("keyForNull", null, "no longer invalid"));
-
-        // replace does not allow null value for new value
-        assertThatThrownBy(() -> pr.replace("keyForNull", "no longer invalid", null))
-            .isExactlyInstanceOf(NullPointerException.class);
-
-        // other variant of replace does not allow null value for new value
-        assertThatThrownBy(() -> pr.replace("keyForNull", null))
-            .isExactlyInstanceOf(NullPointerException.class);
-
-        // replace with null oldvalue matches invalidated entry
-        pr.putIfAbsent("otherKeyForNull", null);
-        int puts = ((GemFireCacheImpl) pr.getCache()).getCachePerfStats().getPuts();
-        boolean success = pr.replace("otherKeyForNull", null, "no longer invalid");
-        assertTrue(success);
-        int newputs = ((GemFireCacheImpl) pr.getCache()).getCachePerfStats().getPuts();
-        assertEquals("stats not updated properly or replace malfunctioned", newputs, puts + 1);
-
-      }
-    });
-  }
-
-  /**
-   * Test two regions: notify by subscription is true. For region1 the interest list is empty , for
-   * region 2 the intetest list is all keys. If an update/create is made on region1 , the client
-   * should not receive any. If the create/update is on region2 , the client should receive the
-   * update.
-   */
-  @Test
-  public void testForTwoRegionHavingDifferentInterestList() {
-    // start server first
-    PORT1 = initServerCache(true);
-    int serverPort = PORT1;
-    VM client1 = Host.getHost(0).getVM(testVersion, 1);
-    String hostname = NetworkUtils.getServerHostName();
-    client1.invoke("create client1 cache", () -> {
-      createClientCache(hostname, serverPort);
-      populateCache();
-      registerInterest();
-    });
-
-    server1.invoke("putting entries in server1", () -> put());
-
-    client1.invoke(() -> verifyUpdates());
-  }
-
-  /**
-   * Test two regions: notify by subscription is true. Both the regions have registered interest in
-   * all the keys. Now close region1 on the client. The region1 should get removed from the interest
-   * list on CCP at server. Any update on region1 on server should not get pushed to the client.
-   * Ensure that the message related is not added to the client's queue at all ( which is diferent
-   * from not receiving a callbak on the client). If an update on region2 is made on the server ,
-   * then client should receive the calback
-   */
-  @Test
-  public void testForTwoRegionHavingALLKEYSInterest() throws Exception {
-    // start server first
-    PORT1 = initServerCache(true);
-    createClientCache(NetworkUtils.getServerHostName(), PORT1);
-    populateCache();
-    registerInterestInBothTheRegions();
-    closeRegion1();
-    Wait.pause(6000);
-    server1.invoke(() -> ClientServerMiscDUnitTest.verifyInterestListOnServer());
-    server1.invoke(() -> ClientServerMiscDUnitTest.put());
-    // pause(5000);
-    verifyUpdatesOnRegion2();
-  }
-
-  /**
-   * Test two regions: notify by subscription is true. Both the regions have registered interest in
-   * all the keys. Close both the regions. When the last region is closed , it should close the
-   * ConnectionProxy on the client , close all the server connection threads on the server & remove
-   * the CacheClientProxy from the CacheClient notifier
-   */
-  @Test
-  public void testRegionClose() throws Exception {
-    // start server first
-    PORT1 = initServerCache(true);
-    pool = (PoolImpl) createClientCache(NetworkUtils.getServerHostName(), PORT1);
-    populateCache();
-    registerInterestInBothTheRegions();
-    closeBothRegions();
-
-    assertFalse(pool.isDestroyed());
-    pool.destroy();
-    assertTrue(pool.isDestroyed());
-    server1.invoke(() -> ClientServerMiscDUnitTest.verifyNoCacheClientProxyOnServer());
-
-  }
-
-  /**
-   * Test two regions: notify by subscription is true. Both the regions have registered interest in
-   * all the keys. Destroy region1 on the client. It should reach the server , kill the region on
-   * the server , propagate it to the interested clients , but it should keep CacheClient Proxy
-   * alive. Destroy Region2 . It should reach server , close conenction proxy , destroy the region2
-   * on the server , remove the cache client proxy from the cache client notifier & propagate it to
-   * the clients. Then create third region and verify that no CacheClientProxy is created on server
-   */
-  @Test
-  public void testCCPDestroyOnLastDestroyRegion() throws Exception {
-    PORT1 = initServerCache(true);
-    PoolImpl pool =
-        (PoolImpl) createClientCache(NetworkUtils.getServerHostName(), PORT1);
-    destroyRegion1();
-    // pause(5000);
-    server1.invoke(
-        () -> ClientServerMiscDUnitTest.verifyCacheClientProxyOnServer(REGION_NAME1));
-    Connection conn = pool.acquireConnection();
-    assertNotNull(conn);
-    assertEquals(1, pool.getConnectedServerCount());
-    assertFalse(pool.isDestroyed());
-    destroyRegion2();
-    assertFalse(pool.isDestroyed());
-    destroyPRRegion();
-    assertFalse(pool.isDestroyed());
-    pool.destroy();
-    assertTrue(pool.isDestroyed());
-    // pause(5000);
-    server1.invoke(() -> ClientServerMiscDUnitTest.verifyNoCacheClientProxyOnServer());
-
-    assertThatThrownBy(() -> getCache().createRegion(REGION_NAME2, attrs))
-        .isExactlyInstanceOf(IllegalStateException.class);
-  }
-
-  /**
-   * Test two regions:If notify by subscription is false , both the regions should receive
-   * invalidates for the updates on server in their respective regions
-   *
-   */
-  @Test
-  public void testInvalidatesPropagateOnTwoRegions() throws Exception {
-    // start server first
-    PORT1 = initServerCache(false);
-    createClientCache(NetworkUtils.getServerHostName(), PORT1);
-    registerInterestForInvalidatesInBothTheRegions();
-    populateCache();
-    server1.invoke(() -> ClientServerMiscDUnitTest.put());
-    // pause(5000);
-    verifyInvalidatesOnBothRegions();
-
-  }
-
-  /**
-   * Test for bug 43407, where LRU in the client caused an entry to be evicted with DESTROY(), then
-   * the client invalidated the entry and did a get(). After the get() the entry was not seen to be
-   * in the client's cache. This turned out to be expected behavior, but we now have this test to
-   * guarantee that the product behaves as expected.
-   */
-  @Test
-  public void testGetInClientCreatesEntry() throws Exception {
-    // start server first
-    PORT1 = initServerCache(false);
-    createClientCache(NetworkUtils.getServerHostName(), PORT1);
-    registerInterestForInvalidatesInBothTheRegions();
-    Region region = static_cache.getRegion(REGION_NAME1);
-    populateCache();
-    region.put("invalidationKey", "invalidationValue");
-    region.localDestroy("invalidationKey");
-    if (region.containsKey("invalidationKey")) {
-      fail("region still contains invalidationKey");
-    }
-    region.invalidate("invalidationKey");
-    if (region.containsKey("invalidationKey")) {
-      fail(
-          "this test expects the entry is not created on invalidate() if not there before the operation");
-    }
-    Object value = region.get("invalidationKey");
-    if (value != null) {
-      fail("this test expected a null response to get('invalidationKey')");
-    }
-    if (!region.containsKeyOnServer("invalidationKey")) {
-      fail("expected an entry on the server after invalidation");
-    }
-    // bug 43407 asserts that there should be an entry, but the product does not
-    // do this. This verifies that the product does not behave as asserted in that bug
-    if (region.containsKey("invalidationKey")) {
-      fail("expected no entry after invalidation when entry was not in client but was on server");
-    }
-  }
-
-  /**
-   * GEODE-478 - large payloads are rejected by client->server
-   */
-  @Test
-  public void testLargeMessageIsRejected() throws Exception {
-    PORT1 = initServerCache(false);
-    createClientCache(NetworkUtils.getServerHostName(), PORT1);
-    Region region = static_cache.getRegion(REGION_NAME1);
-    Op operation = new Op() {
-      @Override
-      public Object attempt(Connection cnx) throws Exception {
-        throw new MessageTooLargeException("message is too big");
-      }
-
-      @Override
-      public boolean useThreadLocalConnection() {
-        return false;
-      }
-    };
-    try {
-      ((LocalRegion) region).getServerProxy().getPool().execute(operation);
-    } catch (GemFireIOException e) {
-      assertTrue(e.getCause() instanceof MessageTooLargeException);
-      return;
-    }
-    fail("expected an exception to be thrown");
-  }
-
-  /**
-   * Create cache, create pool, notify-by-subscription=false, create a region and on client and on
-   * server. Do not attach pool to region , populate some entries on region both on client and
-   * server. Update the entries on server the client. The client should not have entry invalidate.
-   */
-  @Test
-  public void testInvalidatesPropagateOnRegionHavingNoPool() {
-    // start server first
-    PORT1 = initServerCache(false);
-    Properties props = new Properties();
-    props.setProperty(MCAST_PORT, "0");
-    props.setProperty(LOCATORS, "");
-    new ClientServerMiscDUnitTest().createCache(props);
-    String host = NetworkUtils.getServerHostName();
-    PoolImpl p =
-        (PoolImpl) PoolManager.createFactory().addServer(host, PORT1).setSubscriptionEnabled(true)
-            .setThreadLocalConnections(true).setReadTimeout(1000).setSocketBufferSize(32768)
-            .setMinConnections(3).setSubscriptionRedundancy(-1).setPingInterval(2000)
-            // .setRetryAttempts(5)
-            // .setRetryInterval(2000)
-            .create("testInvalidatesPropagateOnRegionHavingNoPool");
-
-    AttributesFactory factory = new AttributesFactory();
-    factory.setScope(Scope.DISTRIBUTED_ACK);
-    // factory.setPoolName(p.getName());
-
-    attrs = factory.create();
-    final Region region1 = getCache().createRegion(REGION_NAME1, attrs);
-    final Region region2 = getCache().createRegion(REGION_NAME2, attrs);
-    assertNotNull(region1);
-    assertNotNull(region2);
-    pool = p;
-    conn = pool.acquireConnection();
-    assertNotNull(conn);
-
-    populateCache();
-    server1.invoke(() -> ClientServerMiscDUnitTest.put());
-
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
-      Object val = region1.getEntry(k1).getValue();
-      return k1.equals(val);
-    });
-
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
-      Object val = region1.getEntry(k2).getValue();
-      return k2.equals(val);
-    });
-
-
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
-      Object val = region2.getEntry(k1).getValue();
-      return k1.equals(val);
-    });
-
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
-      Object val = region2.getEntry(k2).getValue();
-      return k2.equals(val);
-    });
-
-    // assertIndexDetailsEquals(region2.getEntry(k2).getValue(), k2);
-  }
-
-  /**
-   * Create proxy before cache creation, create cache, create two regions, attach same bridge writer
-   * to both of the regions Region interests AL_KEYS on both the regions,
-   * notify-by-subscription=true . The CCP should have both the regions in interest list.
-   *
-   */
-
-  @Test
-  public void testProxyCreationBeforeCacheCreation() {
-    Properties props = new Properties();
-    props.setProperty(MCAST_PORT, "0");
-    props.setProperty(LOCATORS, "");
-    DistributedSystem ds = getSystem(props);
-    assertNotNull(ds);
-    ds.disconnect();
-    ds = getSystem(props);
-    PORT1 = initServerCache(true);
-    String host = NetworkUtils.getServerHostName();
-    Pool p = PoolManager.createFactory().addServer(host, PORT1).setSubscriptionEnabled(true)
-        .setSubscriptionRedundancy(-1)
-        // .setRetryAttempts(5)
-        .create("testProxyCreationBeforeCacheCreationPool");
-
-    Cache cache = getCache();
-    assertNotNull(cache);
-
-    AttributesFactory factory = new AttributesFactory();
-    factory.setScope(Scope.DISTRIBUTED_ACK);
-    factory.setPoolName(p.getName());
-
-    RegionAttributes myAttrs = factory.create();
-    Region region1 = cache.createRegion(REGION_NAME1, myAttrs);
-    Region region2 = cache.createRegion(REGION_NAME2, myAttrs);
-    assertNotNull(region1);
-    assertNotNull(region2);
-    // region1.registerInterest(CacheClientProxy.ALL_KEYS);
-    region2.registerInterest("ALL_KEYS");
-    Wait.pause(6000);
-    server1.invoke(() -> ClientServerMiscDUnitTest.verifyInterestListOnServer());
-
-  }
-
-  /**
-   *
-   * bug 35380: Cycling a DistributedSystem with an initialized pool causes interest registration
-   * NPE
-   *
-   * Test Scenario:
-   *
-   * Create a DistributedSystem (DS1). Create a pool, initialize (creates a proxy with DS1 memberid)
-   * Disconnect DS1. Create a DistributedSystem (DS2). Create a Region with pool, it attempts to
-   * register interest using DS2 memberid, gets NPE.
-   *
-   */
-  @Test
-  public void testSystemCanBeCycledWithAnInitializedPool() {
-    // work around GEODE-477
-    IgnoredException.addIgnoredException("Connection reset");
-    Properties props = new Properties();
-    props.setProperty(MCAST_PORT, "0");
-    props.setProperty(LOCATORS, "");
-    DistributedSystem ds = getSystem(props);
-    assertNotNull(ds);
-
-    PORT1 = initServerCache(true);
-    String host = NetworkUtils.getServerHostName();
-    Pool p = PoolManager.createFactory().addServer(host, PORT1).setSubscriptionEnabled(true)
-        .setSubscriptionRedundancy(-1)
-        // .setRetryAttempts(5)
-        .create("testBug35380Pool");
-
-    Cache cache = getCache();
-
-    AttributesFactory factory = new AttributesFactory();
-    factory.setScope(Scope.DISTRIBUTED_ACK);
-    factory.setPoolName(p.getName());
 
-    RegionAttributes myAttrs = factory.create();
-    Region region1 = cache.createRegion(REGION_NAME1, myAttrs);
-    Region region2 = cache.createRegion(REGION_NAME2, myAttrs);
-    assertNotNull(region1);
-    assertNotNull(region2);
-
-    region2.registerInterest("ALL_KEYS");
-
-    ds.disconnect();
-    Properties prop = new Properties();
-    prop.setProperty(MCAST_PORT, "0");
-    prop.setProperty(LOCATORS, "");
-    ds = getSystem(prop);
-
-    final Cache cacheForLamda = getCache();
-    assertNotNull(cacheForLamda);
-
-    AttributesFactory factory1 = new AttributesFactory();
-    factory1.setScope(Scope.DISTRIBUTED_ACK);
-    // reuse writer from prev DS
-    factory1.setPoolName(p.getName());
-
-    final RegionAttributes attrs1 = factory1.create();
-    assertThatThrownBy(() -> cacheForLamda.createRegion(REGION_NAME1, attrs1))
-        .isInstanceOfAny(IllegalStateException.class, DistributedSystemDisconnectedException.class);
-  }
-
-  @Test(expected = GemFireConfigException.class)
-  public void clientIsPreventedFromConnectingToLocatorAsServer() {
-    IgnoredException.addIgnoredException("Improperly configured client detected");
-    ClientCacheFactory clientCacheFactory = new ClientCacheFactory();
-    clientCacheFactory.addPoolServer("localhost", DistributedTestUtils.getDUnitLocatorPort());
-    clientCacheFactory.setPoolSubscriptionEnabled(true);
-    getClientCache(clientCacheFactory);
-    Region region = ((ClientCache) cache).createClientRegionFactory(ClientRegionShortcut.PROXY)
-        .create(REGION_NAME1);
-    region.registerInterest(k1);
-  }
-
-
-  private void createCache(Properties props) {
-    createCacheV(props);
-  }
-
-  private Cache createCacheV(Properties props) {
-    DistributedSystem ds = getSystem(props);
-    assertNotNull(ds);
-    ds.disconnect();
-    ds = getSystem(props);
-    Cache cache = getCache();
-    assertNotNull(cache);
-    return cache;
-  }
-
-  public static void createClientCacheV(String h, int port) {
-    _createClientCache(h, false, -1, port);
-  }
-
-  public static void createEmptyClientCache(String h, int... ports) {
-    _createClientCache(h, false, -1, ports);
-  }
-
-  public static Pool createClientCache(String h, int... ports) {
-    return _createClientCache(h, false, -1, ports);
-  }
-
-  public static Pool createClientCache(String h, int subscriptionAckInterval, boolean empty,
-      int... ports) {
-    return _createClientCache(h, empty, subscriptionAckInterval, ports);
-  }
-
-  private static PoolFactory addServers(PoolFactory factory, String h, int... ports) {
-    for (int port : ports) {
-      factory.addServer(h, port);
-    }
-    return factory;
-  }
-
-  public static Pool _createClientCache(String h, boolean empty, int subscriptionAckInterval,
-      int... ports) {
-    Properties props = new Properties();
-    props.setProperty(MCAST_PORT, "0");
-    props.setProperty(LOCATORS, "");
-    Cache cache = new ClientServerMiscDUnitTest().createCacheV(props);
-    ClientServerMiscDUnitTest.static_cache = cache;
-    System.setProperty(DistributionConfig.GEMFIRE_PREFIX + "bridge.disableShufflingOfEndpoints",
-        "true");
-    PoolImpl p;
-    try {
-      PoolFactory poolFactory = PoolManager.createFactory();
-      addServers(poolFactory, h, ports).setSubscriptionEnabled(true).setThreadLocalConnections(true)
-          .setReadTimeout(5000).setSocketBufferSize(32768).setMinConnections(3)
-          .setSubscriptionRedundancy(1).setPingInterval(2000);
-      // .setRetryAttempts(5)
-      // .setRetryInterval(2000)
-      if (subscriptionAckInterval > 0) {
-        poolFactory.setSubscriptionAckInterval(subscriptionAckInterval);
-      }
-      p = (PoolImpl) poolFactory.create("ClientServerMiscDUnitTestPool");
-
-      AttributesFactory factory = new AttributesFactory();
-      factory.setScope(Scope.DISTRIBUTED_ACK);
-      if (empty) {
-        factory.setDataPolicy(DataPolicy.EMPTY);
-      }
-      factory.setPoolName(p.getName());
-
-      attrs = factory.create();
-    } finally {
-      System.getProperties()
-          .remove(DistributionConfig.GEMFIRE_PREFIX + "bridge.disableShufflingOfEndpoints");
-    }
-
-    Region region1 = cache.createRegion(REGION_NAME1, attrs);
-    Region region2 = cache.createRegion(REGION_NAME2, attrs);
-    Region prRegion = cache.createRegion(PR_REGION_NAME, attrs);
-    assertNotNull(region1);
-    assertNotNull(region2);
-    assertNotNull(prRegion);
-    pool = p;
-
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS).until(() -> {
-      try {
-        conn = pool.acquireConnection();
-        return conn != null;
-      } catch (NoAvailableServersException e) {
-        return false;
-      }
-    });
-
-    return p;
-  }
-
-  static class MemberIDVerifier extends CacheListenerAdapter {
-    boolean memberIDNotReceived = true;
-    boolean eventReceived = false;
-
-    @Override
-    public void afterCreate(EntryEvent event) {
-      eventReceived(event);
-    }
-
-    @Override
-    public void afterUpdate(EntryEvent event) {
-      eventReceived(event);
-    }
-
-    private void eventReceived(EntryEvent event) {
-      eventReceived = true;
-      DistributedMember memberID = event.getDistributedMember();
-      memberIDNotReceived = (memberID == null);
-      // System.out.println("received event " + event);
-    }
-
-    public void reset() {
-      memberIDNotReceived = true;
-      eventReceived = false;
-    }
-  }
-
-  public static void dumpPoolIdentifiers() throws Exception {
-    // duplicate events were received, so let's look at the thread identifiers we have
-    PoolImpl pool = (PoolImpl) PoolManager.find("ClientServerMiscDUnitTestPool");
-
-    Map seqMap = pool.getThreadIdToSequenceIdMap();
-    for (Object o : seqMap.keySet()) {
-      ThreadIdentifier tid = (ThreadIdentifier) o;
-      byte[] memberBytes = tid.getMembershipID();
-      dumpMemberId(tid, memberBytes);
-    }
-  }
-
-  public static void dumpMemberId(Object holder, byte[] memberBytes) throws Exception {
-    byte[] newBytes = new byte[memberBytes.length + 17];
-    System.arraycopy(memberBytes, 0, newBytes, 0, memberBytes.length);
-    ByteArrayInputStream bais = new ByteArrayInputStream(newBytes);
-    DataInputStream dataIn = new DataInputStream(bais);
-    InternalDistributedMember memberId = InternalDistributedMember.readEssentialData(dataIn);
-    String sb = "<" + Thread.currentThread().getName() + "> " + holder
-        + " is " + memberId + " byte count = " + memberBytes.length
-        + " bytes = " + Arrays.toString(memberBytes);
-    System.out.println(sb);
-  }
-
-
-  public static Integer createServerCache(Boolean notifyBySubscription, Integer maxThreads,
-      boolean isHA) throws Exception {
-    Cache cache = new ClientServerMiscDUnitTest().createCacheV(new Properties());
-    unsetSlowDispatcherFlag();
-    AttributesFactory factory = new AttributesFactory();
-    factory.setScope(Scope.DISTRIBUTED_ACK);
-    factory.setEnableConflation(true);
-    factory.setDataPolicy(DataPolicy.REPLICATE);
-    factory.setConcurrencyChecksEnabled(true);
-    RegionAttributes myAttrs = factory.create();
-    Region r1 = cache.createRegion(REGION_NAME1, myAttrs);
-    Region r2 = cache.createRegion(REGION_NAME2, myAttrs);
-    factory = new AttributesFactory();
-    factory.setDataPolicy(DataPolicy.PARTITION);
-    if (isHA) {
-      PartitionAttributesFactory paf = new PartitionAttributesFactory().setRedundantCopies(1);
-      factory.setPartitionAttributes(paf.create());
-    }
-    RegionAttributes prAttrs = factory.create();
-
-    Region pr = cache.createRegion(PR_REGION_NAME, prAttrs);
-    assertNotNull(r1);
-    assertNotNull(r2);
-    assertNotNull(pr);
-
-    CacheServer server = cache.addCacheServer();
-    int port = AvailablePort.getRandomAvailablePort(AvailablePort.SOCKET);
-    r1.getCache().getDistributedSystem().getLogWriter().info("Starting server on port " + port);
-    server.setPort(port);
-    server.setMaxThreads(maxThreads);
-    server.setNotifyBySubscription(notifyBySubscription);
-    server.start();
-    r1.getCache().getDistributedSystem().getLogWriter()
-        .info("Started server on port " + server.getPort());
-    return server.getPort();
-
-  }
-
-  protected int getMaxThreads() {
-    return 0;
-  }
-
-  public static void registerInterest() {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
-    Region r = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
-    assertNotNull(r);
-    r.registerInterest("ALL_KEYS");
-    r.getAttributesMutator().addCacheListener(new MemberIDVerifier());
-  }
-
-  private static void registerInterestForInvalidatesInBothTheRegions() {
-    try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
-      Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
-      assertNotNull(r1);
-      Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
-      assertNotNull(r2);
-      r1.registerInterest("ALL_KEYS", false, false);
-      r2.registerInterest("ALL_KEYS", false, false);
-    } catch (CacheWriterException e) {
-      e.printStackTrace();
-      fail("Test failed due to CacheWriterException during registerInterestnBothRegions" + e);
-    }
-  }
-
-  private static void registerInterestInBothTheRegions() {
-    try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
-      Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
-      assertNotNull(r1);
-      Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
-      assertNotNull(r2);
-      r1.registerInterestForAllKeys();
-      r2.registerInterestForAllKeys();
-    } catch (CacheWriterException e) {
-      e.printStackTrace();
-      fail("Test failed due to CacheWriterException during registerInterestnBothRegions" + e);
-    }
-  }
-
-  private static void closeRegion1() {
-    try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
-      Region<String, String> r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
-      assertNotNull(r1);
-      r1.close();
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail("Test failed due to Exception during closeRegion1" + e);
-    }
-  }
-
-  private static void closeBothRegions() {
-    try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
-      Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
-      Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
-      Region pr = cache.getRegion(Region.SEPARATOR + PR_REGION_NAME);
-      assertNotNull(r1);
-      assertNotNull(r2);
-      assertNotNull(pr);
-      r1.close();
-      r2.close();
-      pr.close();
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail("Test failed due to Exception during closeBothRegions" + e);
-    }
-  }
-
-  private static void destroyRegion1() {
-    try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
-      Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
-      assertNotNull(r1);
-      r1.destroyRegion();
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail("Test failed due to Exception during closeBothRegions" + e);
-    }
-  }
-
-  private static void destroyRegion2() {
-    try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
-      Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
-      assertNotNull(r2);
-      r2.destroyRegion();
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail("Test failed due to Exception during closeBothRegions" + e);
-    }
-  }
-
-  private static void destroyPRRegion() {
-    try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
-      Region r2 = cache.getRegion(Region.SEPARATOR + PR_REGION_NAME);
-      assertNotNull(r2);
-      r2.destroyRegion();
-    } catch (Exception e) {
-      // e.printStackTrace();
-      fail("Test failed due to Exception during closeBothRegions" + e);
-    }
-  }
-
-  private static void verifyInterestListOnServer() {
-    try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
-      assertEquals("More than one BridgeServer", 1, cache.getCacheServers().size());
-      CacheServerImpl bs = (CacheServerImpl) cache.getCacheServers().iterator().next();
-      assertNotNull(bs);
-      assertNotNull(bs.getAcceptor());
-      assertNotNull(bs.getAcceptor().getCacheClientNotifier());
-      for (CacheClientProxy ccp : bs.getAcceptor().getCacheClientNotifier().getClientProxies()) {
-        // CCP should not contain region1
-        Set<String> akr = ccp.cils[RegisterInterestTracker.interestListIndex].regions;
-        assertNotNull(akr);
-        assertTrue(!akr.contains(Region.SEPARATOR + REGION_NAME1));
-        // CCP should contain region2
-        assertTrue(akr.contains(Region.SEPARATOR + REGION_NAME2));
-        assertEquals(1, akr.size());
-      }
-    } catch (Exception ex) {
-      ex.printStackTrace();
-      fail("while setting verifyInterestListOnServer  " + ex);
-    }
-  }
-
-  private static void verifyNoCacheClientProxyOnServer() {
-    try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
-      assertEquals("More than one BridgeServer", 1, cache.getCacheServers().size());
-      CacheServerImpl cacheServer = (CacheServerImpl) cache.getCacheServers().iterator().next();
-      assertNotNull(cacheServer);
-      assertNotNull(cacheServer.getAcceptor());
-      final CacheClientNotifier ccn = cacheServer.getAcceptor().getCacheClientNotifier();
-
-      assertNotNull(ccn);
-      Awaitility.await().atMost(40, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
-          .until(() -> ccn.getClientProxies().size() == 0);
-    } catch (Exception ex) {
-      System.out.println("The size of the client proxies != 0");
-      OSProcess.printStacks(0);
-      throw ex;
-    }
-  }
-
-  private static void verifyCacheClientProxyOnServer(String regionName) {
-    try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
-      assertNull(cache.getRegion(Region.SEPARATOR + regionName));
-      verifyCacheClientProxyOnServer();
-
-      // assertIndexDetailsEquals(1,
-      // bs.getAcceptor().getCacheClientNotifier().getClientProxies().size());
-    } catch (Exception ex) {
-      ex.printStackTrace();
-      fail("while setting verifyNoCacheClientProxyOnServer  " + ex);
-    }
-  }
-
-  private static void verifyCacheClientProxyOnServer() {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
-    assertEquals("More than one BridgeServer", 1, cache.getCacheServers().size());
-    CacheServerImpl bs = (CacheServerImpl) cache.getCacheServers().iterator().next();
-    assertNotNull(bs);
-    assertNotNull(bs.getAcceptor());
-    final CacheClientNotifier ccn = bs.getAcceptor().getCacheClientNotifier();
-
-    assertNotNull(ccn);
-
-    Awaitility.await().atMost(40, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
-        .until(() -> ccn.getClientProxies().size() == 1);
-  }
-
-  public static void populateCache() {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
-    Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
-    Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
-    assertNotNull(r1);
-    assertNotNull(r2);
-
-    if (!r1.containsKey(k1))
-      r1.create(k1, k1);
-    if (!r1.containsKey(k2))
-      r1.create(k2, k2);
-    if (!r2.containsKey(k1))
-      r2.create(k1, k1);
-    if (!r2.containsKey(k2))
-      r2.create(k2, k2);
-
-    assertEquals(r1.getEntry(k1).getValue(), k1);
-    assertEquals(r1.getEntry(k2).getValue(), k2);
-    assertEquals(r2.getEntry(k1).getValue(), k1);
-    assertEquals(r2.getEntry(k2).getValue(), k2);
-  }
-
-  public static void put() {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
-    Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
-    Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
-    assertNotNull(r1);
-    assertNotNull(r2);
-
-    r1.put(k1, server_k1);
-    r1.put(k2, server_k2);
-
-    r2.put(k1, server_k1);
-    r2.put(k2, server_k2);
-
-    assertEquals(r1.getEntry(k1).getValue(), server_k1);
-    assertEquals(r1.getEntry(k2).getValue(), server_k2);
-    assertEquals(r2.getEntry(k1).getValue(), server_k1);
-    assertEquals(r2.getEntry(k2).getValue(), server_k2);
-  }
-
-  static void putForClient() {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
-    Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
-    if (r2 == null) {
-      r2 = cache.createRegionFactory(RegionShortcut.REPLICATE).create(REGION_NAME2);
-    }
-
-    r2.put(k1, "client2_k1");
-    r2.put(k2, "client2_k2");
-  }
-
-  private static void verifyUpdates() {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
-    final Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
-    final Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
-    assertNotNull(r1);
-    assertNotNull(r2);
-
-    // no interest registered in region1 - it should hold client values, which are
-    // the same as the keys
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
-      Object val = r1.getEntry(k1).getValue();
-      return k1.equals(val);
-    });
-
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
-      Object val = r1.getEntry(k2).getValue();
-      return k2.equals(val);
-    });
-
-    // interest was registered in region2 - it should contain server values
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
-      Object val = r2.getEntry(k1).getValue();
-      return server_k1.equals(val);
-    });
-
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
-      Object val = r2.getEntry(k2).getValue();
-      return server_k2.equals(val);
-    });
-
-    // events should have contained a memberID
-    MemberIDVerifier verifier = (MemberIDVerifier) ((LocalRegion) r2).getCacheListener();
-    assertTrue("client should have received a listener event", verifier.eventReceived);
-    assertFalse("client received an update but the event had no member id",
-        verifier.memberIDNotReceived);
-    verifier.reset();
-
-  }
-
-  private static void verifyInvalidatesOnBothRegions() {
-    try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
-      final Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
-      final Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
-      assertNotNull(r1);
-      assertNotNull(r2);
-
-      Awaitility.waitAtMost(90, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
-          .until(() -> r1.getEntry(k1).getValue() == null);
-
-      Awaitility.waitAtMost(90, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
-          .until(() -> r1.getEntry(k2).getValue() == null);
-
-      Awaitility.waitAtMost(90, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
-          .until(() -> r2.getEntry(k1).getValue() == null);
-
-      Awaitility.waitAtMost(90, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
-          .until(() -> r2.getEntry(k2).getValue() == null);
-
-    } catch (Exception ex) {
-      fail("failed while verifyInvalidatesOnBothRegions()" + ex);
-    }
-  }
-
-  private static void verifyUpdatesOnRegion2() {
-    try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
-      final Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
-      assertNotNull(r2);
-
-      Awaitility.waitAtMost(60, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
-          .until(() -> server_k1.equals(r2.getEntry(k1).getValue()));
-
-      Awaitility.waitAtMost(60, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
-          .until(() -> server_k2.equals(r2.getEntry(k2).getValue()));
-
-      // assertIndexDetailsEquals(server_k2, r2.getEntry(k2).getValue());
-    } catch (Exception ex) {
-      fail("failed while verifyUpdatesOnRegion2()" + ex);
-    }
-  }
-
-  /**
-   * set the boolean for starting the dispatcher thread a bit later to FALSE. This is just a
-   * precaution in case any test set it to true and did not unset it on completion.
-   *
-   */
-  private static void unsetSlowDispatcherFlag() {
-    CacheClientProxy.isSlowStartForTesting = false;
-  }
-
-  @Test
-  public void testOnSeverMethodsWithProxyClient() throws Exception {
-    testOnServerMethods(false, false);
-  }
-
-  @Test
-  public void testOnSeverMethodsWithCachingProxyClient() throws Exception {
-    testOnServerMethods(true, false);
-  }
-
-  @Test
-  public void testOnSeverMethodsWithProxyClientHA() throws Exception {
-    testOnServerMethods(false, true);
-  }
-
-  @Test
-  public void testOnSeverMethodsWithCachingProxyClientHA() throws Exception {
-    testOnServerMethods(true, true);
-  }
-
-  private void testOnServerMethods(boolean isCachingProxy, boolean isHA) throws Exception {
-    int port1 = initServerCache(true, isHA); // vm0
-    int port2 = initServerCache2(isHA); // vm1
-    String serverName = NetworkUtils.getServerHostName();
-    if (isCachingProxy) {
-      createClientCache(serverName, port1, port2);
-    } else {
-      createEmptyClientCache(serverName, port1, port2);
-    }
-    if (isHA) {
-      // add another server for HA scenario
-      initServerCache(true, host.getVM(VersionManager.CURRENT_VERSION, 1), true);
-    }
-    String rName = "/" + REGION_NAME1;
-    String prName = "/" + PR_REGION_NAME;
-
-    verifyIsEmptyOnServer(rName, true);
-    verifyIsEmptyOnServer(prName, true);
-
-    int size = 10;
-    putIntoRegion(rName, size, isCachingProxy);
-    verifySizeOnServer(rName, size);
-
-    putIntoRegion(prName, size, isCachingProxy);
-    if (isHA) {
-      server1.invoke(() -> closeMyCache());
-    }
-    verifySizeOnServer(prName, size);
-
-    verifyIsEmptyOnServer(rName, false);
-    verifyIsEmptyOnServer(prName, false);
-
-    destroyEntries(rName, size);
-    destroyEntries(prName, size);
-
-    verifyIsEmptyOnServer(rName, true);
-    verifyIsEmptyOnServer(prName, true);
-    verifySizeOnServer(rName, 0);
-    verifySizeOnServer(prName, 0);
-  }
-
-  private void putIntoRegion(String regionName, int size, boolean isCachingProxy) {
-    Cache cache = getCache();
-    final Region region = cache.getRegion(regionName);
-    for (int i = 0; i < size; i++) {
-      region.put(i, i);
-    }
-
-    if (isCachingProxy) {
-      for (int i = 0; i < size; i++) {
-        region.localDestroy(i, i);
-      }
-    }
-  }
-
-  private void destroyEntries(String regionName, int size) {
-    Cache cache = getCache();
-    final Region region = cache.getRegion(regionName);
-
-    for (int i = 0; i < size; i++) {
-      region.destroy(i);
-    }
-  }
-
-  private void verifySizeOnServer(String regionName, int expectedSize) {
-    Cache cache = getCache();
-    final Region region = cache.getRegion(regionName);
-    int actualSize = region.sizeOnServer();
-    assertEquals(
-        "sizeOnServer returns unexpected " + actualSize + " instead of expected " + expectedSize,
-        expectedSize, actualSize);
-  }
-
-  private void verifyIsEmptyOnServer(String regionName, boolean expected) {
-    Cache cache = getCache();
-    final Region region = cache.getRegion(regionName);
-    boolean isEmptyOnServer = region.isEmptyOnServer();
-    assertEquals("isEmptyOnServer returns unexpected " + isEmptyOnServer + " instead of expected "
-        + expected, expected, isEmptyOnServer);
-  }
+package org.apache.geode.internal.cache.tier.sockets;
 
-  private void closeMyCache() {
-    Cache cache = getCache();
-    cache.close();
-  }
+public class ClientServerMiscDUnitTest extends ClientServerMiscDUnitTestBase {
 
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ConflationDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ConflationDUnitTest.java
index caecfb9..b856c6f 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ConflationDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ConflationDUnitTest.java
@@ -102,38 +102,12 @@ public class ConflationDUnitTest extends JUnit4DistributedTestCase {
   }
 
   /**
-   * set the boolean for starting the dispatcher thread a bit later.
-   *
-   */
-  public static void setIsSlowStart() {
-    setIsSlowStart("5000");
-  }
-
-
-  /**
-   * Set the boolean to make the dispatcher thread pause <code>milis</code> miliseconds.
-   *
-   */
-  public static void setIsSlowStart(String milis) {
-    CacheClientProxy.isSlowStartForTesting = true;
-    System.setProperty("slowStartTimeForTesting", milis);
-  }
-
-  /**
-   * Unset the boolean to start the dispatcher thread.
-   *
-   */
-  public static void unsetIsSlowStart() {
-    CacheClientProxy.isSlowStartForTesting = false;
-  }
-
-  /**
    * test more messages are not sent to client from server
    *
    */
   @Test
   public void testNotMoreMessagesSent() throws Exception {
-    vm0.invoke(() -> ConflationDUnitTest.setIsSlowStart());
+    vm0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart());
     Host host = Host.getHost(0);
     createClientCache1CommonWriterTest3(NetworkUtils.getServerHostName(host), new Integer(PORT));
     vm2.invoke(() -> ConflationDUnitTest.createClientCache2CommonWriterTest3(
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/DeployJarWithSSLDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/DeployJarWithSSLDUnitTest.java
index 93e8a80..6920d4a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/DeployJarWithSSLDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/DeployJarWithSSLDUnitTest.java
@@ -24,11 +24,11 @@ import static org.apache.geode.distributed.ConfigurationProperties.SSL_PROTOCOLS
 import static org.apache.geode.distributed.ConfigurationProperties.SSL_TRUSTSTORE;
 import static org.apache.geode.distributed.ConfigurationProperties.SSL_TRUSTSTORE_PASSWORD;
 import static org.apache.geode.distributed.ConfigurationProperties.SSL_TRUSTSTORE_TYPE;
+import static org.apache.geode.util.test.TestUtil.getResourcePath;
 
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.net.URISyntaxException;
 import java.util.Properties;
 
 import org.junit.Before;
@@ -45,7 +45,8 @@ import org.apache.geode.test.junit.rules.GfshCommandRule;
 
 public class DeployJarWithSSLDUnitTest {
 
-  private static File jks;
+  private static File jks =
+      new File(getResourcePath(DeployJarWithSSLDUnitTest.class, "/ssl/trusted.keystore"));
 
   @Rule
   public TemporaryFolder temporaryFolder = new TemporaryFolder();
@@ -60,21 +61,6 @@ public class DeployJarWithSSLDUnitTest {
 
   private File sslConfigFile = null;
 
-  static {
-    try {
-      /*
-       * This file was generated with the following command:
-       * keytool -genkey -dname "CN=localhost" -alias self -validity 3650 -keyalg EC \
-       * -keystore trusted.keystore -keypass password -storepass password \
-       * -ext san=ip:127.0.0.1 -storetype jks
-       */
-      jks = new File(DeployJarWithSSLDUnitTest.class.getClassLoader()
-          .getResource("ssl/trusted.keystore").toURI());
-    } catch (URISyntaxException e) {
-      e.printStackTrace();
-    }
-  }
-
   private static Properties sslProperties = new Properties() {
     {
       setProperty(SSL_ENABLED_COMPONENTS, SecurableCommunicationChannels.ALL);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketIntegrationTest.java
index 20b6c38..dabcd8a 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketIntegrationTest.java
@@ -267,7 +267,7 @@ public class SSLSocketIntegrationTest {
     assertThat(resource).isNotNull();
 
     File file = this.temporaryFolder.newFile(name.replaceFirst(".*/", ""));
-    FileUtils.copyFile(new File(resource.getFile()), file);
+    FileUtils.copyURLToFile(resource, file);
     return file;
   }
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/management/internal/deployment/FunctionScannerTest.java b/geode-core/src/integrationTest/java/org/apache/geode/management/internal/deployment/FunctionScannerTest.java
index e5d0997..ef4a25a 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/management/internal/deployment/FunctionScannerTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/management/internal/deployment/FunctionScannerTest.java
@@ -56,7 +56,7 @@ public class FunctionScannerTest {
 
     Collection<String> functionsFoundInJar = functionScanner.findFunctionsInJar(outputJar);
     assertThat(functionsFoundInJar)
-        .containsExactly("org.apache.geode.management.internal.deployment.ImplementsFunction");
+        .contains("org.apache.geode.management.internal.deployment.ImplementsFunction");
   }
 
   @Test
@@ -67,7 +67,7 @@ public class FunctionScannerTest {
 
     Collection<String> functionsFoundInJar = functionScanner.findFunctionsInJar(outputJar);
     assertThat(functionsFoundInJar)
-        .containsExactly("org.apache.geode.management.internal.deployment.ExtendsFunctionAdapter");
+        .contains("org.apache.geode.management.internal.deployment.ExtendsFunctionAdapter");
   }
 
   @Test
@@ -78,7 +78,7 @@ public class FunctionScannerTest {
     jarBuilder.buildJar(outputJar, sourceFileOne, sourceFileTwo);
 
     Collection<String> functionsFoundInJar = functionScanner.findFunctionsInJar(outputJar);
-    assertThat(functionsFoundInJar).containsExactlyInAnyOrder(
+    assertThat(functionsFoundInJar).contains(
         "org.apache.geode.management.internal.deployment.ConcreteExtendsAbstractExtendsFunctionAdapter",
         "org.apache.geode.management.internal.deployment.AbstractExtendsFunctionAdapter");
   }
@@ -91,7 +91,7 @@ public class FunctionScannerTest {
     jarBuilder.buildJar(outputJar, sourceFileOne, sourceFileTwo);
 
     Collection<String> functionsFoundInJar = functionScanner.findFunctionsInJar(outputJar);
-    assertThat(functionsFoundInJar).containsExactlyInAnyOrder(
+    assertThat(functionsFoundInJar).contains(
         "org.apache.geode.management.internal.deployment.ConcreteExtendsAbstractImplementsFunction",
         "org.apache.geode.management.internal.deployment.AbstractImplementsFunction");
   }
@@ -108,7 +108,7 @@ public class FunctionScannerTest {
 
     jarBuilder.buildJar(outputJar, sourceFileTwo);
     Collection<String> functionsFoundInJar = functionScanner.findFunctionsInJar(outputJar);
-    assertThat(functionsFoundInJar).containsExactlyInAnyOrder(
+    assertThat(functionsFoundInJar).contains(
         "org.apache.geode.management.internal.deployment.AnnotatedFunction");
   }
 
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTest.java
index 9f3a41c..962803f 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTest.java
@@ -15,58 +15,20 @@
 
 package org.apache.geode.management.internal.cli.commands;
 
-import static org.assertj.core.api.Assertions.assertThat;
 
-import java.lang.reflect.Method;
-import java.util.List;
 
 import org.junit.Test;
-import org.springframework.shell.core.CommandMarker;
-import org.springframework.shell.core.annotation.CliCommand;
 
-import org.apache.geode.internal.cache.extension.mock.MockExtensionCommands;
-import org.apache.geode.management.cli.CliMetaData;
-import org.apache.geode.management.cli.GfshCommand;
 import org.apache.geode.management.internal.cli.CommandManager;
 
 
+
 public class CommandAvailabilityIndicatorTest {
 
   @Test
   public void allOnlineCommandsHaveAvailabilityIndicator() {
     CommandManager manager = new CommandManager();
-    assertOnlineCommandsHasAvailabilityIndicator(manager);
+    CommandAvailabilityIndicatorTestHelper.assertOnlineCommandsHasAvailabilityIndicator(manager);
   }
 
-  public static void assertOnlineCommandsHasAvailabilityIndicator(CommandManager manager) {
-    List<CommandMarker> commandMarkers = manager.getCommandMarkers();
-    for (CommandMarker commandMarker : commandMarkers) {
-      // ignore all the other commands beside GfshCommand
-      if (!GfshCommand.class.isAssignableFrom(commandMarker.getClass())) {
-        continue;
-      }
-
-      if (commandMarker instanceof MockExtensionCommands) {
-        continue;
-      }
-
-      for (Method method : commandMarker.getClass().getMethods()) {
-        CliCommand cliCommand = method.getAnnotation(CliCommand.class);
-        if (cliCommand == null) {
-          // the method is not a command method
-          continue;
-        }
-
-        CliMetaData cliMetaData = method.getAnnotation(CliMetaData.class);
-        // all the online commands have availability indicator defined in the commandManager
-        if (cliMetaData == null || cliMetaData != null && !cliMetaData.shellOnly()) {
-          assertThat(manager.getHelper().hasAvailabilityIndicator(cliCommand.value()[0]))
-              .describedAs(cliCommand.value()[0] + " in " + commandMarker.getClass()
-                  + " has no availability indicator defined. "
-                  + "Please add the command in the CommandAvailabilityIndicator")
-              .isTrue();
-        }
-      }
-    }
-  }
 }
diff --git a/geode-cq/build.gradle b/geode-cq/build.gradle
index 69f22f0..bb43437 100644
--- a/geode-cq/build.gradle
+++ b/geode-cq/build.gradle
@@ -19,15 +19,12 @@ dependencies {
   compileOnly project(':geode-core')
   testCompile project(':geode-core')
 
-  // TODO build - move shared source to common library.
-  testCompile files(project(':geode-core').sourceSets.test.output)
   testCompile files(project(':geode-old-versions').sourceSets.main.output)
   testCompile project(':geode-junit')
 
-  // TODO build - move dunit framework to shared module.
-  integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-  distributedTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-  distributedTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-  upgradeTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-  upgradeTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+  integrationTestCompile project(":geode-dunit")
+
+  distributedTestCompile project(":geode-dunit")
+
+  upgradeTestCompile project(":geode-dunit")
 }
diff --git a/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/PRDeltaPropagationDUnitTest.java b/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/PRDeltaPropagationDUnitTest.java
index d0e5467..bdf9d1b 100755
--- a/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/PRDeltaPropagationDUnitTest.java
+++ b/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/PRDeltaPropagationDUnitTest.java
@@ -65,7 +65,7 @@ import org.apache.geode.distributed.DistributedSystem;
 import org.apache.geode.internal.AvailablePort;
 import org.apache.geode.internal.cache.tier.sockets.CacheClientNotifier;
 import org.apache.geode.internal.cache.tier.sockets.CacheClientProxy;
-import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTest;
+import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper;
 import org.apache.geode.test.dunit.DistributedTestCase;
 import org.apache.geode.test.dunit.Invoke;
 import org.apache.geode.test.dunit.VM;
@@ -228,8 +228,8 @@ public class PRDeltaPropagationDUnitTest extends DistributedTestCase {
         dataStore2.invoke(() -> createCacheServerWithPR(REGION_NAME, 1, 50, 8, false, null));
 
     // Do puts after slowing the dispatcher.
-    dataStore1.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
-    dataStore2.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
+    dataStore1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
+    dataStore2.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
     createClientCache(port1, port2);
     client1.invoke(() -> createClientCache(port1, port2));
 
@@ -249,7 +249,7 @@ public class PRDeltaPropagationDUnitTest extends DistributedTestCase {
 
     Thread.sleep(5000);
 
-    secondary.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    secondary.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
 
     client1.invoke(() -> waitForLastKey());
     client1.invoke(() -> checkDeltaInvoked(deltaSent));
@@ -267,8 +267,8 @@ public class PRDeltaPropagationDUnitTest extends DistributedTestCase {
     });
 
     // Do puts after slowing the dispatcher.
-    dataStore1.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
-    dataStore2.invoke(() -> ConflationDUnitTest.setIsSlowStart("60000"));
+    dataStore1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
+    dataStore2.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("60000"));
     createClientCache(port1, port2);
     client1.invoke(() -> createClientCache(port1, port2));
 
@@ -288,7 +288,7 @@ public class PRDeltaPropagationDUnitTest extends DistributedTestCase {
 
     Thread.sleep(5000);
 
-    secondary.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    secondary.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
 
     client1.invoke(() -> waitForLastKey());
     client1.invoke(() -> checkDeltaInvoked(deltaSent));
@@ -1098,7 +1098,7 @@ public class PRDeltaPropagationDUnitTest extends DistributedTestCase {
 
   private void resetAll() {
     DeltaTestImpl.resetDeltaInvokationCounters();
-    ConflationDUnitTest.unsetIsSlowStart();
+    ConflationDUnitTestHelper.unsetIsSlowStart();
   }
 
   private void setBadToDelta(boolean value) {
diff --git a/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/ha/CQListGIIDUnitTest.java b/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/ha/CQListGIIDUnitTest.java
index d01c3e7..bf23304 100755
--- a/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/ha/CQListGIIDUnitTest.java
+++ b/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/ha/CQListGIIDUnitTest.java
@@ -64,7 +64,7 @@ import org.apache.geode.internal.cache.InternalRegionArguments;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.tier.sockets.CacheServerTestUtil;
 import org.apache.geode.internal.cache.tier.sockets.ClientUpdateMessageImpl;
-import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTest;
+import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper;
 import org.apache.geode.test.dunit.Assert;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.NetworkUtils;
@@ -155,8 +155,8 @@ public class CQListGIIDUnitTest extends JUnit4DistributedTestCase {
 
   @Override
   public final void preTearDown() throws Exception {
-    serverVM0.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
-    serverVM1.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
+    serverVM1.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
     closeCache();
     clientVM1.invoke(() -> CQListGIIDUnitTest.closeCache());
     clientVM2.invoke(() -> CQListGIIDUnitTest.closeCache());
@@ -538,8 +538,8 @@ public class CQListGIIDUnitTest extends JUnit4DistributedTestCase {
   public void testSpecificClientCQIsGIIedPart1() throws Exception {
     Integer size = Integer.valueOf(10);
     // slow start for dispatcher
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("30000"));
-    serverVM1.invoke(() -> ConflationDUnitTest.setIsSlowStart("30000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("30000"));
+    serverVM1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("30000"));
 
     // createClientCache(Integer.valueOf(PORT1), Integer.valueOf(PORT2), "1");
     clientVM1.invoke(() -> CQListGIIDUnitTest.createClientCache(Integer.valueOf(PORT1),
@@ -563,8 +563,8 @@ public class CQListGIIDUnitTest extends JUnit4DistributedTestCase {
 
     serverVM0.invoke(() -> CQListGIIDUnitTest.VerifyCUMCQList(size, Integer.valueOf(2)));
     serverVM1.invoke(() -> CQListGIIDUnitTest.VerifyCUMCQList(size, Integer.valueOf(1)));
-    serverVM0.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
-    serverVM1.invoke(() -> ConflationDUnitTest.unsetIsSlowStart());
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
+    serverVM1.invoke(() -> ConflationDUnitTestHelper.unsetIsSlowStart());
   }
 
   /**
@@ -581,7 +581,7 @@ public class CQListGIIDUnitTest extends JUnit4DistributedTestCase {
             .intValue();
 
     // slow start for dispatcher
-    serverVM0.invoke(() -> ConflationDUnitTest.setIsSlowStart("45000"));
+    serverVM0.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart("45000"));
 
     // createClientCache(Integer.valueOf(PORT1), Integer.valueOf(PORT2), "1");
     createClientCache(Integer.valueOf(PORT1), Integer.valueOf(PORT2), Integer.valueOf(port3), "1");
diff --git a/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/ha/HADispatcherDUnitTest.java b/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/ha/HADispatcherDUnitTest.java
index d866ad5..08e8839 100755
--- a/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/ha/HADispatcherDUnitTest.java
+++ b/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/ha/HADispatcherDUnitTest.java
@@ -65,7 +65,7 @@ import org.apache.geode.internal.cache.HARegion;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.tier.sockets.CacheClientProxy;
 import org.apache.geode.internal.cache.tier.sockets.CacheServerTestUtil;
-import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTest;
+import org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper;
 import org.apache.geode.internal.cache.tier.sockets.HAEventWrapper;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.WaitCriterion;
@@ -120,7 +120,7 @@ public class HADispatcherDUnitTest extends JUnit4DistributedTestCase {
 
     PORT1 = ((Integer) server1.invoke(() -> createServerCache(new Boolean(false)))).intValue();
 
-    server1.invoke(() -> ConflationDUnitTest.setIsSlowStart());
+    server1.invoke(() -> ConflationDUnitTestHelper.setIsSlowStart());
     server1.invoke(() -> makeDispatcherSlow());
     server1.invoke(() -> setQRMslow());
 
diff --git a/geode-cq/src/upgradeTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscBCDUnitTest.java b/geode-cq/src/upgradeTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscBCDUnitTest.java
index 877e758..bc08ad8 100755
--- a/geode-cq/src/upgradeTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscBCDUnitTest.java
+++ b/geode-cq/src/upgradeTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscBCDUnitTest.java
@@ -57,7 +57,7 @@ import org.apache.geode.test.junit.runners.CategoryWithParameterizedRunnerFactor
 @Category({ClientServerTest.class, BackwardCompatibilityTest.class})
 @RunWith(Parameterized.class)
 @Parameterized.UseParametersRunnerFactory(CategoryWithParameterizedRunnerFactory.class)
-public class ClientServerMiscBCDUnitTest extends ClientServerMiscDUnitTest {
+public class ClientServerMiscBCDUnitTest extends ClientServerMiscDUnitTestBase {
   @Parameterized.Parameters
   public static Collection<String> data() {
     List<String> result = VersionManager.getInstance().getVersionsWithoutCurrent();
@@ -297,7 +297,7 @@ public class ClientServerMiscBCDUnitTest extends ClientServerMiscDUnitTest {
   }
 
   public static void registerCQ() throws Exception {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
+    Cache cache = new ClientServerMiscDUnitTestBase().getCache();
     Region r = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
     assertNotNull(r);
     CqAttributesFactory cqAttributesFactory = new CqAttributesFactory();
diff --git a/geode-dunit/build.gradle b/geode-dunit/build.gradle
new file mode 100755
index 0000000..a13dc98
--- /dev/null
+++ b/geode-dunit/build.gradle
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+dependencies {
+    compileOnly project(':geode-core')
+    compile project(':geode-junit')
+    compile project(':geode-json')
+
+    compileOnly files("${System.getProperty('java.home')}/../lib/tools.jar")
+
+    compile 'com.jayway.jsonpath:json-path:' + project.'json-path.version'
+    compile 'org.apache.logging.log4j:log4j-api:' + project.'log4j.version'
+    compile 'org.apache.logging.log4j:log4j-core:' + project.'log4j.version'
+    compile 'commons-io:commons-io:' + project.'commons-io.version'
+    compile 'commons-lang:commons-lang:' + project.'commons-lang.version'
+    compile ('org.springframework.shell:spring-shell:' + project.'spring-shell.version') {
+        exclude module: 'aopalliance'
+        exclude module: 'asm'
+        exclude module: 'cglib'
+        exclude module: 'guava'
+        exclude module: 'spring-aop'
+        exclude module: 'spring-context-support'
+        ext.optional = true
+    }
+    compile 'com.google.guava:guava:' + project.'guava.version'
+    compile ('com.github.stefanbirkner:system-rules:' + project.'system-rules.version') {
+        exclude module: 'junit-dep'
+    }
+
+    compile 'org.assertj:assertj-core:' + project.'assertj-core.version'
+    compile 'org.mockito:mockito-core:' + project.'mockito-core.version'
+    compile 'org.awaitility:awaitility:' + project.'awaitility.version'
+
+    compile 'eu.codearte.catch-exception:catch-exception:' + project.'catch-exception.version'
+    compile 'eu.codearte.catch-exception:catch-throwable:' + project.'catch-throwable.version'
+
+    compile('junit:junit:' + project.'junit.version') {
+        exclude module: 'hamcrest-core'
+    }
+}
+
diff --git a/geode-core/src/test/java/batterytest/greplogs/ExpectedStrings.java b/geode-dunit/src/main/java/batterytest/greplogs/ExpectedStrings.java
similarity index 100%
rename from geode-core/src/test/java/batterytest/greplogs/ExpectedStrings.java
rename to geode-dunit/src/main/java/batterytest/greplogs/ExpectedStrings.java
diff --git a/geode-core/src/test/java/batterytest/greplogs/LogConsumer.java b/geode-dunit/src/main/java/batterytest/greplogs/LogConsumer.java
similarity index 100%
rename from geode-core/src/test/java/batterytest/greplogs/LogConsumer.java
rename to geode-dunit/src/main/java/batterytest/greplogs/LogConsumer.java
diff --git a/geode-core/src/integrationTest/java/hydra/MethExecutor.java b/geode-dunit/src/main/java/hydra/MethExecutor.java
similarity index 100%
rename from geode-core/src/integrationTest/java/hydra/MethExecutor.java
rename to geode-dunit/src/main/java/hydra/MethExecutor.java
diff --git a/geode-core/src/integrationTest/java/hydra/MethExecutorResult.java b/geode-dunit/src/main/java/hydra/MethExecutorResult.java
similarity index 100%
rename from geode-core/src/integrationTest/java/hydra/MethExecutorResult.java
rename to geode-dunit/src/main/java/hydra/MethExecutorResult.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/LocatorTestBase.java b/geode-dunit/src/main/java/org/apache/geode/cache/client/internal/LocatorTestBase.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/LocatorTestBase.java
rename to geode-dunit/src/main/java/org/apache/geode/cache/client/internal/LocatorTestBase.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/query/QueryTestUtils.java b/geode-dunit/src/main/java/org/apache/geode/cache/query/QueryTestUtils.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/cache/query/QueryTestUtils.java
rename to geode-dunit/src/main/java/org/apache/geode/cache/query/QueryTestUtils.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/cq/dunit/CqQueryTestListener.java b/geode-dunit/src/main/java/org/apache/geode/cache/query/cq/dunit/CqQueryTestListener.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/cache/query/cq/dunit/CqQueryTestListener.java
rename to geode-dunit/src/main/java/org/apache/geode/cache/query/cq/dunit/CqQueryTestListener.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/CloseCacheAuthorization.java b/geode-dunit/src/main/java/org/apache/geode/cache/query/dunit/CloseCacheAuthorization.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/CloseCacheAuthorization.java
rename to geode-dunit/src/main/java/org/apache/geode/cache/query/dunit/CloseCacheAuthorization.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/HelperTestCase.java b/geode-dunit/src/main/java/org/apache/geode/cache/query/dunit/HelperTestCase.java
similarity index 99%
rename from geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/HelperTestCase.java
rename to geode-dunit/src/main/java/org/apache/geode/cache/query/dunit/HelperTestCase.java
index 6b67e43..7da665d 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/HelperTestCase.java
+++ b/geode-dunit/src/main/java/org/apache/geode/cache/query/dunit/HelperTestCase.java
@@ -55,7 +55,7 @@ import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase;
 import org.apache.geode.test.junit.categories.OQLQueryTest;
 
 @Category({OQLQueryTest.class})
-public class HelperTestCase extends JUnit4CacheTestCase {
+public abstract class HelperTestCase extends JUnit4CacheTestCase {
 
   protected void createPartitionRegion(VM vm, final String regionName,
       final Class valueConstraint) {
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache30/CacheSerializableRunnable.java b/geode-dunit/src/main/java/org/apache/geode/cache30/CacheSerializableRunnable.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/cache30/CacheSerializableRunnable.java
rename to geode-dunit/src/main/java/org/apache/geode/cache30/CacheSerializableRunnable.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/CacheTestCase.java b/geode-dunit/src/main/java/org/apache/geode/cache30/CacheTestCase.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/cache30/CacheTestCase.java
rename to geode-dunit/src/main/java/org/apache/geode/cache30/CacheTestCase.java
diff --git a/geode-dunit/src/main/java/org/apache/geode/cache30/CacheXml70DUnitTestHelper.java b/geode-dunit/src/main/java/org/apache/geode/cache30/CacheXml70DUnitTestHelper.java
new file mode 100644
index 0000000..5dc27c3
--- /dev/null
+++ b/geode-dunit/src/main/java/org/apache/geode/cache30/CacheXml70DUnitTestHelper.java
@@ -0,0 +1,74 @@
+/*
+ * 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.cache30;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+import java.util.Properties;
+
+import org.apache.geode.cache.Declarable;
+import org.apache.geode.cache.asyncqueue.AsyncEvent;
+import org.apache.geode.cache.asyncqueue.AsyncEventListener;
+import org.apache.geode.cache.asyncqueue.AsyncEventQueue;
+import org.apache.geode.cache.asyncqueue.internal.AsyncEventQueueImpl;
+import org.apache.geode.internal.cache.xmlcache.AsyncEventQueueCreation;
+
+public class CacheXml70DUnitTestHelper {
+
+  public static class MyAsyncEventListener implements AsyncEventListener, Declarable {
+
+    @Override
+    public boolean processEvents(List<AsyncEvent> events) {
+      return true;
+    }
+
+    @Override
+    public void close() {}
+
+    @Override
+    public void init(Properties properties) {}
+  }
+
+  public static void validateAsyncEventQueue(AsyncEventQueue eventChannelFromXml,
+      AsyncEventQueue channel) {
+    assertEquals("AsyncEventQueue id doesn't match", eventChannelFromXml.getId(), channel.getId());
+    assertEquals("AsyncEventQueue batchSize doesn't match", eventChannelFromXml.getBatchSize(),
+        channel.getBatchSize());
+    assertEquals("AsyncEventQueue batchTimeInterval doesn't match",
+        eventChannelFromXml.getBatchTimeInterval(), channel.getBatchTimeInterval());
+    assertEquals("AsyncEventQueue batchConflationEnabled doesn't match",
+        eventChannelFromXml.isBatchConflationEnabled(), channel.isBatchConflationEnabled());
+    assertEquals("AsyncEventQueue persistent doesn't match", eventChannelFromXml.isPersistent(),
+        channel.isPersistent());
+    assertEquals("AsyncEventQueue diskStoreName doesn't match",
+        eventChannelFromXml.getDiskStoreName(), channel.getDiskStoreName());
+    assertEquals("AsyncEventQueue isDiskSynchronous doesn't match",
+        eventChannelFromXml.isDiskSynchronous(), channel.isDiskSynchronous());
+    assertEquals("AsyncEventQueue maximumQueueMemory doesn't match",
+        eventChannelFromXml.getMaximumQueueMemory(), channel.getMaximumQueueMemory());
+    assertEquals("AsyncEventQueue Parallel doesn't match", eventChannelFromXml.isParallel(),
+        channel.isParallel());
+    assertEquals("AsyncEventQueue GatewayEventFilters doesn't match",
+        eventChannelFromXml.getGatewayEventFilters().size(),
+        channel.getGatewayEventFilters().size());
+    assertTrue("AsyncEventQueue should be instanceof Creation",
+        eventChannelFromXml instanceof AsyncEventQueueCreation);
+    assertTrue("AsyncEventQueue should be instanceof Impl", channel instanceof AsyncEventQueueImpl);
+  }
+
+}
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/CacheXmlTestCase.java b/geode-dunit/src/main/java/org/apache/geode/cache30/CacheXmlTestCase.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/cache30/CacheXmlTestCase.java
rename to geode-dunit/src/main/java/org/apache/geode/cache30/CacheXmlTestCase.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/CertifiableTestCacheListener.java b/geode-dunit/src/main/java/org/apache/geode/cache30/CertifiableTestCacheListener.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/cache30/CertifiableTestCacheListener.java
rename to geode-dunit/src/main/java/org/apache/geode/cache30/CertifiableTestCacheListener.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache30/ClientServerTestCase.java b/geode-dunit/src/main/java/org/apache/geode/cache30/ClientServerTestCase.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/cache30/ClientServerTestCase.java
rename to geode-dunit/src/main/java/org/apache/geode/cache30/ClientServerTestCase.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache30/MultiVMRegionTestCase.java b/geode-dunit/src/main/java/org/apache/geode/cache30/MultiVMRegionTestCase.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/cache30/MultiVMRegionTestCase.java
rename to geode-dunit/src/main/java/org/apache/geode/cache30/MultiVMRegionTestCase.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache30/RegionTestCase.java b/geode-dunit/src/main/java/org/apache/geode/cache30/RegionTestCase.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/cache30/RegionTestCase.java
rename to geode-dunit/src/main/java/org/apache/geode/cache30/RegionTestCase.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache30/TestCacheCallback.java b/geode-dunit/src/main/java/org/apache/geode/cache30/TestCacheCallback.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/cache30/TestCacheCallback.java
rename to geode-dunit/src/main/java/org/apache/geode/cache30/TestCacheCallback.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache30/TestCacheListener.java b/geode-dunit/src/main/java/org/apache/geode/cache30/TestCacheListener.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/cache30/TestCacheListener.java
rename to geode-dunit/src/main/java/org/apache/geode/cache30/TestCacheListener.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache30/TestCacheLoader.java b/geode-dunit/src/main/java/org/apache/geode/cache30/TestCacheLoader.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/cache30/TestCacheLoader.java
rename to geode-dunit/src/main/java/org/apache/geode/cache30/TestCacheLoader.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache30/TestCacheWriter.java b/geode-dunit/src/main/java/org/apache/geode/cache30/TestCacheWriter.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/cache30/TestCacheWriter.java
rename to geode-dunit/src/main/java/org/apache/geode/cache30/TestCacheWriter.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/codeAnalysis/AnalyzeSerializablesJUnitTest.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/AnalyzeSerializablesJUnitTest.java
similarity index 94%
rename from geode-core/src/integrationTest/java/org/apache/geode/codeAnalysis/AnalyzeSerializablesJUnitTest.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/AnalyzeSerializablesJUnitTest.java
index 80dc813..117d680 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/codeAnalysis/AnalyzeSerializablesJUnitTest.java
+++ b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/AnalyzeSerializablesJUnitTest.java
@@ -14,13 +14,6 @@
  */
 package org.apache.geode.codeAnalysis;
 
-import static org.apache.geode.codeAnalysis.CompiledClassUtils.diffSortedClassesAndMethods;
-import static org.apache.geode.codeAnalysis.CompiledClassUtils.diffSortedClassesAndVariables;
-import static org.apache.geode.codeAnalysis.CompiledClassUtils.loadClassesAndMethods;
-import static org.apache.geode.codeAnalysis.CompiledClassUtils.loadClassesAndVariables;
-import static org.apache.geode.codeAnalysis.CompiledClassUtils.parseClassFilesInDir;
-import static org.apache.geode.codeAnalysis.CompiledClassUtils.storeClassesAndMethods;
-import static org.apache.geode.codeAnalysis.CompiledClassUtils.storeClassesAndVariables;
 import static org.apache.geode.internal.lang.SystemUtils.getJavaVersion;
 import static org.apache.geode.internal.lang.SystemUtils.isJavaVersionAtLeast;
 import static org.assertj.core.api.Assertions.assertThat;
@@ -109,7 +102,8 @@ public class AnalyzeSerializablesJUnitTest {
     this.expectedDataSerializablesFile = getResourceAsFile("sanctionedDataSerializables.txt");
     assertThat(this.expectedDataSerializablesFile).exists().canRead();
 
-    this.expectedDataSerializables = loadClassesAndMethods(this.expectedDataSerializablesFile);
+    this.expectedDataSerializables =
+        CompiledClassUtils.loadClassesAndMethods(this.expectedDataSerializablesFile);
     Collections.sort(this.expectedDataSerializables);
 
   }
@@ -119,7 +113,8 @@ public class AnalyzeSerializablesJUnitTest {
         getResourceAsFile(InternalDataSerializer.class, expectedSerializablesFileName);
     assertThat(this.expectedSerializablesFile).exists().canRead();
 
-    this.expectedSerializables = loadClassesAndVariables(this.expectedSerializablesFile);
+    this.expectedSerializables =
+        CompiledClassUtils.loadClassesAndVariables(this.expectedSerializablesFile);
     Collections.sort(this.expectedSerializables);
   }
 
@@ -166,10 +161,11 @@ public class AnalyzeSerializablesJUnitTest {
         + actualDataSerializablesFile.getAbsolutePath());
 
     List<ClassAndMethods> actualDataSerializables = findToDatasAndFromDatas();
-    storeClassesAndMethods(actualDataSerializables, actualDataSerializablesFile);
+    CompiledClassUtils.storeClassesAndMethods(actualDataSerializables, actualDataSerializablesFile);
 
     String diff =
-        diffSortedClassesAndMethods(this.expectedDataSerializables, actualDataSerializables);
+        CompiledClassUtils
+            .diffSortedClassesAndMethods(this.expectedDataSerializables, actualDataSerializables);
     if (!diff.isEmpty()) {
       System.out.println(
           "++++++++++++++++++++++++++++++testDataSerializables found discrepancies++++++++++++++++++++++++++++++++++++");
@@ -191,9 +187,10 @@ public class AnalyzeSerializablesJUnitTest {
         + actualSerializablesFile.getAbsolutePath());
 
     List<ClassAndVariables> actualSerializables = findSerializables();
-    storeClassesAndVariables(actualSerializables, actualSerializablesFile);
+    CompiledClassUtils.storeClassesAndVariables(actualSerializables, actualSerializablesFile);
 
-    String diff = diffSortedClassesAndVariables(this.expectedSerializables, actualSerializables);
+    String diff = CompiledClassUtils
+        .diffSortedClassesAndVariables(this.expectedSerializables, actualSerializables);
     if (!diff.isEmpty()) {
       System.out.println(
           "++++++++++++++++++++++++++++++testSerializables found discrepancies++++++++++++++++++++++++++++++++++++");
@@ -501,7 +498,7 @@ public class AnalyzeSerializablesJUnitTest {
   }
 
   private void loadClassesFromBuild(File buildDir, List<String> excludedClasses) {
-    Map<String, CompiledClass> newClasses = parseClassFilesInDir(buildDir);
+    Map<String, CompiledClass> newClasses = CompiledClassUtils.parseClassFilesInDir(buildDir);
     removeExclusions(newClasses, excludedClasses);
     this.classes.putAll(newClasses);
   }
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/ClassAndMethodDetails.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/ClassAndMethodDetails.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/ClassAndMethodDetails.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/ClassAndMethodDetails.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/ClassAndMethods.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/ClassAndMethods.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/ClassAndMethods.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/ClassAndMethods.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/ClassAndVariableDetails.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/ClassAndVariableDetails.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/ClassAndVariableDetails.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/ClassAndVariableDetails.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/ClassAndVariables.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/ClassAndVariables.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/ClassAndVariables.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/ClassAndVariables.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/CompiledClassUtils.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/CompiledClassUtils.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/CompiledClassUtils.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/CompiledClassUtils.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/CompiledAttribute.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/CompiledAttribute.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/CompiledAttribute.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/CompiledAttribute.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/CompiledClass.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/CompiledClass.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/CompiledClass.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/CompiledClass.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/CompiledCode.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/CompiledCode.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/CompiledCode.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/CompiledCode.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/CompiledField.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/CompiledField.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/CompiledField.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/CompiledField.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/CompiledMethod.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/CompiledMethod.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/CompiledMethod.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/CompiledMethod.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/Cp.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/Cp.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/Cp.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/Cp.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpClass.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpClass.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpClass.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpClass.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpDouble.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpDouble.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpDouble.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpDouble.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpFieldref.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpFieldref.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpFieldref.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpFieldref.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpFloat.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpFloat.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpFloat.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpFloat.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpInteger.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpInteger.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpInteger.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpInteger.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpInterfaceMethodref.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpInterfaceMethodref.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpInterfaceMethodref.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpInterfaceMethodref.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpInvokeDynamic.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpInvokeDynamic.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpInvokeDynamic.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpInvokeDynamic.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpLong.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpLong.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpLong.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpLong.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpMethodHandle.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpMethodHandle.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpMethodHandle.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpMethodHandle.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpMethodType.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpMethodType.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpMethodType.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpMethodType.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpMethodref.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpMethodref.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpMethodref.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpMethodref.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpNameAndType.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpNameAndType.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpNameAndType.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpNameAndType.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpString.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpString.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpString.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpString.java
diff --git a/geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpUtf8.java b/geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpUtf8.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/codeAnalysis/decode/cp/CpUtf8.java
rename to geode-dunit/src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpUtf8.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/MembershipManagerHelper.java b/geode-dunit/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipManagerHelper.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/MembershipManagerHelper.java
rename to geode-dunit/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipManagerHelper.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/AvailablePortHelper.java b/geode-dunit/src/main/java/org/apache/geode/internal/AvailablePortHelper.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/AvailablePortHelper.java
rename to geode-dunit/src/main/java/org/apache/geode/internal/AvailablePortHelper.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/CustomerIDPartitionResolver.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/CustomerIDPartitionResolver.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/internal/cache/CustomerIDPartitionResolver.java
rename to geode-dunit/src/main/java/org/apache/geode/internal/cache/CustomerIDPartitionResolver.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/CustomerIDPartitionResolver.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/CustomerIDPartitionResolver.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/CustomerIDPartitionResolver.java
rename to geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/CustomerIDPartitionResolver.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/ClientVM.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/PRColocationDUnitTestHelper.java
similarity index 66%
copy from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/ClientVM.java
copy to geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/PRColocationDUnitTestHelper.java
index 0a92b36..5a2db4f 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/ClientVM.java
+++ b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/PRColocationDUnitTestHelper.java
@@ -13,22 +13,21 @@
  * the License.
  */
 
-package org.apache.geode.test.dunit.rules;
+package org.apache.geode.internal.cache.execute;
 
-import java.io.Serializable;
+public class PRColocationDUnitTestHelper {
 
-import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.junit.rules.VMProvider;
+  public static int defaultStringSize = 0;
 
-public class ClientVM extends VMProvider implements Serializable {
-  private VM vm;
-
-  public ClientVM(VM vm) {
-    this.vm = vm;
+  public static String getDefaultAddOnString() {
+    if (defaultStringSize == 0) {
+      return "";
+    }
+    StringBuffer buf = new StringBuffer(defaultStringSize);
+    for (int i = 0; i < defaultStringSize; i++) {
+      buf.append("a");
+    }
+    return buf.toString();
   }
 
-  @Override
-  public VM getVM() {
-    return vm;
-  }
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/data/Customer.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Customer.java
similarity index 95%
rename from geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/data/Customer.java
rename to geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Customer.java
index 7774ab1..fd86849 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/data/Customer.java
+++ b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Customer.java
@@ -20,7 +20,7 @@ import java.io.IOException;
 
 import org.apache.geode.DataSerializable;
 import org.apache.geode.DataSerializer;
-import org.apache.geode.internal.cache.execute.PRColocationDUnitTest;
+import org.apache.geode.internal.cache.execute.PRColocationDUnitTestHelper;
 
 public class Customer implements DataSerializable {
   String name;
@@ -33,7 +33,7 @@ public class Customer implements DataSerializable {
 
   public Customer(String name, String address) {
     this.name = name;
-    this.address = address + PRColocationDUnitTest.getDefaultAddOnString();
+    this.address = address + PRColocationDUnitTestHelper.getDefaultAddOnString();
   }
 
   public void fromData(DataInput in) throws IOException, ClassNotFoundException {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/data/Order.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Order.java
similarity index 94%
rename from geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/data/Order.java
rename to geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Order.java
index 85121e0..d23f0e2 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/data/Order.java
+++ b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Order.java
@@ -20,7 +20,7 @@ import java.io.IOException;
 
 import org.apache.geode.DataSerializable;
 import org.apache.geode.DataSerializer;
-import org.apache.geode.internal.cache.execute.PRColocationDUnitTest;
+import org.apache.geode.internal.cache.execute.PRColocationDUnitTestHelper;
 
 public class Order implements DataSerializable {
   String orderName;
@@ -30,7 +30,7 @@ public class Order implements DataSerializable {
   }
 
   public Order(String orderName) {
-    this.orderName = orderName + PRColocationDUnitTest.getDefaultAddOnString();
+    this.orderName = orderName + PRColocationDUnitTestHelper.getDefaultAddOnString();
   }
 
   public void fromData(DataInput in) throws IOException, ClassNotFoundException {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/data/Shipment.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Shipment.java
similarity index 94%
rename from geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/data/Shipment.java
rename to geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Shipment.java
index f7b873b..25ff4c9 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/data/Shipment.java
+++ b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Shipment.java
@@ -20,7 +20,7 @@ import java.io.IOException;
 
 import org.apache.geode.DataSerializable;
 import org.apache.geode.DataSerializer;
-import org.apache.geode.internal.cache.execute.PRColocationDUnitTest;
+import org.apache.geode.internal.cache.execute.PRColocationDUnitTestHelper;
 
 public class Shipment implements DataSerializable {
   String shipmentName;
@@ -30,7 +30,7 @@ public class Shipment implements DataSerializable {
   }
 
   public Shipment(String shipmentName) {
-    this.shipmentName = shipmentName + PRColocationDUnitTest.getDefaultAddOnString();
+    this.shipmentName = shipmentName + PRColocationDUnitTestHelper.getDefaultAddOnString();
   }
 
   public void fromData(DataInput in) throws IOException, ClassNotFoundException {
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/tier/sockets/CacheServerTestUtil.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheServerTestUtil.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/internal/cache/tier/sockets/CacheServerTestUtil.java
rename to geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheServerTestUtil.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTestBase.java
similarity index 95%
copy from geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
copy to geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTestBase.java
index 7c3772f..3375c34 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
+++ b/geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTestBase.java
@@ -91,7 +91,7 @@ import org.apache.geode.test.junit.categories.ClientServerTest;
  * Tests client server corner cases between Region and Pool
  */
 @Category({ClientServerTest.class})
-public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
+public class ClientServerMiscDUnitTestBase extends JUnit4CacheTestCase {
 
   protected static PoolImpl pool = null;
 
@@ -134,7 +134,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
   String testVersion; // version for client caches for backward-compatibility
                       // testing
 
-  public ClientServerMiscDUnitTest() {
+  public ClientServerMiscDUnitTestBase() {
     testVersion = VersionManager.CURRENT_VERSION;
   }
 
@@ -461,8 +461,8 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
     registerInterestInBothTheRegions();
     closeRegion1();
     Wait.pause(6000);
-    server1.invoke(() -> ClientServerMiscDUnitTest.verifyInterestListOnServer());
-    server1.invoke(() -> ClientServerMiscDUnitTest.put());
+    server1.invoke(() -> ClientServerMiscDUnitTestBase.verifyInterestListOnServer());
+    server1.invoke(() -> ClientServerMiscDUnitTestBase.put());
     // pause(5000);
     verifyUpdatesOnRegion2();
   }
@@ -485,7 +485,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
     assertFalse(pool.isDestroyed());
     pool.destroy();
     assertTrue(pool.isDestroyed());
-    server1.invoke(() -> ClientServerMiscDUnitTest.verifyNoCacheClientProxyOnServer());
+    server1.invoke(() -> ClientServerMiscDUnitTestBase.verifyNoCacheClientProxyOnServer());
 
   }
 
@@ -505,7 +505,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
     destroyRegion1();
     // pause(5000);
     server1.invoke(
-        () -> ClientServerMiscDUnitTest.verifyCacheClientProxyOnServer(REGION_NAME1));
+        () -> ClientServerMiscDUnitTestBase.verifyCacheClientProxyOnServer(REGION_NAME1));
     Connection conn = pool.acquireConnection();
     assertNotNull(conn);
     assertEquals(1, pool.getConnectedServerCount());
@@ -517,7 +517,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
     pool.destroy();
     assertTrue(pool.isDestroyed());
     // pause(5000);
-    server1.invoke(() -> ClientServerMiscDUnitTest.verifyNoCacheClientProxyOnServer());
+    server1.invoke(() -> ClientServerMiscDUnitTestBase.verifyNoCacheClientProxyOnServer());
 
     assertThatThrownBy(() -> getCache().createRegion(REGION_NAME2, attrs))
         .isExactlyInstanceOf(IllegalStateException.class);
@@ -535,7 +535,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
     createClientCache(NetworkUtils.getServerHostName(), PORT1);
     registerInterestForInvalidatesInBothTheRegions();
     populateCache();
-    server1.invoke(() -> ClientServerMiscDUnitTest.put());
+    server1.invoke(() -> ClientServerMiscDUnitTestBase.put());
     // pause(5000);
     verifyInvalidatesOnBothRegions();
 
@@ -619,7 +619,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
     Properties props = new Properties();
     props.setProperty(MCAST_PORT, "0");
     props.setProperty(LOCATORS, "");
-    new ClientServerMiscDUnitTest().createCache(props);
+    new ClientServerMiscDUnitTestBase().createCache(props);
     String host = NetworkUtils.getServerHostName();
     PoolImpl p =
         (PoolImpl) PoolManager.createFactory().addServer(host, PORT1).setSubscriptionEnabled(true)
@@ -643,7 +643,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
     assertNotNull(conn);
 
     populateCache();
-    server1.invoke(() -> ClientServerMiscDUnitTest.put());
+    server1.invoke(() -> ClientServerMiscDUnitTestBase.put());
 
     Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
       Object val = region1.getEntry(k1).getValue();
@@ -707,7 +707,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
     // region1.registerInterest(CacheClientProxy.ALL_KEYS);
     region2.registerInterest("ALL_KEYS");
     Wait.pause(6000);
-    server1.invoke(() -> ClientServerMiscDUnitTest.verifyInterestListOnServer());
+    server1.invoke(() -> ClientServerMiscDUnitTestBase.verifyInterestListOnServer());
 
   }
 
@@ -829,8 +829,8 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
     Properties props = new Properties();
     props.setProperty(MCAST_PORT, "0");
     props.setProperty(LOCATORS, "");
-    Cache cache = new ClientServerMiscDUnitTest().createCacheV(props);
-    ClientServerMiscDUnitTest.static_cache = cache;
+    Cache cache = new ClientServerMiscDUnitTestBase().createCacheV(props);
+    ClientServerMiscDUnitTestBase.static_cache = cache;
     System.setProperty(DistributionConfig.GEMFIRE_PREFIX + "bridge.disableShufflingOfEndpoints",
         "true");
     PoolImpl p;
@@ -933,7 +933,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   public static Integer createServerCache(Boolean notifyBySubscription, Integer maxThreads,
       boolean isHA) throws Exception {
-    Cache cache = new ClientServerMiscDUnitTest().createCacheV(new Properties());
+    Cache cache = new ClientServerMiscDUnitTestBase().createCacheV(new Properties());
     unsetSlowDispatcherFlag();
     AttributesFactory factory = new AttributesFactory();
     factory.setScope(Scope.DISTRIBUTED_ACK);
@@ -974,7 +974,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
   }
 
   public static void registerInterest() {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
+    Cache cache = new ClientServerMiscDUnitTestBase().getCache();
     Region r = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
     assertNotNull(r);
     r.registerInterest("ALL_KEYS");
@@ -983,7 +983,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   private static void registerInterestForInvalidatesInBothTheRegions() {
     try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
+      Cache cache = new ClientServerMiscDUnitTestBase().getCache();
       Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
       assertNotNull(r1);
       Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
@@ -998,7 +998,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   private static void registerInterestInBothTheRegions() {
     try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
+      Cache cache = new ClientServerMiscDUnitTestBase().getCache();
       Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
       assertNotNull(r1);
       Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
@@ -1013,7 +1013,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   private static void closeRegion1() {
     try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
+      Cache cache = new ClientServerMiscDUnitTestBase().getCache();
       Region<String, String> r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
       assertNotNull(r1);
       r1.close();
@@ -1025,7 +1025,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   private static void closeBothRegions() {
     try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
+      Cache cache = new ClientServerMiscDUnitTestBase().getCache();
       Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
       Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
       Region pr = cache.getRegion(Region.SEPARATOR + PR_REGION_NAME);
@@ -1043,7 +1043,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   private static void destroyRegion1() {
     try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
+      Cache cache = new ClientServerMiscDUnitTestBase().getCache();
       Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
       assertNotNull(r1);
       r1.destroyRegion();
@@ -1055,7 +1055,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   private static void destroyRegion2() {
     try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
+      Cache cache = new ClientServerMiscDUnitTestBase().getCache();
       Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
       assertNotNull(r2);
       r2.destroyRegion();
@@ -1067,7 +1067,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   private static void destroyPRRegion() {
     try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
+      Cache cache = new ClientServerMiscDUnitTestBase().getCache();
       Region r2 = cache.getRegion(Region.SEPARATOR + PR_REGION_NAME);
       assertNotNull(r2);
       r2.destroyRegion();
@@ -1079,7 +1079,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   private static void verifyInterestListOnServer() {
     try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
+      Cache cache = new ClientServerMiscDUnitTestBase().getCache();
       assertEquals("More than one BridgeServer", 1, cache.getCacheServers().size());
       CacheServerImpl bs = (CacheServerImpl) cache.getCacheServers().iterator().next();
       assertNotNull(bs);
@@ -1102,7 +1102,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   private static void verifyNoCacheClientProxyOnServer() {
     try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
+      Cache cache = new ClientServerMiscDUnitTestBase().getCache();
       assertEquals("More than one BridgeServer", 1, cache.getCacheServers().size());
       CacheServerImpl cacheServer = (CacheServerImpl) cache.getCacheServers().iterator().next();
       assertNotNull(cacheServer);
@@ -1121,7 +1121,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   private static void verifyCacheClientProxyOnServer(String regionName) {
     try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
+      Cache cache = new ClientServerMiscDUnitTestBase().getCache();
       assertNull(cache.getRegion(Region.SEPARATOR + regionName));
       verifyCacheClientProxyOnServer();
 
@@ -1134,7 +1134,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
   }
 
   private static void verifyCacheClientProxyOnServer() {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
+    Cache cache = new ClientServerMiscDUnitTestBase().getCache();
     assertEquals("More than one BridgeServer", 1, cache.getCacheServers().size());
     CacheServerImpl bs = (CacheServerImpl) cache.getCacheServers().iterator().next();
     assertNotNull(bs);
@@ -1148,7 +1148,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
   }
 
   public static void populateCache() {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
+    Cache cache = new ClientServerMiscDUnitTestBase().getCache();
     Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
     Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
     assertNotNull(r1);
@@ -1170,7 +1170,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
   }
 
   public static void put() {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
+    Cache cache = new ClientServerMiscDUnitTestBase().getCache();
     Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
     Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
     assertNotNull(r1);
@@ -1189,7 +1189,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
   }
 
   static void putForClient() {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
+    Cache cache = new ClientServerMiscDUnitTestBase().getCache();
     Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
     if (r2 == null) {
       r2 = cache.createRegionFactory(RegionShortcut.REPLICATE).create(REGION_NAME2);
@@ -1200,7 +1200,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
   }
 
   private static void verifyUpdates() {
-    Cache cache = new ClientServerMiscDUnitTest().getCache();
+    Cache cache = new ClientServerMiscDUnitTestBase().getCache();
     final Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
     final Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
     assertNotNull(r1);
@@ -1240,7 +1240,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   private static void verifyInvalidatesOnBothRegions() {
     try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
+      Cache cache = new ClientServerMiscDUnitTestBase().getCache();
       final Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1);
       final Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
       assertNotNull(r1);
@@ -1265,7 +1265,7 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   private static void verifyUpdatesOnRegion2() {
     try {
-      Cache cache = new ClientServerMiscDUnitTest().getCache();
+      Cache cache = new ClientServerMiscDUnitTestBase().getCache();
       final Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2);
       assertNotNull(r2);
 
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/execute/MyFunctionExecutionException.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/ConflationDUnitTestHelper.java
old mode 100644
new mode 100755
similarity index 55%
copy from geode-core/src/test/java/org/apache/geode/internal/cache/execute/MyFunctionExecutionException.java
copy to geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/ConflationDUnitTestHelper.java
index 97fea75..f61c0a8
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/execute/MyFunctionExecutionException.java
+++ b/geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/ConflationDUnitTestHelper.java
@@ -12,39 +12,34 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache.execute;
+package org.apache.geode.internal.cache.tier.sockets;
 
-
-public class MyFunctionExecutionException extends RuntimeException {
-
-  /**
-   * Creates new exception with given error message.
-   *
-   */
-  public MyFunctionExecutionException() {}
+public class ConflationDUnitTestHelper {
 
   /**
-   * Creates new exception with given error message.
+   * set the boolean for starting the dispatcher thread a bit later.
    *
    */
-  public MyFunctionExecutionException(String msg) {
-    super(msg);
+  public static void setIsSlowStart() {
+    setIsSlowStart("5000");
   }
 
+
   /**
-   * Creates new exception with given error message and optional nested exception.
+   * Set the boolean to make the dispatcher thread pause <code>milis</code> miliseconds.
    *
    */
-  public MyFunctionExecutionException(String msg, Throwable cause) {
-    super(msg, cause);
+  public static void setIsSlowStart(String milis) {
+    CacheClientProxy.isSlowStartForTesting = true;
+    System.setProperty("slowStartTimeForTesting", milis);
   }
 
   /**
-   * Creates new exception given Throwable as a cause and source of error message.
+   * Unset the boolean to start the dispatcher thread.
    *
    */
-  public MyFunctionExecutionException(Throwable cause) {
-    super(cause);
+  public static void unsetIsSlowStart() {
+    CacheClientProxy.isSlowStartForTesting = false;
   }
 
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
rename to geode-dunit/src/main/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/MBeanUtil.java b/geode-dunit/src/main/java/org/apache/geode/management/MBeanUtil.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/management/MBeanUtil.java
rename to geode-dunit/src/main/java/org/apache/geode/management/MBeanUtil.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/MXBeanAwaitility.java b/geode-dunit/src/main/java/org/apache/geode/management/MXBeanAwaitility.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/MXBeanAwaitility.java
rename to geode-dunit/src/main/java/org/apache/geode/management/MXBeanAwaitility.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/ManagementTestBase.java b/geode-dunit/src/main/java/org/apache/geode/management/ManagementTestBase.java
similarity index 97%
rename from geode-core/src/distributedTest/java/org/apache/geode/management/ManagementTestBase.java
rename to geode-dunit/src/main/java/org/apache/geode/management/ManagementTestBase.java
index 36b3787..15cfef9 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/ManagementTestBase.java
+++ b/geode-dunit/src/main/java/org/apache/geode/management/ManagementTestBase.java
@@ -44,6 +44,7 @@ import org.apache.geode.test.dunit.SerializableCallable;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.Wait;
 import org.apache.geode.test.dunit.WaitCriterion;
+import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.dunit.rules.DistributedRestoreSystemProperties;
 
 @SuppressWarnings("serial")
@@ -73,7 +74,7 @@ public abstract class ManagementTestBase extends CacheTestCase {
 
   @Override
   public final void postSetUp() throws Exception {
-    disconnectAllFromDS();
+    JUnit4DistributedTestCase.disconnectAllFromDS();
 
     Host host = Host.getHost(0);
     managingNode = host.getVM(0);
@@ -164,7 +165,7 @@ public abstract class ManagementTestBase extends CacheTestCase {
 
     props.setProperty(ENABLE_TIME_STATISTICS, "true");
     props.setProperty(STATISTIC_SAMPLING_ENABLED, "true");
-    props.setProperty(LOG_FILE, getTestMethodName() + "-.log");
+    props.setProperty(LOG_FILE, JUnit4DistributedTestCase.getTestMethodName() + "-.log");
 
     Cache cache = getCache(props);
     managementService = ManagementService.getManagementService(cache);
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java b/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java
rename to geode-dunit/src/main/java/org/apache/geode/management/internal/cli/HeadlessGfsh.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java b/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
rename to geode-dunit/src/main/java/org/apache/geode/management/internal/cli/commands/CliCommandTestBase.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/ClusterConfig.java b/geode-dunit/src/main/java/org/apache/geode/management/internal/configuration/ClusterConfig.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/ClusterConfig.java
rename to geode-dunit/src/main/java/org/apache/geode/management/internal/configuration/ClusterConfig.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/ClusterConfigTestBase.java b/geode-dunit/src/main/java/org/apache/geode/management/internal/configuration/ClusterConfigTestBase.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/ClusterConfigTestBase.java
rename to geode-dunit/src/main/java/org/apache/geode/management/internal/configuration/ClusterConfigTestBase.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/ClientAuthorizationTestCase.java b/geode-dunit/src/main/java/org/apache/geode/security/ClientAuthorizationTestCase.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/security/ClientAuthorizationTestCase.java
rename to geode-dunit/src/main/java/org/apache/geode/security/ClientAuthorizationTestCase.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/SecurityTestUtil.java b/geode-dunit/src/main/java/org/apache/geode/security/SecurityTestUtil.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/SecurityTestUtil.java
rename to geode-dunit/src/main/java/org/apache/geode/security/SecurityTestUtil.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/SecurityTestUtils.java b/geode-dunit/src/main/java/org/apache/geode/security/SecurityTestUtils.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/security/SecurityTestUtils.java
rename to geode-dunit/src/main/java/org/apache/geode/security/SecurityTestUtils.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/generator/AuthzCredentialGenerator.java b/geode-dunit/src/main/java/org/apache/geode/security/generator/AuthzCredentialGenerator.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/security/generator/AuthzCredentialGenerator.java
rename to geode-dunit/src/main/java/org/apache/geode/security/generator/AuthzCredentialGenerator.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/generator/CredentialGenerator.java b/geode-dunit/src/main/java/org/apache/geode/security/generator/CredentialGenerator.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/security/generator/CredentialGenerator.java
rename to geode-dunit/src/main/java/org/apache/geode/security/generator/CredentialGenerator.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/generator/DummyAuthzCredentialGenerator.java b/geode-dunit/src/main/java/org/apache/geode/security/generator/DummyAuthzCredentialGenerator.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/security/generator/DummyAuthzCredentialGenerator.java
rename to geode-dunit/src/main/java/org/apache/geode/security/generator/DummyAuthzCredentialGenerator.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/generator/DummyCredentialGenerator.java b/geode-dunit/src/main/java/org/apache/geode/security/generator/DummyCredentialGenerator.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/security/generator/DummyCredentialGenerator.java
rename to geode-dunit/src/main/java/org/apache/geode/security/generator/DummyCredentialGenerator.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/generator/LdapUserCredentialGenerator.java b/geode-dunit/src/main/java/org/apache/geode/security/generator/LdapUserCredentialGenerator.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/security/generator/LdapUserCredentialGenerator.java
rename to geode-dunit/src/main/java/org/apache/geode/security/generator/LdapUserCredentialGenerator.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/generator/PKCSCredentialGenerator.java b/geode-dunit/src/main/java/org/apache/geode/security/generator/PKCSCredentialGenerator.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/security/generator/PKCSCredentialGenerator.java
rename to geode-dunit/src/main/java/org/apache/geode/security/generator/PKCSCredentialGenerator.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/generator/SSLCredentialGenerator.java b/geode-dunit/src/main/java/org/apache/geode/security/generator/SSLCredentialGenerator.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/security/generator/SSLCredentialGenerator.java
rename to geode-dunit/src/main/java/org/apache/geode/security/generator/SSLCredentialGenerator.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/generator/UserPasswordWithExtraPropsAuthInit.java b/geode-dunit/src/main/java/org/apache/geode/security/generator/UserPasswordWithExtraPropsAuthInit.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/security/generator/UserPasswordWithExtraPropsAuthInit.java
rename to geode-dunit/src/main/java/org/apache/geode/security/generator/UserPasswordWithExtraPropsAuthInit.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/generator/XmlAuthzCredentialGenerator.java b/geode-dunit/src/main/java/org/apache/geode/security/generator/XmlAuthzCredentialGenerator.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/security/generator/XmlAuthzCredentialGenerator.java
rename to geode-dunit/src/main/java/org/apache/geode/security/generator/XmlAuthzCredentialGenerator.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/query/QuerySecurityBase.java b/geode-dunit/src/main/java/org/apache/geode/security/query/QuerySecurityBase.java
similarity index 99%
rename from geode-core/src/distributedTest/java/org/apache/geode/security/query/QuerySecurityBase.java
rename to geode-dunit/src/main/java/org/apache/geode/security/query/QuerySecurityBase.java
index 3cbbb1e..c4a16f6 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/security/query/QuerySecurityBase.java
+++ b/geode-dunit/src/main/java/org/apache/geode/security/query/QuerySecurityBase.java
@@ -46,7 +46,7 @@ import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.junit.rules.ServerStarterRule;
 
-public class QuerySecurityBase extends JUnit4DistributedTestCase {
+public abstract class QuerySecurityBase extends JUnit4DistributedTestCase {
 
   public RegionShortcut getRegionType() {
     return RegionShortcut.REPLICATE;
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/DummyAuthenticator.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/DummyAuthenticator.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/DummyAuthenticator.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/DummyAuthenticator.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/DummyAuthorization.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/DummyAuthorization.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/DummyAuthorization.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/DummyAuthorization.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/FunctionSecurityPrmsHolder.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/FunctionSecurityPrmsHolder.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/FunctionSecurityPrmsHolder.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/FunctionSecurityPrmsHolder.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/LdapUserAuthenticator.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/LdapUserAuthenticator.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/LdapUserAuthenticator.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/LdapUserAuthenticator.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/PKCSAuthInit.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/PKCSAuthInit.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/PKCSAuthInit.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/PKCSAuthInit.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/PKCSAuthenticator.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/PKCSAuthenticator.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/PKCSAuthenticator.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/PKCSAuthenticator.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/PKCSPrincipal.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/PKCSPrincipal.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/PKCSPrincipal.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/PKCSPrincipal.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/PKCSPrincipalTest.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/PKCSPrincipalTest.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/PKCSPrincipalTest.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/PKCSPrincipalTest.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/SimpleAccessController.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/SimpleAccessController.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/SimpleAccessController.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/SimpleAccessController.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/SimpleAuthenticator.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/SimpleAuthenticator.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/SimpleAuthenticator.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/SimpleAuthenticator.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/UsernamePrincipal.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/UsernamePrincipal.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/UsernamePrincipal.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/UsernamePrincipal.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/UsernamePrincipalTest.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/UsernamePrincipalTest.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/UsernamePrincipalTest.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/UsernamePrincipalTest.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/XmlAuthorization.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/XmlAuthorization.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/XmlAuthorization.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/XmlAuthorization.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/XmlErrorHandler.java b/geode-dunit/src/main/java/org/apache/geode/security/templates/XmlErrorHandler.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/XmlErrorHandler.java
rename to geode-dunit/src/main/java/org/apache/geode/security/templates/XmlErrorHandler.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/Assert.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/Assert.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/Assert.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/Assert.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/AsyncInvocation.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/AsyncInvocation.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/AsyncInvocation.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/AsyncInvocation.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/DUnitBlackboard.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/DUnitBlackboard.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/DUnitBlackboard.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/DUnitBlackboard.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/DUnitEnv.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/DUnitEnv.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/DUnitEnv.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/DUnitEnv.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/Disconnect.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/Disconnect.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/Disconnect.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/Disconnect.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/DistributedTestCase.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/DistributedTestCase.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/DistributedTestCase.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/DistributedTestCase.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/DistributedTestUtils.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/DistributedTestUtils.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/DistributedTestUtils.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/DistributedTestUtils.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/Host.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/Host.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/Host.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/Host.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/IgnoredException.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/IgnoredException.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/IgnoredException.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/IgnoredException.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/Invoke.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/Invoke.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/Invoke.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/Invoke.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/Jitter.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/Jitter.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/Jitter.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/Jitter.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/LocalVM.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/LocalVM.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/LocalVM.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/LocalVM.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/LogWriterUtils.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/LogWriterUtils.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/LogWriterUtils.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/LogWriterUtils.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/NamedCallable.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/NamedCallable.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/NamedCallable.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/NamedCallable.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/NamedRunnable.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/NamedRunnable.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/NamedRunnable.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/NamedRunnable.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/NetworkUtils.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/NetworkUtils.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/NetworkUtils.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/NetworkUtils.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/RMIException.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/RMIException.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/RMIException.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/RMIException.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/RepeatableRunnable.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/RepeatableRunnable.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/RepeatableRunnable.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/RepeatableRunnable.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/SerializableCallable.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/SerializableCallable.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/SerializableCallable.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/SerializableCallable.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/SerializableCallableIF.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/SerializableCallableIF.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/SerializableCallableIF.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/SerializableCallableIF.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/SerializableConsumerIF.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/SerializableConsumerIF.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/SerializableConsumerIF.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/SerializableConsumerIF.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/SerializableRunnable.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/SerializableRunnable.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/SerializableRunnable.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/SerializableRunnable.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/SerializableRunnableIF.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/SerializableRunnableIF.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/SerializableRunnableIF.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/SerializableRunnableIF.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/StoppableWaitCriterion.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/StoppableWaitCriterion.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/StoppableWaitCriterion.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/StoppableWaitCriterion.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/ThreadUtils.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/ThreadUtils.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/ThreadUtils.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/ThreadUtils.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/VM.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/VM.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/VM.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/VM.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/Wait.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/Wait.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/Wait.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/Wait.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/WaitCriterion.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/WaitCriterion.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/WaitCriterion.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/WaitCriterion.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/cache/CacheTestCase.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/cache/CacheTestCase.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/cache/CacheTestCase.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/cache/CacheTestCase.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/cache/examples/CacheTestCaseExampleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/cache/examples/CacheTestCaseExampleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/cache/examples/CacheTestCaseExampleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/cache/examples/CacheTestCaseExampleTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/cache/internal/CacheTestFixture.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/cache/internal/CacheTestFixture.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/cache/internal/CacheTestFixture.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/cache/internal/CacheTestFixture.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/cache/internal/JUnit4CacheTestCase.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/cache/internal/JUnit4CacheTestCase.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/cache/internal/JUnit4CacheTestCase.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/cache/internal/JUnit4CacheTestCase.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/AsyncInvokeCallableExampleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/AsyncInvokeCallableExampleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/AsyncInvokeCallableExampleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/AsyncInvokeCallableExampleTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/AsyncInvokeRunnableExampleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/AsyncInvokeRunnableExampleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/AsyncInvokeRunnableExampleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/AsyncInvokeRunnableExampleTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/BeforeClassExampleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/BeforeClassExampleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/BeforeClassExampleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/BeforeClassExampleTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/CatchingUnexpectedExceptionExampleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/CatchingUnexpectedExceptionExampleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/CatchingUnexpectedExceptionExampleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/CatchingUnexpectedExceptionExampleTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/DistributedTestCaseExampleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/DistributedTestCaseExampleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/DistributedTestCaseExampleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/DistributedTestCaseExampleTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/DistributedTestRuleExampleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/DistributedTestRuleExampleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/DistributedTestRuleExampleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/DistributedTestRuleExampleTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/DoNotHandleUnexpectedExceptionExampleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/DoNotHandleUnexpectedExceptionExampleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/DoNotHandleUnexpectedExceptionExampleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/DoNotHandleUnexpectedExceptionExampleTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/FixtureOrderingExampleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/FixtureOrderingExampleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/FixtureOrderingExampleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/FixtureOrderingExampleTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/InvokeRunnableExampleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/InvokeRunnableExampleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/InvokeRunnableExampleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/InvokeRunnableExampleTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/LocatorPortClusterExampleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/LocatorPortClusterExampleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/LocatorPortClusterExampleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/LocatorPortClusterExampleTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/ReplaceTryFinallyExampleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/ReplaceTryFinallyExampleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/examples/ReplaceTryFinallyExampleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/examples/ReplaceTryFinallyExampleTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/internal/DUnitBlackboardDUnitTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/DUnitBlackboardDUnitTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/internal/DUnitBlackboardDUnitTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/DUnitBlackboardDUnitTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/internal/DistributedTestFixture.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/DistributedTestFixture.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/internal/DistributedTestFixture.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/DistributedTestFixture.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/internal/InternalBlackboard.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/InternalBlackboard.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/internal/InternalBlackboard.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/InternalBlackboard.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/internal/InternalBlackboardImpl.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/InternalBlackboardImpl.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/internal/InternalBlackboardImpl.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/InternalBlackboardImpl.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/JUnit4DistributedTestCase.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/rules/AbstractDistributedTestRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/AbstractDistributedTestRule.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/rules/AbstractDistributedTestRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/AbstractDistributedTestRule.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/CacheRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CacheRule.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/CacheRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CacheRule.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/CleanupDUnitVMsRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CleanupDUnitVMsRule.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/CleanupDUnitVMsRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CleanupDUnitVMsRule.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/ClientCacheRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/ClientCacheRule.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/ClientCacheRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/ClientCacheRule.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/ClientVM.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/ClientVM.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/ClientVM.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/ClientVM.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/ClusterStartupRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/ClusterStartupRule.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/ClusterStartupRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/ClusterStartupRule.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/DistributedDiskDirRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedDiskDirRule.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/DistributedDiskDirRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedDiskDirRule.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/DistributedExternalResource.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedExternalResource.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/DistributedExternalResource.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedExternalResource.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/DistributedRestoreSystemProperties.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRestoreSystemProperties.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/DistributedRestoreSystemProperties.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRestoreSystemProperties.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/rules/DistributedTestRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedTestRule.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/rules/DistributedTestRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedTestRule.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/DistributedUseJacksonForJsonPathRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedUseJacksonForJsonPathRule.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/DistributedUseJacksonForJsonPathRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedUseJacksonForJsonPathRule.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/MemberVM.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/MemberVM.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/MemberVM.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/MemberVM.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/rules/RemoteInvoker.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/RemoteInvoker.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/rules/RemoteInvoker.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/RemoteInvoker.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/SharedCountersRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/SharedCountersRule.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/SharedCountersRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/SharedCountersRule.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/SharedErrorCollector.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/SharedErrorCollector.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/SharedErrorCollector.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/SharedErrorCollector.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/CacheRuleBuilderDistributedTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/CacheRuleBuilderDistributedTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/CacheRuleBuilderDistributedTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/CacheRuleBuilderDistributedTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/CacheRuleDistributedTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/CacheRuleDistributedTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/CacheRuleDistributedTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/CacheRuleDistributedTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/ClusterStartupRuleCanSpecifyOlderVersionsDUnitTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/ClusterStartupRuleCanSpecifyOlderVersionsDUnitTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/ClusterStartupRuleCanSpecifyOlderVersionsDUnitTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/ClusterStartupRuleCanSpecifyOlderVersionsDUnitTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedRestoreSystemPropertiesDistributedTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/DistributedRestoreSystemPropertiesDistributedTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedRestoreSystemPropertiesDistributedTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/DistributedRestoreSystemPropertiesDistributedTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedTestRuleDistributedTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/DistributedTestRuleDistributedTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/DistributedTestRuleDistributedTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/DistributedTestRuleDistributedTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleAwaitDUnitTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleAwaitDUnitTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleAwaitDUnitTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleAwaitDUnitTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleAwaitIntegrationTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleAwaitIntegrationTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleAwaitIntegrationTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleAwaitIntegrationTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleIntegrationTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleIntegrationTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleIntegrationTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleIntegrationTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/MemberStarterRuleTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/SharedCountersRuleDistributedTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/SharedCountersRuleDistributedTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/SharedCountersRuleDistributedTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/SharedCountersRuleDistributedTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/SharedErrorCollectorDistributedTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/SharedErrorCollectorDistributedTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/rules/tests/SharedErrorCollectorDistributedTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/tests/SharedErrorCollectorDistributedTest.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/BounceResult.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/BounceResult.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/BounceResult.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/BounceResult.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/ChildVM.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/ChildVM.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/ChildVM.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/ChildVM.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/ProcessManager.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/ProcessManager.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/ProcessManager.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/ProcessManager.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/RemoteDUnitVM.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/RemoteDUnitVM.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/RemoteDUnitVM.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/RemoteDUnitVM.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/RemoteDUnitVMIF.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/RemoteDUnitVMIF.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/RemoteDUnitVMIF.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/RemoteDUnitVMIF.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/StandAloneDUnitEnv.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/StandAloneDUnitEnv.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/dunit/standalone/StandAloneDUnitEnv.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/StandAloneDUnitEnv.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/BasicDistributedTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/tests/BasicDistributedTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/BasicDistributedTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/tests/BasicDistributedTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetCurrentVmNumDistributedTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/tests/GetCurrentVmNumDistributedTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/GetCurrentVmNumDistributedTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/tests/GetCurrentVmNumDistributedTest.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/VMDistributedTest.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/tests/VMDistributedTest.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/dunit/tests/VMDistributedTest.java
rename to geode-dunit/src/main/java/org/apache/geode/test/dunit/tests/VMDistributedTest.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/rules/ClientCacheRule.java b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/ClientCacheRule.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/rules/ClientCacheRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/junit/rules/ClientCacheRule.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/rules/ConnectionConfiguration.java b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/ConnectionConfiguration.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/rules/ConnectionConfiguration.java
rename to geode-dunit/src/main/java/org/apache/geode/test/junit/rules/ConnectionConfiguration.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/rules/DiskDirRule.java b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/DiskDirRule.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/rules/DiskDirRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/junit/rules/DiskDirRule.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/junit/rules/GfshCommandRule.java b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/GfshCommandRule.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/junit/rules/GfshCommandRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/junit/rules/GfshCommandRule.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/rules/Locator.java b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/Locator.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/rules/Locator.java
rename to geode-dunit/src/main/java/org/apache/geode/test/junit/rules/Locator.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/junit/rules/LocatorStarterRule.java b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/LocatorStarterRule.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/junit/rules/LocatorStarterRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/junit/rules/LocatorStarterRule.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/rules/MBeanServerConnectionRule.java b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/MBeanServerConnectionRule.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/rules/MBeanServerConnectionRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/junit/rules/MBeanServerConnectionRule.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/rules/Member.java b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/Member.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/rules/Member.java
rename to geode-dunit/src/main/java/org/apache/geode/test/junit/rules/Member.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/junit/rules/MemberStarterRule.java b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/MemberStarterRule.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/junit/rules/MemberStarterRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/junit/rules/MemberStarterRule.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/rules/Server.java b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/Server.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/rules/Server.java
rename to geode-dunit/src/main/java/org/apache/geode/test/junit/rules/Server.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/test/junit/rules/ServerStarterRule.java b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/ServerStarterRule.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/test/junit/rules/ServerStarterRule.java
rename to geode-dunit/src/main/java/org/apache/geode/test/junit/rules/ServerStarterRule.java
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/test/junit/rules/VMProvider.java b/geode-dunit/src/main/java/org/apache/geode/test/junit/rules/VMProvider.java
similarity index 100%
rename from geode-core/src/distributedTest/java/org/apache/geode/test/junit/rules/VMProvider.java
rename to geode-dunit/src/main/java/org/apache/geode/test/junit/rules/VMProvider.java
diff --git a/geode-core/src/test/resources/org/apache/geode/cache/client/internal/cacheserver.keystore b/geode-dunit/src/main/resources/org/apache/geode/cache/client/internal/cacheserver.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/cache/client/internal/cacheserver.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/cache/client/internal/cacheserver.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/cache/client/internal/cacheserver.truststore b/geode-dunit/src/main/resources/org/apache/geode/cache/client/internal/cacheserver.truststore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/cache/client/internal/cacheserver.truststore
rename to geode-dunit/src/main/resources/org/apache/geode/cache/client/internal/cacheserver.truststore
diff --git a/geode-core/src/test/resources/org/apache/geode/cache/client/internal/client.keystore b/geode-dunit/src/main/resources/org/apache/geode/cache/client/internal/client.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/cache/client/internal/client.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/cache/client/internal/client.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/cache/client/internal/client.truststore b/geode-dunit/src/main/resources/org/apache/geode/cache/client/internal/client.truststore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/cache/client/internal/client.truststore
rename to geode-dunit/src/main/resources/org/apache/geode/cache/client/internal/client.truststore
diff --git a/geode-core/src/test/resources/org/apache/geode/management/internal/security/auth1.json b/geode-dunit/src/main/resources/org/apache/geode/management/internal/security/auth1.json
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/management/internal/security/auth1.json
rename to geode-dunit/src/main/resources/org/apache/geode/management/internal/security/auth1.json
diff --git a/geode-core/src/test/resources/org/apache/geode/management/internal/security/auth2.json b/geode-dunit/src/main/resources/org/apache/geode/management/internal/security/auth2.json
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/management/internal/security/auth2.json
rename to geode-dunit/src/main/resources/org/apache/geode/management/internal/security/auth2.json
diff --git a/geode-core/src/test/resources/org/apache/geode/management/internal/security/auth3.json b/geode-dunit/src/main/resources/org/apache/geode/management/internal/security/auth3.json
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/management/internal/security/auth3.json
rename to geode-dunit/src/main/resources/org/apache/geode/management/internal/security/auth3.json
diff --git a/geode-core/src/test/resources/org/apache/geode/management/internal/security/cacheServer.json b/geode-dunit/src/main/resources/org/apache/geode/management/internal/security/cacheServer.json
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/management/internal/security/cacheServer.json
rename to geode-dunit/src/main/resources/org/apache/geode/management/internal/security/cacheServer.json
diff --git a/geode-core/src/test/resources/org/apache/geode/management/internal/security/clientServer.json b/geode-dunit/src/main/resources/org/apache/geode/management/internal/security/clientServer.json
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/management/internal/security/clientServer.json
rename to geode-dunit/src/main/resources/org/apache/geode/management/internal/security/clientServer.json
diff --git a/geode-core/src/test/resources/org/apache/geode/management/internal/security/shiro-ini.json b/geode-dunit/src/main/resources/org/apache/geode/management/internal/security/shiro-ini.json
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/management/internal/security/shiro-ini.json
rename to geode-dunit/src/main/resources/org/apache/geode/management/internal/security/shiro-ini.json
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/authz-dummy.xml b/geode-dunit/src/main/resources/org/apache/geode/security/generator/authz-dummy.xml
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/authz-dummy.xml
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/authz-dummy.xml
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/authz-ldap.xml b/geode-dunit/src/main/resources/org/apache/geode/security/generator/authz-ldap.xml
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/authz-ldap.xml
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/authz-ldap.xml
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/authz-multiUser-dummy.xml b/geode-dunit/src/main/resources/org/apache/geode/security/generator/authz-multiUser-dummy.xml
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/authz-multiUser-dummy.xml
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/authz-multiUser-dummy.xml
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/authz-multiUser-ldap.xml b/geode-dunit/src/main/resources/org/apache/geode/security/generator/authz-multiUser-ldap.xml
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/authz-multiUser-ldap.xml
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/authz-multiUser-ldap.xml
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire1.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire1.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire1.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire1.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire10.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire10.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire10.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire10.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire11.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire11.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire11.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire11.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire2.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire2.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire2.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire2.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire3.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire3.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire3.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire3.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire4.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire4.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire4.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire4.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire5.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire5.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire5.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire5.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire6.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire6.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire6.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire6.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire7.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire7.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire7.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire7.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire8.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire8.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire8.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire8.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire9.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire9.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/gemfire9.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/gemfire9.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire1.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire1.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire1.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire1.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire10.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire10.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire10.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire10.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire11.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire11.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire11.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire11.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire2.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire2.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire2.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire2.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire3.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire3.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire3.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire3.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire4.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire4.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire4.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire4.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire5.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire5.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire5.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire5.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire6.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire6.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire6.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire6.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire7.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire7.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire7.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire7.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire8.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire8.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire8.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire8.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire9.keystore b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire9.keystore
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/gemfire9.keystore
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/gemfire9.keystore
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/publickeyfile b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/publickeyfile
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/ibm/publickeyfile
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/ibm/publickeyfile
diff --git a/geode-core/src/test/resources/org/apache/geode/security/generator/keys/publickeyfile b/geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/publickeyfile
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/generator/keys/publickeyfile
rename to geode-dunit/src/main/resources/org/apache/geode/security/generator/keys/publickeyfile
diff --git a/geode-core/src/test/resources/org/apache/geode/security/peerAuth.json b/geode-dunit/src/main/resources/org/apache/geode/security/peerAuth.json
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/peerAuth.json
rename to geode-dunit/src/main/resources/org/apache/geode/security/peerAuth.json
diff --git a/geode-core/src/test/resources/org/apache/geode/security/templates/authz5_5.dtd b/geode-dunit/src/main/resources/org/apache/geode/security/templates/authz5_5.dtd
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/templates/authz5_5.dtd
rename to geode-dunit/src/main/resources/org/apache/geode/security/templates/authz5_5.dtd
diff --git a/geode-core/src/test/resources/org/apache/geode/security/templates/authz6_0.dtd b/geode-dunit/src/main/resources/org/apache/geode/security/templates/authz6_0.dtd
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/templates/authz6_0.dtd
rename to geode-dunit/src/main/resources/org/apache/geode/security/templates/authz6_0.dtd
diff --git a/geode-experimental-driver/build.gradle b/geode-experimental-driver/build.gradle
index 158e89b..c276261 100644
--- a/geode-experimental-driver/build.gradle
+++ b/geode-experimental-driver/build.gradle
@@ -23,8 +23,6 @@ dependencies {
     testCompile project(':geode-core')
     testCompile project(':geode-junit')
     testCompile project(':geode-protobuf')
-    testCompile files(project(':geode-core').sourceSets.test.output)
 
-    // TODO build - move dunit framework to shared module.
-    integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+    integrationTestCompile project(":geode-dunit")
 }
diff --git a/geode-junit/build.gradle b/geode-junit/build.gradle
index 69971ad..4b3c3a2 100755
--- a/geode-junit/build.gradle
+++ b/geode-junit/build.gradle
@@ -16,6 +16,8 @@
  */
 
 dependencies {
+  compileOnly project(':geode-core')
+
   compile ('com.github.stefanbirkner:system-rules:' + project.'system-rules.version') {
     exclude module: 'junit-dep'
   }
diff --git a/geode-core/src/test/java/com/examples/ds/Address.java b/geode-junit/src/main/java/com/examples/ds/Address.java
similarity index 100%
rename from geode-core/src/test/java/com/examples/ds/Address.java
rename to geode-junit/src/main/java/com/examples/ds/Address.java
diff --git a/geode-core/src/test/java/com/examples/ds/Company.java b/geode-junit/src/main/java/com/examples/ds/Company.java
similarity index 100%
rename from geode-core/src/test/java/com/examples/ds/Company.java
rename to geode-junit/src/main/java/com/examples/ds/Company.java
diff --git a/geode-core/src/test/java/com/examples/ds/CompanySerializer.java b/geode-junit/src/main/java/com/examples/ds/CompanySerializer.java
similarity index 100%
rename from geode-core/src/test/java/com/examples/ds/CompanySerializer.java
rename to geode-junit/src/main/java/com/examples/ds/CompanySerializer.java
diff --git a/geode-core/src/test/java/com/examples/ds/Employee.java b/geode-junit/src/main/java/com/examples/ds/Employee.java
similarity index 100%
rename from geode-core/src/test/java/com/examples/ds/Employee.java
rename to geode-junit/src/main/java/com/examples/ds/Employee.java
diff --git a/geode-core/src/test/java/com/examples/ds/PutDataSerializables.java b/geode-junit/src/main/java/com/examples/ds/PutDataSerializables.java
similarity index 100%
rename from geode-core/src/test/java/com/examples/ds/PutDataSerializables.java
rename to geode-junit/src/main/java/com/examples/ds/PutDataSerializables.java
diff --git a/geode-core/src/test/java/com/examples/ds/User.java b/geode-junit/src/main/java/com/examples/ds/User.java
similarity index 100%
rename from geode-core/src/test/java/com/examples/ds/User.java
rename to geode-junit/src/main/java/com/examples/ds/User.java
diff --git a/geode-core/src/test/java/com/examples/snapshot/MyDataSerializer.java b/geode-junit/src/main/java/com/examples/snapshot/MyDataSerializer.java
similarity index 100%
rename from geode-core/src/test/java/com/examples/snapshot/MyDataSerializer.java
rename to geode-junit/src/main/java/com/examples/snapshot/MyDataSerializer.java
diff --git a/geode-core/src/test/java/com/examples/snapshot/MyObject.java b/geode-junit/src/main/java/com/examples/snapshot/MyObject.java
similarity index 100%
rename from geode-core/src/test/java/com/examples/snapshot/MyObject.java
rename to geode-junit/src/main/java/com/examples/snapshot/MyObject.java
diff --git a/geode-core/src/test/java/com/examples/snapshot/MyObjectDataSerializable.java b/geode-junit/src/main/java/com/examples/snapshot/MyObjectDataSerializable.java
similarity index 100%
rename from geode-core/src/test/java/com/examples/snapshot/MyObjectDataSerializable.java
rename to geode-junit/src/main/java/com/examples/snapshot/MyObjectDataSerializable.java
diff --git a/geode-core/src/test/java/com/examples/snapshot/MyObjectPdx.java b/geode-junit/src/main/java/com/examples/snapshot/MyObjectPdx.java
similarity index 100%
rename from geode-core/src/test/java/com/examples/snapshot/MyObjectPdx.java
rename to geode-junit/src/main/java/com/examples/snapshot/MyObjectPdx.java
diff --git a/geode-core/src/test/java/com/examples/snapshot/MyObjectPdxSerializable.java b/geode-junit/src/main/java/com/examples/snapshot/MyObjectPdxSerializable.java
similarity index 100%
rename from geode-core/src/test/java/com/examples/snapshot/MyObjectPdxSerializable.java
rename to geode-junit/src/main/java/com/examples/snapshot/MyObjectPdxSerializable.java
diff --git a/geode-core/src/test/java/com/examples/snapshot/MyPdxSerializer.java b/geode-junit/src/main/java/com/examples/snapshot/MyPdxSerializer.java
similarity index 100%
rename from geode-core/src/test/java/com/examples/snapshot/MyPdxSerializer.java
rename to geode-junit/src/main/java/com/examples/snapshot/MyPdxSerializer.java
diff --git a/geode-core/src/test/java/org/apache/geode/DeltaTestImpl.java b/geode-junit/src/main/java/org/apache/geode/DeltaTestImpl.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/DeltaTestImpl.java
rename to geode-junit/src/main/java/org/apache/geode/DeltaTestImpl.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/CacheUtils.java b/geode-junit/src/main/java/org/apache/geode/cache/query/CacheUtils.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/CacheUtils.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/CacheUtils.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Address.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Address.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Address.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Address.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/City.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/City.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/City.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/City.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/CollectionHolder.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/CollectionHolder.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/CollectionHolder.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/CollectionHolder.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/ComparableWrapper.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/ComparableWrapper.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/ComparableWrapper.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/ComparableWrapper.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Country.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Country.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Country.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Country.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Data.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Data.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Data.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Data.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/District.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/District.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/District.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/District.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Employee.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Employee.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Employee.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Employee.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Instrument.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Instrument.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Instrument.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Instrument.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Inventory.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Inventory.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Inventory.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Inventory.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Keywords.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Keywords.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Keywords.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Keywords.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Manager.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Manager.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Manager.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Manager.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Numbers.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Numbers.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Numbers.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Numbers.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/PhoneNo.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/PhoneNo.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/PhoneNo.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/PhoneNo.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Portfolio.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Portfolio.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Portfolio.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Portfolio.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/PortfolioData.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/PortfolioData.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/PortfolioData.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/PortfolioData.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/PortfolioNoDS.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/PortfolioNoDS.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/PortfolioNoDS.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/PortfolioNoDS.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/PortfolioPdx.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/PortfolioPdx.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/PortfolioPdx.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/PortfolioPdx.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Position.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Position.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Position.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Position.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/PositionNoDS.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/PositionNoDS.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/PositionNoDS.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/PositionNoDS.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/PositionPdx.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/PositionPdx.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/PositionPdx.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/PositionPdx.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/ProhibitedSecurityQuote.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/ProhibitedSecurityQuote.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/ProhibitedSecurityQuote.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/ProhibitedSecurityQuote.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Quote.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Quote.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Quote.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Quote.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Restricted.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Restricted.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Restricted.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Restricted.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/SecurityMaster.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/SecurityMaster.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/SecurityMaster.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/SecurityMaster.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/State.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/State.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/State.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/State.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Street.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Street.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Street.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Street.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Student.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Student.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Student.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Student.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/TestData.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/TestData.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/TestData.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/TestData.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/TradingLine.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/TradingLine.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/TradingLine.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/TradingLine.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Vehicle.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Vehicle.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Vehicle.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Vehicle.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/data/Village.java b/geode-junit/src/main/java/org/apache/geode/cache/query/data/Village.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/query/data/Village.java
rename to geode-junit/src/main/java/org/apache/geode/cache/query/data/Village.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache/util/TxEventTestUtil.java b/geode-junit/src/main/java/org/apache/geode/cache/util/TxEventTestUtil.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache/util/TxEventTestUtil.java
rename to geode-junit/src/main/java/org/apache/geode/cache/util/TxEventTestUtil.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/MyGatewayEventFilter1.java b/geode-junit/src/main/java/org/apache/geode/cache30/MyGatewayEventFilter1.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache30/MyGatewayEventFilter1.java
rename to geode-junit/src/main/java/org/apache/geode/cache30/MyGatewayEventFilter1.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/MyGatewayEventFilter2.java b/geode-junit/src/main/java/org/apache/geode/cache30/MyGatewayEventFilter2.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache30/MyGatewayEventFilter2.java
rename to geode-junit/src/main/java/org/apache/geode/cache30/MyGatewayEventFilter2.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/MyGatewayTransportFilter1.java b/geode-junit/src/main/java/org/apache/geode/cache30/MyGatewayTransportFilter1.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache30/MyGatewayTransportFilter1.java
rename to geode-junit/src/main/java/org/apache/geode/cache30/MyGatewayTransportFilter1.java
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/MyGatewayTransportFilter2.java b/geode-junit/src/main/java/org/apache/geode/cache30/MyGatewayTransportFilter2.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/cache30/MyGatewayTransportFilter2.java
rename to geode-junit/src/main/java/org/apache/geode/cache30/MyGatewayTransportFilter2.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/TestServerLauncherCacheProvider.java b/geode-junit/src/main/java/org/apache/geode/distributed/TestServerLauncherCacheProvider.java
similarity index 91%
rename from geode-core/src/integrationTest/java/org/apache/geode/distributed/TestServerLauncherCacheProvider.java
rename to geode-junit/src/main/java/org/apache/geode/distributed/TestServerLauncherCacheProvider.java
index d71a7c0..124085f 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/TestServerLauncherCacheProvider.java
+++ b/geode-junit/src/main/java/org/apache/geode/distributed/TestServerLauncherCacheProvider.java
@@ -19,8 +19,7 @@ import java.util.Properties;
 import org.apache.geode.cache.Cache;
 
 /**
- * Implementation of {@link ServerLauncherCacheProvider} used by
- * {@link ServerLauncherWithProviderRegressionTest}.
+ * Implementation of {@link ServerLauncherCacheProvider}.
  */
 public class TestServerLauncherCacheProvider implements ServerLauncherCacheProvider {
 
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/TestObjectWithIdentifier.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/TestObjectWithIdentifier.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/TestObjectWithIdentifier.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/TestObjectWithIdentifier.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/execute/MyFunctionExecutionException.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/execute/MyFunctionExecutionException.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/execute/MyFunctionExecutionException.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/execute/MyFunctionExecutionException.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/execute/data/CustId.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/execute/data/CustId.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/execute/data/CustId.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/execute/data/CustId.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/execute/data/OrderId.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/execute/data/OrderId.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/execute/data/OrderId.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/execute/data/OrderId.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/execute/data/ShipmentId.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/execute/data/ShipmentId.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/execute/data/ShipmentId.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/execute/data/ShipmentId.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/AbstractMockExtension.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/AbstractMockExtension.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/AbstractMockExtension.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/AbstractMockExtension.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/AbstractMockExtensionXmlGenerator.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/AbstractMockExtensionXmlGenerator.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/AbstractMockExtensionXmlGenerator.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/AbstractMockExtensionXmlGenerator.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/AlterMockCacheExtensionFunction.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/AlterMockCacheExtensionFunction.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/AlterMockCacheExtensionFunction.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/AlterMockCacheExtensionFunction.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/AlterMockRegionExtensionFunction.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/AlterMockRegionExtensionFunction.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/AlterMockRegionExtensionFunction.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/AlterMockRegionExtensionFunction.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/CreateMockCacheExtensionFunction.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/CreateMockCacheExtensionFunction.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/CreateMockCacheExtensionFunction.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/CreateMockCacheExtensionFunction.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/CreateMockRegionExtensionFunction.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/CreateMockRegionExtensionFunction.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/CreateMockRegionExtensionFunction.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/CreateMockRegionExtensionFunction.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/DestroyMockCacheExtensionFunction.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/DestroyMockCacheExtensionFunction.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/DestroyMockCacheExtensionFunction.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/DestroyMockCacheExtensionFunction.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/DestroyMockRegionExtensionFunction.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/DestroyMockRegionExtensionFunction.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/DestroyMockRegionExtensionFunction.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/DestroyMockRegionExtensionFunction.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/MockCacheExtension.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/MockCacheExtension.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/MockCacheExtension.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/MockCacheExtension.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/MockCacheExtensionXmlGenerator.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/MockCacheExtensionXmlGenerator.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/MockCacheExtensionXmlGenerator.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/MockCacheExtensionXmlGenerator.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/MockExtensionCommands.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/MockExtensionCommands.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/MockExtensionCommands.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/MockExtensionCommands.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/MockExtensionXmlParser.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/MockExtensionXmlParser.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/MockExtensionXmlParser.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/MockExtensionXmlParser.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/MockRegionExtension.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/MockRegionExtension.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/MockRegionExtension.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/MockRegionExtension.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/MockRegionExtensionXmlGenerator.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/MockRegionExtensionXmlGenerator.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/extension/mock/MockRegionExtensionXmlGenerator.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/extension/mock/MockRegionExtensionXmlGenerator.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/CustomAsyncEventListener.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/CustomAsyncEventListener.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/CustomAsyncEventListener.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/CustomAsyncEventListener.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/Filter70.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/Filter70.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/Filter70.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/Filter70.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyAsyncEventListener.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyAsyncEventListener.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyAsyncEventListener.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyAsyncEventListener.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyAsyncEventListener2.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyAsyncEventListener2.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyAsyncEventListener2.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyAsyncEventListener2.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyDistributedSystemListener.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyDistributedSystemListener.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyDistributedSystemListener.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyDistributedSystemListener.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewayEventFilter.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayEventFilter.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewayEventFilter.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayEventFilter.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener2.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener2.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener2.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener2.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter1.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter1.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter1.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter1.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter2.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter2.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter2.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter2.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter3.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter3.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter3.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter3.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter4.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter4.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter4.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter4.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/PossibleDuplicateAsyncEventListener.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/PossibleDuplicateAsyncEventListener.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/PossibleDuplicateAsyncEventListener.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/PossibleDuplicateAsyncEventListener.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/QueueListener.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/QueueListener.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/QueueListener.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/QueueListener.java
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/WaitingAsyncEventListener.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/WaitingAsyncEventListener.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/wan/WaitingAsyncEventListener.java
rename to geode-junit/src/main/java/org/apache/geode/internal/cache/wan/WaitingAsyncEventListener.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/ResultHandler.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/ResultHandler.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/ResultHandler.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/ResultHandler.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTest.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTestHelper.java
similarity index 91%
copy from geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTest.java
copy to geode-junit/src/main/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTestHelper.java
index 9f3a41c..94c9821 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTest.java
+++ b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/commands/CommandAvailabilityIndicatorTestHelper.java
@@ -20,7 +20,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 import java.lang.reflect.Method;
 import java.util.List;
 
-import org.junit.Test;
 import org.springframework.shell.core.CommandMarker;
 import org.springframework.shell.core.annotation.CliCommand;
 
@@ -30,13 +29,7 @@ import org.apache.geode.management.cli.GfshCommand;
 import org.apache.geode.management.internal.cli.CommandManager;
 
 
-public class CommandAvailabilityIndicatorTest {
-
-  @Test
-  public void allOnlineCommandsHaveAvailabilityIndicator() {
-    CommandManager manager = new CommandManager();
-    assertOnlineCommandsHasAvailabilityIndicator(manager);
-  }
+public class CommandAvailabilityIndicatorTestHelper {
 
   public static void assertOnlineCommandsHasAvailabilityIndicator(CommandManager manager) {
     List<CommandMarker> commandMarkers = manager.getCommandMarkers();
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ToUpperResultCollector.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/commands/ToUpperResultCollector.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ToUpperResultCollector.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/commands/ToUpperResultCollector.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/domain/MyCacheListener.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/domain/MyCacheListener.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/domain/MyCacheListener.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/domain/MyCacheListener.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/domain/MyCacheLoader.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/domain/MyCacheLoader.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/domain/MyCacheLoader.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/domain/MyCacheLoader.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/domain/MyCacheWriter.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/domain/MyCacheWriter.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/domain/MyCacheWriter.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/domain/MyCacheWriter.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/domain/Stock.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/domain/Stock.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/domain/Stock.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/domain/Stock.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Car.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Car.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Car.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Car.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Key.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Key.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Key.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Key.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Key1.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Key1.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Key1.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Key1.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Key2.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Key2.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Key2.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Key2.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/ObjectWithCharAttr.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/ObjectWithCharAttr.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/ObjectWithCharAttr.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/ObjectWithCharAttr.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Value.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Value.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Value.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Value.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Value1.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Value1.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Value1.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Value1.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Value2.java b/geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Value2.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/dto/Value2.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/cli/dto/Value2.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/configuration/ConfigGroup.java b/geode-junit/src/main/java/org/apache/geode/management/internal/configuration/ConfigGroup.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/configuration/ConfigGroup.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/configuration/ConfigGroup.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java b/geode-junit/src/main/java/org/apache/geode/management/internal/security/TestCommand.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/security/TestCommand.java
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/TestFunctions.java b/geode-junit/src/main/java/org/apache/geode/management/internal/security/TestFunctions.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/management/internal/security/TestFunctions.java
rename to geode-junit/src/main/java/org/apache/geode/management/internal/security/TestFunctions.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/DSInsidePdx.java b/geode-junit/src/main/java/org/apache/geode/pdx/DSInsidePdx.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/DSInsidePdx.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/DSInsidePdx.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/DomainObject.java b/geode-junit/src/main/java/org/apache/geode/pdx/DomainObject.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/DomainObject.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/DomainObject.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/DomainObjectBad.java b/geode-junit/src/main/java/org/apache/geode/pdx/DomainObjectBad.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/DomainObjectBad.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/DomainObjectBad.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/DomainObjectClassLoadable.java b/geode-junit/src/main/java/org/apache/geode/pdx/DomainObjectClassLoadable.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/DomainObjectClassLoadable.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/DomainObjectClassLoadable.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/DomainObjectPdxAuto.java b/geode-junit/src/main/java/org/apache/geode/pdx/DomainObjectPdxAuto.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/DomainObjectPdxAuto.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/DomainObjectPdxAuto.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/DomainObjectPdxAutoNoDefaultConstructor.java b/geode-junit/src/main/java/org/apache/geode/pdx/DomainObjectPdxAutoNoDefaultConstructor.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/DomainObjectPdxAutoNoDefaultConstructor.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/DomainObjectPdxAutoNoDefaultConstructor.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/Employee.java b/geode-junit/src/main/java/org/apache/geode/pdx/Employee.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/Employee.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/Employee.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/NestedPdx.java b/geode-junit/src/main/java/org/apache/geode/pdx/NestedPdx.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/NestedPdx.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/NestedPdx.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/NonDelegatingLoader.java b/geode-junit/src/main/java/org/apache/geode/pdx/NonDelegatingLoader.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/NonDelegatingLoader.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/NonDelegatingLoader.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/PdxInsideDS.java b/geode-junit/src/main/java/org/apache/geode/pdx/PdxInsideDS.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/PdxInsideDS.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/PdxInsideDS.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/SeparateClassloaderPdx.java b/geode-junit/src/main/java/org/apache/geode/pdx/SeparateClassloaderPdx.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/SeparateClassloaderPdx.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/SeparateClassloaderPdx.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/SimpleClass.java b/geode-junit/src/main/java/org/apache/geode/pdx/SimpleClass.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/SimpleClass.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/SimpleClass.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/SimpleClass1.java b/geode-junit/src/main/java/org/apache/geode/pdx/SimpleClass1.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/SimpleClass1.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/SimpleClass1.java
diff --git a/geode-core/src/test/java/org/apache/geode/pdx/SimpleClass2.java b/geode-junit/src/main/java/org/apache/geode/pdx/SimpleClass2.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/pdx/SimpleClass2.java
rename to geode-junit/src/main/java/org/apache/geode/pdx/SimpleClass2.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/PDXPostProcessor.java b/geode-junit/src/main/java/org/apache/geode/security/PDXPostProcessor.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/PDXPostProcessor.java
rename to geode-junit/src/main/java/org/apache/geode/security/PDXPostProcessor.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/SimpleTestSecurityManager.java b/geode-junit/src/main/java/org/apache/geode/security/SimpleTestSecurityManager.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/SimpleTestSecurityManager.java
rename to geode-junit/src/main/java/org/apache/geode/security/SimpleTestSecurityManager.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/TestPostProcessor.java b/geode-junit/src/main/java/org/apache/geode/security/TestPostProcessor.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/TestPostProcessor.java
rename to geode-junit/src/main/java/org/apache/geode/security/TestPostProcessor.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/TestSecurityManager.java b/geode-junit/src/main/java/org/apache/geode/security/TestSecurityManager.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/TestSecurityManager.java
rename to geode-junit/src/main/java/org/apache/geode/security/TestSecurityManager.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/query/UserPermissions.java b/geode-junit/src/main/java/org/apache/geode/security/query/UserPermissions.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/query/UserPermissions.java
rename to geode-junit/src/main/java/org/apache/geode/security/query/UserPermissions.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/query/data/PdxQueryTestObject.java b/geode-junit/src/main/java/org/apache/geode/security/query/data/PdxQueryTestObject.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/query/data/PdxQueryTestObject.java
rename to geode-junit/src/main/java/org/apache/geode/security/query/data/PdxQueryTestObject.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/query/data/PdxTrade.java b/geode-junit/src/main/java/org/apache/geode/security/query/data/PdxTrade.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/query/data/PdxTrade.java
rename to geode-junit/src/main/java/org/apache/geode/security/query/data/PdxTrade.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/query/data/QueryTestObject.java b/geode-junit/src/main/java/org/apache/geode/security/query/data/QueryTestObject.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/query/data/QueryTestObject.java
rename to geode-junit/src/main/java/org/apache/geode/security/query/data/QueryTestObject.java
diff --git a/geode-core/src/test/java/org/apache/geode/security/templates/UserPasswordAuthInit.java b/geode-junit/src/main/java/org/apache/geode/security/templates/UserPasswordAuthInit.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/security/templates/UserPasswordAuthInit.java
rename to geode-junit/src/main/java/org/apache/geode/security/templates/UserPasswordAuthInit.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/fake/Fakes.java b/geode-junit/src/main/java/org/apache/geode/test/fake/Fakes.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/fake/Fakes.java
rename to geode-junit/src/main/java/org/apache/geode/test/fake/Fakes.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/assertions/AbstractResultModelAssert.java b/geode-junit/src/main/java/org/apache/geode/test/junit/assertions/AbstractResultModelAssert.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/assertions/AbstractResultModelAssert.java
rename to geode-junit/src/main/java/org/apache/geode/test/junit/assertions/AbstractResultModelAssert.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/assertions/CommandResultAssert.java b/geode-junit/src/main/java/org/apache/geode/test/junit/assertions/CommandResultAssert.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/assertions/CommandResultAssert.java
rename to geode-junit/src/main/java/org/apache/geode/test/junit/assertions/CommandResultAssert.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/assertions/CommandResultExecution.java b/geode-junit/src/main/java/org/apache/geode/test/junit/assertions/CommandResultExecution.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/assertions/CommandResultExecution.java
rename to geode-junit/src/main/java/org/apache/geode/test/junit/assertions/CommandResultExecution.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/assertions/DataResultModelAssert.java b/geode-junit/src/main/java/org/apache/geode/test/junit/assertions/DataResultModelAssert.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/assertions/DataResultModelAssert.java
rename to geode-junit/src/main/java/org/apache/geode/test/junit/assertions/DataResultModelAssert.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/assertions/InfoResultModelAssert.java b/geode-junit/src/main/java/org/apache/geode/test/junit/assertions/InfoResultModelAssert.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/assertions/InfoResultModelAssert.java
rename to geode-junit/src/main/java/org/apache/geode/test/junit/assertions/InfoResultModelAssert.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/assertions/TabularResultModelAssert.java b/geode-junit/src/main/java/org/apache/geode/test/junit/assertions/TabularResultModelAssert.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/assertions/TabularResultModelAssert.java
rename to geode-junit/src/main/java/org/apache/geode/test/junit/assertions/TabularResultModelAssert.java
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/rules/GfshParserRule.java b/geode-junit/src/main/java/org/apache/geode/test/junit/rules/GfshParserRule.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/test/junit/rules/GfshParserRule.java
rename to geode-junit/src/main/java/org/apache/geode/test/junit/rules/GfshParserRule.java
diff --git a/geode-core/src/test/java/org/apache/geode/util/test/TestUtil.java b/geode-junit/src/main/java/org/apache/geode/util/test/TestUtil.java
similarity index 79%
rename from geode-core/src/test/java/org/apache/geode/util/test/TestUtil.java
rename to geode-junit/src/main/java/org/apache/geode/util/test/TestUtil.java
index 88a9e3c..bbebc4f 100644
--- a/geode-core/src/test/java/org/apache/geode/util/test/TestUtil.java
+++ b/geode-junit/src/main/java/org/apache/geode/util/test/TestUtil.java
@@ -37,6 +37,22 @@ public class TestUtil {
    */
   public static String getResourcePath(Class<?> clazz, String name) {
     URL resource = clazz.getResource(name);
+    return getResourcePath(name, resource);
+  }
+
+  /**
+   * Return the path to a named resource. This finds the resource on the classpath using the rules
+   * of ClassLoader.getResource.
+   *
+   * @param classLoader the ClassLoader to look up resource in
+   * @param name the name of the resource, eg "cache.xml"
+   */
+  public static String getResourcePath(ClassLoader classLoader, String name) {
+    URL resource = classLoader.getResource(name);
+    return getResourcePath(name, resource);
+  }
+
+  private static String getResourcePath(String name, URL resource) {
     if (resource == null) {
       throw new RuntimeException("Could not find resource " + name);
     }
@@ -46,7 +62,7 @@ public class TestUtil {
         String filename = name.replaceFirst(".*/", "");
         File tmpFile = File.createTempFile(filename, null);
         tmpFile.deleteOnExit();
-        FileUtils.copyFile(new File(resource.getFile()), tmpFile);
+        FileUtils.copyURLToFile(resource, tmpFile);
         return compatibleWithWindows(tmpFile.getAbsolutePath());
       }
       return compatibleWithWindows(path);
diff --git a/geode-core/src/test/resources/org/apache/geode/security/templates/security.json b/geode-junit/src/main/resources/org/apache/geode/security/templates/security.json
similarity index 100%
rename from geode-core/src/test/resources/org/apache/geode/security/templates/security.json
rename to geode-junit/src/main/resources/org/apache/geode/security/templates/security.json
diff --git a/geode-core/src/test/resources/ssl/trusted.keystore b/geode-junit/src/main/resources/ssl/trusted.keystore
similarity index 100%
rename from geode-core/src/test/resources/ssl/trusted.keystore
rename to geode-junit/src/main/resources/ssl/trusted.keystore
diff --git a/geode-core/src/test/resources/ssl/untrusted.keystore b/geode-junit/src/main/resources/ssl/untrusted.keystore
similarity index 100%
rename from geode-core/src/test/resources/ssl/untrusted.keystore
rename to geode-junit/src/main/resources/ssl/untrusted.keystore
diff --git a/geode-lucene/build.gradle b/geode-lucene/build.gradle
index 4f20cc3..0325041 100644
--- a/geode-lucene/build.gradle
+++ b/geode-lucene/build.gradle
@@ -35,16 +35,14 @@ dependencies {
     testCompile 'com.pholser:junit-quickcheck-core:' + project.'junit-quickcheck.version'
     testCompile 'org.apache.lucene:lucene-analyzers-phonetic:' + project.'lucene.version'
     testCompile 'com.pholser:junit-quickcheck-generators:' + project.'junit-quickcheck.version'
-    // TODO build - move shared source to common library.
-    testCompile files(project(':geode-core').sourceSets.test.output)
+
     testCompile files(project(':geode-old-versions').sourceSets.main.output)
 
-    // TODO build - move dunit framework to shared module.
-    integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-    distributedTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-    distributedTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-    upgradeTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-    upgradeTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+    integrationTestCompile project(":geode-dunit")
+
+    distributedTestCompile project(":geode-dunit")
+
+    upgradeTestCompile project(":geode-dunit")
 }
 
 //The lucene integration tests don't have any issues that requiring forking
diff --git a/geode-old-client-support/build.gradle b/geode-old-client-support/build.gradle
index ee72dd9..86bdaa3 100644
--- a/geode-old-client-support/build.gradle
+++ b/geode-old-client-support/build.gradle
@@ -21,10 +21,7 @@ dependencies {
 
     testCompile project(':geode-junit')
 
-    testCompile files(project(':geode-core').sourceSets.test.output)
     testCompile files(project(':geode-old-versions').sourceSets.main.output)
 
-    // TODO build - move dunit framework to shared module.
-    distributedTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-    distributedTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+    distributedTestCompile project(":geode-dunit")
 }
diff --git a/geode-protobuf/build.gradle b/geode-protobuf/build.gradle
index ae159e9..6202fc1 100644
--- a/geode-protobuf/build.gradle
+++ b/geode-protobuf/build.gradle
@@ -21,7 +21,6 @@ dependencies {
     compile project(':geode-protobuf-messages')
 
     testCompile project(':geode-junit')
-    testCompile files(project(':geode-core').sourceSets.test.output)
 
     testCompile 'org.powermock:powermock-core:' + project.'powermock.version'
     testCompile 'org.powermock:powermock-module-junit4:' + project.'powermock.version'
@@ -30,8 +29,7 @@ dependencies {
     compile 'com.google.protobuf:protobuf-java:' + project.'protobuf-java.version'
     testCompile files(project(':geode-old-versions').sourceSets.main.output)
 
-    // TODO build - move dunit framework to shared module.
-    integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-    distributedTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-    distributedTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+    integrationTestCompile project(":geode-dunit")
+
+    distributedTestCompile project(":geode-dunit")
 }
diff --git a/geode-rebalancer/build.gradle b/geode-rebalancer/build.gradle
index 76bbdb1..72d9319 100644
--- a/geode-rebalancer/build.gradle
+++ b/geode-rebalancer/build.gradle
@@ -28,6 +28,5 @@ dependencies {
   }
   testCompile project(':geode-junit')
 
-  // TODO build - move dunit framework to shared module.
-  integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+  integrationTestCompile project(":geode-dunit")
 }
diff --git a/geode-wan/build.gradle b/geode-wan/build.gradle
index ea3dcec..1e901fb 100644
--- a/geode-wan/build.gradle
+++ b/geode-wan/build.gradle
@@ -19,15 +19,12 @@ dependencies {
   compileOnly project(':geode-core')
   testCompile project(':geode-core')
 
-  // TODO build - move shared source to common library.
-  testCompile files(project(':geode-core').sourceSets.test.output)
   testCompile project(':geode-junit')
   testCompile files(project(':geode-old-versions').sourceSets.main.output)
 
-  // TODO build - move dunit framework to shared module.
-  integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-  distributedTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-  distributedTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-  upgradeTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-  upgradeTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+  integrationTestCompile project(":geode-dunit")
+
+  distributedTestCompile project(":geode-dunit")
+
+  upgradeTestCompile project(":geode-dunit")
 }
diff --git a/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml70GatewayDUnitTest.java b/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml70GatewayDUnitTest.java
index 9f2831e..c9e8b92 100644
--- a/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml70GatewayDUnitTest.java
+++ b/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml70GatewayDUnitTest.java
@@ -34,7 +34,7 @@ import org.apache.geode.cache.wan.GatewayReceiverFactory;
 import org.apache.geode.cache.wan.GatewaySender;
 import org.apache.geode.cache.wan.GatewaySenderFactory;
 import org.apache.geode.cache.wan.GatewayTransportFilter;
-import org.apache.geode.cache30.CacheXml70DUnitTest;
+import org.apache.geode.cache30.CacheXml70DUnitTestHelper;
 import org.apache.geode.cache30.CacheXmlTestCase;
 import org.apache.geode.cache30.MyGatewayEventFilter1;
 import org.apache.geode.cache30.MyGatewayTransportFilter1;
@@ -73,7 +73,7 @@ public class CacheXml70GatewayDUnitTest extends CacheXmlTestCase {
     factory.setDispatcherThreads(33);
     factory.addGatewayEventFilter(new MyGatewayEventFilter());
 
-    AsyncEventListener eventListener = new CacheXml70DUnitTest.MyAsyncEventListener();
+    AsyncEventListener eventListener = new CacheXml70DUnitTestHelper.MyAsyncEventListener();
     AsyncEventQueue asyncEventQueue = factory.create(id, eventListener);
 
     RegionAttributesCreation attrs = new RegionAttributesCreation();
@@ -89,7 +89,7 @@ public class CacheXml70GatewayDUnitTest extends CacheXmlTestCase {
         asyncEventQueuesOnCache.size() > 0);
 
     for (AsyncEventQueue asyncEventQueueOnCache : asyncEventQueuesOnCache) {
-      CacheXml70DUnitTest.validateAsyncEventQueue(asyncEventQueue, asyncEventQueueOnCache);
+      CacheXml70DUnitTestHelper.validateAsyncEventQueue(asyncEventQueue, asyncEventQueueOnCache);
     }
   }
 
diff --git a/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml80GatewayDUnitTest.java b/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml80GatewayDUnitTest.java
index 1830754..e49787f 100644
--- a/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml80GatewayDUnitTest.java
+++ b/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml80GatewayDUnitTest.java
@@ -31,7 +31,7 @@ import org.apache.geode.cache.wan.GatewayReceiverFactory;
 import org.apache.geode.cache.wan.GatewaySender;
 import org.apache.geode.cache.wan.GatewaySenderFactory;
 import org.apache.geode.cache.wan.GatewayTransportFilter;
-import org.apache.geode.cache30.CacheXml70DUnitTest;
+import org.apache.geode.cache30.CacheXml70DUnitTestHelper;
 import org.apache.geode.cache30.CacheXmlTestCase;
 import org.apache.geode.cache30.MyGatewayTransportFilter1;
 import org.apache.geode.cache30.MyGatewayTransportFilter2;
@@ -85,7 +85,8 @@ public class CacheXml80GatewayDUnitTest extends CacheXmlTestCase {
     String id = getName();
     AsyncEventQueueFactory factory = cache.createAsyncEventQueueFactory();
     factory.setGatewayEventSubstitutionListener(new MyGatewayEventSubstitutionFilter());
-    AsyncEventQueue queue = factory.create(id, new CacheXml70DUnitTest.MyAsyncEventListener());
+    AsyncEventQueue queue =
+        factory.create(id, new CacheXml70DUnitTestHelper.MyAsyncEventListener());
 
     // Verify the GatewayEventSubstitutionFilter is set on the AsyncEventQueue.
     assertNotNull(queue.getGatewayEventSubstitutionFilter());
diff --git a/geode-web-api/build.gradle b/geode-web-api/build.gradle
index 90f290c..ae84ffe 100755
--- a/geode-web-api/build.gradle
+++ b/geode-web-api/build.gradle
@@ -57,17 +57,15 @@ dependencies {
   }
 
   testCompile project(':geode-junit')
-  testCompile files(project(':geode-core').sourceSets.test.output)
 
   compileOnly 'javax.servlet:javax.servlet-api:' + project.'javax.servlet-api.version'
   testCompile 'javax.servlet:javax.servlet-api:' + project.'javax.servlet-api.version'
   compileOnly project(':geode-core')
   testCompile project(':geode-core')
 
-  // TODO build - move dunit framework to shared module.
-  integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-  distributedTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-  distributedTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+  integrationTestCompile project(":geode-dunit")
+
+  distributedTestCompile project(":geode-dunit")
 }
 
 war {
diff --git a/geode-web/build.gradle b/geode-web/build.gradle
index f8077a8..7c51caa 100755
--- a/geode-web/build.gradle
+++ b/geode-web/build.gradle
@@ -54,7 +54,6 @@ dependencies {
   testCompile project(':geode-core')
   testCompile project(':geode-junit')
   testRuntime project(':geode-common')
-  testCompile files(project(':geode-core').sourceSets.test.output)
 
   testCompile 'com.pholser:junit-quickcheck-core:' + project.'junit-quickcheck.version'
   testCompile 'com.pholser:junit-quickcheck-generators:' + project.'junit-quickcheck.version'
@@ -63,11 +62,15 @@ dependencies {
   testRuntime files(war.destinationDir)
   testCompile files(project(':geode-old-versions').sourceSets.main.output)
 
-  // TODO build - move dunit framework to shared module.
+  integrationTestCompile project(":geode-dunit")
+  // TODO remove dependency on sources from other test modules
   integrationTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
-  integrationTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
+
+  distributedTestCompile project(":geode-dunit")
+  // TODO remove dependency on sources from other test modules
   distributedTestCompile files(project(':geode-core').sourceSets.distributedTest.output)
-  distributedTestCompile files(project(':geode-core').sourceSets.integrationTest.output)
+
+  upgradeTestCompile project(":geode-dunit")
 }
 
 //Remove the gradle output directories from the eclipse classpath. These
diff --git a/geode-web/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ConnectCommandWithSSLTest.java b/geode-web/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ConnectCommandWithSSLTest.java
index 0131b93..07cc4f6 100644
--- a/geode-web/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ConnectCommandWithSSLTest.java
+++ b/geode-web/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ConnectCommandWithSSLTest.java
@@ -53,7 +53,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.OutputStream;
-import java.net.URISyntaxException;
 import java.util.Properties;
 
 import org.junit.Before;
@@ -70,6 +69,7 @@ import org.apache.geode.test.dunit.rules.ClusterStartupRule;
 import org.apache.geode.test.dunit.rules.MemberVM;
 import org.apache.geode.test.junit.categories.GfshTest;
 import org.apache.geode.test.junit.rules.GfshCommandRule;
+import org.apache.geode.util.test.TestUtil;
 
 @Category({GfshTest.class})
 public class ConnectCommandWithSSLTest {
@@ -79,18 +79,15 @@ public class ConnectCommandWithSSLTest {
   private static File jks;
 
   static {
-    try {
-      /*
-       * This file was generated with the following command:
-       * keytool -genkey -dname "CN=localhost" -alias self -validity 3650 -keyalg EC \
-       * -keystore trusted.keystore -keypass password -storepass password \
-       * -ext san=ip:127.0.0.1 -storetype jks
-       */
-      jks = new File(ConnectCommandWithSSLTest.class.getClassLoader()
-          .getResource("ssl/trusted.keystore").toURI());
-    } catch (URISyntaxException e) {
-      e.printStackTrace();
-    }
+    /*
+     * This file was generated with the following command:
+     * keytool -genkey -dname "CN=localhost" -alias self -validity 3650 -keyalg EC \
+     * -keystore trusted.keystore -keypass password -storepass password \
+     * -ext san=ip:127.0.0.1 -storetype jks
+     */
+
+    jks = new File(TestUtil.getResourcePath(ConnectCommandWithSSLTest.class.getClassLoader(),
+        "ssl/trusted.keystore"));
   }
 
   private static Properties sslProperties = new Properties() {
diff --git a/settings.gradle b/settings.gradle
index ae55867..fd6150e 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -20,6 +20,7 @@ include 'geode-old-versions'
 include 'geode-common'
 include 'geode-json'
 include 'geode-junit'
+include 'geode-dunit'
 include 'geode-core'
 include 'geode-web'
 include 'geode-web-api'