You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2026/05/17 13:49:00 UTC

(cayenne) branch master updated (2cbd704e9 -> 8e56c4afc)

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

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


    from 2cbd704e9 tests cleanup
     new 4166e87cd Adding AGENTS.md for agents other than Claude
     new c34c2ae0d cleaning up DB selection in tests
     new 8e56c4afc "-tc" suffix no longer makes sense for test profiles. Removing

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/verify-deploy-on-push.yml        |   4 +-
 .github/workflows/verify-on-pr.yml                 |   4 +-
 AGENTS.md                                          |   3 +
 CLAUDE.md                                          |   8 +-
 .../unit/datasource/DataSourceConfigFile.java      |   4 +-
 .../unit/datasource/DataSourceConfigLoader.java    | 113 +++------------------
 .../datasource/DataSourceDescriptorFactory.java    |  36 +++----
 .../Db2DataSource.java}                            |  14 ++-
 .../cayenne/unit/datasource/DerbyDataSource.java   |  17 ++--
 .../cayenne/unit/datasource/H2DataSource.java      |  13 +--
 .../cayenne/unit/datasource/HsqlDataSource.java    |  17 ++--
 .../MariaDbDataSource.java}                        |  10 +-
 .../MysqlDataSource.java}                          |   9 +-
 .../OracleDataSource.java}                         |  14 +--
 .../PostgresDataSource.java}                       |  10 +-
 .../cayenne/unit/datasource/SQLiteDataSource.java  |  17 ++--
 .../SqlServerDataSource.java}                      |  10 +-
 .../TestContainersDataSource.java}                 |  20 +++-
 18 files changed, 141 insertions(+), 182 deletions(-)
 create mode 100644 AGENTS.md
 copy cayenne-cgen/src/main/java/org/apache/cayenne/gen/PropertyDescriptor.java => cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceDescriptorFactory.java (52%)
 rename cayenne/src/test/java/org/apache/cayenne/unit/{testcontainers/Db2ContainerStarter.java => datasource/Db2DataSource.java} (78%)
 copy build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/UtilityLogger.java => cayenne/src/test/java/org/apache/cayenne/unit/datasource/DerbyDataSource.java (71%)
 copy build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/UtilityLogger.java => cayenne/src/test/java/org/apache/cayenne/unit/datasource/H2DataSource.java (76%)
 copy cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_HMAC_IT.java => cayenne/src/test/java/org/apache/cayenne/unit/datasource/HsqlDataSource.java (71%)
 rename cayenne/src/test/java/org/apache/cayenne/unit/{testcontainers/MariaDbContainerStarter.java => datasource/MariaDbDataSource.java} (82%)
 rename cayenne/src/test/java/org/apache/cayenne/unit/{testcontainers/MysqlContainerStarter.java => datasource/MysqlDataSource.java} (86%)
 rename cayenne/src/test/java/org/apache/cayenne/unit/{testcontainers/OracleContainerStarter.java => datasource/OracleDataSource.java} (77%)
 rename cayenne/src/test/java/org/apache/cayenne/unit/{testcontainers/PostgresContainerStarter.java => datasource/PostgresDataSource.java} (82%)
 copy build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/UtilityLogger.java => cayenne/src/test/java/org/apache/cayenne/unit/datasource/SQLiteDataSource.java (70%)
 rename cayenne/src/test/java/org/apache/cayenne/unit/{testcontainers/SqlServerContainerStarter.java => datasource/SqlServerDataSource.java} (83%)
 rename cayenne/src/test/java/org/apache/cayenne/unit/{testcontainers/DbContainerStarter.java => datasource/TestContainersDataSource.java} (66%)


(cayenne) 01/03: Adding AGENTS.md for agents other than Claude

Posted by aa...@apache.org.
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 4166e87cde22f095148666632fd60e8a7be3a687
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Sun May 17 09:11:59 2026 -0400

    Adding AGENTS.md for agents other than Claude
---
 AGENTS.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 000000000..f1e4ceb4b
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,3 @@
+# AGENTS.md
+
+@CLAUDE.md


(cayenne) 02/03: cleaning up DB selection in tests

Posted by aa...@apache.org.
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 c34c2ae0d063a4c3ffddea783e6d7c191f9d2c21
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Sun May 17 09:20:45 2026 -0400

    cleaning up DB selection in tests
