When using @ConfigurationProperties, @NestedConfigurationProperty and spring-boot-configuration-processor together with classes from another JAR, the generated JSON file will not have defaultvalue and description properties set even if default values and javadoc are present in the target class.
Consider the example: https://github.com/ZIRAKrezovic/configuration-processor-issue
The class referencing property class from Spring Boot Autoconfigure will not contain any description or defaultValue: https://github.com/ZIRAKrezovic/configuration-processor-issue/blob/main/src/main/java/com/example/demo/DemoConfigurationProperties.java
The same class copied into the code will contain description and defaultValue: https://github.com/ZIRAKrezovic/configuration-processor-issue/blob/main/src/main/java/com/example/demo/ArtemisProperties.java
Snippet of the generated metadata JSON for both prefixes
{
"name": "spring.artemis.embedded.enabled",
"type": "java.lang.Boolean",
"sourceType": "org.springframework.boot.autoconfigure.jms.artemis.ArtemisProperties$Embedded"
},
{
"name": "spring.artemis-included-in-source.embedded.enabled",
"type": "java.lang.Boolean",
"description": "Whether to enable embedded mode if the Artemis server APIs are available.",
"sourceType": "com.example.demo.ArtemisProperties$Embedded",
"defaultValue": true
}
This is an undocumented behavior and should be at least documented if it can't be outright fixed.
Comment From: wilkinsona
In terms of functionality, this is a duplicate of https://github.com/spring-projects/spring-boot/issues/18366. Your point about the lack of documentation is a good one, though. We can use this issue to add something about the current limitations.