diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyAdditionalDataSourceConfiguration.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyAdditionalDataSourceConfiguration.java index 7780541c1746..4882b940c767 100644 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyAdditionalDataSourceConfiguration.java +++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyAdditionalDataSourceConfiguration.java @@ -16,7 +16,7 @@ package org.springframework.boot.docs.howto.dataaccess.configuretwodatasources; -import org.apache.commons.dbcp2.BasicDataSource; +import com.zaxxer.hikari.HikariDataSource; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -30,8 +30,8 @@ public class MyAdditionalDataSourceConfiguration { @Qualifier("second") @Bean(defaultCandidate = false) @ConfigurationProperties("app.datasource") - public BasicDataSource secondDataSource() { - return DataSourceBuilder.create().type(BasicDataSource.class).build(); + public HikariDataSource secondDataSource() { + return DataSourceBuilder.create().type(HikariDataSource.class).build(); } } diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteAdditionalDataSourceConfiguration.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteAdditionalDataSourceConfiguration.java index 829a9c413dd1..6d8c7fb007f5 100644 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteAdditionalDataSourceConfiguration.java +++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteAdditionalDataSourceConfiguration.java @@ -16,7 +16,7 @@ package org.springframework.boot.docs.howto.dataaccess.configuretwodatasources; -import org.apache.commons.dbcp2.BasicDataSource; +import com.zaxxer.hikari.HikariDataSource; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; @@ -36,10 +36,10 @@ public DataSourceProperties secondDataSourceProperties() { @Qualifier("second") @Bean(defaultCandidate = false) - @ConfigurationProperties("app.datasource.configuration") - public BasicDataSource secondDataSource( + @ConfigurationProperties("app.datasource.hikari") + public HikariDataSource secondDataSource( @Qualifier("secondDataSourceProperties") DataSourceProperties secondDataSourceProperties) { - return secondDataSourceProperties.initializeDataSourceBuilder().type(BasicDataSource.class).build(); + return secondDataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build(); } } diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/testing/slicetests/MyConfiguration.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/testing/slicetests/MyConfiguration.java index 8bb2f8590316..406f1fc9417b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/testing/slicetests/MyConfiguration.java +++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/testing/slicetests/MyConfiguration.java @@ -16,7 +16,7 @@ package org.springframework.boot.docs.howto.testing.slicetests; -import org.apache.commons.dbcp2.BasicDataSource; +import com.zaxxer.hikari.HikariDataSource; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; @@ -36,8 +36,8 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti @Bean @ConfigurationProperties("app.datasource.second") - public BasicDataSource secondDataSource() { - return DataSourceBuilder.create().type(BasicDataSource.class).build(); + public HikariDataSource secondDataSource() { + return DataSourceBuilder.create().type(HikariDataSource.class).build(); } } diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/testing/slicetests/MyDatasourceConfiguration.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/testing/slicetests/MyDatasourceConfiguration.java index 70506c4ee427..895356d4b5a9 100644 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/testing/slicetests/MyDatasourceConfiguration.java +++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/testing/slicetests/MyDatasourceConfiguration.java @@ -16,7 +16,7 @@ package org.springframework.boot.docs.howto.testing.slicetests; -import org.apache.commons.dbcp2.BasicDataSource; +import com.zaxxer.hikari.HikariDataSource; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; @@ -28,8 +28,8 @@ public class MyDatasourceConfiguration { @Bean @ConfigurationProperties("app.datasource.second") - public BasicDataSource secondDataSource() { - return DataSourceBuilder.create().type(BasicDataSource.class).build(); + public HikariDataSource secondDataSource() { + return DataSourceBuilder.create().type(HikariDataSource.class).build(); } } diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyAdditionalDataSourceConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyAdditionalDataSourceConfiguration.kt index 401f08d7f417..e4484556255a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyAdditionalDataSourceConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyAdditionalDataSourceConfiguration.kt @@ -16,7 +16,7 @@ package org.springframework.boot.docs.howto.dataaccess.configuretwodatasources -import org.apache.commons.dbcp2.BasicDataSource +import com.zaxxer.hikari.HikariDataSource import org.springframework.beans.factory.annotation.Qualifier import org.springframework.boot.context.properties.ConfigurationProperties @@ -30,8 +30,8 @@ class MyAdditionalDataSourceConfiguration { @Qualifier("second") @Bean(defaultCandidate = false) @ConfigurationProperties("app.datasource") - fun secondDataSource(): BasicDataSource { - return DataSourceBuilder.create().type(BasicDataSource::class.java).build() + fun secondDataSource(): HikariDataSource? { + return DataSourceBuilder.create().type(HikariDataSource::class.java).build() } } diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteAdditionalDataSourceConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteAdditionalDataSourceConfiguration.kt index cccbbff269d2..6861f138c8ad 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteAdditionalDataSourceConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteAdditionalDataSourceConfiguration.kt @@ -16,7 +16,7 @@ package org.springframework.boot.docs.howto.dataaccess.configuretwodatasources -import org.apache.commons.dbcp2.BasicDataSource +import com.zaxxer.hikari.HikariDataSource import org.springframework.beans.factory.annotation.Qualifier import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties @@ -36,9 +36,9 @@ class MyCompleteAdditionalDataSourceConfiguration { @Qualifier("second") @Bean(defaultCandidate = false) - @ConfigurationProperties("app.datasource.configuration") - fun secondDataSource(secondDataSourceProperties: DataSourceProperties): BasicDataSource { - return secondDataSourceProperties.initializeDataSourceBuilder().type(BasicDataSource::class.java).build() + @ConfigurationProperties("app.datasource.hikari") + fun secondDataSource(secondDataSourceProperties: DataSourceProperties): HikariDataSource? { + return secondDataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource::class.java).build() } } diff --git a/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteDataSourcesConfigurationTests.java b/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteDataSourcesConfigurationTests.java index 143ab498551b..5bb56139e09c 100644 --- a/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteDataSourcesConfigurationTests.java +++ b/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteDataSourcesConfigurationTests.java @@ -20,6 +20,7 @@ import javax.sql.DataSource; +import com.zaxxer.hikari.HikariDataSource; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -34,8 +35,10 @@ * Tests for {@link MyCompleteAdditionalDataSourceConfiguration}. * * @author Stephane Nicoll + * @author Raja Kolli */ -@SpringBootTest +@SpringBootTest(properties = { "app.datasource.url=jdbc:h2:mem:bar;DB_CLOSE_DELAY=-1", + "app.datasource.hikari.maximum-pool-size=42" }) @Import(MyCompleteAdditionalDataSourceConfiguration.class) class MyCompleteDataSourcesConfigurationTests { @@ -55,7 +58,11 @@ void validateConfiguration() throws SQLException { assertThat(this.context.getBean("dataSource")).isSameAs(this.dataSource); assertThat(this.dataSource.getConnection().getMetaData().getURL()).startsWith("jdbc:h2:mem:"); assertThat(this.context.getBean("secondDataSource")).isSameAs(this.secondDataSource); - assertThat(this.secondDataSource.getConnection().getMetaData().getURL()).startsWith("jdbc:h2:mem:"); + assertThat(this.secondDataSource).extracting((dataSource) -> ((HikariDataSource) dataSource).getJdbcUrl()) + .isEqualTo("jdbc:h2:mem:bar;DB_CLOSE_DELAY=-1"); + assertThat(this.secondDataSource) + .extracting((dataSource) -> ((HikariDataSource) dataSource).getMaximumPoolSize()) + .isEqualTo(42); } } diff --git a/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyDataSourcesConfigurationTests.java b/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyDataSourcesConfigurationTests.java index dbee0f9c37a4..b80d30326b55 100644 --- a/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyDataSourcesConfigurationTests.java +++ b/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyDataSourcesConfigurationTests.java @@ -20,7 +20,6 @@ import javax.sql.DataSource; -import org.apache.commons.dbcp2.BasicDataSource; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -36,7 +35,7 @@ * * @author Stephane Nicoll */ -@SpringBootTest(properties = { "app.datasource.url=jdbc:h2:mem:bar;DB_CLOSE_DELAY=-1", "app.datasource.max-total=42" }) +@SpringBootTest(properties = { "app.datasource.jdbcUrl=jdbc:h2:mem:bar;DB_CLOSE_DELAY=-1" }) @Import(MyAdditionalDataSourceConfiguration.class) class MyDataSourcesConfigurationTests { @@ -56,10 +55,7 @@ void validateConfiguration() throws SQLException { assertThat(this.context.getBean("dataSource")).isSameAs(this.dataSource); assertThat(this.dataSource.getConnection().getMetaData().getURL()).startsWith("jdbc:h2:mem:"); assertThat(this.context.getBean("secondDataSource")).isSameAs(this.secondDataSource); - assertThat(this.secondDataSource).extracting((dataSource) -> ((BasicDataSource) dataSource).getUrl()) - .isEqualTo("jdbc:h2:mem:bar;DB_CLOSE_DELAY=-1"); - assertThat(this.secondDataSource).extracting((dataSource) -> ((BasicDataSource) dataSource).getMaxTotal()) - .isEqualTo(42); + assertThat(this.secondDataSource.getConnection().getMetaData().getURL()).startsWith("jdbc:h2:mem:"); } }