Skip to content

Commit 31b2ddc

Browse files
committed
Merge branch '3.4.x' into 3.5.x
Closes gh-46663
2 parents 5fc0f55 + 14820b0 commit 31b2ddc

File tree

4 files changed

+24
-16
lines changed

4 files changed

+24
-16
lines changed

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/PropertyDescriptorResolver.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,23 +85,20 @@ private Stream<PropertyDescriptor> resolveConstructorBoundProperties(TypeElement
8585

8686
private PropertyDescriptor extracted(TypeElement declaringElement, TypeElementMembers members,
8787
VariableElement parameter) {
88-
String name = getPropertyName(parameter);
88+
String parameterName = parameter.getSimpleName().toString();
89+
String name = getPropertyName(parameter, parameterName);
8990
TypeMirror type = parameter.asType();
90-
ExecutableElement getter = members.getPublicGetter(name, type);
91-
ExecutableElement setter = members.getPublicSetter(name, type);
92-
VariableElement field = members.getFields().get(name);
93-
RecordComponentElement recordComponent = members.getRecordComponents().get(name);
91+
ExecutableElement getter = members.getPublicGetter(parameterName, type);
92+
ExecutableElement setter = members.getPublicSetter(parameterName, type);
93+
VariableElement field = members.getFields().get(parameterName);
94+
RecordComponentElement recordComponent = members.getRecordComponents().get(parameterName);
9495
return (recordComponent != null)
9596
? new RecordParameterPropertyDescriptor(name, type, parameter, declaringElement, getter,
9697
recordComponent)
9798
: new ConstructorParameterPropertyDescriptor(name, type, parameter, declaringElement, getter, setter,
9899
field);
99100
}
100101

101-
private String getPropertyName(VariableElement parameter) {
102-
return getPropertyName(parameter, parameter.getSimpleName().toString());
103-
}
104-
105102
private String getPropertyName(VariableElement parameter, String fallback) {
106103
AnnotationMirror nameAnnotation = this.environment.getNameAnnotation(parameter);
107104
if (nameAnnotation != null) {

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataAnnotationProcessorTests.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,9 @@ void deprecatedPropertyOnRecord() {
266266
.fromSource(type)
267267
.withDeprecation("some-reason", null, null));
268268
assertThat(metadata).has(Metadata.withProperty("deprecated-record.bravo", String.class).fromSource(type));
269+
assertThat(metadata).has(Metadata.withProperty("deprecated-record.named.charlie", String.class)
270+
.fromSource(type)
271+
.withDeprecation("another-reason", null, null));
269272
}
270273

271274
@Test
@@ -570,6 +573,8 @@ void recordPropertiesWithDescriptions() {
570573
.withDescription("description without space after asterisk"));
571574
assertThat(metadata).has(Metadata.withProperty("record.descriptions.some-byte", Byte.class)
572575
.withDescription("last description in Javadoc"));
576+
assertThat(metadata).has(Metadata.withProperty("record.descriptions.named.record.component", String.class)
577+
.withDescription("description of a named component"));
573578
}
574579

575580
@Test

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/record/ExampleRecord.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,21 @@
1616

1717
package org.springframework.boot.configurationsample.record;
1818

19-
// @formatter:off
19+
import org.springframework.boot.configurationsample.Name;
2020

2121
/**
2222
* Example Record Javadoc sample
2323
*
24-
* @param someString very long description that
25-
* doesn't fit single line and is indented
24+
* @param someString very long description that doesn't fit single line and is indented
2625
* @param someInteger description with @param and @ pitfalls
2726
* @param someBoolean description with extra spaces
2827
* @param someLong description without space after asterisk
28+
* @param namedComponent description of a named component
2929
* @param someByte last description in Javadoc
3030
* @since 1.0.0
3131
* @author Pavel Anisimov
3232
*/
3333
@org.springframework.boot.configurationsample.ConfigurationProperties("record.descriptions")
34-
public record ExampleRecord(String someString, Integer someInteger, Boolean someBoolean, Long someLong, Byte someByte) {
34+
public record ExampleRecord(String someString, Integer someInteger, Boolean someBoolean, Long someLong,
35+
@Name("named.record.component") String namedComponent, Byte someByte) {
3536
}
36-
37-
//@formatter:on

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/DeprecatedRecord.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,28 @@
1818

1919
import org.springframework.boot.configurationsample.ConfigurationProperties;
2020
import org.springframework.boot.configurationsample.DeprecatedConfigurationProperty;
21+
import org.springframework.boot.configurationsample.Name;
2122

2223
/**
2324
* Configuration properties as record with deprecated property.
2425
*
2526
* @param alpha alpha property, deprecated
2627
* @param bravo bravo property
28+
* @param charlie charlie property, named, deprecated
2729
* @author Moritz Halbritter
2830
*/
2931
@ConfigurationProperties("deprecated-record")
30-
public record DeprecatedRecord(String alpha, String bravo) {
32+
public record DeprecatedRecord(String alpha, String bravo, @Name("named.charlie") String charlie) {
3133

3234
@Deprecated
3335
@DeprecatedConfigurationProperty(reason = "some-reason")
3436
public String alpha() {
3537
return this.alpha;
3638
}
3739

40+
@Deprecated
41+
@DeprecatedConfigurationProperty(reason = "another-reason")
42+
public String charlie() {
43+
return this.charlie;
44+
}
3845
}

0 commit comments

Comments
 (0)