Clarify when a property was not renamed due to an incompatible type

Closes gh-11794
This commit is contained in:
Stephane Nicoll
2018-01-29 10:30:59 +01:00
parent 43e5e83d9c
commit bdd532cc20
4 changed files with 39 additions and 4 deletions

View File

@@ -25,6 +25,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import org.springframework.boot.configurationmetadata.ConfigurationMetadataProperty;
import org.springframework.boot.configurationmetadata.Deprecation;
import org.springframework.util.StringUtils;
/**
@@ -74,10 +75,7 @@ class PropertiesMigrationReport {
StringBuilder report = new StringBuilder();
report.append(String.format("%nThe use of configuration keys that are no longer "
+ "supported was found in the environment:%n%n"));
append(report, content,
(metadata) -> "Reason: "
+ (StringUtils.hasText(metadata.getDeprecation().getShortReason())
? metadata.getDeprecation().getShortReason() : "none"));
append(report, content, this::determineReason);
report.append(String.format("%n"));
report.append("Please refer to the migration guide or reference guide for "
+ "potential alternatives.");
@@ -85,6 +83,18 @@ class PropertiesMigrationReport {
return report.toString();
}
private String determineReason(ConfigurationMetadataProperty metadata) {
Deprecation deprecation = metadata.getDeprecation();
if (StringUtils.hasText(deprecation.getShortReason())) {
return deprecation.getShortReason();
}
if (StringUtils.hasText(deprecation.getReplacement())) {
return String.format("Reason: Replacement key '%s' uses an incompatible "
+ "target type", deprecation.getReplacement());
}
return "none";
}
private Map<String, List<PropertyMigration>> getContent(
Function<LegacyProperties, List<PropertyMigration>> extractor) {
return this.content.entrySet().stream()