Browse Source

Polish contribution

See gh-25456
pull/25505/head
Stephane Nicoll 5 years ago
parent
commit
288bece4e9
  1. 11
      spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java
  2. 9
      spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayProperties.java
  3. 41
      spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfigurationTests.java

11
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java

@ -248,12 +248,11 @@ public class FlywayAutoConfiguration { @@ -248,12 +248,11 @@ public class FlywayAutoConfiguration {
.to((skipExecutingMigrations) -> configuration.skipExecutingMigrations(skipExecutingMigrations));
// Teams secrets management properties (all non-method reference for
// compatibility with Flyway 6.x)
map.from(properties.getConjurUrl()).whenNonNull().to((conjurUrl) -> configuration.conjurUrl(conjurUrl));
map.from(properties.getConjurToken()).whenNonNull()
.to((conjurToken) -> configuration.conjurToken(conjurToken));
map.from(properties.getVaultUrl()).whenNonNull().to((vaultUrl) -> configuration.vaultUrl(vaultUrl));
map.from(properties.getVaultToken()).whenNonNull().to((vaultToken) -> configuration.vaultToken(vaultToken));
map.from(properties.getVaultSecrets()).whenNonNull()
map.from(properties.getConjurUrl()).to((conjurUrl) -> configuration.conjurUrl(conjurUrl));
map.from(properties.getConjurToken()).to((conjurToken) -> configuration.conjurToken(conjurToken));
map.from(properties.getVaultUrl()).to((vaultUrl) -> configuration.vaultUrl(vaultUrl));
map.from(properties.getVaultToken()).to((vaultToken) -> configuration.vaultToken(vaultToken));
map.from(properties.getVaultSecrets()).whenNot(List::isEmpty)
.to((vaultSecrets) -> configuration.vaultSecrets(vaultSecrets.toArray(new String[0])));
}

9
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayProperties.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2012-2020 the original author or authors.
* Copyright 2012-2021 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.
@ -350,9 +350,10 @@ public class FlywayProperties { @@ -350,9 +350,10 @@ public class FlywayProperties {
private String vaultToken;
/**
* Comma-separated list of paths to secrets that contain Flyway configurations. Each
* path must start with the name of the engine and end with the name of the secret
* such 'kv/test/1/config'. Requires Flyway teams.
* Comma-separated list of paths to secrets that contain Flyway configurations. This
* must start with the name of the engine followed by '/data/' and end with the name
* of the secret. The resulting form is '{engine}/data/{path}/{to}/{secret_name}'.
* Requires Flyway teams.
*/
private List<String> vaultSecrets;

41
spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfigurationTests.java

@ -416,21 +416,21 @@ class FlywayAutoConfigurationTests { @@ -416,21 +416,21 @@ class FlywayAutoConfigurationTests {
@Test
void batchIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.batch=true").run(validateTeamsPropertyCorrectlyMapped("batch"));
.withPropertyValues("spring.flyway.batch=true").run(validateFlywayTeamsPropertyOnly("batch"));
}
@Test
void dryRunOutputIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.dryRunOutput=dryrun.sql")
.run(validateTeamsPropertyCorrectlyMapped("dryRunOutput"));
.run(validateFlywayTeamsPropertyOnly("dryRunOutput"));
}
@Test
void errorOverridesIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.errorOverrides=D12345")
.run(validateTeamsPropertyCorrectlyMapped("errorOverrides"));
.run(validateFlywayTeamsPropertyOnly("errorOverrides"));
}
@Test
@ -444,27 +444,27 @@ class FlywayAutoConfigurationTests { @@ -444,27 +444,27 @@ class FlywayAutoConfigurationTests {
void oracleSqlplusIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.oracle-sqlplus=true")
.run(validateTeamsPropertyCorrectlyMapped("oracle.sqlplus"));
.run(validateFlywayTeamsPropertyOnly("oracle.sqlplus"));
}
@Test
void oracleSqlplusWarnIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.oracle-sqlplus-warn=true")
.run(validateTeamsPropertyCorrectlyMapped("oracle.sqlplusWarn"));
.run(validateFlywayTeamsPropertyOnly("oracle.sqlplusWarn"));
}
@Test
void streamIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.stream=true").run(validateTeamsPropertyCorrectlyMapped("stream"));
.withPropertyValues("spring.flyway.stream=true").run(validateFlywayTeamsPropertyOnly("stream"));
}
@Test
void undoSqlMigrationPrefix() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.undo-sql-migration-prefix=undo")
.run(validateTeamsPropertyCorrectlyMapped("undoSqlMigrationPrefix"));
.run(validateFlywayTeamsPropertyOnly("undoSqlMigrationPrefix"));
}
@Test
@ -499,78 +499,77 @@ class FlywayAutoConfigurationTests { @@ -499,78 +499,77 @@ class FlywayAutoConfigurationTests {
@Test
void cherryPickIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.cherry-pick=1.1")
.run(validateTeamsPropertyCorrectlyMapped("cherryPick"));
.withPropertyValues("spring.flyway.cherry-pick=1.1").run(validateFlywayTeamsPropertyOnly("cherryPick"));
}
@Test
void jdbcPropertiesAreCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.jdbc-properties.prop=value")
.run(validateTeamsPropertyCorrectlyMapped("jdbcProperties"));
.run(validateFlywayTeamsPropertyOnly("jdbcProperties"));
}
@Test
void oracleKerberosCacheFileIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.oracle-kerberos-cache-file=/tmp/cache")
.run(validateTeamsPropertyCorrectlyMapped("oracle.kerberosCacheFile"));
.run(validateFlywayTeamsPropertyOnly("oracle.kerberosCacheFile"));
}
@Test
void oracleKerberosConfigFileIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.oracle-kerberos-config-file=/tmp/config")
.run(validateTeamsPropertyCorrectlyMapped("oracle.kerberosConfigFile"));
.run(validateFlywayTeamsPropertyOnly("oracle.kerberosConfigFile"));
}
@Test
void outputQueryResultsIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.output-query-results=false")
.run(validateTeamsPropertyCorrectlyMapped("outputQueryResults"));
.run(validateFlywayTeamsPropertyOnly("outputQueryResults"));
}
@Test
void skipExecutingMigrationsIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.skip-executing-migrations=true")
.run(validateTeamsPropertyCorrectlyMapped("skipExecutingMigrations"));
.run(validateFlywayTeamsPropertyOnly("skipExecutingMigrations"));
}
@Test
void conjurUrlIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.conjur-url=http://foo.com/secrets")
.run(validateTeamsPropertyCorrectlyMapped("conjurUrl"));
.run(validateFlywayTeamsPropertyOnly("conjurUrl"));
}
@Test
void conjurTokenIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.conjur-token=5150")
.run(validateTeamsPropertyCorrectlyMapped("conjurToken"));
.run(validateFlywayTeamsPropertyOnly("conjurToken"));
}
@Test
void vaultUrlIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.vault-url=http://foo.com/secrets")
.run(validateTeamsPropertyCorrectlyMapped("vaultUrl"));
.run(validateFlywayTeamsPropertyOnly("vaultUrl"));
}
@Test
void vaultTokenIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.vault-token=5150")
.run(validateTeamsPropertyCorrectlyMapped("vaultToken"));
.run(validateFlywayTeamsPropertyOnly("vaultToken"));
}
@Test
void vaultSecretsIsCorrectlyMapped() {
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
.withPropertyValues("spring.flyway.vault-secrets=kv/test/1/config,kv/test/2/config")
.run(validateTeamsPropertyCorrectlyMapped("vaultSecrets"));
.withPropertyValues("spring.flyway.vault-secrets=kv/data/test/1/config,kv/data/test/2/config")
.run(validateFlywayTeamsPropertyOnly("vaultSecrets"));
}
@Test
@ -600,7 +599,7 @@ class FlywayAutoConfigurationTests { @@ -600,7 +599,7 @@ class FlywayAutoConfigurationTests {
});
}
private ContextConsumer<AssertableApplicationContext> validateTeamsPropertyCorrectlyMapped(String propertyName) {
private ContextConsumer<AssertableApplicationContext> validateFlywayTeamsPropertyOnly(String propertyName) {
return (context) -> {
assertThat(context).hasFailed();
Throwable failure = context.getStartupFailure();

Loading…
Cancel
Save