From d6a7aeb2985965b6a762c809d6048350470f3aaf Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 9 May 2025 17:10:39 +0100 Subject: [PATCH] Move code from spring-boot-actuator to spring-boot-liquibase --- .../liquibase/LiquibaseEndpointAutoConfiguration.java | 4 ++-- .../liquibase/LiquibaseEndpointAutoConfigurationTests.java | 2 +- .../docs/liquibase/LiquibaseEndpointDocumentationTests.java | 2 +- spring-boot-project/spring-boot-actuator/build.gradle | 4 ---- spring-boot-project/spring-boot-liquibase/build.gradle | 1 + .../boot/liquibase/actuate/endpoint}/LiquibaseEndpoint.java | 4 ++-- .../boot/liquibase/actuate/endpoint}/package-info.java | 6 +++--- .../liquibase/actuate/endpoint}/LiquibaseEndpointTests.java | 6 +++--- 8 files changed, 13 insertions(+), 16 deletions(-) rename spring-boot-project/{spring-boot-actuator/src/main/java/org/springframework/boot/actuate/liquibase => spring-boot-liquibase/src/main/java/org/springframework/boot/liquibase/actuate/endpoint}/LiquibaseEndpoint.java (99%) rename spring-boot-project/{spring-boot-actuator/src/main/java/org/springframework/boot/actuate/liquibase => spring-boot-liquibase/src/main/java/org/springframework/boot/liquibase/actuate/endpoint}/package-info.java (79%) rename spring-boot-project/{spring-boot-actuator/src/test/java/org/springframework/boot/actuate/liquibase => spring-boot-liquibase/src/test/java/org/springframework/boot/liquibase/actuate/endpoint}/LiquibaseEndpointTests.java (97%) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/liquibase/LiquibaseEndpointAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/liquibase/LiquibaseEndpointAutoConfiguration.java index 05f2e5505a..e42329629e 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/liquibase/LiquibaseEndpointAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/liquibase/LiquibaseEndpointAutoConfiguration.java @@ -21,12 +21,12 @@ import liquibase.integration.spring.SpringLiquibase; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; -import org.springframework.boot.actuate.liquibase.LiquibaseEndpoint; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.liquibase.actuate.endpoint.LiquibaseEndpoint; import org.springframework.boot.liquibase.autoconfigure.DataSourceClosingSpringLiquibase; import org.springframework.boot.liquibase.autoconfigure.LiquibaseAutoConfiguration; import org.springframework.context.ApplicationContext; @@ -39,7 +39,7 @@ import org.springframework.context.annotation.Bean; * @since 2.0.0 */ @AutoConfiguration(after = LiquibaseAutoConfiguration.class) -@ConditionalOnClass(SpringLiquibase.class) +@ConditionalOnClass({ SpringLiquibase.class, LiquibaseEndpoint.class }) @ConditionalOnAvailableEndpoint(LiquibaseEndpoint.class) public class LiquibaseEndpointAutoConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/liquibase/LiquibaseEndpointAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/liquibase/LiquibaseEndpointAutoConfigurationTests.java index 52cf550b1f..0ba900476b 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/liquibase/LiquibaseEndpointAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/liquibase/LiquibaseEndpointAutoConfigurationTests.java @@ -19,8 +19,8 @@ package org.springframework.boot.actuate.autoconfigure.liquibase; import liquibase.integration.spring.SpringLiquibase; import org.junit.jupiter.api.Test; -import org.springframework.boot.actuate.liquibase.LiquibaseEndpoint; import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.liquibase.actuate.endpoint.LiquibaseEndpoint; import org.springframework.boot.liquibase.autoconfigure.DataSourceClosingSpringLiquibase; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; diff --git a/spring-boot-project/spring-boot-actuator-docs/src/test/java/org/springframework/boot/actuate/docs/liquibase/LiquibaseEndpointDocumentationTests.java b/spring-boot-project/spring-boot-actuator-docs/src/test/java/org/springframework/boot/actuate/docs/liquibase/LiquibaseEndpointDocumentationTests.java index b802ea8b60..673a52fc4c 100644 --- a/spring-boot-project/spring-boot-actuator-docs/src/test/java/org/springframework/boot/actuate/docs/liquibase/LiquibaseEndpointDocumentationTests.java +++ b/spring-boot-project/spring-boot-actuator-docs/src/test/java/org/springframework/boot/actuate/docs/liquibase/LiquibaseEndpointDocumentationTests.java @@ -22,8 +22,8 @@ import liquibase.changelog.ChangeSet.ExecType; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.docs.MockMvcEndpointDocumentationTests; -import org.springframework.boot.actuate.liquibase.LiquibaseEndpoint; import org.springframework.boot.jdbc.autoconfigure.EmbeddedDataSourceConfiguration; +import org.springframework.boot.liquibase.actuate.endpoint.LiquibaseEndpoint; import org.springframework.boot.liquibase.autoconfigure.LiquibaseAutoConfiguration; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; diff --git a/spring-boot-project/spring-boot-actuator/build.gradle b/spring-boot-project/spring-boot-actuator/build.gradle index 489b2527ac..8e2f9a829d 100644 --- a/spring-boot-project/spring-boot-actuator/build.gradle +++ b/spring-boot-project/spring-boot-actuator/build.gradle @@ -27,7 +27,6 @@ dependencies { optional(project(":spring-boot-project:spring-boot-jdbc")) optional(project(":spring-boot-project:spring-boot-jetty")) optional(project(":spring-boot-project:spring-boot-jsonb")) - optional(project(":spring-boot-project:spring-boot-liquibase")) optional(project(":spring-boot-project:spring-boot-reactor-netty")) optional(project(":spring-boot-project:spring-boot-tomcat")) optional(project(":spring-boot-project:spring-boot-undertow")) @@ -61,9 +60,6 @@ dependencies { optional("org.glassfish.jersey.containers:jersey-container-servlet-core") optional("org.hibernate.validator:hibernate-validator") optional("org.influxdb:influxdb-java") - optional("org.liquibase:liquibase-core") { - exclude(group: "javax.xml.bind", module: "jaxb-api") - } optional("org.neo4j.driver:neo4j-java-driver") optional("org.quartz-scheduler:quartz") optional("org.springframework:spring-context-support") diff --git a/spring-boot-project/spring-boot-liquibase/build.gradle b/spring-boot-project/spring-boot-liquibase/build.gradle index 1634db27c8..56698030f1 100644 --- a/spring-boot-project/spring-boot-liquibase/build.gradle +++ b/spring-boot-project/spring-boot-liquibase/build.gradle @@ -15,6 +15,7 @@ dependencies { exclude(group: "javax.xml.bind", module: "jaxb-api") } + optional(project(":spring-boot-project:spring-boot-actuator")) optional(project(":spring-boot-project:spring-boot-autoconfigure")) testImplementation(project(":spring-boot-project:spring-boot-test")) diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/liquibase/LiquibaseEndpoint.java b/spring-boot-project/spring-boot-liquibase/src/main/java/org/springframework/boot/liquibase/actuate/endpoint/LiquibaseEndpoint.java similarity index 99% rename from spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/liquibase/LiquibaseEndpoint.java rename to spring-boot-project/spring-boot-liquibase/src/main/java/org/springframework/boot/liquibase/actuate/endpoint/LiquibaseEndpoint.java index 233b020112..e1da271f55 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/liquibase/LiquibaseEndpoint.java +++ b/spring-boot-project/spring-boot-liquibase/src/main/java/org/springframework/boot/liquibase/actuate/endpoint/LiquibaseEndpoint.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.liquibase; +package org.springframework.boot.liquibase.actuate.endpoint; import java.time.Instant; import java.util.HashMap; @@ -43,7 +43,7 @@ import org.springframework.util.StringUtils; * {@link Endpoint @Endpoint} to expose liquibase info. * * @author EddĂș MelĂ©ndez - * @since 2.0.0 + * @since 4.0.0 */ @Endpoint(id = "liquibase") public class LiquibaseEndpoint { diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/liquibase/package-info.java b/spring-boot-project/spring-boot-liquibase/src/main/java/org/springframework/boot/liquibase/actuate/endpoint/package-info.java similarity index 79% rename from spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/liquibase/package-info.java rename to spring-boot-project/spring-boot-liquibase/src/main/java/org/springframework/boot/liquibase/actuate/endpoint/package-info.java index 31cf59bd0d..4fb3addf53 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/liquibase/package-info.java +++ b/spring-boot-project/spring-boot-liquibase/src/main/java/org/springframework/boot/liquibase/actuate/endpoint/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,6 @@ */ /** - * Actuator support for Liquibase. + * Actuator endpoint for Liquibase. */ -package org.springframework.boot.actuate.liquibase; +package org.springframework.boot.liquibase.actuate.endpoint; diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/liquibase/LiquibaseEndpointTests.java b/spring-boot-project/spring-boot-liquibase/src/test/java/org/springframework/boot/liquibase/actuate/endpoint/LiquibaseEndpointTests.java similarity index 97% rename from spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/liquibase/LiquibaseEndpointTests.java rename to spring-boot-project/spring-boot-liquibase/src/test/java/org/springframework/boot/liquibase/actuate/endpoint/LiquibaseEndpointTests.java index 09915f0c3c..3cc54dde60 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/liquibase/LiquibaseEndpointTests.java +++ b/spring-boot-project/spring-boot-liquibase/src/test/java/org/springframework/boot/liquibase/actuate/endpoint/LiquibaseEndpointTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.liquibase; +package org.springframework.boot.liquibase.actuate.endpoint; import java.sql.Connection; import java.sql.SQLException; @@ -27,11 +27,11 @@ import javax.sql.DataSource; import liquibase.integration.spring.SpringLiquibase; import org.junit.jupiter.api.Test; -import org.springframework.boot.actuate.liquibase.LiquibaseEndpoint.LiquibaseBeanDescriptor; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.jdbc.EmbeddedDatabaseConnection; import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration; import org.springframework.boot.jdbc.init.DataSourceScriptDatabaseInitializer; +import org.springframework.boot.liquibase.actuate.endpoint.LiquibaseEndpoint.LiquibaseBeanDescriptor; import org.springframework.boot.liquibase.autoconfigure.LiquibaseAutoConfiguration; import org.springframework.boot.sql.init.DatabaseInitializationSettings; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -213,7 +213,7 @@ class LiquibaseEndpointTests { private DataSource createEmbeddedDatabase() { return new EmbeddedDatabaseBuilder().generateUniqueName(true) - .setType(EmbeddedDatabaseConnection.HSQLDB.getType()) + .setType(EmbeddedDatabaseConnection.H2.getType()) .build(); }