Refine inner class detection algorithm
Update the ConfigurationMetadataAnnotationProcessor nested class algorithm to prevent inner classes being added as both groups and properties. Fixes gh-1975
This commit is contained in:
@@ -236,17 +236,14 @@ public class ConfigurationMetadataAnnotationProcessorTests {
|
||||
assertThat(metadata, containsProperty("config.first.name"));
|
||||
assertThat(metadata, containsProperty("config.first.bar.name"));
|
||||
assertThat(metadata,
|
||||
containsProperty("config.the-second", InnerClassProperties.Foo.class)
|
||||
containsGroup("config.the-second", InnerClassProperties.Foo.class)
|
||||
.fromSource(InnerClassProperties.class));
|
||||
assertThat(metadata, containsProperty("config.the-second.name"));
|
||||
assertThat(metadata, containsProperty("config.the-second.bar.name"));
|
||||
assertThat(metadata, containsGroup("config.third").ofType(SimplePojo.class)
|
||||
.fromSource(InnerClassProperties.class));
|
||||
assertThat(metadata, containsProperty("config.third.value"));
|
||||
assertThat(
|
||||
metadata,
|
||||
containsProperty("config.fourth").ofType(
|
||||
InnerClassProperties.Fourth.class));
|
||||
assertThat(metadata, containsProperty("config.fourth"));
|
||||
assertThat(metadata, not(containsGroup("config.fourth")));
|
||||
}
|
||||
|
||||
|
||||
@@ -119,10 +119,13 @@ public class ConfigurationMetadataMatchers {
|
||||
ConfigurationMetadata metadata = (ConfigurationMetadata) item;
|
||||
ItemMetadata property = getFirstPropertyWithName(metadata, this.name);
|
||||
if (property == null) {
|
||||
description.appendText("missing property " + this.name);
|
||||
description.appendText("missing "
|
||||
+ this.itemType.toString().toLowerCase() + " " + this.name);
|
||||
}
|
||||
else {
|
||||
description.appendText("was property ").appendValue(property);
|
||||
description.appendText(
|
||||
"was " + this.itemType.toString().toLowerCase() + " ")
|
||||
.appendValue(property);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user