From 6602fa3c90e5e39f964de7d0c6911ad8f489d442 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Fri, 13 Jul 2018 09:19:17 +0200 Subject: [PATCH 1/2] Clean line breaks in configuration metadata descriptions. Closes gh-13601 --- .../configurationprocessor/TypeUtils.java | 1 + ...ationMetadataAnnotationProcessorTests.java | 15 +++++ .../simple/DescriptionProperties.java | 56 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/DescriptionProperties.java diff --git a/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/TypeUtils.java b/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/TypeUtils.java index 01254f949d3..9c04c6abd41 100644 --- a/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/TypeUtils.java +++ b/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/TypeUtils.java @@ -142,6 +142,7 @@ class TypeUtils { String javadoc = (element != null ? this.env.getElementUtils().getDocComment(element) : null); if (javadoc != null) { + javadoc = javadoc.replaceAll("\\n", ""); javadoc = javadoc.trim(); } return ("".equals(javadoc) ? null : javadoc); 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 65ac9bb67e4..d3eaecf1afd 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 @@ -55,6 +55,7 @@ import org.springframework.boot.configurationsample.method.MethodAndClassConfig; import org.springframework.boot.configurationsample.method.SimpleMethodConfig; import org.springframework.boot.configurationsample.simple.ClassWithNestedProperties; import org.springframework.boot.configurationsample.simple.DeprecatedSingleProperty; +import org.springframework.boot.configurationsample.simple.DescriptionProperties; import org.springframework.boot.configurationsample.simple.HierarchicalProperties; import org.springframework.boot.configurationsample.simple.NotAnnotated; import org.springframework.boot.configurationsample.simple.SimpleArrayProperties; @@ -192,6 +193,20 @@ public class ConfigurationMetadataAnnotationProcessorTests { .fromSource(HierarchicalProperties.class)); } + @Test + public void descriptionProperties() { + ConfigurationMetadata metadata = compile(DescriptionProperties.class); + assertThat(metadata).has(Metadata.withGroup("description") + .fromSource(DescriptionProperties.class)); + assertThat(metadata).has(Metadata.withProperty("description.simple", String.class) + .fromSource(DescriptionProperties.class) + .withDescription("A simple description.")); + assertThat(metadata).has(Metadata + .withProperty("description.multi-line", String.class) + .fromSource(DescriptionProperties.class).withDescription( + "This is a lengthy description that spans across multiple lines to showcase that the carriage return is cleaned automatically.")); + } + @Test @SuppressWarnings("deprecation") public void deprecatedProperties() throws Exception { diff --git a/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/DescriptionProperties.java b/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/DescriptionProperties.java new file mode 100644 index 00000000000..7077b4070df --- /dev/null +++ b/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/simple/DescriptionProperties.java @@ -0,0 +1,56 @@ +/* + * Copyright 2012-2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.configurationsample.simple; + +import org.springframework.boot.configurationsample.ConfigurationProperties; + +/** + * Configuration properties with various description styles. + * + * @author Stephane Nicoll + */ +@ConfigurationProperties("description") +public class DescriptionProperties { + + /** + * A simple description. + */ + private String simple; + + /** + * This is a lengthy description that spans across multiple lines to showcase that the + * carriage return is cleaned automatically. + */ + private String multiLine; + + public String getSimple() { + return this.simple; + } + + public void setSimple(String simple) { + this.simple = simple; + } + + public String getMultiLine() { + return this.multiLine; + } + + public void setMultiLine(String multiLine) { + this.multiLine = multiLine; + } + +} From e556c04d833cb595f0ba733700c222da31f2c5a6 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Fri, 13 Jul 2018 09:21:27 +0200 Subject: [PATCH 2/2] Remove class file --- .../fieldvalues/FieldValues.class | Bin 1603 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/fieldvalues/FieldValues.class diff --git a/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/fieldvalues/FieldValues.class b/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/fieldvalues/FieldValues.class deleted file mode 100644 index 4b15ca5a34e7747e03445d399762031fd5e588be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1603 zcmb7EZFAE`5PmKRmZK;yHYFv5riB#h2pSif7D&>xapI&-jh)&ig+Kw>kv*c0l#yll z&_C3#z<6NVnf`$OD5lSy&avrCKQNlvy=QlCZ|~VX{qye6zX7b^$iy7BlgN)_3_AvP zllW0C3sUS!@zXepxGPsBDaumpOYyT56%$p|4%-quG@0m; zfnNozYOPWz?LOHmm#Q^^bn%(<+{v~bzm=^O4^(DOKzrmrLz6<+@yd<~AaMsR4*1rw0ZdZ+P+HJVmeK zNJ}FfHmPAhbLu@DZ%Myr(;E|ku4T9jaTea!jJ@&xi5TdOQ!y&2E;YzPV%_t-XhUE$ zvvfcjwt^#Cr;DENmb%AvH>^4JHZ95ZMq5Xk)u0H+?^doXF#32<#Puu$Aqc$a!go&awL<2!G3xzbM-X{HE9HhHJRHJMhJBrCn5HK|sZY%6_RYZ9+8DOOs@d11xh5&eNt zu7F4O8wfi+(!;2oKGQ?O9_zu7B5A+Ecn>DkL=ToUP1=l@vJ-DH-NOtWsUFhy%