---
 .../unit/datasource/DataSourceConfigFile.java      |   4 +-
 .../unit/datasource/DataSourceConfigLoader.java    | 113 +++------------------
 .../DataSourceDescriptorFactory.java}              |  34 ++++---
 .../Db2DataSource.java}                            |  14 ++-
 .../DerbyDataSource.java}                          |  23 ++---
 .../H2DataSource.java}                             |  19 +---
 .../HsqlDataSource.java}                           |  23 ++---
 .../MariaDbDataSource.java}                        |  10 +-
 .../MysqlDataSource.java}                          |   9 +-
 .../OracleDataSource.java}                         |  14 +--
 .../PostgresDataSource.java}                       |  10 +-
 .../SQLiteDataSource.java}                         |  23 ++---
 .../SqlServerDataSource.java}                      |  10 +-
 .../TestContainersDataSource.java}                 |  20 +++-
 14 files changed, 130 insertions(+), 196 deletions(-)

diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceConfigFile.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceConfigFile.java
index 3736d2811..540e8d8d7 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceConfigFile.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceConfigFile.java
@@ -74,14 +74,12 @@ class DataSourceConfigFile {
     }
 
     private static DataSourceDescriptor buildDataSourceDescriptor(String name, Properties props) {
-        DataSourceDescriptor dsi = new DataSourceDescriptor();
+        DataSourceDescriptor dsi = DataSourceDescriptorFactory.create();
 
         dsi.setUserName(props.getProperty(name + "." + USER_NAME_KEY));
         dsi.setPassword(props.getProperty(name + "." + PASSWORD_KEY));
         dsi.setDataSourceUrl(props.getProperty(name + "." + URL_KEY));
         dsi.setJdbcDriver(props.getProperty(name + "." + DRIVER_KEY));
-        dsi.setMinConnections(DataSourceConfigLoader.MIN_CONNECTIONS);
-        dsi.setMaxConnections(DataSourceConfigLoader.MAX_CONNECTIONS);
 
         return dsi;
     }
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceConfigLoader.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceConfigLoader.java
index 936d69721..4ee714fed 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceConfigLoader.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceConfigLoader.java
@@ -20,32 +20,19 @@ package org.apache.cayenne.unit.datasource;
 
 import org.apache.cayenne.ConfigurationException;
 import org.apache.cayenne.configuration.DataSourceDescriptor;
