Commit 38d36ab1 authored by Madhura Bhave's avatar Madhura Bhave

Document how to add metadata for collection and enum default values

Closes gh-12874
parent 56c2a52e
...@@ -814,6 +814,51 @@ special handling for collection types (that is detected even if only a getter is ...@@ -814,6 +814,51 @@ special handling for collection types (that is detected even if only a getter is
The annotation processor also supports the use of the `@Data`, `@Getter`, and `@Setter` The annotation processor also supports the use of the `@Data`, `@Getter`, and `@Setter`
lombok annotations. lombok annotations.
The annotation processor cannot auto-detect default values for ``Enum``s and ``Collections``s.
In the cases where a `Collection` or `Enum` property has a non-empty default value,
<<configuration-metadata-additional-metadata,manual metadata>> should be provided.
Consider the following class:
[source,java,indent=0,subs="verbatim,quotes,attributes"]
----
@ConfigurationProperties(prefix="rabbit")
public class RabbitProperties {
private List<String> addresses = new ArrayList<>(Arrays.asList("a", "b")) ;
private ContainerType = ContainerType.SIMPLE;
// ... getter and setters
public enum ContainerType {
SIMPLE,
DIRECT
}
}
----
In order to document default values for properties in the class above, you could add the following
JSON to <<configuration-metadata-additional-metadata,the manual metadata of the module>>:
[source,json,indent=0]
----
{
"name": "rabbit.addresses",
"defaultValue": "a, b"
},
{
"name": "rabbit.container-type",
"defaultValue": "simple"
}
----
[NOTE] [NOTE]
==== ====
If you are using AspectJ in your project, you need to make sure that the annotation If you are using AspectJ in your project, you need to make sure that the annotation
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment