Polish "Allow NestedConfigurationProperty on getters"
See gh-38844
This commit is contained in:
@@ -22,6 +22,7 @@ import org.springframework.boot.configurationprocessor.metadata.ConfigurationMet
|
||||
import org.springframework.boot.configurationprocessor.metadata.ItemMetadata;
|
||||
import org.springframework.boot.configurationprocessor.metadata.Metadata;
|
||||
import org.springframework.boot.configurationsample.deprecation.Dbcp2Configuration;
|
||||
import org.springframework.boot.configurationsample.method.NestedPropertiesMethod;
|
||||
import org.springframework.boot.configurationsample.record.ExampleRecord;
|
||||
import org.springframework.boot.configurationsample.record.NestedPropertiesRecord;
|
||||
import org.springframework.boot.configurationsample.record.RecordWithGetter;
|
||||
@@ -337,8 +338,9 @@ class ConfigurationMetadataAnnotationProcessorTests extends AbstractMetadataGene
|
||||
assertThat(metadata).has(Metadata.withProperty("config.third.value"));
|
||||
assertThat(metadata).has(Metadata.withProperty("config.fourth"));
|
||||
assertThat(metadata).isNotEqualTo(Metadata.withGroup("config.fourth"));
|
||||
assertThat(metadata)
|
||||
.has(Metadata.withGroup("config.fifth").ofType(DeprecatedSimplePojo.class).fromSource(InnerClassProperties.class));
|
||||
assertThat(metadata).has(Metadata.withGroup("config.fifth")
|
||||
.ofType(DeprecatedSimplePojo.class)
|
||||
.fromSource(InnerClassProperties.class));
|
||||
assertThat(metadata).has(Metadata.withProperty("config.fifth.value").withDeprecation());
|
||||
}
|
||||
|
||||
@@ -362,6 +364,15 @@ class ConfigurationMetadataAnnotationProcessorTests extends AbstractMetadataGene
|
||||
assertThat(metadata).isNotEqualTo(Metadata.withProperty("specific.foo"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void nestedClassMethod() {
|
||||
ConfigurationMetadata metadata = compile(NestedPropertiesMethod.class);
|
||||
assertThat(metadata).has(Metadata.withGroup("method-nested.nested"));
|
||||
assertThat(metadata).has(Metadata.withProperty("method-nested.nested.my-nested-property"));
|
||||
assertThat(metadata).has(Metadata.withGroup("method-nested.inner.nested"));
|
||||
assertThat(metadata).has(Metadata.withProperty("method-nested.inner.nested.my-nested-property"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void nestedClassChildProperties() {
|
||||
ConfigurationMetadata metadata = compile(ClassWithNestedProperties.class);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2024 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.
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright 2012-2024 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.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.configurationsample.method;
|
||||
|
||||
import org.springframework.boot.configurationsample.ConfigurationProperties;
|
||||
import org.springframework.boot.configurationsample.NestedConfigurationProperty;
|
||||
|
||||
@ConfigurationProperties("method-nested")
|
||||
public class NestedPropertiesMethod {
|
||||
|
||||
private String myProperty;
|
||||
|
||||
private final NestedProperty nested = new NestedProperty();
|
||||
|
||||
private final Inner inner = new Inner();
|
||||
|
||||
public String getMyProperty() {
|
||||
return this.myProperty;
|
||||
}
|
||||
|
||||
public void setMyProperty(String myProperty) {
|
||||
this.myProperty = myProperty;
|
||||
}
|
||||
|
||||
@NestedConfigurationProperty
|
||||
public NestedProperty getNested() {
|
||||
return this.nested;
|
||||
}
|
||||
|
||||
public Inner getInner() {
|
||||
return this.inner;
|
||||
}
|
||||
|
||||
public static class Inner {
|
||||
|
||||
private String myInnerProperty;
|
||||
|
||||
private final NestedProperty nested = new NestedProperty();
|
||||
|
||||
public String getMyInnerProperty() {
|
||||
return this.myInnerProperty;
|
||||
}
|
||||
|
||||
public void setMyInnerProperty(String myInnerProperty) {
|
||||
this.myInnerProperty = myInnerProperty;
|
||||
}
|
||||
|
||||
@NestedConfigurationProperty
|
||||
public NestedProperty getNested() {
|
||||
return this.nested;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright 2012-2024 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.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.configurationsample.method;
|
||||
|
||||
public class NestedProperty {
|
||||
|
||||
private String myNestedProperty;
|
||||
|
||||
public String getMyNestedProperty() {
|
||||
return this.myNestedProperty;
|
||||
}
|
||||
|
||||
public void setMyNestedProperty(String myNestedProperty) {
|
||||
this.myNestedProperty = myNestedProperty;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2024 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.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2024 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.
|
||||
|
||||
Reference in New Issue
Block a user