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);

Reply via email to