This is an automated email from the ASF dual-hosted git repository. ntimofeev pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push: new b4f4195fa CAY-2803 Test infrastructure: declarative custom DI modules in ServerCase b4f4195fa is described below commit b4f4195fa26a5b35f7ace450c77ae2b943a4c67e Author: Nikita Timofeev <stari...@gmail.com> AuthorDate: Tue Mar 14 15:36:07 2023 +0300 CAY-2803 Test infrastructure: declarative custom DI modules in ServerCase --- RELEASE-NOTES.txt | 1 + .../java/org/apache/cayenne/gen/CgenCaseModule.java | 4 ++-- .../org/apache/cayenne/dbsync/merge/MergeCase.java | 4 ++-- .../apache/cayenne/jcache/CayenneJCacheModuleIT.java | 11 +++++------ .../cayenne/CDOReflexiveRelICustomSorterIT.java | 8 +++----- .../access/DataContextDataChannelEventsIT.java | 4 ++-- .../access/DataContextDelegateSharedCacheIT.java | 4 ++-- ...ntityWithMeaningfulPKAndCustomDbRowOpSorterIT.java | 12 ++++-------- .../cayenne/access/DataContextSharedCacheIT.java | 4 ++-- .../access/NestedDataContextParentEventsIT.java | 4 ++-- .../access/NestedDataContextParentPeerEventsIT.java | 4 ++-- .../cayenne/access/NestedDataContextPeerEventsIT.java | 4 ++-- .../{InjectExtraModules.java => ExtraModules.java} | 12 ++++++------ ...lesProperties.java => ServerCaseExtraModules.java} | 12 +++++------- .../unit/di/server/ServerCaseLifecycleManager.java | 19 ++++++++++--------- .../cayenne/unit/di/server/ServerCaseModule.java | 2 +- .../cayenne/unit/di/server/ServerRuntimeProvider.java | 9 ++++----- .../di/server/ServerRuntimeProviderContextsSync.java | 2 +- .../WeakReferenceStrategyServerRuntimeProvider.java | 2 +- 19 files changed, 57 insertions(+), 65 deletions(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 77fdda982..292828144 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -38,6 +38,7 @@ CAY-2784 Remove 'Use Java primitive types' option from dbimport CAY-2788 DbImport: Add fallback option for the batch attribute loader CAY-2795 Add unit tests for the Json type CAY-2802 Upgrade Gradle to 7.6.1 +CAY-2803 Test infrastructure: declarative custom DI modules in ServerCase Bug Fixes: diff --git a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/CgenCaseModule.java b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/CgenCaseModule.java index 7ac4dc21b..96add5808 100644 --- a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/CgenCaseModule.java +++ b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/CgenCaseModule.java @@ -24,7 +24,7 @@ import org.apache.cayenne.di.Module; import org.apache.cayenne.di.spi.DefaultScope; import org.apache.cayenne.gen.mock.CustomPropertyDescriptor; import org.apache.cayenne.unit.di.UnitTestLifecycleManager; -import org.apache.cayenne.unit.di.server.ServerCaseExtraModulesProperties; +import org.apache.cayenne.unit.di.server.ServerCaseExtraModules; import org.apache.cayenne.unit.di.server.ServerCaseLifecycleManager; import org.apache.cayenne.unit.di.server.ServerCaseProperties; @@ -42,7 +42,7 @@ public class CgenCaseModule implements Module { public void configure(Binder binder) { binder.bind(UnitTestLifecycleManager.class).toInstance(new ServerCaseLifecycleManager(testScope)); binder.bind(ServerCaseProperties.class).to(ServerCaseProperties.class).in(testScope); - binder.bind(ServerCaseExtraModulesProperties.class).to(ServerCaseExtraModulesProperties.class).in(testScope); + binder.bind(ServerCaseExtraModules.class).to(ServerCaseExtraModules.class).in(testScope); CgenModule.contributeUserProperties(binder) .add(CustomPropertyDescriptor.class); diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java index ad9887ccc..0aae52c12 100644 --- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java +++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java @@ -46,7 +46,7 @@ import org.apache.cayenne.map.EntityResolver; import org.apache.cayenne.test.jdbc.DBHelper; import org.apache.cayenne.unit.UnitDbAdapter; import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.InjectExtraModules; +import org.apache.cayenne.unit.di.server.ExtraModules; import org.apache.cayenne.unit.di.server.ServerCase; import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory; import org.apache.cayenne.unit.di.server.UseServerRuntime; @@ -64,7 +64,7 @@ import java.util.List; import static org.junit.Assert.assertEquals; @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) -@InjectExtraModules(extraModules = {DbSyncModule.class}) +@ExtraModules(DbSyncModule.class) public abstract class MergeCase extends ServerCase { @Inject diff --git a/cayenne-jcache/src/test/java/org/apache/cayenne/jcache/CayenneJCacheModuleIT.java b/cayenne-jcache/src/test/java/org/apache/cayenne/jcache/CayenneJCacheModuleIT.java index 6c9758408..bd3c2e3d8 100644 --- a/cayenne-jcache/src/test/java/org/apache/cayenne/jcache/CayenneJCacheModuleIT.java +++ b/cayenne-jcache/src/test/java/org/apache/cayenne/jcache/CayenneJCacheModuleIT.java @@ -32,7 +32,7 @@ import org.apache.cayenne.test.jdbc.DBHelper; import org.apache.cayenne.test.jdbc.TableHelper; import org.apache.cayenne.testdo.testmap.Artist; import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.InjectExtraModules; +import org.apache.cayenne.unit.di.server.ExtraModules; import org.apache.cayenne.unit.di.server.ServerCase; import org.apache.cayenne.unit.di.server.UseServerRuntime; import org.junit.Before; @@ -41,11 +41,12 @@ import org.junit.Test; import javax.cache.CacheManager; import java.net.URISyntaxException; +import java.util.Objects; import static org.junit.Assert.assertEquals; @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) -@InjectExtraModules(extraModules = {CayenneJCacheModuleIT.CustomServerCase.class}) +@ExtraModules(CayenneJCacheModuleIT.EhCacheModule.class) public class CayenneJCacheModuleIT extends ServerCase { @Inject @@ -93,9 +94,7 @@ public class CayenneJCacheModuleIT extends ServerCase { assertEquals(4, g2.select(context).size()); } - protected static class CustomServerCase implements Module { - public CustomServerCase() {} - + public static class EhCacheModule implements Module { @Override public void configure(Binder binder) { binder.bind(CacheManager.class).toProvider(JCacheManagerProvider.class); @@ -104,7 +103,7 @@ public class CayenneJCacheModuleIT extends ServerCase { String configURI; try { - configURI = getClass().getResource("/eh-cache.xml").toURI().toString(); + configURI = Objects.requireNonNull(getClass().getResource("/eh-cache.xml")).toURI().toString(); } catch (URISyntaxException e) { throw new CayenneRuntimeException("Unable to resolve ehcache config resource URI."); } diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelICustomSorterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelICustomSorterIT.java index b3a28e21a..65a81b9ca 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelICustomSorterIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelICustomSorterIT.java @@ -23,7 +23,7 @@ import org.apache.cayenne.access.flush.operation.DbRowOpSorter; import org.apache.cayenne.access.flush.operation.GraphBasedDbRowOpSorter; import org.apache.cayenne.di.Binder; import org.apache.cayenne.di.Inject; -import org.apache.cayenne.unit.di.server.InjectExtraModules; +import org.apache.cayenne.unit.di.server.ExtraModules; import org.apache.cayenne.di.Module; import org.apache.cayenne.query.ObjectSelect; import org.apache.cayenne.testdo.testmap.ArtGroup; @@ -38,7 +38,7 @@ import org.junit.Ignore; import org.junit.Test; @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) -@InjectExtraModules(extraModules = {CDOReflexiveRelICustomSorterIT.CustomServerCase.class}) +@ExtraModules(CDOReflexiveRelICustomSorterIT.GraphSorterModule.class) public class CDOReflexiveRelICustomSorterIT extends ServerCase { @Inject private ObjectContext context; @@ -194,9 +194,7 @@ public class CDOReflexiveRelICustomSorterIT extends ServerCase { context.commitChanges(); } - protected static class CustomServerCase implements Module { - public CustomServerCase() {} - + public static class GraphSorterModule implements Module { @Override public void configure(Binder binder) { binder.bind(DbRowOpSorter.class).to(GraphBasedDbRowOpSorter.class); diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsIT.java index 32da7c542..ca9d5512f 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsIT.java @@ -29,7 +29,7 @@ import org.apache.cayenne.graph.GraphEvent; import org.apache.cayenne.test.parallel.ParallelTestContainer; import org.apache.cayenne.testdo.testmap.Artist; import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.InjectExtraModules; +import org.apache.cayenne.unit.di.server.ExtraModules; import org.apache.cayenne.unit.di.server.ServerCase; import org.apache.cayenne.unit.di.server.UseServerRuntime; import org.apache.cayenne.util.EventUtil; @@ -42,7 +42,7 @@ import static org.junit.Assert.assertTrue; * Tests that DataContext sends DataChannel events. */ @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) -@InjectExtraModules(extraModules = {ServerCaseSyncModule.class}) +@ExtraModules(ServerCaseSyncModule.class) public class DataContextDataChannelEventsIT extends ServerCase { @Inject diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java index 4d05f83f7..4a0800c92 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java @@ -29,7 +29,7 @@ import org.apache.cayenne.di.Inject; import org.apache.cayenne.test.parallel.ParallelTestContainer; import org.apache.cayenne.testdo.testmap.Artist; import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.InjectExtraModules; +import org.apache.cayenne.unit.di.server.ExtraModules; import org.apache.cayenne.unit.di.server.ServerCase; import org.apache.cayenne.unit.di.server.UseServerRuntime; import org.junit.Before; @@ -42,7 +42,7 @@ import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertTrue; @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) -@InjectExtraModules(extraModules = {ServerCaseSyncModule.class}) +@ExtraModules(ServerCaseSyncModule.class) public class DataContextDelegateSharedCacheIT extends ServerCase { @Inject diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKAndCustomDbRowOpSorterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKAndCustomDbRowOpSorterIT.java index 6989e8463..b38198f2f 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKAndCustomDbRowOpSorterIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKAndCustomDbRowOpSorterIT.java @@ -29,19 +29,17 @@ import org.apache.cayenne.testdo.meaningful_pk.MeaningfulPKDep; import org.apache.cayenne.testdo.meaningful_pk.MeaningfulPKTest1; import org.apache.cayenne.testdo.meaningful_pk.MeaningfulPk; import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.InjectExtraModules; +import org.apache.cayenne.unit.di.server.ExtraModules; import org.apache.cayenne.unit.di.server.ServerCase; import org.apache.cayenne.unit.di.server.UseServerRuntime; import org.junit.Test; @UseServerRuntime(CayenneProjects.MEANINGFUL_PK_PROJECT) -@InjectExtraModules(extraModules = {DataContextEntityWithMeaningfulPKAndCustomDbRowOpSorterIT.CustomServerCase.class}) +@ExtraModules(DataContextEntityWithMeaningfulPKAndCustomDbRowOpSorterIT.GraphSorterModule.class) public class DataContextEntityWithMeaningfulPKAndCustomDbRowOpSorterIT extends ServerCase { - @Inject - private DataContext context; @Inject - private ServerRuntime runtime; + private DataContext context; @Test public void testInsertDelete() { @@ -83,9 +81,7 @@ public class DataContextEntityWithMeaningfulPKAndCustomDbRowOpSorterIT extends S context.commitChanges(); } - protected static class CustomServerCase implements Module { - public CustomServerCase() {} - + public static class GraphSorterModule implements Module { @Override public void configure(Binder binder) { binder.bind(DbRowOpSorter.class).to(GraphBasedDbRowOpSorter.class); diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java index a692f06a0..b18a0ff4b 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java @@ -36,7 +36,7 @@ import org.apache.cayenne.test.parallel.ParallelTestContainer; import org.apache.cayenne.testdo.testmap.Artist; import org.apache.cayenne.testdo.testmap.Painting; import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.InjectExtraModules; +import org.apache.cayenne.unit.di.server.ExtraModules; import org.apache.cayenne.unit.di.server.ServerCase; import org.apache.cayenne.unit.di.server.UseServerRuntime; import org.apache.cayenne.unit.util.SQLTemplateCustomizer; @@ -50,7 +50,7 @@ import static org.junit.Assert.*; * DataDomain. */ @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) -@InjectExtraModules(extraModules = {ServerCaseSyncModule.class}) +@ExtraModules(ServerCaseSyncModule.class) public class DataContextSharedCacheIT extends ServerCase { @Inject diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentEventsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentEventsIT.java index d96793a67..e341d1cb7 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentEventsIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentEventsIT.java @@ -26,7 +26,7 @@ import org.apache.cayenne.di.Inject; import org.apache.cayenne.test.parallel.ParallelTestContainer; import org.apache.cayenne.testdo.testmap.Artist; import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.InjectExtraModules; +import org.apache.cayenne.unit.di.server.ExtraModules; import org.apache.cayenne.unit.di.server.ServerCase; import org.apache.cayenne.unit.di.server.UseServerRuntime; import org.junit.Test; @@ -37,7 +37,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) -@InjectExtraModules(extraModules = {ServerCaseSyncModule.class}) +@ExtraModules(ServerCaseSyncModule.class) public class NestedDataContextParentEventsIT extends ServerCase { @Inject diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsIT.java index d3aadfea9..ba437841c 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsIT.java @@ -27,7 +27,7 @@ import org.apache.cayenne.test.parallel.ParallelTestContainer; import org.apache.cayenne.testdo.relationships_child_master.Child; import org.apache.cayenne.testdo.relationships_child_master.Master; import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.InjectExtraModules; +import org.apache.cayenne.unit.di.server.ExtraModules; import org.apache.cayenne.unit.di.server.ServerCase; import org.apache.cayenne.unit.di.server.UseServerRuntime; import org.junit.Test; @@ -39,7 +39,7 @@ import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; @UseServerRuntime(CayenneProjects.RELATIONSHIPS_CHILD_MASTER_PROJECT) -@InjectExtraModules(extraModules = {ServerCaseSyncModule.class}) +@ExtraModules(ServerCaseSyncModule.class) public class NestedDataContextParentPeerEventsIT extends ServerCase { @Inject diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsIT.java index 98c790d82..7cd590c62 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsIT.java @@ -28,7 +28,7 @@ import org.apache.cayenne.test.parallel.ParallelTestContainer; import org.apache.cayenne.testdo.testmap.Artist; import org.apache.cayenne.testdo.testmap.Painting; import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.InjectExtraModules; +import org.apache.cayenne.unit.di.server.ExtraModules; import org.apache.cayenne.unit.di.server.ServerCase; import org.apache.cayenne.unit.di.server.UseServerRuntime; import org.junit.Test; @@ -39,7 +39,7 @@ import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) -@InjectExtraModules(extraModules = {ServerCaseSyncModule.class}) +@ExtraModules(ServerCaseSyncModule.class) public class NestedDataContextPeerEventsIT extends ServerCase { @Inject diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/InjectExtraModules.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ExtraModules.java similarity index 94% rename from cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/InjectExtraModules.java rename to cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ExtraModules.java index acb5eb907..876c98928 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/InjectExtraModules.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ExtraModules.java @@ -26,15 +26,15 @@ import java.lang.annotation.Target; import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.RetentionPolicy.RUNTIME; -@Retention(RUNTIME) -@Target(TYPE) -@Documented -@Inherited /** * Annotation provides the ability to add additional modules in declarative way * * @since 5.0 */ -public @interface InjectExtraModules { - Class[] extraModules() default {}; +@Retention(RUNTIME) +@Target(TYPE) +@Documented +@Inherited +public @interface ExtraModules { + Class<?>[] value(); } diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseExtraModulesProperties.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseExtraModules.java similarity index 79% rename from cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseExtraModulesProperties.java rename to cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseExtraModules.java index 8df2c83dc..229848a50 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseExtraModulesProperties.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseExtraModules.java @@ -20,30 +20,28 @@ package org.apache.cayenne.unit.di.server; import org.apache.cayenne.di.Module; -import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Collection; /** * @since 5.0 */ -public class ServerCaseExtraModulesProperties { - protected Class[] extraModules; +public class ServerCaseExtraModules { + protected Class<?>[] extraModules; public Collection<? extends Module> getExtraModules() { Collection<Module> result = new ArrayList<>(); - for (Class extraModule : extraModules) { + for (Class<?> extraModule : extraModules) { try { result.add((Module) extraModule.getConstructor().newInstance()); - } catch (InstantiationException | IllegalAccessException | - InvocationTargetException | NoSuchMethodException e) { + } catch (Exception e) { throw new RuntimeException(e); } } return result; } - public void setExtraModules(Class[] extraModules) { + public void setExtraModules(Class<?>[] extraModules) { this.extraModules = extraModules; } } diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseLifecycleManager.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseLifecycleManager.java index 09117212d..c1fc27749 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseLifecycleManager.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseLifecycleManager.java @@ -29,7 +29,7 @@ public class ServerCaseLifecycleManager extends DefaultUnitTestLifecycleManager protected Provider<ServerCaseProperties> propertiesProvider; @Inject - protected Provider<ServerCaseExtraModulesProperties> extraModulesPropertiesProvider; + protected Provider<ServerCaseExtraModules> extraModulesProvider; public ServerCaseLifecycleManager(DefaultScope scope) { super(scope); @@ -39,17 +39,18 @@ public class ServerCaseLifecycleManager extends DefaultUnitTestLifecycleManager public <T> void setUp(T testCase) { // init current runtime - UseServerRuntime runtimeName = testCase.getClass().getAnnotation( - UseServerRuntime.class); + UseServerRuntime runtimeName = testCase.getClass().getAnnotation(UseServerRuntime.class); + ExtraModules extraModules = testCase.getClass().getAnnotation(ExtraModules.class); - InjectExtraModules injectExtraModules = testCase.getClass().getAnnotation( - InjectExtraModules.class); - - String location = runtimeName != null ? runtimeName.value() : null; + String location = runtimeName != null + ? runtimeName.value() + : null; propertiesProvider.get().setConfigurationLocation(location); - Class[] modules = injectExtraModules != null ? injectExtraModules.extraModules() : new Class[]{}; - extraModulesPropertiesProvider.get().setExtraModules(modules); + Class<?>[] modules = extraModules != null + ? extraModules.value() + : new Class[]{}; + extraModulesProvider.get().setExtraModules(modules); super.setUp(testCase); } diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java index a5dff1261..db88c7763 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java @@ -262,7 +262,7 @@ public class ServerCaseModule implements Module { binder.bind(EntityResolver.class).toProvider(ServerCaseEntityResolverProvider.class).in(testScope); binder.bind(DataNode.class).toProvider(ServerCaseDataNodeProvider.class).in(testScope); binder.bind(ServerCaseProperties.class).to(ServerCaseProperties.class).in(testScope); - binder.bind(ServerCaseExtraModulesProperties.class).to(ServerCaseExtraModulesProperties.class).in(testScope); + binder.bind(ServerCaseExtraModules.class).to(ServerCaseExtraModules.class).in(testScope); binder.bind(ServerRuntime.class).toProvider(ServerRuntimeProvider.class).in(testScope); binder.bind(ObjectContext.class).toProvider(ServerCaseObjectContextProvider.class).withoutScope(); binder.bind(DataContext.class).toProvider(ServerCaseDataContextProvider.class).withoutScope(); diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java index 4a1da6a75..733a52940 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java @@ -38,20 +38,20 @@ import java.util.Collections; public class ServerRuntimeProvider implements Provider<ServerRuntime> { private ServerCaseProperties properties; - private ServerCaseExtraModulesProperties extraModulesProperties; + private ServerCaseExtraModules extraModules; private ServerCaseDataSourceFactory dataSourceFactory; private UnitDbAdapter unitDbAdapter; private Provider<DbAdapter> dbAdapterProvider; public ServerRuntimeProvider(@Inject ServerCaseDataSourceFactory dataSourceFactory, @Inject ServerCaseProperties properties, - @Inject ServerCaseExtraModulesProperties extraModulesProperties, + @Inject ServerCaseExtraModules extraModules, @Inject Provider<DbAdapter> dbAdapterProvider, @Inject UnitDbAdapter unitDbAdapter) { this.dataSourceFactory = dataSourceFactory; this.properties = properties; - this.extraModulesProperties = extraModulesProperties; + this.extraModules = extraModules; this.dbAdapterProvider = dbAdapterProvider; this.unitDbAdapter = unitDbAdapter; } @@ -66,8 +66,7 @@ public class ServerRuntimeProvider implements Provider<ServerRuntime> { } Collection<Module> modules = new ArrayList<>(getExtraModules()); - - modules.addAll(extraModulesProperties.getExtraModules()); + modules.addAll(extraModules.getExtraModules()); return ServerRuntime.builder() .addConfig(configurationLocation) diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProviderContextsSync.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProviderContextsSync.java index 7b1545207..f20ba38c5 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProviderContextsSync.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProviderContextsSync.java @@ -35,7 +35,7 @@ public class ServerRuntimeProviderContextsSync extends ServerRuntimeProvider { public ServerRuntimeProviderContextsSync(@Inject ServerCaseDataSourceFactory dataSourceFactory, @Inject ServerCaseProperties properties, - @Inject ServerCaseExtraModulesProperties extraModulesProperties, + @Inject ServerCaseExtraModules extraModulesProperties, @Inject Provider<DbAdapter> dbAdapterProvider, @Inject UnitDbAdapter unitDbAdapter) { super(dataSourceFactory, properties, extraModulesProperties, dbAdapterProvider, unitDbAdapter); diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerRuntimeProvider.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerRuntimeProvider.java index c07cf9d22..0e271ddc6 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerRuntimeProvider.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerRuntimeProvider.java @@ -33,7 +33,7 @@ public class WeakReferenceStrategyServerRuntimeProvider extends ServerRuntimePro public WeakReferenceStrategyServerRuntimeProvider(@Inject ServerCaseDataSourceFactory dataSourceFactory, @Inject ServerCaseProperties properties, - @Inject ServerCaseExtraModulesProperties extraModulesProperties, + @Inject ServerCaseExtraModules extraModulesProperties, @Inject Provider<DbAdapter> dbAdapterProvider, @Inject UnitDbAdapter unitDbAdapter) { super(dataSourceFactory, properties, extraModulesProperties, dbAdapterProvider, unitDbAdapter);