-
Notifications
You must be signed in to change notification settings - Fork 220
Closed
Milestone
Description
Hi,
I am using Spring Boot Tools 1.16.0 in VS Code. I am observing a problem with property completion in application.yaml files, that occurs whenever a property (bar) is defined in a superclass (SuperclassProperties) of a type (NestedProperties), that can be provided as a List or Map (nested). The property (bar) is not found in that case and reported as invalid, only properties defined in the child class (foo) work correctly.
If the property nested is not defined as a list or map (private NestedProperties nested), the
bar property is explicitly listed in the spring-configuration-metadata.json file and code-completion works as expected.
Example:
package my.property.test;
import java.util.ArrayList;
import java.util.List;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties("myprops")
public class TestProperties {
private List<NestedProperties> nested = new ArrayList<>();
public List<NestedProperties> getNested() {
return nested;
}
public void setNested(List<NestedProperties> nested) {
this.nested = nested;
}
public static class NestedProperties extends SuperclassProperties {
private String foo;
public String getFoo() {
return foo;
}
public void setFoo(String foo) {
this.foo = foo;
}
}
public static class SuperclassProperties {
private String bar;
public String getBar() {
return bar;
}
public void setBar(String bar) {
this.bar = bar;
}
}
}{
"groups": [
{
"name": "myprops",
"type": "my.property.test.TestProperties",
"sourceType": "my.property.test.TestProperties"
}
],
"properties": [
{
"name": "myprops.nested",
"type": "java.util.List<my.property.test.TestProperties$NestedProperties>",
"sourceType": "my.property.test.TestProperties"
}
],
"hints": []
}Metadata
Metadata
Assignees
Labels
No labels
