From b0dfca7d9289500d672873d8ecec8216c75d0211 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 13 Oct 2021 10:57:21 +0100 Subject: [PATCH] Configure Flyway with spring.flyway.script-placeholder-suffix Fixes gh-28307 --- .../flyway/FlywayAutoConfiguration.java | 4 ++-- .../flyway/FlywayAutoConfigurationTests.java | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java index b7bf6649ed..66e6d6804d 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java @@ -222,8 +222,8 @@ public class FlywayAutoConfiguration { .to(configuration::initSql); map.from(properties.getScriptPlaceholderPrefix()) .to((prefix) -> configuration.scriptPlaceholderPrefix(prefix)); - map.from(properties.getScriptPlaceholderPrefix()) - .to((suffix) -> configuration.scriptPlaceholderPrefix(suffix)); + map.from(properties.getScriptPlaceholderSuffix()) + .to((suffix) -> configuration.scriptPlaceholderSuffix(suffix)); // Pro properties map.from(properties.getBatch()).to(configuration::batch); map.from(properties.getDryRunOutput()).to(configuration::dryRunOutput); diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfigurationTests.java index 514852b703..3e6b1ae392 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfigurationTests.java @@ -665,6 +665,24 @@ class FlywayAutoConfigurationTests { .run(validateFlywayTeamsPropertyOnly("baselineMigrationPrefix")); } + @Test + void scriptPlaceholderPrefixIsCorrectlyMapped() { + this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class) + .withPropertyValues("spring.flyway.script-placeholder-prefix=SPP") + .run((context) -> assertThat( + context.getBean(Flyway.class).getConfiguration().getScriptPlaceholderPrefix()) + .isEqualTo("SPP")); + } + + @Test + void scriptPlaceholderSuffixIsCorrectlyMapped() { + this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class) + .withPropertyValues("spring.flyway.script-placeholder-suffix=SPS") + .run((context) -> assertThat( + context.getBean(Flyway.class).getConfiguration().getScriptPlaceholderSuffix()) + .isEqualTo("SPS")); + } + private ContextConsumer validateFlywayTeamsPropertyOnly(String propertyName) { return (context) -> { assertThat(context).hasFailed();