diff --git a/datasource-decorator-spring-boot-autoconfigure/build.gradle.kts b/datasource-decorator-spring-boot-autoconfigure/build.gradle.kts index bbd2baa..d6f27cd 100644 --- a/datasource-decorator-spring-boot-autoconfigure/build.gradle.kts +++ b/datasource-decorator-spring-boot-autoconfigure/build.gradle.kts @@ -12,7 +12,7 @@ dependencies { implementation(libs.spring.boot) implementation(libs.spring.boot.autoconfigure) - implementation(libs.spring.boot.starter.jdbc) + implementation(libs.spring.boot.jdbc) annotationProcessor(libs.spring.boot.configuration.processor) @@ -28,7 +28,7 @@ dependencies { compileOnly(libs.flexy.pool.tomcatcp) compileOnly(libs.flexy.pool.micrometer.metrics) - compileOnly(libs.spring.boot.starter.actuator) + compileOnly(libs.spring.boot.actuator) // optional (compileOnly) dependencies for SQL formatting compileOnly(libs.hibernate.core) @@ -37,6 +37,7 @@ dependencies { testImplementation(libs.junit.platform.launcher) testImplementation(libs.h2) testImplementation(libs.spring.boot.starter.test) + implementation(libs.spring.boot.flyway) testImplementation(libs.p6spy) testImplementation(libs.datasource.proxy) @@ -73,4 +74,4 @@ tasks { test { useJUnitPlatform() } -} \ No newline at end of file +} diff --git a/datasource-decorator-spring-boot-autoconfigure/src/main/java/com/github/gavlyukovskiy/boot/jdbc/decorator/DataSourceDecoratorAutoConfiguration.java b/datasource-decorator-spring-boot-autoconfigure/src/main/java/com/github/gavlyukovskiy/boot/jdbc/decorator/DataSourceDecoratorAutoConfiguration.java index 67ae661..707d10e 100644 --- a/datasource-decorator-spring-boot-autoconfigure/src/main/java/com/github/gavlyukovskiy/boot/jdbc/decorator/DataSourceDecoratorAutoConfiguration.java +++ b/datasource-decorator-spring-boot-autoconfigure/src/main/java/com/github/gavlyukovskiy/boot/jdbc/decorator/DataSourceDecoratorAutoConfiguration.java @@ -24,7 +24,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; @@ -60,4 +60,4 @@ public static DataSourceDecoratorBeanPostProcessor dataSourceDecoratorBeanPostPr public DataSourceNameResolver dataSourceNameResolver(ApplicationContext applicationContext) { return new DataSourceNameResolver(applicationContext); } -} \ No newline at end of file +} diff --git a/datasource-decorator-spring-boot-autoconfigure/src/main/java/com/github/gavlyukovskiy/boot/jdbc/decorator/flexypool/FlexyPoolConfiguration.java b/datasource-decorator-spring-boot-autoconfigure/src/main/java/com/github/gavlyukovskiy/boot/jdbc/decorator/flexypool/FlexyPoolConfiguration.java index 9457c3c..160e938 100644 --- a/datasource-decorator-spring-boot-autoconfigure/src/main/java/com/github/gavlyukovskiy/boot/jdbc/decorator/flexypool/FlexyPoolConfiguration.java +++ b/datasource-decorator-spring-boot-autoconfigure/src/main/java/com/github/gavlyukovskiy/boot/jdbc/decorator/flexypool/FlexyPoolConfiguration.java @@ -34,6 +34,7 @@ import com.zaxxer.hikari.HikariDataSource; import org.apache.commons.dbcp2.BasicDataSource; import org.slf4j.Logger; +import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionMessage; import org.springframework.boot.autoconfigure.condition.ConditionOutcome; @@ -48,7 +49,6 @@ import org.springframework.context.annotation.Import; import org.springframework.core.type.AnnotatedTypeMetadata; -import jakarta.annotation.PostConstruct; import javax.sql.DataSource; import java.util.ArrayList; import java.util.Collections; @@ -197,18 +197,19 @@ public FlexyPoolDataSourceDecorator flexyPoolDataSourceDecorator() { @Configuration(proxyBeanMethods = false) @ConditionalOnMissingBean(FlexyPoolDataSourceDecorator.class) @Conditional(FlexyPoolConfiguration.FlexyPoolConfigurationAvailableCondition.class) - static class PropertyFlexyConfiguration { + static class PropertyFlexyConfiguration implements InitializingBean { private static final Logger log = getLogger(PropertyFlexyConfiguration.class); @Autowired(required = false) private List> connectionAcquisitionStrategyFactories; - @PostConstruct - public void warnIfAnyStrategyFound() { + + @Override + public void afterPropertiesSet() { if (connectionAcquisitionStrategyFactories != null) { log.warn("ConnectionAcquisitionStrategyFactory beans found in the context will not be applied to " + - "FlexyDataSource due to property based configuration of FlexyPool"); + "FlexyDataSource due to property based configuration of FlexyPool"); } } diff --git a/datasource-decorator-spring-boot-autoconfigure/src/main/java/com/github/gavlyukovskiy/boot/jdbc/decorator/p6spy/P6SpyConfiguration.java b/datasource-decorator-spring-boot-autoconfigure/src/main/java/com/github/gavlyukovskiy/boot/jdbc/decorator/p6spy/P6SpyConfiguration.java index 44acd4a..d6a4513 100644 --- a/datasource-decorator-spring-boot-autoconfigure/src/main/java/com/github/gavlyukovskiy/boot/jdbc/decorator/p6spy/P6SpyConfiguration.java +++ b/datasource-decorator-spring-boot-autoconfigure/src/main/java/com/github/gavlyukovskiy/boot/jdbc/decorator/p6spy/P6SpyConfiguration.java @@ -28,9 +28,9 @@ import com.p6spy.engine.spy.option.P6OptionsSource; import com.p6spy.engine.spy.option.SpyDotProperties; import com.p6spy.engine.spy.option.SystemProperties; -import jakarta.annotation.PostConstruct; -import jakarta.annotation.PreDestroy; import org.slf4j.Logger; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -54,7 +54,7 @@ // P6Spy is automatically configured by Spring Cloud Sleuth if exists @ConditionalOnMissingBean(type = "org.springframework.cloud.sleuth.autoconfig.instrument.jdbc.P6SpyConfiguration") @ConditionalOnClass(P6DataSource.class) -public class P6SpyConfiguration { +public class P6SpyConfiguration implements InitializingBean, DisposableBean { private static final Logger log = getLogger(P6SpyConfiguration.class); @@ -66,8 +66,8 @@ public class P6SpyConfiguration { private Map initialP6SpyOptions; - @PostConstruct - public void init() { + @Override + public void afterPropertiesSet() { P6SpyProperties p6spy = dataSourceDecoratorProperties.getP6spy(); initialP6SpyOptions = findDefinedOptions(); String customModuleList = initialP6SpyOptions.get("modulelist"); @@ -115,7 +115,7 @@ else if (p6spy.isMultiline()) { P6ModuleManager.getInstance().reload(); } - @PreDestroy + @Override public void destroy() { P6SpyProperties p6spy = dataSourceDecoratorProperties.getP6spy(); if (!initialP6SpyOptions.containsKey("modulelist")) { diff --git a/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/DataSourceDecoratorAutoConfigurationTests.java b/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/DataSourceDecoratorAutoConfigurationTests.java index c8e9667..a158fa5 100644 --- a/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/DataSourceDecoratorAutoConfigurationTests.java +++ b/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/DataSourceDecoratorAutoConfigurationTests.java @@ -27,8 +27,8 @@ import org.springframework.beans.DirectFieldAccessor; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; -import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.flyway.autoconfigure.FlywayAutoConfiguration; +import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/dsproxy/ProxyDataSourceConfigurationTests.java b/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/dsproxy/ProxyDataSourceConfigurationTests.java index dcac3cb..5d033c8 100644 --- a/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/dsproxy/ProxyDataSourceConfigurationTests.java +++ b/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/dsproxy/ProxyDataSourceConfigurationTests.java @@ -41,7 +41,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/flexypool/FlexyPoolConfigurationTests.java b/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/flexypool/FlexyPoolConfigurationTests.java index e77a043..7df50db 100644 --- a/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/flexypool/FlexyPoolConfigurationTests.java +++ b/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/flexypool/FlexyPoolConfigurationTests.java @@ -31,7 +31,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/p6spy/P6SpyConfigurationTests.java b/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/p6spy/P6SpyConfigurationTests.java index 2ec24d7..4dfcf66 100644 --- a/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/p6spy/P6SpyConfigurationTests.java +++ b/datasource-decorator-spring-boot-autoconfigure/src/test/java/com/github/gavlyukovskiy/boot/jdbc/decorator/p6spy/P6SpyConfigurationTests.java @@ -34,7 +34,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8a87b59..780fc2f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,21 +1,20 @@ [versions] -spring-boot = "3.5.7" +spring-boot = "4.0.0-RC1" p6Spy = "3.9.1" datasource-proxy = "1.11.0" flexy-pool = "3.0.2" [libraries] -spring-boot-dependencies = { group = "org.springframework.boot", name = "spring-boot-dependencies", version.ref = "spring-boot" } spring-boot = { group = "org.springframework.boot", name = "spring-boot" } +spring-boot-actuator = { group = "org.springframework.boot", name = "spring-boot-actuator" } spring-boot-autoconfigure = { group = "org.springframework.boot", name = "spring-boot-autoconfigure" } -spring-boot-starter-actuator = { group = "org.springframework.boot", name = "spring-boot-starter-actuator" } -spring-boot-starter-jdbc = { group = "org.springframework.boot", name = "spring-boot-starter-jdbc" } spring-boot-configuration-processor = { group = "org.springframework.boot", name = "spring-boot-configuration-processor" } +spring-boot-dependencies = { group = "org.springframework.boot", name = "spring-boot-dependencies", version.ref = "spring-boot" } +spring-boot-flyway = { group = "org.springframework.boot", name = "spring-boot-flyway" } +spring-boot-jdbc = { group = "org.springframework.boot", name = "spring-boot-jdbc" } +spring-boot-starter-jdbc = { group = "org.springframework.boot", name = "spring-boot-starter-jdbc" } spring-boot-starter-test = { group = "org.springframework.boot", name = "spring-boot-starter-test" } - - spring-boot-starter-web = { group = "org.springframework.boot", name = "spring-boot-starter-web" } -spring-boot-starter-aop = { group = "org.springframework.boot", name = "spring-boot-starter-aop" } p6spy = { group = "p6spy", name = "p6spy", version.ref = "p6Spy" } @@ -37,7 +36,7 @@ h2 = { group = "com.h2database", name = "h2" } commons-dbcp = { group = "commons-dbcp", name = "commons-dbcp", version = "1.4" } flyway-core = { group = "org.flywaydb", name = "flyway-core" } -junit-bom = { group = "org.junit", name = "junit-bom", version = "6.0.1" } +junit-bom = { group = "org.junit", name = "junit-bom", version = "6.0.0" } junit-platform-launcher = { group = "org.junit.platform", name = "junit-platform-launcher" } [plugins]