Skip to content

Commit 770c946

Browse files
committed
Refine 'Introduce a shared abstraction for database initialization'
Use test fixtures to keep getSettings() package-private See gh-46213
1 parent 87954af commit 770c946

File tree

14 files changed

+52
-38
lines changed

14 files changed

+52
-38
lines changed

module/spring-boot-batch-jdbc/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ dependencies {
3939
testImplementation(project(":module:spring-boot-liquibase"))
4040
testImplementation(project(":test-support:spring-boot-test-support"))
4141
testImplementation(testFixtures(project(":core:spring-boot-autoconfigure")))
42+
testImplementation(testFixtures(project(":module:spring-boot-sql")))
4243
testImplementation("io.micrometer:micrometer-observation-test")
4344

4445
testRuntimeOnly("ch.qos.logback:logback-classic")

module/spring-boot-batch-jdbc/src/main/java/org/springframework/boot/batch/jdbc/autoconfigure/BatchDataSourceScriptDatabaseInitializer.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
import org.springframework.boot.jdbc.init.DataSourceScriptDatabaseInitializer;
2222
import org.springframework.boot.jdbc.init.PropertiesBasedDataSourceScriptDatabaseInitializer;
23-
import org.springframework.boot.sql.init.DatabaseInitializationSettings;
2423

2524
/**
2625
* {@link DataSourceScriptDatabaseInitializer} for the Spring Batch database. May be
@@ -45,9 +44,4 @@ public BatchDataSourceScriptDatabaseInitializer(DataSource dataSource, BatchJdbc
4544
super(dataSource, properties);
4645
}
4746

48-
@Override
49-
protected DatabaseInitializationSettings getSettings() {
50-
return super.getSettings();
51-
}
52-
5347
}

module/spring-boot-batch-jdbc/src/test/java/org/springframework/boot/batch/jdbc/autoconfigure/BatchDataSourceScriptDatabaseInitializerTests.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
import org.springframework.boot.jdbc.DatabaseDriver;
3434
import org.springframework.boot.sql.init.DatabaseInitializationSettings;
35+
import org.springframework.boot.sql.init.ScriptDatabaseInitializerSettings;
3536
import org.springframework.core.io.DefaultResourceLoader;
3637
import org.springframework.core.io.Resource;
3738
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
@@ -54,8 +55,8 @@ void getSettingsWithPlatformDoesNotTouchDataSource() {
5455
DataSource dataSource = mock(DataSource.class);
5556
BatchJdbcProperties properties = new BatchJdbcProperties();
5657
properties.setPlatform("test");
57-
DatabaseInitializationSettings settings = new BatchDataSourceScriptDatabaseInitializer(dataSource, properties)
58-
.getSettings();
58+
DatabaseInitializationSettings settings = ScriptDatabaseInitializerSettings
59+
.get(new BatchDataSourceScriptDatabaseInitializer(dataSource, properties));
5960
assertThat(settings.getSchemaLocations())
6061
.containsOnly("classpath:org/springframework/batch/core/schema-test.sql");
6162
then(dataSource).shouldHaveNoInteractions();
@@ -74,8 +75,8 @@ void batchSchemaCanBeLocated(DatabaseDriver driver) throws SQLException {
7475
given(connection.getMetaData()).willReturn(metadata);
7576
String productName = (String) ReflectionTestUtils.getField(driver, "productName");
7677
given(metadata.getDatabaseProductName()).willReturn(productName);
77-
DatabaseInitializationSettings settings = new BatchDataSourceScriptDatabaseInitializer(dataSource, properties)
78-
.getSettings();
78+
DatabaseInitializationSettings settings = ScriptDatabaseInitializerSettings
79+
.get(new BatchDataSourceScriptDatabaseInitializer(dataSource, properties));
7980
List<String> schemaLocations = settings.getSchemaLocations();
8081
assertThat(schemaLocations).isNotEmpty()
8182
.allSatisfy((location) -> assertThat(resourceLoader.getResource(location).exists()).isTrue());

module/spring-boot-integration/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ dependencies {
4141
testImplementation(project(":module:spring-boot-flyway"))
4242
testImplementation(project(":module:spring-boot-rsocket"))
4343
testImplementation(project(":test-support:spring-boot-test-support"))
44+
testImplementation(testFixtures(project(":module:spring-boot-sql")))
4445
testImplementation(testFixtures(project(":module:spring-boot-webflux")))
4546
testImplementation(testFixtures(project(":module:spring-boot-webmvc")))
4647
testImplementation("org.springframework:spring-web")

module/spring-boot-integration/src/main/java/org/springframework/boot/integration/autoconfigure/IntegrationDataSourceScriptDatabaseInitializer.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.springframework.boot.jdbc.DatabaseDriver;
2424
import org.springframework.boot.jdbc.init.DataSourceScriptDatabaseInitializer;
2525
import org.springframework.boot.jdbc.init.PropertiesBasedDataSourceScriptDatabaseInitializer;
26-
import org.springframework.boot.sql.init.DatabaseInitializationSettings;
2726

2827
/**
2928
* {@link DataSourceScriptDatabaseInitializer} for the Spring Integration database. May be
@@ -47,9 +46,4 @@ public IntegrationDataSourceScriptDatabaseInitializer(DataSource dataSource, Int
4746
super(dataSource, properties, Map.of(DatabaseDriver.MARIADB, "mysql"));
4847
}
4948

50-
@Override
51-
protected DatabaseInitializationSettings getSettings() {
52-
return super.getSettings();
53-
}
54-
5549
}

module/spring-boot-integration/src/test/java/org/springframework/boot/integration/autoconfigure/IntegrationDataSourceScriptDatabaseInitializerTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.junit.jupiter.api.Test;
2222

2323
import org.springframework.boot.sql.init.DatabaseInitializationSettings;
24+
import org.springframework.boot.sql.init.ScriptDatabaseInitializerSettings;
2425

2526
import static org.assertj.core.api.Assertions.assertThat;
2627
import static org.mockito.BDDMockito.then;
@@ -38,9 +39,8 @@ void getSettingsWithPlatformDoesNotTouchDataSource() {
3839
DataSource dataSource = mock(DataSource.class);
3940
IntegrationJdbcProperties properties = new IntegrationJdbcProperties();
4041
properties.setPlatform("test");
41-
DatabaseInitializationSettings settings = new IntegrationDataSourceScriptDatabaseInitializer(dataSource,
42-
properties)
43-
.getSettings();
42+
DatabaseInitializationSettings settings = ScriptDatabaseInitializerSettings
43+
.get(new IntegrationDataSourceScriptDatabaseInitializer(dataSource, properties));
4444
assertThat(settings.getSchemaLocations())
4545
.containsOnly("classpath:org/springframework/integration/jdbc/schema-test.sql");
4646
then(dataSource).shouldHaveNoInteractions();

module/spring-boot-quartz/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ dependencies {
3838
testImplementation(project(":module:spring-boot-flyway"))
3939
testImplementation(project(":module:spring-boot-liquibase"))
4040
testImplementation(project(":test-support:spring-boot-test-support"))
41+
testImplementation(testFixtures(project(":module:spring-boot-sql")))
4142
testImplementation(testFixtures(project(":module:spring-boot-webflux")))
4243
testImplementation(testFixtures(project(":module:spring-boot-webmvc")))
4344
testImplementation("net.minidev:json-smart")

module/spring-boot-quartz/src/main/java/org/springframework/boot/quartz/autoconfigure/QuartzDataSourceScriptDatabaseInitializer.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.springframework.boot.jdbc.DatabaseDriver;
2727
import org.springframework.boot.jdbc.init.DataSourceScriptDatabaseInitializer;
2828
import org.springframework.boot.jdbc.init.PropertiesBasedDataSourceScriptDatabaseInitializer;
29-
import org.springframework.boot.sql.init.DatabaseInitializationSettings;
3029
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
3130
import org.springframework.util.ObjectUtils;
3231

@@ -58,11 +57,6 @@ public QuartzDataSourceScriptDatabaseInitializer(DataSource dataSource, QuartzJd
5857
this.commentPrefixes = properties.getCommentPrefix();
5958
}
6059

61-
@Override
62-
protected DatabaseInitializationSettings getSettings() {
63-
return super.getSettings();
64-
}
65-
6660
@Override
6761
protected void customize(ResourceDatabasePopulator populator) {
6862
if (!ObjectUtils.isEmpty(this.commentPrefixes)) {

module/spring-boot-quartz/src/test/java/org/springframework/boot/quartz/autoconfigure/QuartzDataSourceScriptDatabaseInitializerTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.junit.jupiter.api.Test;
2424

2525
import org.springframework.boot.sql.init.DatabaseInitializationSettings;
26+
import org.springframework.boot.sql.init.ScriptDatabaseInitializerSettings;
2627
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
2728

2829
import static org.assertj.core.api.Assertions.assertThat;
@@ -41,8 +42,8 @@ void getSettingsWithPlatformDoesNotTouchDataSource() {
4142
DataSource dataSource = mock(DataSource.class);
4243
QuartzJdbcProperties properties = new QuartzJdbcProperties();
4344
properties.setPlatform("test");
44-
DatabaseInitializationSettings settings = new QuartzDataSourceScriptDatabaseInitializer(dataSource, properties)
45-
.getSettings();
45+
DatabaseInitializationSettings settings = ScriptDatabaseInitializerSettings
46+
.get(new QuartzDataSourceScriptDatabaseInitializer(dataSource, properties));
4647
assertThat(settings.getSchemaLocations())
4748
.containsOnly("classpath:org/quartz/impl/jdbcjobstore/tables_test.sql");
4849
then(dataSource).shouldHaveNoInteractions();

module/spring-boot-session-jdbc/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ dependencies {
3939
testImplementation(project(":module:spring-boot-flyway"))
4040
testImplementation(project(":module:spring-boot-liquibase"))
4141
testImplementation(testFixtures(project(":module:spring-boot-session")))
42+
testImplementation(testFixtures(project(":module:spring-boot-sql")))
4243
testImplementation("jakarta.servlet:jakarta.servlet-api")
4344
testImplementation("org.apache.commons:commons-dbcp2")
4445
testImplementation("org.springframework:spring-web")

0 commit comments

Comments
 (0)