diff --git a/spring-boot-docs/src/main/asciidoc/appendix-configuration-metadata.adoc b/spring-boot-docs/src/main/asciidoc/appendix-configuration-metadata.adoc
index 805b33869c..c1b90d4fe5 100644
--- a/spring-boot-docs/src/main/asciidoc/appendix-configuration-metadata.adoc
+++ b/spring-boot-docs/src/main/asciidoc/appendix-configuration-metadata.adoc
@@ -98,6 +98,7 @@ given property. When configuring the `server.tomcat.compression` property, a too
use it to offer some auto-completion help for the `off`, `on` and `force` values.
+
[[configuration-metadata-group-attributes]]
==== Group Attributes
The JSON object contained in the `groups` array can contain the following attributes:
@@ -189,6 +190,7 @@ The JSON object contained in the `properties` array can contain the following at
|===
+
[[configuration-metadata-hints-attributes]]
==== Hint Attributes
The JSON object contained in the `hints` array can contain the following attributes:
@@ -238,8 +240,10 @@ appear multiple times within a meta-data file. For example, Spring Boot binds
offering overlap of property names. Consumers of meta-data should take care to ensure
that they support such scenarios.
-=== Providing manual hints
+
+[[configuration-metadata-providing-manual-hints]]
+=== Providing manual hints
To improve the user experience and further assist the user in configuring a given
property, you can provide additional meta-data that describes the list of potential
values for a property.
@@ -252,6 +256,8 @@ If your property is of type `Map`, you can provide hints for both the keys and t
values (but not for the map itself). The special `.keys` and `.values` suffixes must
be used to refer to the keys and the values respectively.
+
+
[[configuration-metadata-annotation-processor]]
=== Generating your own meta-data using the annotation processor
You can easily generate your own configuration meta-data file from items annotated with
diff --git a/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/metadata/ItemHint.java b/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/metadata/ItemHint.java
index cee2ddb598..954e7f45a6 100644
--- a/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/metadata/ItemHint.java
+++ b/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/metadata/ItemHint.java
@@ -22,13 +22,13 @@ import java.util.Collections;
import java.util.List;
/**
- * Provide hints on an {@link ItemMetadata}. Defines the list of possible values for
- * a particular item as {@link ItemHint.ValueHint} instances.
+ * Provide hints on an {@link ItemMetadata}. Defines the list of possible values for a
+ * particular item as {@link ItemHint.ValueHint} instances.
*
* The {@code name} of the hint is the name of the related property with one major
- * exception for map types as both the keys and values of the map can have hints. In
- * such a case, the hint should be suffixed by ".key" or ".values" respectively. Creating
- * a hint for a map using its property name is therefore invalid.
+ * exception for map types as both the keys and values of the map can have hints. In such
+ * a case, the hint should be suffixed by ".key" or ".values" respectively. Creating a
+ * hint for a map using its property name is therefore invalid.
*
* @author Stephane Nicoll
* @since 1.3.0
@@ -73,13 +73,12 @@ public class ItemHint implements Comparable {
@Override
public String toString() {
- return "ItemHint{" + "name='" + this.name + '\'' +
- ", values=" + this.values +
- '}';
+ return "ItemHint{" + "name='" + this.name + '\'' + ", values=" + this.values
+ + '}';
}
-
public static class ValueHint {
+
private final Object value;
private final String description;
@@ -99,9 +98,10 @@ public class ItemHint implements Comparable {
@Override
public String toString() {
- return "ValueHint{" + "value=" + this.value +
- ", description='" + this.description + '\'' +
- '}';
+ return "ValueHint{" + "value=" + this.value + ", description='"
+ + this.description + '\'' + '}';
}
+
}
+
}
diff --git a/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/metadata/JsonMarshaller.java b/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/metadata/JsonMarshaller.java
index 4483274ea9..bb1692fa77 100644
--- a/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/metadata/JsonMarshaller.java
+++ b/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/metadata/JsonMarshaller.java
@@ -106,7 +106,6 @@ public class JsonMarshaller {
return jsonObject;
}
-
private void putIfPresent(JSONObject jsonObject, String name, Object value) {
if (value != null) {
jsonObject.put(name, value);
@@ -192,7 +191,6 @@ public class JsonMarshaller {
return new ItemHint.ValueHint(value, description);
}
-
private Object readItemValue(Object value) {
if (value instanceof JSONArray) {
JSONArray array = (JSONArray) value;
diff --git a/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataAnnotationProcessorTests.java b/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataAnnotationProcessorTests.java
index c044262103..ac85dfb755 100644
--- a/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataAnnotationProcessorTests.java
+++ b/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataAnnotationProcessorTests.java
@@ -350,24 +350,23 @@ public class ConfigurationMetadataAnnotationProcessorTests {
@Test
public void mergingOfSimpleHint() throws Exception {
- writeAdditionalHints(
- ItemHint.newHint("simple.the-name", new ItemHint.ValueHint("boot", "Bla bla"),
- new ItemHint.ValueHint("spring", null)));
+ writeAdditionalHints(ItemHint.newHint("simple.the-name", new ItemHint.ValueHint(
+ "boot", "Bla bla"), new ItemHint.ValueHint("spring", null)));
ConfigurationMetadata metadata = compile(SimpleProperties.class);
- assertThat(metadata, containsHint("simple.the-name")
- .withValue(0, "boot", "Bla bla")
- .withValue(1, "spring", null));
+ assertThat(metadata,
+ containsHint("simple.the-name").withValue(0, "boot", "Bla bla")
+ .withValue(1, "spring", null));
}
@Test
public void mergingOfHintWithNonCanonicalName() throws Exception {
- writeAdditionalHints(
- ItemHint.newHint("simple.theName", new ItemHint.ValueHint("boot", "Bla bla")));
+ writeAdditionalHints(ItemHint.newHint("simple.theName", new ItemHint.ValueHint(
+ "boot", "Bla bla")));
ConfigurationMetadata metadata = compile(SimpleProperties.class);
- assertThat(metadata, containsHint("simple.the-name")
- .withValue(0, "boot", "Bla bla"));
+ assertThat(metadata,
+ containsHint("simple.the-name").withValue(0, "boot", "Bla bla"));
}
@Test
diff --git a/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataMatchers.java b/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataMatchers.java
index 680ddc7407..49f7a5f2d8 100644
--- a/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataMatchers.java
+++ b/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataMatchers.java
@@ -241,8 +241,7 @@ public class ConfigurationMetadataMatchers {
description.appendText("missing hint " + this.name);
}
else {
- description.appendText(
- "was hint ").appendValue(itemHint);
+ description.appendText("was hint ").appendValue(itemHint);
}
}
@@ -260,8 +259,7 @@ public class ConfigurationMetadataMatchers {
return new ContainsHintMatcher(this.name, values);
}
- private ItemHint getFirstHintWithName(ConfigurationMetadata metadata,
- String name) {
+ private ItemHint getFirstHintWithName(ConfigurationMetadata metadata, String name) {
for (ItemHint hint : metadata.getHints()) {
if (name.equals(hint.getName())) {
return hint;
@@ -273,8 +271,11 @@ public class ConfigurationMetadataMatchers {
}
public static class ValueHintMatcher extends BaseMatcher {
+
private final int index;
+
private final Object value;
+
private final String description;
public ValueHintMatcher(int index, Object value, String description) {
@@ -290,12 +291,11 @@ public class ConfigurationMetadataMatchers {
return false;
}
ItemHint.ValueHint valueHint = hint.getValues().get(this.index);
- if (this.value != null
- && !this.value.equals(valueHint.getValue())) {
+ if (this.value != null && !this.value.equals(valueHint.getValue())) {
return false;
}
if (this.description != null
- && !this.description.equals(valueHint.getDescription())) {
+ && !this.description.equals(valueHint.getDescription())) {
return false;
}
return true;
@@ -303,7 +303,7 @@ public class ConfigurationMetadataMatchers {
@Override
public void describeTo(Description description) {
- description.appendText("value hint at index '"+this.index+"'");
+ description.appendText("value hint at index '" + this.index + "'");
if (this.value != null) {
description.appendText(" value ").appendValue(this.value);
}
@@ -312,15 +312,6 @@ public class ConfigurationMetadataMatchers {
}
}
- private ItemHint.ValueHint getValueHint(ItemHint hint) {
- for (ItemHint.ValueHint valueHint : hint.getValues()) {
- if (this.value.equals(valueHint.getValue())) {
- return valueHint;
- }
- }
- return null;
- }
-
}
}
diff --git a/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/metadata/JsonMarshallerTests.java b/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/metadata/JsonMarshallerTests.java
index 6ab1f7e041..8a05d70027 100644
--- a/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/metadata/JsonMarshallerTests.java
+++ b/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/metadata/JsonMarshallerTests.java
@@ -74,7 +74,8 @@ public class JsonMarshallerTests {
containsProperty("f").withDefaultValue(is(new boolean[] { true, false })));
assertThat(read, containsGroup("d"));
assertThat(read, containsHint("a.b"));
- assertThat(read, containsHint("c").withValue(0, 123, "hey").withValue(1, 456, null));
+ assertThat(read,
+ containsHint("c").withValue(0, 123, "hey").withValue(1, 456, null));
}
}