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

asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 22a377c32a093d3f916ad06ab961e10d85f1cf86
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sat May 16 15:23:29 2026 -0400

    removing unused test mappings
---
 .../datasource/BasePoolingDataSourceIT.java        |   2 +-
 ...PoolingDataSource_FailingValidationQueryIT.java |  15 +-
 .../cayenne/runtime/CayenneRuntimeBuilderIT.java   |   4 +-
 .../org/apache/cayenne/unit/CayenneTestsEnv.java   |  27 ++--
 .../unit/{runtime => }/ConnectionProperties.java   |   2 +-
 .../org/apache/cayenne/unit/DbSchemaManager.java   |   9 +-
 ...r.java => TestDataSourceDescriptorFactory.java} | 173 +++++++++++----------
 .../{runtime => }/UnitDataSourceDescriptor.java    |   2 +-
 .../unit/runtime/RuntimeCaseDbAdapterProvider.java |  51 ------
 .../cayenne/unit/runtime/RuntimeCaseModule.java    |  32 ----
 10 files changed, 120 insertions(+), 197 deletions(-)

diff --git 
a/cayenne/src/test/java/org/apache/cayenne/datasource/BasePoolingDataSourceIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/datasource/BasePoolingDataSourceIT.java
index f777c467f..aac158659 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/datasource/BasePoolingDataSourceIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/datasource/BasePoolingDataSourceIT.java
@@ -40,7 +40,7 @@ public class BasePoolingDataSourceIT {
 
        @BeforeEach
        public void before() throws SQLException {
-        DataSourceDescriptor dataSourceInfo = env.dataSourceDescriptor();
+        DataSourceDescriptor dataSourceInfo = 
CayenneTestsEnv.COMMON_SCHEMA.dataSourceDescriptor();
         AdhocObjectFactory objectFactory = env.adhocObjectFactory();
 
                Driver driver = objectFactory.newInstance(Driver.class, 
dataSourceInfo.getJdbcDriver());
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/datasource/PoolingDataSource_FailingValidationQueryIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/datasource/PoolingDataSource_FailingValidationQueryIT.java
index 0642961c6..2e3023636 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/datasource/PoolingDataSource_FailingValidationQueryIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/datasource/PoolingDataSource_FailingValidationQueryIT.java
@@ -18,14 +18,14 @@
  ****************************************************************/
 package org.apache.cayenne.datasource;
 
-import java.sql.Driver;
-
 import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
+import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
+import java.sql.Driver;
+
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
 public class PoolingDataSource_FailingValidationQueryIT {
@@ -45,9 +45,12 @@ public class PoolingDataSource_FailingValidationQueryIT {
        @Test
        public void constructor() {
                assertThrows(CayenneRuntimeException.class, () -> {
-                       Driver driver = 
env.adhocObjectFactory().newInstance(Driver.class, 
env.dataSourceDescriptor().getJdbcDriver());
-                       DriverDataSource nonPooling = new 
DriverDataSource(driver, env.dataSourceDescriptor().getDataSourceUrl(),
-                                       
env.dataSourceDescriptor().getUserName(), 
env.dataSourceDescriptor().getPassword());
+                       Driver driver = 
env.adhocObjectFactory().newInstance(Driver.class, 
CayenneTestsEnv.COMMON_SCHEMA.dataSourceDescriptor().getJdbcDriver());
+                       DriverDataSource nonPooling = new DriverDataSource(
+                                       driver,
+                                       
CayenneTestsEnv.COMMON_SCHEMA.dataSourceDescriptor().getDataSourceUrl(),
+                                       
CayenneTestsEnv.COMMON_SCHEMA.dataSourceDescriptor().getUserName(),
+                                       
CayenneTestsEnv.COMMON_SCHEMA.dataSourceDescriptor().getPassword());
 
                        PoolingDataSourceParameters poolParameters = 
createParameters();
                        UnmanagedPoolingDataSource ds = new 
UnmanagedPoolingDataSource(nonPooling, poolParameters);
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/runtime/CayenneRuntimeBuilderIT.java 
b/cayenne/src/test/java/org/apache/cayenne/runtime/CayenneRuntimeBuilderIT.java
index 1eefe1d6b..6babb7960 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/runtime/CayenneRuntimeBuilderIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/runtime/CayenneRuntimeBuilderIT.java
@@ -59,8 +59,8 @@ public class CayenneRuntimeBuilderIT {
     @BeforeEach
     public void setUp() throws Exception {
 
-        this.dsi = env.dataSourceDescriptor();
-        this.dataSource = env.runtime().getDataSource("testmap");
+        this.dsi = CayenneTestsEnv.COMMON_SCHEMA.dataSourceDescriptor();
+        this.dataSource = CayenneTestsEnv.COMMON_SCHEMA.dataSource();
 
         env.table("ARTIST", "ARTIST_ID", "ARTIST_NAME")
                 .insert(33001, "AA1")
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java
index a20cac8f3..ab0588479 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java
@@ -34,7 +34,6 @@ import 
org.apache.cayenne.configuration.runtime.DbAdapterFactory;
 import org.apache.cayenne.datasource.DataSourceBuilder;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.di.AdhocObjectFactory;
-import org.apache.cayenne.di.DIBootstrap;
 import org.apache.cayenne.di.Injector;
 import org.apache.cayenne.di.Module;
 import org.apache.cayenne.log.JdbcEventLogger;
@@ -46,7 +45,6 @@ import org.apache.cayenne.test.jdbc.DbHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.FlavoredDbHelper;
-import org.apache.cayenne.unit.runtime.RuntimeCaseModule;
 import org.apache.cayenne.unit.util.SQLTemplateCustomizer;
 import org.junit.jupiter.api.extension.AfterEachCallback;
 import org.junit.jupiter.api.extension.BeforeEachCallback;
@@ -64,25 +62,22 @@ import java.util.stream.Collectors;
  */
 public class CayenneTestsEnv implements BeforeEachCallback, AfterEachCallback {
 
-    private static final Injector INJECTOR;
-
     // shared stack parts... use these directly from the tests
+    // TODO: we should support multiple physically-isolated schemas for 
cleaner tests
     public static final DbSchemaManager COMMON_SCHEMA;
 
     static {
-        INJECTOR = DIBootstrap.createInjector(new RuntimeCaseModule());
-
-        DataSourceDescriptor dataSourceDescriptor = 
INJECTOR.getInstance(DataSourceDescriptor.class);
-        DataSource dataSource = DataSourceBuilder
-                .url(dataSourceDescriptor.getDataSourceUrl())
-                .driver(dataSourceDescriptor.getJdbcDriver())
-                .userName(dataSourceDescriptor.getUserName())
-                .password(dataSourceDescriptor.getPassword())
-                .pool(dataSourceDescriptor.getMinConnections(), 
dataSourceDescriptor.getMaxConnections())
+        DataSourceDescriptor dsDescriptor = 
TestDataSourceDescriptorFactory.create();
+        DataSource ds = DataSourceBuilder
+                .url(dsDescriptor.getDataSourceUrl())
+                .driver(dsDescriptor.getJdbcDriver())
+                .userName(dsDescriptor.getUserName())
+                .password(dsDescriptor.getPassword())
+                .pool(dsDescriptor.getMinConnections(), 
dsDescriptor.getMaxConnections())
                 .build();
 
         // "cayenne-ALL.xml" is a special synthetic project file that includes 
all test DataMaps
-        COMMON_SCHEMA = new DbSchemaManager("cayenne-ALL.xml", dataSource);
+        COMMON_SCHEMA = new DbSchemaManager("cayenne-ALL.xml", dsDescriptor, 
ds);
         COMMON_SCHEMA.rebuildSchema();
     }
 
@@ -263,10 +258,6 @@ public class CayenneTestsEnv implements 
BeforeEachCallback, AfterEachCallback {
         return dbCleaner;
     }
 
-    public DataSourceDescriptor dataSourceDescriptor() {
-        return INJECTOR.getInstance(DataSourceDescriptor.class);
-    }
-
     public SQLTemplateCustomizer sqlTemplateCustomizer() {
         return SQLTemplateCustomizer.of(dataNode().getAdapter());
     }
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/ConnectionProperties.java
 b/cayenne/src/test/java/org/apache/cayenne/unit/ConnectionProperties.java
similarity index 98%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/runtime/ConnectionProperties.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/ConnectionProperties.java
index 76daf4faa..60426e15a 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/ConnectionProperties.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/ConnectionProperties.java
@@ -17,7 +17,7 @@
  *  under the License.
  ****************************************************************/
 
-package org.apache.cayenne.unit.runtime;
+package org.apache.cayenne.unit;
 
 import java.util.ArrayList;
 import java.util.HashMap;
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/DbSchemaManager.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/DbSchemaManager.java
index 592573fb6..5df4846ab 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/DbSchemaManager.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/DbSchemaManager.java
@@ -21,6 +21,7 @@ package org.apache.cayenne.unit;
 
 import org.apache.cayenne.access.DataDomain;
 import org.apache.cayenne.access.DataNode;
+import org.apache.cayenne.configuration.DataSourceDescriptor;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
@@ -61,13 +62,15 @@ public class DbSchemaManager {
     private static final Set<String> EXTRA_EXCLUDED_FOR_NO_LOB = 
Set.of("CLOB_DETAIL");
     private static final Set<String> EXTRA_EXCLUDED_FOR_NO_NATIVE_JSON = 
Set.of("JSON_OTHER");
 
+    private final DataSourceDescriptor dataSourceDescriptor;
     private final DataSource dataSource;
     private final TestDbAdapter testDbAdapter;
     private final DataDomain domain;
     private final List<DataMap> dataMapsInSchemaSetupOrder;
 
-    public DbSchemaManager(String project, DataSource dataSource) {
+    public DbSchemaManager(String project, DataSourceDescriptor 
dataSourceDescriptor, DataSource dataSource) {
 
+        this.dataSourceDescriptor = dataSourceDescriptor;
         this.dataSource = dataSource;
         this.domain = CayenneRuntime.builder()
                 .addConfig(project)
@@ -96,6 +99,10 @@ public class DbSchemaManager {
         return dataSource;
     }
 
+    public DataSourceDescriptor dataSourceDescriptor() {
+        return dataSourceDescriptor;
+    }
+
     /**
      * Rebuilds the test schema, combining all DataMaps that require schema 
support. Schema generation is done like that
      * instead of on-demand per-DataMap  to avoid conflicts when dropping and 
generating PK objects.
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseDataSourceDescriptorProvider.java
 
b/cayenne/src/test/java/org/apache/cayenne/unit/TestDataSourceDescriptorFactory.java
similarity index 51%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseDataSourceDescriptorProvider.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/TestDataSourceDescriptorFactory.java
index d5365be08..f885a035a 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseDataSourceDescriptorProvider.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/unit/TestDataSourceDescriptorFactory.java
@@ -16,15 +16,19 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.runtime;
+package org.apache.cayenne.unit;
 
 import org.apache.cayenne.ConfigurationException;
 import org.apache.cayenne.dba.derby.DerbyAdapter;
 import org.apache.cayenne.dba.h2.H2Adapter;
 import org.apache.cayenne.dba.hsqldb.HSQLDBAdapter;
 import org.apache.cayenne.dba.sqlite.SQLiteAdapter;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.di.Provider;
+import org.apache.cayenne.unit.testcontainers.Db2ContainerProvider;
+import org.apache.cayenne.unit.testcontainers.MariaDbContainerProvider;
+import org.apache.cayenne.unit.testcontainers.MysqlContainerProvider;
+import org.apache.cayenne.unit.testcontainers.OracleContainerProvider;
+import org.apache.cayenne.unit.testcontainers.PostgresContainerProvider;
+import org.apache.cayenne.unit.testcontainers.SqlServerContainerProvider;
 import org.apache.cayenne.unit.testcontainers.TestContainerProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -37,9 +41,9 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
 
-public class RuntimeCaseDataSourceDescriptorProvider implements 
Provider<UnitDataSourceDescriptor> {
+public class TestDataSourceDescriptorFactory {
 
-    private static final Logger logger = 
LoggerFactory.getLogger(RuntimeCaseDataSourceDescriptorProvider.class);
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(TestDataSourceDescriptorFactory.class);
 
     private static final String PROPERTIES_FILE = "connection.properties";
     private static final String CONNECTION_NAME_KEY = "cayenneTestConnection";
@@ -50,86 +54,32 @@ public class RuntimeCaseDataSourceDescriptorProvider 
implements Provider<UnitDat
     private static final String URL_KEY_MAVEN = "cayenneJdbcUrl";
     private static final String DRIVER_KEY_MAVEN = "cayenneJdbcDriver";
 
-    private Map<String, UnitDataSourceDescriptor> inMemoryDataSources;
-    private ConnectionProperties connectionProperties;
 
-    private final Map<String, TestContainerProvider> testContainerProviders;
+    public static UnitDataSourceDescriptor create() {
 
-    public RuntimeCaseDataSourceDescriptorProvider(@Inject Map<String, 
TestContainerProvider> testContainerProviders)
-            throws IOException {
-
-        this.testContainerProviders = testContainerProviders;
         Map<String, String> propertiesMap = new HashMap<>();
 
         File file = connectionPropertiesFile();
-        if(file.exists()) {
+        if (file.exists()) {
             Properties properties = new Properties();
             properties.load(new FileReader(file));
             properties.forEach((k, v) -> propertiesMap.put(k.toString(), 
v.toString()));
         }
 
-        this.connectionProperties = new ConnectionProperties(propertiesMap);
-        logger.info("Loaded  " + connectionProperties.size() + " DataSource 
configurations from properties file");
-
-        this.inMemoryDataSources = new HashMap<>();
-
-        // preload default in-memory DataSources. Will use them as defaults if
-        // nothing is configured in ~/.cayenne/connection.properties
-        UnitDataSourceDescriptor hsqldb = new UnitDataSourceDescriptor();
-        hsqldb.setAdapterClassName(HSQLDBAdapter.class.getName());
-        hsqldb.setUserName("sa");
-        hsqldb.setPassword("");
-        
hsqldb.setDataSourceUrl("jdbc:hsqldb:mem:aname;sql.regular_names=false");
-        hsqldb.setJdbcDriver("org.hsqldb.jdbcDriver");
-        hsqldb.setMinConnections(ConnectionProperties.MIN_CONNECTIONS);
-        hsqldb.setMaxConnections(ConnectionProperties.MAX_CONNECTIONS);
-        inMemoryDataSources.put("hsql", hsqldb);
-
-        UnitDataSourceDescriptor h2 = new UnitDataSourceDescriptor();
-        h2.setAdapterClassName(H2Adapter.class.getName());
-        h2.setUserName("sa");
-        h2.setPassword("");
-        h2.setDataSourceUrl("jdbc:h2:mem:aname;DB_CLOSE_DELAY=-1;");
-        h2.setJdbcDriver("org.h2.Driver");
-        h2.setMinConnections(ConnectionProperties.MIN_CONNECTIONS);
-        h2.setMaxConnections(ConnectionProperties.MAX_CONNECTIONS);
-        inMemoryDataSources.put("h2", h2);
-
-        UnitDataSourceDescriptor derby = new UnitDataSourceDescriptor();
-        derby.setAdapterClassName(DerbyAdapter.class.getName());
-        derby.setUserName("sa");
-        derby.setPassword("");
-        derby.setDataSourceUrl("jdbc:derby:target/testdb;create=true");
-        derby.setJdbcDriver("org.apache.derby.jdbc.EmbeddedDriver");
-        derby.setMinConnections(ConnectionProperties.MIN_CONNECTIONS);
-        derby.setMaxConnections(ConnectionProperties.MAX_CONNECTIONS);
-        inMemoryDataSources.put("derby", derby);
-
-        UnitDataSourceDescriptor sqlite = new UnitDataSourceDescriptor();
-        sqlite.setAdapterClassName(SQLiteAdapter.class.getName());
-        sqlite.setUserName("sa");
-        sqlite.setPassword("");
-        
sqlite.setDataSourceUrl("jdbc:sqlite:file:memdb?mode=memory&cache=shared&date_class=text");
-        sqlite.setJdbcDriver("org.sqlite.JDBC");
-        sqlite.setMinConnections(ConnectionProperties.MIN_CONNECTIONS);
-        sqlite.setMaxConnections(ConnectionProperties.MAX_CONNECTIONS);
-        inMemoryDataSources.put("sqlite", sqlite);
-    }
-
-    @Override
-    public UnitDataSourceDescriptor get() throws ConfigurationException {
+        ConnectionProperties connectionProperties = new 
ConnectionProperties(propertiesMap);
+        LOGGER.info("Loaded  " + connectionProperties.size() + " DataSource 
configurations from properties file");
 
         String connectionKey = property(CONNECTION_NAME_KEY);
         if (connectionKey == null) {
             connectionKey = "hsql";
         }
 
-        logger.info("Connection key: " + connectionKey);
+        LOGGER.info("Connection key: " + connectionKey);
         UnitDataSourceDescriptor connectionInfo = 
connectionProperties.getConnection(connectionKey);
 
         // attempt default if invalid key is specified
         if (connectionInfo == null) {
-            connectionInfo = inMemoryDataSources.get(connectionKey);
+            connectionInfo = checkInMemoryDataSource(connectionKey);
         }
 
         if (connectionInfo == null) {
@@ -142,11 +92,62 @@ public class RuntimeCaseDataSourceDescriptorProvider 
implements Provider<UnitDat
             throw new ConfigurationException("No connection info for key: " + 
connectionKey);
         }
 
-        logger.info("loaded connection info: " + connectionInfo);
+        LOGGER.info("loaded connection info: " + connectionInfo);
         return connectionInfo;
     }
 
-    private UnitDataSourceDescriptor checkTestContainersDataSource(String 
connectionKey) {
+    private static UnitDataSourceDescriptor checkInMemoryDataSource(String 
connectionKey) {
+        return switch (connectionKey) {
+            case "hsql" -> {
+                UnitDataSourceDescriptor descriptor = new 
UnitDataSourceDescriptor();
+                descriptor.setAdapterClassName(HSQLDBAdapter.class.getName());
+                descriptor.setUserName("sa");
+                descriptor.setPassword("");
+                
descriptor.setDataSourceUrl("jdbc:hsqldb:mem:aname;sql.regular_names=false");
+                descriptor.setJdbcDriver("org.hsqldb.jdbcDriver");
+                
descriptor.setMinConnections(ConnectionProperties.MIN_CONNECTIONS);
+                
descriptor.setMaxConnections(ConnectionProperties.MAX_CONNECTIONS);
+                yield descriptor;
+            }
+            case "h2" -> {
+                UnitDataSourceDescriptor descriptor = new 
UnitDataSourceDescriptor();
+                descriptor.setAdapterClassName(H2Adapter.class.getName());
+                descriptor.setUserName("sa");
+                descriptor.setPassword("");
+                
descriptor.setDataSourceUrl("jdbc:h2:mem:aname;DB_CLOSE_DELAY=-1;");
+                descriptor.setJdbcDriver("org.h2.Driver");
+                
descriptor.setMinConnections(ConnectionProperties.MIN_CONNECTIONS);
+                
descriptor.setMaxConnections(ConnectionProperties.MAX_CONNECTIONS);
+                yield descriptor;
+            }
+            case "derby" -> {
+                UnitDataSourceDescriptor descriptor = new 
UnitDataSourceDescriptor();
+                descriptor.setAdapterClassName(DerbyAdapter.class.getName());
+                descriptor.setUserName("sa");
+                descriptor.setPassword("");
+                
descriptor.setDataSourceUrl("jdbc:derby:target/testdb;create=true");
+                
descriptor.setJdbcDriver("org.apache.derby.jdbc.EmbeddedDriver");
+                
descriptor.setMinConnections(ConnectionProperties.MIN_CONNECTIONS);
+                
descriptor.setMaxConnections(ConnectionProperties.MAX_CONNECTIONS);
+                yield descriptor;
+            }
+            case "sqlite" -> {
+                UnitDataSourceDescriptor descriptor = new 
UnitDataSourceDescriptor();
+                descriptor.setAdapterClassName(SQLiteAdapter.class.getName());
+                descriptor.setUserName("sa");
+                descriptor.setPassword("");
+                
descriptor.setDataSourceUrl("jdbc:sqlite:file:memdb?mode=memory&cache=shared&date_class=text");
+                descriptor.setJdbcDriver("org.sqlite.JDBC");
+                
descriptor.setMinConnections(ConnectionProperties.MIN_CONNECTIONS);
+                
descriptor.setMaxConnections(ConnectionProperties.MAX_CONNECTIONS);
+                yield descriptor;
+            }
+            default -> null;
+        };
+    }
+
+    private static UnitDataSourceDescriptor 
checkTestContainersDataSource(String connectionKey) {
+
         // special case for the testcontainers profile
         if (!connectionKey.endsWith("-tc")) {
             return null;
@@ -154,12 +155,21 @@ public class RuntimeCaseDataSourceDescriptorProvider 
implements Provider<UnitDat
 
         String db = connectionKey.substring(0, connectionKey.length() - 3);
 
-        TestContainerProvider testContainerProvider = 
testContainerProviders.get(db);
-        if(testContainerProvider == null) {
+        TestContainerProvider testContainerProvider = switch (db) {
+            case "mysql" -> new MysqlContainerProvider();
+            case "mariadb" -> new MariaDbContainerProvider();
+            case "postgres" -> new PostgresContainerProvider();
+            case "sqlserver" -> new SqlServerContainerProvider();
+            case "oracle" -> new OracleContainerProvider();
+            case "db2" -> new Db2ContainerProvider();
+            default -> null;
+        };
+
+        if (testContainerProvider == null) {
             return null;
         }
 
-        String version = property(CONNECTION_DB_VERSION);
+        String version = System.getProperty(CONNECTION_DB_VERSION);
         JdbcDatabaseContainer<?> container = 
testContainerProvider.startContainer(version);
 
         UnitDataSourceDescriptor sourceInfo = new UnitDataSourceDescriptor();
@@ -173,23 +183,23 @@ public class RuntimeCaseDataSourceDescriptorProvider 
implements Provider<UnitDat
         return sourceInfo;
     }
 
-    private File connectionPropertiesFile() {
+    private static File connectionPropertiesFile() {
         return new File(cayenneUserDir(), PROPERTIES_FILE);
     }
 
-    private File cayenneUserDir() {
+    private static File cayenneUserDir() {
         File homeDir = new File(System.getProperty("user.home"));
         return new File(homeDir, ".cayenne");
     }
 
-    private UnitDataSourceDescriptor applyOverrides(UnitDataSourceDescriptor 
connectionInfo) {
-        String adapter = property(ADAPTER_KEY_MAVEN);
-        String user = property(USER_NAME_KEY_MAVEN);
-        String pass = property(PASSWORD_KEY_MAVEN);
-        String url = property(URL_KEY_MAVEN);
-        String driver = property(DRIVER_KEY_MAVEN);
+    private static UnitDataSourceDescriptor 
applyOverrides(UnitDataSourceDescriptor connectionInfo) {
+        String adapter = System.getProperty(ADAPTER_KEY_MAVEN);
+        String user = System.getProperty(USER_NAME_KEY_MAVEN);
+        String pass = System.getProperty(PASSWORD_KEY_MAVEN);
+        String url = System.getProperty(URL_KEY_MAVEN);
+        String driver = System.getProperty(DRIVER_KEY_MAVEN);
         // no overrides, do nothing
-        if(adapter == null && user == null && pass == null && url == null && 
driver == null) {
+        if (adapter == null && user == null && pass == null && url == null && 
driver == null) {
             return connectionInfo;
         }
 
@@ -227,9 +237,4 @@ public class RuntimeCaseDataSourceDescriptorProvider 
implements Provider<UnitDat
 
         return connectionInfo;
     }
-
-    private String property(String name) {
-        String p = System.getProperty(name);
-        return p == null || p.startsWith("$") ? null : p;
-    }
 }
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/UnitDataSourceDescriptor.java
 b/cayenne/src/test/java/org/apache/cayenne/unit/UnitDataSourceDescriptor.java
similarity index 97%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/runtime/UnitDataSourceDescriptor.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/UnitDataSourceDescriptor.java
index 0c898e3b1..9f2e85cb9 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/UnitDataSourceDescriptor.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/unit/UnitDataSourceDescriptor.java
@@ -17,7 +17,7 @@
  *  under the License.
  ****************************************************************/
 
-package org.apache.cayenne.unit.runtime;
+package org.apache.cayenne.unit;
 
 import org.apache.cayenne.configuration.DataSourceDescriptor;
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseDbAdapterProvider.java
 
b/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseDbAdapterProvider.java
deleted file mode 100644
index cb75a872a..000000000
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseDbAdapterProvider.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*****************************************************************
- *   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
- *
- *    https://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.cayenne.unit.runtime;
-
-import org.apache.cayenne.ConfigurationException;
-import org.apache.cayenne.configuration.runtime.PkGeneratorFactoryProvider;
-import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.dba.JdbcAdapter;
-import org.apache.cayenne.dba.PkGenerator;
-import org.apache.cayenne.di.AdhocObjectFactory;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.di.Provider;
-
-public class RuntimeCaseDbAdapterProvider implements Provider<JdbcAdapter> {
-    private UnitDataSourceDescriptor dataSourceInfo;
-    private AdhocObjectFactory objectFactory;
-    private PkGeneratorFactoryProvider pkGeneratorProvider;
-
-    public RuntimeCaseDbAdapterProvider(
-            @Inject UnitDataSourceDescriptor dataSourceInfo,
-            @Inject AdhocObjectFactory objectFactory,
-            @Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
-        this.dataSourceInfo = dataSourceInfo;
-        this.objectFactory = objectFactory;
-        this.pkGeneratorProvider = pkGeneratorProvider;
-    }
-
-    public JdbcAdapter get() throws ConfigurationException {
-        JdbcAdapter jdbcAdapter = objectFactory.newInstance(DbAdapter.class, 
dataSourceInfo.getAdapterClassName());
-        PkGenerator pkGenerator = pkGeneratorProvider.get(jdbcAdapter);
-        jdbcAdapter.setPkGenerator(pkGenerator);
-        pkGenerator.setAdapter(jdbcAdapter);
-        return jdbcAdapter;
-    }
-}
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseModule.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseModule.java
index 11b8dce4d..35636964d 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseModule.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseModule.java
@@ -25,7 +25,6 @@ import org.apache.cayenne.access.types.*;
 import org.apache.cayenne.configuration.ConfigurationNameMapper;
 import org.apache.cayenne.configuration.Constants;
 import org.apache.cayenne.configuration.DataMapLoader;
-import org.apache.cayenne.configuration.DataSourceDescriptor;
 import org.apache.cayenne.configuration.DefaultConfigurationNameMapper;
 import org.apache.cayenne.configuration.DefaultObjectStoreFactory;
 import org.apache.cayenne.configuration.DefaultRuntimeProperties;
@@ -39,7 +38,6 @@ import org.apache.cayenne.configuration.xml.HandlerFactory;
 import org.apache.cayenne.configuration.xml.NoopDataChannelMetaData;
 import org.apache.cayenne.configuration.xml.XMLDataMapLoader;
 import org.apache.cayenne.configuration.xml.XMLReaderProvider;
-import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.JdbcPkGenerator;
 import org.apache.cayenne.dba.PkGenerator;
 import org.apache.cayenne.dba.db2.DB2Adapter;
@@ -65,11 +63,8 @@ import org.apache.cayenne.dba.sybase.SybasePkGenerator;
 import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Binder;
 import org.apache.cayenne.di.ClassLoaderManager;
-import org.apache.cayenne.di.DIRuntimeException;
-import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.di.Key;
 import org.apache.cayenne.di.Module;
-import org.apache.cayenne.di.Provider;
 import org.apache.cayenne.di.spi.DefaultAdhocObjectFactory;
 import org.apache.cayenne.di.spi.DefaultClassLoaderManager;
 import org.apache.cayenne.log.JdbcEventLogger;
@@ -78,13 +73,6 @@ import 
org.apache.cayenne.reflect.generic.DefaultValueComparisonStrategyFactory;
 import org.apache.cayenne.reflect.generic.ValueComparisonStrategyFactory;
 import org.apache.cayenne.resource.ClassLoaderResourceLocator;
 import org.apache.cayenne.resource.ResourceLocator;
-import org.apache.cayenne.unit.testcontainers.Db2ContainerProvider;
-import org.apache.cayenne.unit.testcontainers.MariaDbContainerProvider;
-import org.apache.cayenne.unit.testcontainers.MysqlContainerProvider;
-import org.apache.cayenne.unit.testcontainers.OracleContainerProvider;
-import org.apache.cayenne.unit.testcontainers.PostgresContainerProvider;
-import org.apache.cayenne.unit.testcontainers.SqlServerContainerProvider;
-import org.apache.cayenne.unit.testcontainers.TestContainerProvider;
 import org.xml.sax.XMLReader;
 
 import java.util.Calendar;
@@ -150,26 +138,6 @@ public class RuntimeCaseModule implements Module {
         
binder.bind(RuntimeProperties.class).to(DefaultRuntimeProperties.class);
         
binder.bind(ObjectMapRetainStrategy.class).to(DefaultObjectMapRetainStrategy.class);
 
-        binder.bindMap(TestContainerProvider.class)
-                .put("mysql", MysqlContainerProvider.class)
-                .put("mariadb", MariaDbContainerProvider.class)
-                .put("postgres", PostgresContainerProvider.class)
-                .put("sqlserver", SqlServerContainerProvider.class)
-                .put("oracle", OracleContainerProvider.class)
-                .put("db2", Db2ContainerProvider.class);
-
-        
binder.bind(UnitDataSourceDescriptor.class).toProvider(RuntimeCaseDataSourceDescriptorProvider.class);
-        binder.bind(DataSourceDescriptor.class).toProviderInstance(new 
Provider<>() {
-            @Inject
-            UnitDataSourceDescriptor unitDataSourceDescriptor;
-
-            @Override
-            public DataSourceDescriptor get() throws DIRuntimeException {
-                return unitDataSourceDescriptor;
-            }
-        });
-        
binder.bind(DbAdapter.class).toProvider(RuntimeCaseDbAdapterProvider.class);
-
         // this factory is a hack that allows to inject to DbAdapters loaded 
outside of
         // server runtime... BatchQueryBuilderFactory is hardcoded and 
whatever is placed
         // in the CoreModule is ignored

Reply via email to