This looks great John! I'll spend some time going through all of this soon. Thanks!
On Fri, Aug 10, 2018 at 10:04 AM, John Blum <jb...@pivotal.io> wrote: > If you haven't seen this, you should have a look at *Spring Test for Apache > Geode* (STDG) [1] > > I have much work to do yet to round this project out: docs, more > "formalized" integration test support (think JUnit Rules and custom Runners > over extension, etc) and so on. > > However, mocking for Geode Objects in Unit Tests is very robust and > complete. For instance, writing a Unit Test with mocked Geode Objects is > as simple as [2]. When using @EnableGemFireMockObjects annotation, you > literally get a mock object for every single Geode object: [Client]Cache, > CacheServer, Region, Index, DiskStore, AEQ, Gateway[Sender|Receiver], etc. > > Still, even the integration test support is pretty extensive, handling > things that the user would not normally know to handle. > > You can find many examples of this test framework in action in *Spring Boot > for Apache Geode* (SBDG) [3] as it was used extensively to test SBDG. Over > time, I plan to retrofit and consolidate *Spring Data for Apache Geode* > (SDG) and *Spring Session for Apache Geode's* (SSDG) test suites on this > test framework. > > Regards, > John > > > [1] https://github.com/spring-projects/spring-test-data-geode > [2] > https://github.com/spring-projects/spring-boot-data- > geode/blob/master/spring-geode/src/test/java/org/ > springframework/geode/config/annotation/DurableClientConfigurationInte > grationTests.java#L121-L124 > [3] https://github.com/spring-projects/spring-boot-data-geode > > > > On Fri, Aug 10, 2018 at 9:37 AM, Kirk Lund <kl...@apache.org> wrote: > > > In my opinion geode-junit and geode-dunit should be treated as testing > > frameworks that users can use to build better geode tests with. Think > JUnit > > or Mockito here. We have some valuable rules and dunit is valuable > > framework for more than building geode. We've been talking about > providing > > this to users for years. That's why I consider them to be more than just > > local tests within geode. I'm sorry if this doesn't match with your > > expectation but I assure that I've been working towards this goal for > years > > and I don't plan to give up on this goal. > > > > Now, here's another option for you: introduce yet another module > geode-test > > which is NOT published and is only used for tests local within the geode > > code base. > > > > I disagree with publishing non-framework code in either geode-junit or > > geode-dunit and I want to make these 100% useful and well-organized for > > users. I prefer to either duplicate code such as MyCacheListener across > the > > tests that need them or grouping them in a non-published geode-test > module. > > > > On Fri, Aug 10, 2018 at 8:36 AM, Jacob Barrett <jbarr...@pivotal.io> > > wrote: > > > > > I am not sure why you think geode-junit and geode-dunit are production > > jars > > > and should be treated as such. They are test framework jars in the same > > > vein as org.springframework:spring-test or > > > org.apache.lucene:lucene-test-framework. The should contain shared > class > > > for producing tests against the geode product. They could certainly use > > > some refinement. I would suggest we create a geode-test main module > with > > > sub modules for unit, integration, distributed and upgrade style test > > > frameworks. I would also create sub-modules for common test domain > > objects > > > that main not be as beneficial to the consumers downstream but are > shared > > > between primary modules in our projects. > > > > > > Thanks for finding the tests that were meant to test the framework. I > > have > > > refactored them into the appropriate test sources sets. > > > > > > More inline below: > > > > > > On Thu, Aug 9, 2018 at 3:56 PM Kirk Lund <kl...@apache.org> wrote: > > > > > > > Here are the tests that are no longer running because they've been > > moved > > > to > > > > src/main (was this reviewed?): > > > > > > > > <klund@Kirks-MacBook-Pro>/Users/klund/dev/gemfire/open/geode-dunit > > > [2294]$ > > > > find . -name '*Test.java' > > > > > > > > ./src/main/java/org/apache/geode/codeAnalysis/ > > > AnalyzeSerializablesJUnitTest.java > > > > > > > Has been split into a base class that all other projects derive from > and > > > moved to geode-junit. > > > > > > > > > > ./src/main/java/org/apache/geode/security/templates/ > > > PKCSPrincipalTest.java > > > > > > > > ./src/main/java/org/apache/geode/security/templates/ > > > UsernamePrincipalTest.java > > > > > > > Moved these unit tests to dunit/src/test > > > > > > > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/cache/examples/ > > > CacheTestCaseExampleTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/examples/ > > > AsyncInvokeCallableExampleTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/examples/ > > > AsyncInvokeRunnableExampleTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/examples/ > > > BeforeClassExampleTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/examples/ > > > CatchingUnexpectedExceptionExampleTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/examples/ > > > DistributedTestCaseExampleTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/examples/ > > > DistributedTestRuleExampleTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/examples/ > > > DoNotHandleUnexpectedExceptionExampleTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/examples/ > > > FixtureOrderingExampleTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/examples/ > > > InvokeRunnableExampleTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/examples/ > > > LocatorPortClusterExampleTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/examples/ > > > ReplaceTryFinallyExampleTest.java > > > > > > > All of these are "examples". I wonder if they should be treated > > > differently. For the time they are in geode-dunit/src/distributedTest. > > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/internal/ > > > DUnitBlackboardDUnitTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/rules/tests/ > > > CacheRuleBuilderDistributedTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/rules/tests/ > > > CacheRuleDistributedTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/rules/tests/ > > > ClusterStartupRuleCanSpecifyOlderVersionsDUnitTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/rules/tests/ > > > DistributedRestoreSystemPropertiesDistributedTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/rules/tests/ > > > DistributedTestRuleDistributedTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/rules/tests/ > > > MemberStarterRuleAwaitDUnitTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/rules/tests/ > > > MemberStarterRuleAwaitIntegrationTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/rules/tests/ > > > MemberStarterRuleIntegrationTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/rules/tests/ > > > MemberStarterRuleTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/rules/tests/ > > > SharedCountersRuleDistributedTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/rules/tests/ > > > SharedErrorCollectorDistributedTest.java > > > > ./src/main/java/org/apache/geode/test/dunit/tests/ > > > BasicDistributedTest.java > > > > > > > > ./src/main/java/org/apache/geode/test/dunit/tests/ > > > GetCurrentVmNumDistributedTest.java > > > > ./src/main/java/org/apache/geode/test/dunit/tests/ > > VMDistributedTest.java > > > > > > Moved to geode-dunit/src/distributedTest. > > > > > > > > > > The following is the list of testing classes in geode-junit that > > probably > > > > shouldn't be part of a geode-junit release: > > > > > > > > ./src/main/java/com/examples/ds/Address.java > > > > ./src/main/java/com/examples/ds/Company.java > > > > ./src/main/java/com/examples/ds/CompanySerializer.java > > > > ./src/main/java/com/examples/ds/Employee.java > > > > ./src/main/java/com/examples/ds/PutDataSerializables.java > > > > ./src/main/java/com/examples/ds/User.java > > > > ./src/main/java/com/examples/snapshot/MyDataSerializer.java > > > > ./src/main/java/com/examples/snapshot/MyObject.java > > > > ./src/main/java/com/examples/snapshot/MyObjectDataSerializable.java > > > > ./src/main/java/com/examples/snapshot/MyObjectPdx.java > > > > ./src/main/java/com/examples/snapshot/MyObjectPdxSerializable.java > > > > ./src/main/java/com/examples/snapshot/MyPdxSerializer.java > > > > ./src/main/java/org/apache/geode/cache/query/CacheUtils.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Address.java > > > > ./src/main/java/org/apache/geode/cache/query/data/City.java > > > > ./src/main/java/org/apache/geode/cache/query/data/ > > CollectionHolder.java > > > > ./src/main/java/org/apache/geode/cache/query/data/ > > ComparableWrapper.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Country.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Data.java > > > > ./src/main/java/org/apache/geode/cache/query/data/District.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Employee.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Instrument.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Inventory.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Keywords.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Manager.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Numbers.java > > > > ./src/main/java/org/apache/geode/cache/query/data/PhoneNo.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Portfolio.java > > > > ./src/main/java/org/apache/geode/cache/query/data/PortfolioData.java > > > > ./src/main/java/org/apache/geode/cache/query/data/PortfolioNoDS.java > > > > ./src/main/java/org/apache/geode/cache/query/data/PortfolioPdx.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Position.java > > > > ./src/main/java/org/apache/geode/cache/query/data/PositionNoDS.java > > > > ./src/main/java/org/apache/geode/cache/query/data/PositionPdx.java > > > > > > > > ./src/main/java/org/apache/geode/cache/query/data/ > > > ProhibitedSecurityQuote.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Quote.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Restricted.java > > > > ./src/main/java/org/apache/geode/cache/query/data/ > SecurityMaster.java > > > > ./src/main/java/org/apache/geode/cache/query/data/State.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Street.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Student.java > > > > ./src/main/java/org/apache/geode/cache/query/data/TestData.java > > > > ./src/main/java/org/apache/geode/cache/query/data/TradingLine.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Vehicle.java > > > > ./src/main/java/org/apache/geode/cache/query/data/Village.java > > > > ./src/main/java/org/apache/geode/cache/util/TxEventTestUtil.java > > > > ./src/main/java/org/apache/geode/cache30/MyGatewayEventFilter1.java > > > > ./src/main/java/org/apache/geode/cache30/MyGatewayEventFilter2.java > > > > ./src/main/java/org/apache/geode/cache30/ > > MyGatewayTransportFilter1.java > > > > ./src/main/java/org/apache/geode/cache30/ > > MyGatewayTransportFilter2.java > > > > ./src/main/java/org/apache/geode/DeltaTestImpl.java > > > > > > > > ./src/main/java/org/apache/geode/distributed/ > > > TestServerLauncherCacheProvider.java > > > > ./src/main/java/org/apache/geode/internal/cache/execute/ > > data/CustId.java > > > > ./src/main/java/org/apache/geode/internal/cache/execute/ > > > data/OrderId.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/execute/ > > > data/ShipmentId.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/execute/ > > > MyFunctionExecutionException.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > AbstractMockExtension.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > AbstractMockExtensionXmlGenerator.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > AlterMockCacheExtensionFunction.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > AlterMockRegionExtensionFunction.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > CreateMockCacheExtensionFunction.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > CreateMockRegionExtensionFunction.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > DestroyMockCacheExtensionFunction.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > DestroyMockRegionExtensionFunction.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > MockCacheExtension.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > MockCacheExtensionXmlGenerator.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > MockExtensionCommands.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > MockExtensionXmlParser.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > MockRegionExtension.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/extension/mock/ > > > MockRegionExtensionXmlGenerator.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/ > > > TestObjectWithIdentifier.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > CustomAsyncEventListener.java > > > > ./src/main/java/org/apache/geode/internal/cache/wan/Filter70.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > MyAsyncEventListener.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > MyAsyncEventListener2.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > MyDistributedSystemListener.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > MyGatewayEventFilter.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > MyGatewaySenderEventListener.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > MyGatewaySenderEventListener2.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > MyGatewayTransportFilter1.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > MyGatewayTransportFilter2.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > MyGatewayTransportFilter3.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > MyGatewayTransportFilter4.java > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > QueueListener.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > WaitingAsyncEventListener.java > > > > > > > > ./src/main/java/org/apache/geode/management/internal/cli/commands/ > > > CommandAvailabilityIndicatorTestHelper.java > > > > > > > > ./src/main/java/org/apache/geode/management/internal/cli/commands/ > > > ToUpperResultCollector.java > > > > > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > > > domain/MyCacheListener.java > > > > > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > > > domain/MyCacheLoader.java > > > > > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > > > domain/MyCacheWriter.java > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > > > domain/Stock.java > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > dto/Car.java > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > dto/Key.java > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > dto/Key1.java > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > dto/Key2.java > > > > > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > > > dto/ObjectWithCharAttr.java > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > > dto/Value.java > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > > dto/Value1.java > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > > dto/Value2.java > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > > > ResultHandler.java > > > > > > > > ./src/main/java/org/apache/geode/management/internal/ > > > configuration/ConfigGroup.java > > > > > > > > ./src/main/java/org/apache/geode/management/internal/ > > > security/TestCommand.java > > > > > > > > ./src/main/java/org/apache/geode/management/internal/ > > > security/TestFunctions.java > > > > ./src/main/java/org/apache/geode/pdx/DomainObject.java > > > > ./src/main/java/org/apache/geode/pdx/DomainObjectBad.java > > > > ./src/main/java/org/apache/geode/pdx/DomainObjectClassLoadable.java > > > > ./src/main/java/org/apache/geode/pdx/DomainObjectPdxAuto.java > > > > > > > > ./src/main/java/org/apache/geode/pdx/DomainObjectPdxAutoNoDefaultCo > > > nstructor.java > > > > ./src/main/java/org/apache/geode/pdx/DSInsidePdx.java > > > > ./src/main/java/org/apache/geode/pdx/Employee.java > > > > ./src/main/java/org/apache/geode/pdx/NestedPdx.java > > > > ./src/main/java/org/apache/geode/pdx/NonDelegatingLoader.java > > > > ./src/main/java/org/apache/geode/pdx/PdxInsideDS.java > > > > ./src/main/java/org/apache/geode/pdx/SeparateClassloaderPdx.java > > > > ./src/main/java/org/apache/geode/pdx/SimpleClass.java > > > > ./src/main/java/org/apache/geode/pdx/SimpleClass1.java > > > > ./src/main/java/org/apache/geode/pdx/SimpleClass2.java > > > > ./src/main/java/org/apache/geode/security/PDXPostProcessor.java > > > > > > > > ./src/main/java/org/apache/geode/security/query/data/ > > > PdxQueryTestObject.java > > > > ./src/main/java/org/apache/geode/security/query/data/PdxTrade.java > > > > ./src/main/java/org/apache/geode/security/query/data/ > > > QueryTestObject.java > > > > ./src/main/java/org/apache/geode/security/query/UserPermissions.java > > > > ./src/main/java/org/apache/geode/security/ > > SimpleTestSecurityManager.java > > > > > > > > ./src/main/java/org/apache/geode/security/templates/ > > > UserPasswordAuthInit.java > > > > ./src/main/java/org/apache/geode/security/TestPostProcessor.java > > > > ./src/main/java/org/apache/geode/security/TestSecurityManager.java > > > > > > > > > > All of these are shared across projects and test sources sets and must > be > > > in a common test framework or be duplicated in each source set. > > > > > > > > > > The following is the list of testing classes in geode-junit that > > probably > > > > shouldn't be part of a geode-unit release: > > > > > > > > ./src/main/java/org/apache/geode/cache/client/internal/ > > > LocatorTestBase.java > > > > > > > > ./src/main/java/org/apache/geode/cache/query/cq/dunit/ > > > CqQueryTestListener.java > > > > > > > > ./src/main/java/org/apache/geode/cache/query/dunit/ > > > CloseCacheAuthorization.java > > > > ./src/main/java/org/apache/geode/cache/query/dunit/ > HelperTestCase.java > > > > ./src/main/java/org/apache/geode/cache/query/QueryTestUtils.java > > > > ./src/main/java/org/apache/geode/cache30/ > > CacheSerializableRunnable.java > > > > ./src/main/java/org/apache/geode/cache30/CacheTestCase.java > > > > ./src/main/java/org/apache/geode/cache30/ > > CacheXml70DUnitTestHelper.java > > > > ./src/main/java/org/apache/geode/cache30/CacheXmlTestCase.java > > > > ./src/main/java/org/apache/geode/cache30/ > CertifiableTestCacheListener. > > > java > > > > ./src/main/java/org/apache/geode/cache30/ClientServerTestCase.java > > > > ./src/main/java/org/apache/geode/cache30/MultiVMRegionTestCase.java > > > > ./src/main/java/org/apache/geode/cache30/RegionTestCase.java > > > > ./src/main/java/org/apache/geode/cache30/TestCacheCallback.java > > > > ./src/main/java/org/apache/geode/cache30/TestCacheListener.java > > > > ./src/main/java/org/apache/geode/cache30/TestCacheLoader.java > > > > ./src/main/java/org/apache/geode/cache30/TestCacheWriter.java > > > > > > > > ./src/main/java/org/apache/geode/codeAnalysis/ > > > AnalyzeSerializablesJUnitTest.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/ > > ClassAndMethodDetails.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/ClassAndMethods.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/ > > > ClassAndVariableDetails.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/ClassAndVariables.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/ > CompiledClassUtils.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/ > > > CompiledAttribute.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/ > > CompiledClass.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/ > CompiledCode.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/ > > CompiledField.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/ > > CompiledMethod.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/Cp.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpClass.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/ > CpDouble.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/ > > CpFieldref.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpFloat.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/ > CpInteger.java > > > > > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/ > > > CpInterfaceMethodref.java > > > > > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/ > > > CpInvokeDynamic.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpLong.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/ > > > CpMethodHandle.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/ > > CpMethodref.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/ > > > CpMethodType.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/ > > > CpNameAndType.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/ > CpString.java > > > > ./src/main/java/org/apache/geode/codeAnalysis/decode/cp/CpUtf8.java > > > > > > > > ./src/main/java/org/apache/geode/distributed/internal/ > membership/gms/ > > > MembershipManagerHelper.java > > > > ./src/main/java/org/apache/geode/internal/AvailablePortHelper.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/ > > > CustomerIDPartitionResolver.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/execute/ > > > CustomerIDPartitionResolver.java > > > > ./src/main/java/org/apache/geode/internal/cache/execute/ > > > data/Customer.java > > > > ./src/main/java/org/apache/geode/internal/cache/execute/ > > data/Order.java > > > > ./src/main/java/org/apache/geode/internal/cache/execute/ > > > data/Shipment.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/execute/ > > > PRColocationDUnitTestHelper.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/tier/ > > > sockets/CacheServerTestUtil.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/tier/sockets/ > > > ClientServerMiscDUnitTestBase.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/tier/sockets/ > > > ConflationDUnitTestHelper.java > > > > > > > > ./src/main/java/org/apache/geode/internal/cache/wan/ > > > AsyncEventQueueTestBase.java > > > > > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > > > commands/CliCommandTestBase.java > > > > ./src/main/java/org/apache/geode/management/internal/cli/ > > > HeadlessGfsh.java > > > > > > > > ./src/main/java/org/apache/geode/management/internal/ > > > configuration/ClusterConfig.java > > > > > > > > ./src/main/java/org/apache/geode/management/internal/configuration/ > > > ClusterConfigTestBase.java > > > > ./src/main/java/org/apache/geode/management/ManagementTestBase.java > > > > ./src/main/java/org/apache/geode/management/MBeanUtil.java > > > > ./src/main/java/org/apache/geode/management/MXBeanAwaitility.java > > > > ./src/main/java/org/apache/geode/security/ > ClientAuthorizationTestCase. > > > java > > > > > > > > ./src/main/java/org/apache/geode/security/generator/ > > > AuthzCredentialGenerator.java > > > > > > > > ./src/main/java/org/apache/geode/security/generator/ > > > CredentialGenerator.java > > > > > > > > ./src/main/java/org/apache/geode/security/generator/ > > > DummyAuthzCredentialGenerator.java > > > > > > > > ./src/main/java/org/apache/geode/security/generator/ > > > DummyCredentialGenerator.java > > > > > > > > ./src/main/java/org/apache/geode/security/generator/ > > > LdapUserCredentialGenerator.java > > > > > > > > ./src/main/java/org/apache/geode/security/generator/ > > > PKCSCredentialGenerator.java > > > > > > > > ./src/main/java/org/apache/geode/security/generator/ > > > SSLCredentialGenerator.java > > > > > > > > ./src/main/java/org/apache/geode/security/generator/ > > > UserPasswordWithExtraPropsAuthInit.java > > > > > > > > ./src/main/java/org/apache/geode/security/generator/ > > > XmlAuthzCredentialGenerator.java > > > > ./src/main/java/org/apache/geode/security/query/ > QuerySecurityBase.java > > > > ./src/main/java/org/apache/geode/security/SecurityTestUtil.java > > > > ./src/main/java/org/apache/geode/security/SecurityTestUtils.java > > > > ./src/main/java/org/apache/geode/security/templates/ > > > DummyAuthenticator.java > > > > ./src/main/java/org/apache/geode/security/templates/ > > > DummyAuthorization.java > > > > > > > > ./src/main/java/org/apache/geode/security/templates/ > > > FunctionSecurityPrmsHolder.java > > > > > > > > ./src/main/java/org/apache/geode/security/templates/ > > > LdapUserAuthenticator.java > > > > ./src/main/java/org/apache/geode/security/templates/ > > > PKCSAuthenticator.java > > > > ./src/main/java/org/apache/geode/security/templates/ > PKCSAuthInit.java > > > > ./src/main/java/org/apache/geode/security/templates/ > PKCSPrincipal.java > > > > ./src/main/java/org/apache/geode/security/templates/ > > > PKCSPrincipalTest.java > > > > > > > > ./src/main/java/org/apache/geode/security/templates/ > > > SimpleAccessController.java > > > > > > > > ./src/main/java/org/apache/geode/security/templates/ > > > SimpleAuthenticator.java > > > > ./src/main/java/org/apache/geode/security/templates/ > > > UsernamePrincipal.java > > > > > > > > ./src/main/java/org/apache/geode/security/templates/ > > > UsernamePrincipalTest.java > > > > ./src/main/java/org/apache/geode/security/templates/ > > > XmlAuthorization.java > > > > ./src/main/java/org/apache/geode/security/templates/ > > XmlErrorHandler.java > > > > > > > > > > All of these are shared across projects and test sources sets and must > be > > > in a common test framework or be duplicated in each source set. > > > > > > > > > > > > > And we have some classes in geode-dunit that should instead be in > > > > geode-junit (are we reviewing these pull requests?): > > > > > > > > ./src/main/java/org/apache/geode/test/junit/rules/ > ClientCacheRule.java > > > > > > > > ./src/main/java/org/apache/geode/test/junit/rules/ > > > ConnectionConfiguration.java > > > > ./src/main/java/org/apache/geode/test/junit/rules/DiskDirRule.java > > > > ./src/main/java/org/apache/geode/test/junit/rules/ > GfshCommandRule.java > > > > ./src/main/java/org/apache/geode/test/junit/rules/Locator.java > > > > ./src/main/java/org/apache/geode/test/junit/rules/ > > > LocatorStarterRule.java > > > > > > > > ./src/main/java/org/apache/geode/test/junit/rules/ > > > MBeanServerConnectionRule.java > > > > ./src/main/java/org/apache/geode/test/junit/rules/Member.java > > > > ./src/main/java/org/apache/geode/test/junit/rules/ > > MemberStarterRule.java > > > > ./src/main/java/org/apache/geode/test/junit/rules/Server.java > > > > ./src/main/java/org/apache/geode/test/junit/rules/ > > ServerStarterRule.java > > > > ./src/main/java/org/apache/geode/test/junit/rules/VMProvider.java > > > > > > > > > > I think all of these had dependencies inside the dunit framework. They > > can > > > always be refactored. > > > > > > -Jake > > > > > > > > > -- > -John > john.blum10101 (skype) >