-import org.apache.cayenne.unit.testcontainers.Db2ContainerStarter;
-import org.apache.cayenne.unit.testcontainers.DbContainerStarter;
-import org.apache.cayenne.unit.testcontainers.MariaDbContainerStarter;
-import org.apache.cayenne.unit.testcontainers.MysqlContainerStarter;
-import org.apache.cayenne.unit.testcontainers.OracleContainerStarter;
-import org.apache.cayenne.unit.testcontainers.PostgresContainerStarter;
-import org.apache.cayenne.unit.testcontainers.SqlServerContainerStarter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.JdbcDatabaseContainer;
 
 public class DataSourceConfigLoader {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(DataSourceConfigLoader.class);
 
     private static final String CONNECTION_NAME_KEY = "cayenneTestConnection";
-    private static final String CONNECTION_DB_VERSION = "cayenneTestDbVersion";
-    private static final String ADAPTER_KEY_MAVEN = "cayenneAdapter";
     private static final String USER_NAME_KEY_MAVEN = "cayenneJdbcUsername";
     private static final String PASSWORD_KEY_MAVEN = "cayenneJdbcPassword";
     private static final String URL_KEY_MAVEN = "cayenneJdbcUrl";
     private static final String DRIVER_KEY_MAVEN = "cayenneJdbcDriver";
 
-    static final int MIN_CONNECTIONS = 1;
-    static final int MAX_CONNECTIONS = 3;
-
     public static DataSourceDescriptor load() {
 
         String connectionName = System.getProperty(CONNECTION_NAME_KEY);
@@ -59,11 +46,19 @@ public class DataSourceConfigLoader {
         DataSourceDescriptor descriptor = DataSourceConfigFile.load().get(connectionName);
 
         if (descriptor == null) {
-            descriptor = checkInMemoryDataSource(connectionName);
-        }
-
-        if (descriptor == null) {
-            descriptor = checkTestContainersDataSource(connectionName);
+            descriptor = switch (connectionName) {
+                case "hsql" -> HsqlDataSource.start();
+                case "h2" -> H2DataSource.start();
+                case "derby" -> DerbyDataSource.start();
+                case "sqlite" -> SQLiteDataSource.start();
+                case "mysql-tc" -> MysqlDataSource.start();
+                case "mariadb-tc" -> MariaDbDataSource.start();
+                case "postgres-tc" -> PostgresDataSource.start();
+                case "sqlserver-tc" -> SqlServerDataSource.start();
+                case "oracle-tc" -> OracleDataSource.start();
+                case "db2-tc" -> Db2DataSource.start();
+                default -> null;
+            };
         }
 
         descriptor = applyOverrides(descriptor);
@@ -76,91 +71,15 @@ public class DataSourceConfigLoader {
         return descriptor;
     }
 
-    private static DataSourceDescriptor checkInMemoryDataSource(String connectionName) {
-        return switch (connectionName) {
-            case "hsql" -> {
-                DataSourceDescriptor descriptor = new DataSourceDescriptor();
-                descriptor.setUserName("sa");
-                descriptor.setPassword("");
-                descriptor.setDataSourceUrl("jdbc:hsqldb:mem:aname;sql.regular_names=false");
-                descriptor.setJdbcDriver("org.hsqldb.jdbcDriver");
-                descriptor.setMinConnections(MIN_CONNECTIONS);
-                descriptor.setMaxConnections(MAX_CONNECTIONS);
-                yield descriptor;
-            }
-            case "h2" -> {
-                DataSourceDescriptor descriptor = new DataSourceDescriptor();
-                descriptor.setUserName("sa");
-                descriptor.setPassword("");
-                descriptor.setDataSourceUrl("jdbc:h2:mem:aname;DB_CLOSE_DELAY=-1;");
-                descriptor.setJdbcDriver("org.h2.Driver");
-                descriptor.setMinConnections(MIN_CONNECTIONS);
-                descriptor.setMaxConnections(MAX_CONNECTIONS);
-                yield descriptor;
-            }
-            case "derby" -> {
-                DataSourceDescriptor descriptor = new DataSourceDescriptor();
-                descriptor.setUserName("sa");
-                descriptor.setPassword("");
-                descriptor.setDataSourceUrl("jdbc:derby:target/testdb;create=true");
-                descriptor.setJdbcDriver("org.apache.derby.jdbc.EmbeddedDriver");
-                descriptor.setMinConnections(MIN_CONNECTIONS);
-                descriptor.setMaxConnections(MAX_CONNECTIONS);
-                yield descriptor;
-            }
-            case "sqlite" -> {
-                DataSourceDescriptor descriptor = new DataSourceDescriptor();
-                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(MIN_CONNECTIONS);
-                descriptor.setMaxConnections(MAX_CONNECTIONS);
-                yield descriptor;
-            }
-            default -> null;
-        };
-    }
-
-    private static DataSourceDescriptor checkTestContainersDataSource(String connectionName) {
-
-        DbContainerStarter containerStarter = switch (connectionName) {
-            case "mysql-tc" -> new MysqlContainerStarter();
-            case "mariadb-tc" -> new MariaDbContainerStarter();
-            case "postgres-tc" -> new PostgresContainerStarter();
-            case "sqlserver-tc" -> new SqlServerContainerStarter();
-            case "oracle-tc" -> new OracleContainerStarter();
-            case "db2-tc" -> new Db2ContainerStarter();
-            default -> null;
-        };
-
-        if (containerStarter == null) {
-            return null;
-        }
-
-        String version = System.getProperty(CONNECTION_DB_VERSION);
-        JdbcDatabaseContainer<?> container = containerStarter.startContainer(version);
-
-        DataSourceDescriptor sourceInfo = new DataSourceDescriptor();
-        sourceInfo.setUserName(container.getUsername());
-        sourceInfo.setPassword(container.getPassword());
-        sourceInfo.setDataSourceUrl(container.getJdbcUrl());
-        sourceInfo.setJdbcDriver(container.getDriverClassName());
-        sourceInfo.setMinConnections(MIN_CONNECTIONS);
-        sourceInfo.setMaxConnections(MAX_CONNECTIONS);
-        return sourceInfo;
-    }
-
     private static DataSourceDescriptor applyOverrides(DataSourceDescriptor descriptor) {
 
-        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 (user == null && pass == null && url == null && driver == null) {
             return descriptor;
         }
 
@@ -170,9 +89,7 @@ public class DataSourceConfigLoader {
                 return null;
             }
 
-            descriptor = new DataSourceDescriptor();
-            descriptor.setMinConnections(MIN_CONNECTIONS);
-            descriptor.setMaxConnections(MAX_CONNECTIONS);
+            descriptor = DataSourceDescriptorFactory.create();
         }
 
         if (user != null) {
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/OracleContainerStarter.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceDescriptorFactory.java
similarity index 52%
copy from cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/OracleContainerStarter.java
copy to cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceDescriptorFactory.java
index 8d644fff8..dcfbf7fae 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/OracleContainerStarter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceDescriptorFactory.java
@@ -16,29 +16,31 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.testcontainers;
+package org.apache.cayenne.unit.datasource;
 
-import org.testcontainers.containers.JdbcDatabaseContainer;
-import org.testcontainers.utility.DockerImageName;
+import org.apache.cayenne.configuration.DataSourceDescriptor;
 
-import java.time.Duration;
+class DataSourceDescriptorFactory {
 
-public class OracleContainerStarter extends DbContainerStarter {
+    private static final int MIN_CONNECTIONS = 1;
+    private static final int MAX_CONNECTIONS = 3;
 
-    @Override
-    public JdbcDatabaseContainer<?> startContainer(String version) {
-        JdbcDatabaseContainer<?> container = super.startContainer(version);
-        return container;
+    private DataSourceDescriptorFactory() {
     }
 
-    @Override
-    protected JdbcDatabaseContainer<?> createContainer(DockerImageName dockerImageName) {
-        return new org.testcontainers.containers.OracleContainer(dockerImageName)
-                .withStartupTimeout(Duration.ofMinutes(5));
+    static DataSourceDescriptor create() {
+        DataSourceDescriptor descriptor = new DataSourceDescriptor();
+        descriptor.setMinConnections(MIN_CONNECTIONS);
+        descriptor.setMaxConnections(MAX_CONNECTIONS);
+        return descriptor;
     }
 
-    @Override
-    protected String dockerImage() {
-        return "gvenzl/oracle-xe:18-slim-faststart";
+    static DataSourceDescriptor create(String userName, String password, String url, String driver) {
+        DataSourceDescriptor descriptor = create();
+        descriptor.setUserName(userName);
+        descriptor.setPassword(password);
+        descriptor.setDataSourceUrl(url);
+        descriptor.setJdbcDriver(driver);
+        return descriptor;
     }
 }
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/Db2ContainerStarter.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/Db2DataSource.java
similarity index 78%
rename from cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/Db2ContainerStarter.java
rename to cayenne/src/test/java/org/apache/cayenne/unit/datasource/Db2DataSource.java
index e22d3a9fb..b8f92869f 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/Db2ContainerStarter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/Db2DataSource.java
@@ -16,17 +16,23 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.testcontainers;
+package org.apache.cayenne.unit.datasource;
 
+import org.apache.cayenne.configuration.DataSourceDescriptor;
+import org.testcontainers.containers.Db2Container;
 import org.testcontainers.containers.JdbcDatabaseContainer;
 import org.testcontainers.utility.DockerImageName;
 
 import java.time.Duration;
 
-public class Db2ContainerStarter extends DbContainerStarter {
+public class Db2DataSource extends TestContainersDataSource {
+
+    public static DataSourceDescriptor start() {
+        return TestContainersDataSource.start(new Db2DataSource());
+    }
 
     @Override
-    public JdbcDatabaseContainer<?> startContainer(String version) {
+    protected JdbcDatabaseContainer<?> startContainer(String version) {
         JdbcDatabaseContainer<?> container = super.startContainer(version);
         // need to wait to ensure that DB has started
         try {
@@ -38,7 +44,7 @@ public class Db2ContainerStarter extends DbContainerStarter {
 
     @Override
     protected JdbcDatabaseContainer<?> createContainer(DockerImageName dockerImageName) {
-        return new org.testcontainers.containers.Db2Container(dockerImageName)
+        return new Db2Container(dockerImageName)
                 .withStartupTimeout(Duration.ofMinutes(15))
                 .withDatabaseName("testdb")
                 .acceptLicense();
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DerbyDataSource.java
similarity index 64%
copy from cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java
copy to cayenne/src/test/java/org/apache/cayenne/unit/datasource/DerbyDataSource.java
index 96681fbdc..4c185dc32 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DerbyDataSource.java
@@ -16,22 +16,17 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.testcontainers;
+package org.apache.cayenne.unit.datasource;
 
-import org.testcontainers.containers.JdbcDatabaseContainer;
-import org.testcontainers.containers.MariaDBContainer;
-import org.testcontainers.utility.DockerImageName;
+import org.apache.cayenne.configuration.DataSourceDescriptor;
 
-public class MariaDbContainerStarter extends DbContainerStarter {
+public class DerbyDataSource {
 
-    @Override
-    protected JdbcDatabaseContainer<?> createContainer(DockerImageName dockerImageName) {
-        return new MariaDBContainer<>(dockerImageName);
+    public static DataSourceDescriptor start() {
+        return DataSourceDescriptorFactory.create(
+                "sa",
+                "",
+                "jdbc:derby:target/testdb;create=true",
+                "org.apache.derby.jdbc.EmbeddedDriver");
     }
-
-    @Override
-    protected String dockerImage() {
-        return "mariadb:10.3";
-    }
-
 }
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/H2DataSource.java
similarity index 64%
copy from cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java
copy to cayenne/src/test/java/org/apache/cayenne/unit/datasource/H2DataSource.java
index 96681fbdc..dbc55bfa7 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/H2DataSource.java
@@ -16,22 +16,13 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.testcontainers;
+package org.apache.cayenne.unit.datasource;
 
-import org.testcontainers.containers.JdbcDatabaseContainer;
-import org.testcontainers.containers.MariaDBContainer;
-import org.testcontainers.utility.DockerImageName;
+import org.apache.cayenne.configuration.DataSourceDescriptor;
 
-public class MariaDbContainerStarter extends DbContainerStarter {
+public class H2DataSource {
 
-    @Override
-    protected JdbcDatabaseContainer<?> createContainer(DockerImageName dockerImageName) {
-        return new MariaDBContainer<>(dockerImageName);
+    public static DataSourceDescriptor start() {
+        return DataSourceDescriptorFactory.create("sa", "", "jdbc:h2:mem:aname;DB_CLOSE_DELAY=-1;", "org.h2.Driver");
     }
-
-    @Override
-    protected String dockerImage() {
-        return "mariadb:10.3";
-    }
-
 }
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/HsqlDataSource.java
similarity index 64%
copy from cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java
copy to cayenne/src/test/java/org/apache/cayenne/unit/datasource/HsqlDataSource.java
index 96681fbdc..f1d0f5079 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/HsqlDataSource.java
@@ -16,22 +16,17 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.testcontainers;
+package org.apache.cayenne.unit.datasource;
 
-import org.testcontainers.containers.JdbcDatabaseContainer;
-import org.testcontainers.containers.MariaDBContainer;
-import org.testcontainers.utility.DockerImageName;
+import org.apache.cayenne.configuration.DataSourceDescriptor;
 
-public class MariaDbContainerStarter extends DbContainerStarter {
+public class HsqlDataSource {
 
-    @Override
-    protected JdbcDatabaseContainer<?> createContainer(DockerImageName dockerImageName) {
-        return new MariaDBContainer<>(dockerImageName);
+    public static DataSourceDescriptor start() {
+        return DataSourceDescriptorFactory.create(
+                "sa",
+                "",
+                "jdbc:hsqldb:mem:aname;sql.regular_names=false",
+                "org.hsqldb.jdbcDriver");
     }
-
-    @Override
-    protected String dockerImage() {
-        return "mariadb:10.3";
-    }
-
 }
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/MariaDbDataSource.java
similarity index 82%
copy from cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java
copy to cayenne/src/test/java/org/apache/cayenne/unit/datasource/MariaDbDataSource.java
index 96681fbdc..1380bb729 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/MariaDbDataSource.java
@@ -16,13 +16,18 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.testcontainers;
+package org.apache.cayenne.unit.datasource;
 
+import org.apache.cayenne.configuration.DataSourceDescriptor;
 import org.testcontainers.containers.JdbcDatabaseContainer;
 import org.testcontainers.containers.MariaDBContainer;
 import org.testcontainers.utility.DockerImageName;
 
-public class MariaDbContainerStarter extends DbContainerStarter {
+public class MariaDbDataSource extends TestContainersDataSource {
+
+    public static DataSourceDescriptor start() {
+        return TestContainersDataSource.start(new MariaDbDataSource());
+    }
 
     @Override
     protected JdbcDatabaseContainer<?> createContainer(DockerImageName dockerImageName) {
@@ -33,5 +38,4 @@ public class MariaDbContainerStarter extends DbContainerStarter {
     protected String dockerImage() {
         return "mariadb:10.3";
     }
-
 }
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MysqlContainerStarter.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/MysqlDataSource.java
similarity index 86%
rename from cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MysqlContainerStarter.java
rename to cayenne/src/test/java/org/apache/cayenne/unit/datasource/MysqlDataSource.java
index b0b480804..d62a5aeae 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MysqlContainerStarter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/MysqlDataSource.java
@@ -16,15 +16,20 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.testcontainers;
+package org.apache.cayenne.unit.datasource;
 
+import org.apache.cayenne.configuration.DataSourceDescriptor;
 import org.testcontainers.containers.JdbcDatabaseContainer;
 import org.testcontainers.containers.MySQLContainer;
 import org.testcontainers.utility.DockerImageName;
 
 import java.util.Calendar;
 
-public class MysqlContainerStarter extends DbContainerStarter {
+public class MysqlDataSource extends TestContainersDataSource {
+
+    public static DataSourceDescriptor start() {
+        return TestContainersDataSource.start(new MysqlDataSource());
+    }
 
     @Override
     protected JdbcDatabaseContainer<?> createContainer(DockerImageName dockerImageName) {
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/OracleContainerStarter.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/OracleDataSource.java
similarity index 77%
rename from cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/OracleContainerStarter.java
rename to cayenne/src/test/java/org/apache/cayenne/unit/datasource/OracleDataSource.java
index 8d644fff8..e6635adbe 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/OracleContainerStarter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/OracleDataSource.java
@@ -16,24 +16,24 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.testcontainers;
+package org.apache.cayenne.unit.datasource;
 
+import org.apache.cayenne.configuration.DataSourceDescriptor;
 import org.testcontainers.containers.JdbcDatabaseContainer;
+import org.testcontainers.containers.OracleContainer;
 import org.testcontainers.utility.DockerImageName;
 
 import java.time.Duration;
 
-public class OracleContainerStarter extends DbContainerStarter {
+public class OracleDataSource extends TestContainersDataSource {
 
-    @Override
-    public JdbcDatabaseContainer<?> startContainer(String version) {
-        JdbcDatabaseContainer<?> container = super.startContainer(version);
-        return container;
+    public static DataSourceDescriptor start() {
+        return TestContainersDataSource.start(new OracleDataSource());
     }
 
     @Override
     protected JdbcDatabaseContainer<?> createContainer(DockerImageName dockerImageName) {
-        return new org.testcontainers.containers.OracleContainer(dockerImageName)
+        return new OracleContainer(dockerImageName)
                 .withStartupTimeout(Duration.ofMinutes(5));
     }
 
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/PostgresContainerStarter.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/PostgresDataSource.java
similarity index 82%
rename from cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/PostgresContainerStarter.java
rename to cayenne/src/test/java/org/apache/cayenne/unit/datasource/PostgresDataSource.java
index c96c0d4ac..c69fa2013 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/PostgresContainerStarter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/PostgresDataSource.java
@@ -16,13 +16,19 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.testcontainers;
+package org.apache.cayenne.unit.datasource;
 
+import org.apache.cayenne.configuration.DataSourceDescriptor;
 import org.testcontainers.containers.JdbcDatabaseContainer;
 import org.testcontainers.containers.PostgreSQLContainer;
 import org.testcontainers.utility.DockerImageName;
 
-public class PostgresContainerStarter extends DbContainerStarter {
+public class PostgresDataSource extends TestContainersDataSource {
+
+    public static DataSourceDescriptor start() {
+        return TestContainersDataSource.start(new PostgresDataSource());
+    }
+
     @Override
     protected JdbcDatabaseContainer<?> createContainer(DockerImageName dockerImageName) {
         return new PostgreSQLContainer<>(dockerImageName);
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/SQLiteDataSource.java
similarity index 64%
rename from cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java
rename to cayenne/src/test/java/org/apache/cayenne/unit/datasource/SQLiteDataSource.java
index 96681fbdc..12e1033b5 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/MariaDbContainerStarter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/SQLiteDataSource.java
@@ -16,22 +16,17 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.testcontainers;
+package org.apache.cayenne.unit.datasource;
 
-import org.testcontainers.containers.JdbcDatabaseContainer;
-import org.testcontainers.containers.MariaDBContainer;
-import org.testcontainers.utility.DockerImageName;
+import org.apache.cayenne.configuration.DataSourceDescriptor;
 
-public class MariaDbContainerStarter extends DbContainerStarter {
+public class SQLiteDataSource {
 
-    @Override
-    protected JdbcDatabaseContainer<?> createContainer(DockerImageName dockerImageName) {
-        return new MariaDBContainer<>(dockerImageName);
+    public static DataSourceDescriptor start() {
+        return DataSourceDescriptorFactory.create(
+                "sa",
+                "",
+                "jdbc:sqlite:file:memdb?mode=memory&cache=shared&date_class=text",
+                "org.sqlite.JDBC");
     }
-
-    @Override
-    protected String dockerImage() {
-        return "mariadb:10.3";
-    }
-
 }
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/SqlServerContainerStarter.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/SqlServerDataSource.java
similarity index 83%
rename from cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/SqlServerContainerStarter.java
rename to cayenne/src/test/java/org/apache/cayenne/unit/datasource/SqlServerDataSource.java
index 6969a7014..8453564f5 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/SqlServerContainerStarter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/SqlServerDataSource.java
@@ -16,13 +16,19 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.testcontainers;
+package org.apache.cayenne.unit.datasource;
 
+import org.apache.cayenne.configuration.DataSourceDescriptor;
 import org.testcontainers.containers.JdbcDatabaseContainer;
 import org.testcontainers.containers.MSSQLServerContainer;
 import org.testcontainers.utility.DockerImageName;
 
-public class SqlServerContainerStarter extends DbContainerStarter {
+public class SqlServerDataSource extends TestContainersDataSource {
+
+    public static DataSourceDescriptor start() {
+        return TestContainersDataSource.start(new SqlServerDataSource());
+    }
+
     @Override
     protected JdbcDatabaseContainer<?> createContainer(DockerImageName dockerImageName) {
         return new MSSQLServerContainer<>(dockerImageName)
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/DbContainerStarter.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/TestContainersDataSource.java
similarity index 66%
rename from cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/DbContainerStarter.java
rename to cayenne/src/test/java/org/apache/cayenne/unit/datasource/TestContainersDataSource.java
index 9c08bb00a..5feddb8fc 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/testcontainers/DbContainerStarter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/TestContainersDataSource.java
@@ -16,14 +16,28 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.unit.testcontainers;
+package org.apache.cayenne.unit.datasource;
 
+import org.apache.cayenne.configuration.DataSourceDescriptor;
 import org.testcontainers.containers.JdbcDatabaseContainer;
 import org.testcontainers.utility.DockerImageName;
 
-public abstract class DbContainerStarter {
+abstract class TestContainersDataSource {
 
-    public JdbcDatabaseContainer<?> startContainer(String version) {
+    private static final String CONNECTION_DB_VERSION = "cayenneTestDbVersion";
+
+    protected static DataSourceDescriptor start(TestContainersDataSource dataSource) {
+        String version = System.getProperty(CONNECTION_DB_VERSION);
+        JdbcDatabaseContainer<?> container = dataSource.startContainer(version);
+
+        return DataSourceDescriptorFactory.create(
+                container.getUsername(),
+                container.getPassword(),
+                container.getJdbcUrl(),
+                container.getDriverClassName());
+    }
+
+    protected JdbcDatabaseContainer<?> startContainer(String version) {
         DockerImageName baseName = DockerImageName.parse(dockerImage());
         DockerImageName fullName = version != null ? baseName.withTag(version) : baseName;
 


(cayenne) 03/03: "-tc" suffix no longer makes sense for test profiles. Removing

Posted by aa...@apache.org.
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 8e56c4afcf01b235a37e69ffaa33b5f11b5e3597
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Sun May 17 09:20:45 2026 -0400

    "-tc" suffix no longer makes sense for test profiles. Removing
---
 .github/workflows/verify-deploy-on-push.yml                  |  4 ++--
 .github/workflows/verify-on-pr.yml                           |  4 ++--
 CLAUDE.md                                                    |  8 ++++----
 .../cayenne/unit/datasource/DataSourceConfigLoader.java      | 12 ++++++------
 4 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/.github/workflows/verify-deploy-on-push.yml b/.github/workflows/verify-deploy-on-push.yml
index 9217d8d62..707cc92b9 100644
--- a/.github/workflows/verify-deploy-on-push.yml
+++ b/.github/workflows/verify-deploy-on-push.yml
@@ -29,7 +29,7 @@ jobs:
     strategy:
       matrix:
         jdk: [21, 25]
-        db-profile: [hsql, h2, derby, mysql-tc, postgres-tc, sqlserver-tc]
+        db-profile: [hsql, h2, derby, mysql, postgres, sqlserver]
       fail-fast: false # finish all jobs anyway
 
     env:
@@ -74,4 +74,4 @@ jobs:
         if: contains(env.POM_VERSION, '-SNAPSHOT')
         env:
           MAVEN_USERNAME: ${{ secrets.NEXUS_USER }}
-          MAVEN_PASSWORD: ${{ secrets.NEXUS_PW }}
\ No newline at end of file
+          MAVEN_PASSWORD: ${{ secrets.NEXUS_PW }}
diff --git a/.github/workflows/verify-on-pr.yml b/.github/workflows/verify-on-pr.yml
index 9120cdef4..12a28683a 100644
--- a/.github/workflows/verify-on-pr.yml
+++ b/.github/workflows/verify-on-pr.yml
@@ -29,7 +29,7 @@ jobs:
     strategy:
       matrix:
         jdk: [21]
-        db-profile: [hsql, h2, derby, mysql-tc, postgres-tc, sqlserver-tc]
+        db-profile: [hsql, h2, derby, mysql, postgres, sqlserver]
       fail-fast: true
 
     env:
@@ -47,4 +47,4 @@ jobs:
           cache: 'maven'
 
       - name: mvn verify ${{ matrix.db-profile }}
-        run: mvn verify -q -DcayenneTestConnection=${{ matrix.db-profile }} -DcayenneLogLevel=ERROR
\ No newline at end of file
+        run: mvn verify -q -DcayenneTestConnection=${{ matrix.db-profile }} -DcayenneLogLevel=ERROR
diff --git a/CLAUDE.md b/CLAUDE.md
index e6b605318..5525ae86c 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -38,9 +38,9 @@ mvn verify
 # Run against a specific database
 mvn verify -DcayenneTestConnection=h2
 mvn verify -DcayenneTestConnection=derby
-mvn verify -DcayenneTestConnection=mysql-tc        # via TestContainers
-mvn verify -DcayenneTestConnection=postgres-tc     # via TestContainers
-mvn verify -DcayenneTestConnection=sqlserver-tc    # via TestContainers
+mvn verify -DcayenneTestConnection=mysql        # via TestContainers
+mvn verify -DcayenneTestConnection=postgres     # via TestContainers
+mvn verify -DcayenneTestConnection=sqlserver    # via TestContainers
 
 # Skip tests
 mvn verify -DskipITs        # skip integration tests, still run unit tests
@@ -97,7 +97,7 @@ pins versions only — each consuming `<dependency>` declares its own scope expl
 
 GitHub Actions runs on push to master/STABLE-* branches:
 - JDK: 21, 25
-- Databases: hsql, h2, derby, mysql-tc, postgres-tc, sqlserver-tc
+- Databases: hsql, h2, derby, mysql, postgres, sqlserver
 
 ## Issue Tracker
 
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceConfigLoader.java b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceConfigLoader.java
index 4ee714fed..20f0c8fb6 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceConfigLoader.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/datasource/DataSourceConfigLoader.java
@@ -51,12 +51,12 @@ public class DataSourceConfigLoader {
                 case "h2" -> H2DataSource.start();
                 case "derby" -> DerbyDataSource.start();
                 case "sqlite" -> SQLiteDataSource.start();
-                case "mysql-tc" -> MysqlDataSource.start();
-                case "mariadb-tc" -> MariaDbDataSource.start();
-                case "postgres-tc" -> PostgresDataSource.start();
-                case "sqlserver-tc" -> SqlServerDataSource.start();
-                case "oracle-tc" -> OracleDataSource.start();
-                case "db2-tc" -> Db2DataSource.start();
+                case "mysql" -> MysqlDataSource.start();
+                case "mariadb" -> MariaDbDataSource.start();
+                case "postgres" -> PostgresDataSource.start();
+                case "sqlserver" -> SqlServerDataSource.start();
+                case "oracle" -> OracleDataSource.start();
+                case "db2" -> Db2DataSource.start();
                 default -> null;
             };
         }