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 7e61621030d0..0b5a6cb6bdea 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 @@ -241,15 +241,18 @@ private void configureProperties(FluentConfiguration configuration, FlywayProper map.from(properties.getJdbcProperties()).whenNot(Map::isEmpty) .to((jdbcProperties) -> configuration.jdbcProperties(jdbcProperties)); // No method reference for compatibility with Flyway 6.x + map.from(properties.getKerberosConfigFile()) + .to((configFile) -> configuration.kerberosConfigFile(configFile)); + // No method reference for compatibility with Flyway 6.x map.from(properties.getOracleKerberosCacheFile()) .to((cacheFile) -> configuration.oracleKerberosCacheFile(cacheFile)); // No method reference for compatibility with Flyway 6.x - map.from(properties.getOracleKerberosConfigFile()) - .to((configFile) -> configuration.oracleKerberosConfigFile(configFile)); - // No method reference for compatibility with Flyway 6.x map.from(properties.getOutputQueryResults()) .to((outputQueryResults) -> configuration.outputQueryResults(outputQueryResults)); // No method reference for compatibility with Flyway 6.x + map.from(properties.getSqlServerKerberosLoginFile()).to((sqlServerKerberosLoginFile) -> configuration + .sqlServerKerberosLoginFile(sqlServerKerberosLoginFile)); + // No method reference for compatibility with Flyway 6.x map.from(properties.getSkipExecutingMigrations()) .to((skipExecutingMigrations) -> configuration.skipExecutingMigrations(skipExecutingMigrations)); // No method reference for compatibility with Flyway < 7.8 diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayProperties.java index f4b8aa3c9cf0..e640d47f4529 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayProperties.java @@ -335,14 +335,14 @@ public class FlywayProperties { private Map jdbcProperties = new HashMap<>(); /** - * Path of the Oracle Kerberos cache file. Requires Flyway Teams. + * Path of the Kerberos config file. Requires Flyway Teams. */ - private String oracleKerberosCacheFile; + private String kerberosConfigFile; /** - * Path of the Oracle Kerberos config file. Requires Flyway Teams. + * Path of the Oracle Kerberos cache file. Requires Flyway Teams. */ - private String oracleKerberosConfigFile; + private String oracleKerberosCacheFile; /** * Location of the Oracle Wallet, used to sign-in to the database automatically. @@ -356,6 +356,11 @@ public class FlywayProperties { */ private Boolean outputQueryResults; + /** + * Path to the SQL Server Kerberos login file. Requires Flyway Teams. + */ + private String sqlServerKerberosLoginFile; + /** * Whether Flyway should skip executing the contents of the migrations and only update * the schema history table. Requires Flyway teams. @@ -856,6 +861,14 @@ public void setJdbcProperties(Map jdbcProperties) { this.jdbcProperties = jdbcProperties; } + public String getKerberosConfigFile() { + return this.kerberosConfigFile; + } + + public void setKerberosConfigFile(String kerberosConfigFile) { + this.kerberosConfigFile = kerberosConfigFile; + } + public String getOracleKerberosCacheFile() { return this.oracleKerberosCacheFile; } @@ -864,12 +877,15 @@ public void setOracleKerberosCacheFile(String oracleKerberosCacheFile) { this.oracleKerberosCacheFile = oracleKerberosCacheFile; } + @DeprecatedConfigurationProperty(replacement = "spring.flyway.kerberos-config-file") + @Deprecated public String getOracleKerberosConfigFile() { - return this.oracleKerberosConfigFile; + return getKerberosConfigFile(); } + @Deprecated public void setOracleKerberosConfigFile(String oracleKerberosConfigFile) { - this.oracleKerberosConfigFile = oracleKerberosConfigFile; + setKerberosConfigFile(oracleKerberosConfigFile); } public Boolean getOutputQueryResults() { @@ -880,6 +896,14 @@ public void setOutputQueryResults(Boolean outputQueryResults) { this.outputQueryResults = outputQueryResults; } + public String getSqlServerKerberosLoginFile() { + return this.sqlServerKerberosLoginFile; + } + + public void setSqlServerKerberosLoginFile(String sqlServerKerberosLoginFile) { + this.sqlServerKerberosLoginFile = sqlServerKerberosLoginFile; + } + public Boolean getSkipExecutingMigrations() { return this.skipExecutingMigrations; } 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 3e6b1ae392c7..3f79f222c439 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 @@ -603,17 +603,25 @@ void jdbcPropertiesAreCorrectlyMapped() { } @Test - void oracleKerberosCacheFileIsCorrectlyMapped() { + void kerberosConfigFileIsCorrectlyMapped() { this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class) - .withPropertyValues("spring.flyway.oracle-kerberos-cache-file=/tmp/cache") - .run(validateFlywayTeamsPropertyOnly("oracle.kerberosCacheFile")); + .withPropertyValues("spring.flyway.kerberos-config-file=/tmp/config") + .run(validateFlywayTeamsPropertyOnly("kerberosConfigFile")); } @Test - void oracleKerberosConfigFileIsCorrectlyMapped() { + @Deprecated + void oracleKerberosConfigFileIsCorrectlyMappedToReplacementProperty() { this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class) .withPropertyValues("spring.flyway.oracle-kerberos-config-file=/tmp/config") - .run(validateFlywayTeamsPropertyOnly("oracle.kerberosConfigFile")); + .run(validateFlywayTeamsPropertyOnly("kerberosConfigFile")); + } + + @Test + void oracleKerberosCacheFileIsCorrectlyMapped() { + this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class) + .withPropertyValues("spring.flyway.oracle-kerberos-cache-file=/tmp/cache") + .run(validateFlywayTeamsPropertyOnly("oracle.kerberosCacheFile")); } @Test @@ -623,6 +631,13 @@ void outputQueryResultsIsCorrectlyMapped() { .run(validateFlywayTeamsPropertyOnly("outputQueryResults")); } + @Test + void sqlServerKerberosLoginFileIsCorrectlyMapped() { + this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class) + .withPropertyValues("spring.flyway.sql-server-kerberos-login-file=/tmp/config") + .run(validateFlywayTeamsPropertyOnly("sqlServer.kerberosLoginFile")); + } + @Test void skipExecutingMigrationsIsCorrectlyMapped() { this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 748709f1550b..7aadd34ca531 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -309,7 +309,7 @@ bom { ] } } - library("Flyway", "8.0.2") { + library("Flyway", "8.0.3") { group("org.flywaydb") { modules = [ "flyway-core"