Merge pull request #38274 from EvaristeGalois11

* pr/38274:
  Add Liquibase `show-summary` and `show-summary-output` properties
  Remove Liquibase javax.activation excludes

Closes gh-38274
This commit is contained in:
Phillip Webb
2023-11-09 12:22:10 -08:00
9 changed files with 59 additions and 6 deletions

View File

@@ -108,7 +108,6 @@ dependencies {
optional("org.hibernate.validator:hibernate-validator")
optional("org.influxdb:influxdb-java")
optional("org.liquibase:liquibase-core") {
exclude group: "javax.activation", module: "javax.activation-api"
exclude group: "javax.xml.bind", module: "jaxb-api"
}
optional("org.mongodb:mongodb-driver-reactivestreams")

View File

@@ -50,7 +50,6 @@ dependencies {
optional("org.hibernate.validator:hibernate-validator")
optional("org.influxdb:influxdb-java")
optional("org.liquibase:liquibase-core") {
exclude group: "javax.activation", module: "javax.activation-api"
exclude(group: "javax.xml.bind", module: "jaxb-api")
}
optional("org.mongodb:mongodb-driver-reactivestreams")

View File

@@ -122,7 +122,6 @@ dependencies {
exclude group: "javax.xml.bind", module: "jaxb-api"
}
optional("org.liquibase:liquibase-core") {
exclude group: "javax.activation", module: "javax.activation-api"
exclude group: "javax.xml.bind", module: "jaxb-api"
}
optional("org.messaginghub:pooled-jms") {

View File

@@ -113,6 +113,8 @@ public class LiquibaseAutoConfiguration {
liquibase.setRollbackFile(properties.getRollbackFile());
liquibase.setTestRollbackOnUpdate(properties.isTestRollbackOnUpdate());
liquibase.setTag(properties.getTag());
liquibase.setShowSummary(properties.getShowSummary());
liquibase.setShowSummaryOutput(properties.getShowSummaryOutput());
return liquibase;
}

View File

@@ -19,6 +19,8 @@ package org.springframework.boot.autoconfigure.liquibase;
import java.io.File;
import java.util.Map;
import liquibase.UpdateSummaryEnum;
import liquibase.UpdateSummaryOutputEnum;
import liquibase.integration.spring.SpringLiquibase;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -135,6 +137,18 @@ public class LiquibaseProperties {
*/
private String tag;
/**
* Whether to print a summary of the update operation. Values can be 'off', 'summary'
* (default), 'verbose'
*/
private UpdateSummaryEnum showSummary;
/**
* Where to print a summary of the update operation. Values can be 'log' (default),
* 'console', or 'all'.
*/
private UpdateSummaryOutputEnum showSummaryOutput;
public String getChangeLog() {
return this.changeLog;
}
@@ -288,4 +302,20 @@ public class LiquibaseProperties {
this.tag = tag;
}
public UpdateSummaryEnum getShowSummary() {
return this.showSummary;
}
public void setShowSummary(UpdateSummaryEnum showSummary) {
this.showSummary = showSummary;
}
public UpdateSummaryOutputEnum getShowSummaryOutput() {
return this.showSummaryOutput;
}
public void setShowSummaryOutput(UpdateSummaryOutputEnum showSummaryOutput) {
this.showSummaryOutput = showSummaryOutput;
}
}

View File

@@ -29,6 +29,8 @@ import java.util.function.Consumer;
import javax.sql.DataSource;
import com.zaxxer.hikari.HikariDataSource;
import liquibase.UpdateSummaryEnum;
import liquibase.UpdateSummaryOutputEnum;
import liquibase.integration.spring.SpringLiquibase;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -117,6 +119,9 @@ class LiquibaseAutoConfigurationTests {
assertThat(liquibase.getDefaultSchema()).isNull();
assertThat(liquibase.isDropFirst()).isFalse();
assertThat(liquibase.isClearCheckSums()).isFalse();
UpdateSummaryOutputEnum showSummaryOutput = (UpdateSummaryOutputEnum) ReflectionTestUtils
.getField(liquibase, "showSummaryOutput");
assertThat(showSummaryOutput).isEqualTo(UpdateSummaryOutputEnum.LOG);
}));
}
@@ -383,6 +388,28 @@ class LiquibaseAutoConfigurationTests {
.run(assertLiquibase((liquibase) -> assertThat(liquibase.getLabelFilter()).isEqualTo("test, production")));
}
@Test
void overrideShowSummary() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.liquibase.show-summary=off")
.run(assertLiquibase((liquibase) -> {
UpdateSummaryEnum showSummary = (UpdateSummaryEnum) ReflectionTestUtils.getField(liquibase,
"showSummary");
assertThat(showSummary).isEqualTo(UpdateSummaryEnum.OFF);
}));
}
@Test
void overrideShowSummaryOutput() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.liquibase.show-summary-output=all")
.run(assertLiquibase((liquibase) -> {
UpdateSummaryOutputEnum showSummaryOutput = (UpdateSummaryOutputEnum) ReflectionTestUtils
.getField(liquibase, "showSummaryOutput");
assertThat(showSummaryOutput).isEqualTo(UpdateSummaryOutputEnum.ALL);
}));
}
@Test
@SuppressWarnings("unchecked")
void testOverrideParameters() {

View File

@@ -71,7 +71,6 @@ dependencies {
exclude(group: "javax.xml.bind", module: "jaxb-api")
}
optional("org.liquibase:liquibase-core") {
exclude group: "javax.activation", module: "javax.activation-api"
exclude(group: "javax.xml.bind", module: "jaxb-api")
}
optional("org.postgresql:postgresql")

View File

@@ -9,7 +9,6 @@ dependencies {
implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-data-r2dbc"))
runtimeOnly("org.liquibase:liquibase-core") {
exclude group: "javax.activation", module: "javax.activation-api"
exclude group: "javax.xml.bind", module: "jaxb-api"
}
runtimeOnly("org.postgresql:postgresql")

View File

@@ -11,7 +11,6 @@ dependencies {
implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-web"))
implementation("jakarta.xml.bind:jakarta.xml.bind-api")
implementation("org.liquibase:liquibase-core") {
exclude group: "javax.activation", module: "javax.activation-api"
exclude group: "javax.xml.bind", module: "jaxb-api"
}