From 91715a8c7d78bf3a3542bc5bb8407264279ec3f8 Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Wed, 7 May 2025 15:14:56 +0800 Subject: [PATCH 1/2] Test that source information is resolved from super class See gh-45382 Signed-off-by: Yanming Zhou --- .../PropertyDescriptorResolverTests.java | 11 ++++++++--- .../simple/HierarchicalProperties.java | 5 ++++- .../simple/HierarchicalPropertiesGrandparent.java | 5 ++++- .../simple/HierarchicalPropertiesParent.java | 5 ++++- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/PropertyDescriptorResolverTests.java b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/PropertyDescriptorResolverTests.java index 686cdbb2f5..a8122ba17f 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/PropertyDescriptorResolverTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/PropertyDescriptorResolverTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 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. @@ -56,6 +56,7 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Stephane Nicoll * @author Scott Frederick + * @author Yanming Zhou */ class PropertyDescriptorResolverTests { @@ -77,9 +78,13 @@ class PropertyDescriptorResolverTests { .map((descriptor) -> descriptor.getGetter().getEnclosingElement().getSimpleName().toString())) .containsExactly("HierarchicalProperties", "HierarchicalPropertiesParent", "HierarchicalPropertiesParent"); - assertThat(resolver.resolve(type, null) + List itemMetadataList = resolver.resolve(type, null) .map((descriptor) -> descriptor.resolveItemMetadata("test", metadataEnv)) - .map(ItemMetadata::getDefaultValue)).containsExactly("three", "two", "one"); + .toList(); + assertThat(itemMetadataList).map(ItemMetadata::getDefaultValue) + .containsExactly("three", "two", "one"); + assertThat(itemMetadataList).map(ItemMetadata::getDescription) + .containsExactly("I'm third", "I'm second", "I'm first"); }); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalProperties.java b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalProperties.java index cbd0ff27be..a6c491ec23 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalProperties.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2025 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. @@ -26,6 +26,9 @@ import org.springframework.boot.configurationsample.ConfigurationProperties; @ConfigurationProperties(prefix = "hierarchical") public class HierarchicalProperties extends HierarchicalPropertiesParent { + /** + * I'm third + */ private String third = "three"; public String getThird() { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesGrandparent.java b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesGrandparent.java index 6026c94e1f..1b5e5176e8 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesGrandparent.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesGrandparent.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2025 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. @@ -23,6 +23,9 @@ package org.springframework.boot.configurationsample.simple; */ public abstract class HierarchicalPropertiesGrandparent { + /** + * I'm first + */ private String first = "one"; public String getFirst() { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesParent.java b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesParent.java index b436470f05..38f2c2219d 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesParent.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesParent.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2025 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. @@ -23,6 +23,9 @@ package org.springframework.boot.configurationsample.simple; */ public abstract class HierarchicalPropertiesParent extends HierarchicalPropertiesGrandparent { + /** + * I'm second + */ private String second = "two"; public String getSecond() { From 88107273f3aa9563325b62f20c0fec55ec677a1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Wed, 7 May 2025 10:36:56 +0200 Subject: [PATCH 2/2] Polish "Test that source information is resolved from super class" See gh-45382 --- .../configurationprocessor/PropertyDescriptorResolverTests.java | 2 +- .../boot/configurationsample/simple/HierarchicalProperties.java | 2 +- .../simple/HierarchicalPropertiesGrandparent.java | 2 +- .../simple/HierarchicalPropertiesParent.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/PropertyDescriptorResolverTests.java b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/PropertyDescriptorResolverTests.java index a8122ba17f..6d1c58fd98 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/PropertyDescriptorResolverTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/PropertyDescriptorResolverTests.java @@ -84,7 +84,7 @@ class PropertyDescriptorResolverTests { assertThat(itemMetadataList).map(ItemMetadata::getDefaultValue) .containsExactly("three", "two", "one"); assertThat(itemMetadataList).map(ItemMetadata::getDescription) - .containsExactly("I'm third", "I'm second", "I'm first"); + .containsExactly("Concrete property.", "Parent property.", "Grandparent property."); }); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalProperties.java b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalProperties.java index a6c491ec23..8d174f2685 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalProperties.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalProperties.java @@ -27,7 +27,7 @@ import org.springframework.boot.configurationsample.ConfigurationProperties; public class HierarchicalProperties extends HierarchicalPropertiesParent { /** - * I'm third + * Concrete property. */ private String third = "three"; diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesGrandparent.java b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesGrandparent.java index 1b5e5176e8..debfcec229 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesGrandparent.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesGrandparent.java @@ -24,7 +24,7 @@ package org.springframework.boot.configurationsample.simple; public abstract class HierarchicalPropertiesGrandparent { /** - * I'm first + * Grandparent property. */ private String first = "one"; diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesParent.java b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesParent.java index 38f2c2219d..6250a1e2c1 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesParent.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/HierarchicalPropertiesParent.java @@ -24,7 +24,7 @@ package org.springframework.boot.configurationsample.simple; public abstract class HierarchicalPropertiesParent extends HierarchicalPropertiesGrandparent { /** - * I'm second + * Parent property. */ private String second = "two";