Skip to content
This repository was archived by the owner on May 14, 2025. It is now read-only.

Commit 02d69bd

Browse files
authored
Add support for running MSSQL Testcontainers on Mac ARM64 (#5619)
This commit adds the ability for Mac ARM64 machines to run MSSQL Testcontainers based tests. The same treatment was added for Oracle previously. Also, the container support is the final arbiter of container creation and now all of the DB smoke tests are refactored to use the new support interfaces.
1 parent 7a3ee97 commit 02d69bd

35 files changed

+299
-328
lines changed

spring-cloud-dataflow-server/src/test/java/org/springframework/cloud/dataflow/server/db/migration/AbstractSmokeTest.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import org.junit.jupiter.api.extension.ExtendWith;
2929
import org.junit.jupiter.params.ParameterizedTest;
3030
import org.junit.jupiter.params.provider.MethodSource;
31-
import org.testcontainers.containers.JdbcDatabaseContainer;
3231

3332
import org.springframework.batch.core.BatchStatus;
3433
import org.springframework.batch.core.JobParameters;
@@ -57,8 +56,6 @@
5756
import org.springframework.data.domain.Page;
5857
import org.springframework.data.domain.Pageable;
5958
import org.springframework.test.annotation.DirtiesContext;
60-
import org.springframework.test.context.DynamicPropertyRegistry;
61-
import org.springframework.test.context.DynamicPropertySource;
6259
import org.springframework.transaction.PlatformTransactionManager;
6360
import org.springframework.transaction.support.TransactionTemplate;
6461
import org.springframework.util.LinkedMultiValueMap;
@@ -78,16 +75,6 @@
7875
@ExtendWith(OutputCaptureExtension.class)
7976
public abstract class AbstractSmokeTest {
8077

81-
protected static JdbcDatabaseContainer<?> container;
82-
83-
@DynamicPropertySource
84-
static void databaseProperties(DynamicPropertyRegistry registry) {
85-
registry.add("spring.datasource.url", container::getJdbcUrl);
86-
registry.add("spring.datasource.username", container::getUsername);
87-
registry.add("spring.datasource.password", container::getPassword);
88-
registry.add("spring.datasource.driver-class-name", container::getDriverClassName);
89-
}
90-
9178
@Autowired
9279
private SchemaService schemaService;
9380

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,14 @@
1515
*/
1616
package org.springframework.cloud.dataflow.server.db.migration;
1717

18-
import org.junit.jupiter.api.BeforeAll;
19-
import org.testcontainers.containers.Db2Container;
18+
import org.springframework.cloud.dataflow.server.db.DB2_11_5_ContainerSupport;
2019

2120

2221
/**
2322
* Basic database schema and JPA tests for DB2.
2423
*
2524
* @author Corneil du Plessis
25+
* @author Chris Bono
2626
*/
27-
public class DB2SmokeTest extends AbstractSmokeTest {
28-
@BeforeAll
29-
static void startContainer() {
30-
container = new Db2Container("ibmcom/db2:11.5.0.0a").acceptLicense();
31-
container.start();
32-
}
27+
public class DB2_11_5_SmokeTest extends AbstractSmokeTest implements DB2_11_5_ContainerSupport {
3328
}
Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,17 @@
1515
*/
1616
package org.springframework.cloud.dataflow.server.db.migration;
1717

18-
import org.junit.jupiter.api.BeforeAll;
19-
import org.testcontainers.containers.MariaDBContainer;
20-
18+
import org.springframework.cloud.dataflow.server.db.MariaDB_10_6_ContainerSupport;
2119
import org.springframework.test.context.TestPropertySource;
2220

2321
/**
2422
* Basic database schema and JPA tests for MariaDB 10.4 or later.
2523
*
2624
* @author Corneil du Plessis
25+
* @author Chris Bono
2726
*/
2827
@TestPropertySource(properties = {
2928
"spring.jpa.database-platform=org.hibernate.dialect.MariaDB106Dialect"
3029
})
31-
public class MariaDBSmokeTest extends AbstractSmokeTest {
32-
33-
@BeforeAll
34-
static void startContainer() {
35-
container = new MariaDBContainer<>("mariadb:10.6");
36-
container.start();
37-
}
30+
public class MariaDB_10_6_SmokeTest extends AbstractSmokeTest implements MariaDB_10_6_ContainerSupport {
3831
}
Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,18 @@
1515
*/
1616
package org.springframework.cloud.dataflow.server.db.migration;
1717

18-
import org.junit.jupiter.api.BeforeAll;
19-
import org.testcontainers.containers.MariaDBContainer;
20-
18+
import org.springframework.cloud.dataflow.server.db.MariaDB_11_ContainerSupport;
2119
import org.springframework.test.context.TestPropertySource;
2220

2321

2422
/**
2523
* Basic database schema and JPA tests for MariaDB 10.4 or later.
2624
*
2725
* @author Corneil du Plessis
26+
* @author Chris Bono
2827
*/
2928
@TestPropertySource(properties = {
3029
"spring.jpa.database-platform=org.hibernate.dialect.MariaDB106Dialect"
3130
})
32-
public class MariaDB11SmokeTest extends AbstractSmokeTest {
33-
@BeforeAll
34-
static void startContainer() {
35-
container = new MariaDBContainer<>("mariadb:11");
36-
container.start();
37-
}
31+
public class MariaDB_11_SmokeTest extends AbstractSmokeTest implements MariaDB_11_ContainerSupport {
3832
}
Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,15 @@
1515
*/
1616
package org.springframework.cloud.dataflow.server.db.migration;
1717

18-
import org.junit.jupiter.api.BeforeAll;
19-
import org.testcontainers.containers.MySQLContainer;
18+
import org.springframework.cloud.dataflow.server.db.MySQL_5_7_ContainerSupport;
2019

2120
/**
2221
* Basic database schema and JPA tests for MySQL 5.7.
2322
*
2423
* @author Corneil du Plessis
24+
* @author Chris Bono
2525
*/
26-
public class MySQL57SmokeTest extends AbstractSmokeTest {
27-
28-
@BeforeAll
29-
static void startContainer() {
30-
container = new MySQLContainer<>("mysql:5.7");
31-
container.start();
32-
}
26+
public class MySQL_5_7_SmokeTest extends AbstractSmokeTest implements MySQL_5_7_ContainerSupport {
3327

3428
@Override
3529
protected boolean supportsRowNumberFunction() {
Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,13 @@
1515
*/
1616
package org.springframework.cloud.dataflow.server.db.migration;
1717

18-
import org.junit.jupiter.api.BeforeAll;
19-
import org.testcontainers.containers.MySQLContainer;
18+
import org.springframework.cloud.dataflow.server.db.MySQL_8_ContainerSupport;
2019

2120
/**
2221
* Basic database schema and JPA tests for MySQL 8 or later.
2322
*
2423
* @author Corneil du Plessis
24+
* @author Chris Bono
2525
*/
26-
public class MySQL8SmokeTest extends AbstractSmokeTest {
27-
28-
@BeforeAll
29-
static void startContainer() {
30-
container = new MySQLContainer<>("mysql:8");
31-
container.start();
32-
}
26+
public class MySQL_8_SmokeTest extends AbstractSmokeTest implements MySQL_8_ContainerSupport {
3327
}
Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,13 @@
1515
*/
1616
package org.springframework.cloud.dataflow.server.db.migration;
1717

18-
import org.junit.jupiter.api.BeforeAll;
19-
20-
import org.springframework.cloud.dataflow.server.db.oracle.OracleContainerSupport;
18+
import org.springframework.cloud.dataflow.server.db.Oracle_XE_18_ContainerSupport;
2119

2220
/**
2321
* Basic database schema and JPA tests for Oracle XE.
2422
*
2523
* @author Corneil du Plessis
2624
* @author Chris Bono
2725
*/
28-
public class OracleSmokeTest extends AbstractSmokeTest implements OracleContainerSupport {
29-
30-
@BeforeAll
31-
static void startContainer() {
32-
container = OracleContainerSupport.startContainer();
33-
}
26+
public class Oracle_XE_18_SmokeTest extends AbstractSmokeTest implements Oracle_XE_18_ContainerSupport {
3427
}
Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,14 @@
1515
*/
1616
package org.springframework.cloud.dataflow.server.db.migration;
1717

18-
import org.junit.jupiter.api.BeforeAll;
19-
import org.testcontainers.containers.PostgreSQLContainer;
20-
import org.testcontainers.utility.DockerImageName;
18+
import org.springframework.cloud.dataflow.server.db.PostgreSQL_14_ContainerSupport;
2119

2220

2321
/**
2422
* Basic database schema and JPA tests for PostgreSQL 14 or later.
2523
*
2624
* @author Corneil du Plessis
25+
* @author Chris Bono
2726
*/
28-
public class PostgreSQLSmokeTest extends AbstractSmokeTest {
29-
30-
@BeforeAll
31-
static void startContainer() {
32-
container = new PostgreSQLContainer<>(DockerImageName.parse("postgres:14"));
33-
container.start();
34-
}
27+
public class PostgreSQL_14_SmokeTest extends AbstractSmokeTest implements PostgreSQL_14_ContainerSupport {
3528
}

spring-cloud-dataflow-server/src/test/java/org/springframework/cloud/dataflow/server/db/migration/SqlServer2017SmokeTest.java

Lines changed: 0 additions & 41 deletions
This file was deleted.

spring-cloud-dataflow-server/src/test/java/org/springframework/cloud/dataflow/server/db/migration/SqlServer2019SmokeTest.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

0 commit comments

Comments
 (0)