diff --git a/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/main/java/org/springframework/boot/configurationmetadata/changelog/Difference.java b/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/main/java/org/springframework/boot/configurationmetadata/changelog/Difference.java index a921810f04a..2f8f5e3e45d 100644 --- a/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/main/java/org/springframework/boot/configurationmetadata/changelog/Difference.java +++ b/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/main/java/org/springframework/boot/configurationmetadata/changelog/Difference.java @@ -40,7 +40,10 @@ record Difference(DifferenceType type, ConfigurationMetadataProperty oldProperty return null; } if (newProperty.isDeprecated() && !oldProperty.isDeprecated()) { - return new Difference(DifferenceType.DEPRECATED, oldProperty, newProperty); + Level level = newProperty.getDeprecation().getLevel(); + DifferenceType differenceType = (level == Level.WARNING) ? DifferenceType.DEPRECATED + : DifferenceType.DELETED; + return new Difference(differenceType, oldProperty, newProperty); } if (oldProperty.isDeprecated() && oldProperty.getDeprecation().getLevel() == Level.WARNING && newProperty.isDeprecated() && newProperty.getDeprecation().getLevel() == Level.ERROR) { diff --git a/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/java/org/springframework/boot/configurationmetadata/changelog/ChangelogTests.java b/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/java/org/springframework/boot/configurationmetadata/changelog/ChangelogTests.java index 64c069a1fb6..100f5a99f27 100644 --- a/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/java/org/springframework/boot/configurationmetadata/changelog/ChangelogTests.java +++ b/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/java/org/springframework/boot/configurationmetadata/changelog/ChangelogTests.java @@ -39,7 +39,7 @@ class ChangelogTests { assertThat(differences).isNotNull(); assertThat(differences.oldVersionNumber()).isEqualTo("1.0"); assertThat(differences.newVersionNumber()).isEqualTo("2.0"); - assertThat(differences.differences()).hasSize(6); + assertThat(differences.differences()).hasSize(7); List added = differences.differences() .stream() .filter((difference) -> difference.type() == DifferenceType.ADDED) @@ -51,7 +51,8 @@ class ChangelogTests { .stream() .filter((difference) -> difference.type() == DifferenceType.DELETED) .toList(); - assertThat(deleted).hasSize(3) + assertThat(deleted).hasSize(4) + .anySatisfy((entry) -> assertProperty(entry.oldProperty(), "test.replace", String.class, "replace")) .anySatisfy((entry) -> assertProperty(entry.oldProperty(), "test.delete", String.class, "delete")) .anySatisfy( (entry) -> assertProperty(entry.newProperty(), "test.delete.deprecated", String.class, "delete")) diff --git a/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/resources/sample-1.0.json b/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/resources/sample-1.0.json index f17a92a6e96..6f6ab846845 100644 --- a/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/resources/sample-1.0.json +++ b/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/resources/sample-1.0.json @@ -6,6 +6,12 @@ "description": "Test equality.", "defaultValue": "test" }, + { + "name": "test.replace", + "type": "java.lang.String", + "description": "Test Replace.", + "defaultValue": "replace" + }, { "name": "test.deprecate", "type": "java.lang.String", diff --git a/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/resources/sample-2.0.json b/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/resources/sample-2.0.json index 61ac7058371..e650460140d 100644 --- a/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/resources/sample-2.0.json +++ b/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/resources/sample-2.0.json @@ -6,6 +6,14 @@ "description": "Test add.", "defaultValue": "new" }, + { + "name": "test.replace", + "type": "java.lang.String", + "deprecation": { + "level": "error", + "replacement": "test.add" + } + }, { "name": "test.add.deprecated", "type": "java.lang.String", @@ -28,7 +36,7 @@ "description": "Test deprecate.", "defaultValue": "wrong", "deprecation": { - "level": "error" + "level": "warn" } }, { diff --git a/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/resources/sample.adoc b/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/resources/sample.adoc index 63b3e4b2c7e..908f48e73c5 100644 --- a/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/resources/sample.adoc +++ b/configuration-metadata/spring-boot-configuration-metadata-changelog-generator/src/test/resources/sample.adoc @@ -4,7 +4,13 @@ Configuration property changes between `1.0` and `2.0` == Deprecated in 2.0 -_None_. +|====================== +| Key | Replacement | Reason + +| `test.deprecate` +| +| +|====================== @@ -40,4 +46,8 @@ _None_. | `test.removed.directly` | `test.new.property` | removed in third-party library without deprecation + +| `test.replace` +| `test.add` +| |======================