Skip to content

Commit 079bf98

Browse files
committed
Polish "Do not set primitive default value for unsupported expressions"
See gh-46551
1 parent 5cf373a commit 079bf98

File tree

6 files changed

+13
-109
lines changed

6 files changed

+13
-109
lines changed

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/metadata/JsonConverter.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,6 @@ private void putHintValue(JSONObject jsonObject, Object value) throws Exception
145145
}
146146

147147
private void putDefaultValue(JSONObject jsonObject, Object value) throws Exception {
148-
if (value == null) {
149-
return;
150-
}
151148
Object defaultValue = extractItemValue(value);
152149
jsonObject.put("defaultValue", defaultValue);
153150
}

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataAnnotationProcessorTests.java

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,13 @@
1818

1919
import java.time.temporal.ChronoField;
2020
import java.time.temporal.ChronoUnit;
21-
import java.util.Arrays;
2221

2322
import org.junit.jupiter.api.Test;
2423

2524
import org.springframework.boot.configurationprocessor.metadata.ConfigurationMetadata;
2625
import org.springframework.boot.configurationprocessor.metadata.ItemMetadata;
2726
import org.springframework.boot.configurationprocessor.metadata.Metadata;
28-
import org.springframework.boot.configurationprocessor.test.CompiledMetadataReader;
29-
import org.springframework.boot.configurationprocessor.test.TestConfigurationMetadataAnnotationProcessor;
3027
import org.springframework.boot.configurationsample.deprecation.Dbcp2Configuration;
31-
import org.springframework.boot.configurationsample.fieldvalues.ArithmeticExpressionProperties;
3228
import org.springframework.boot.configurationsample.method.NestedPropertiesMethod;
3329
import org.springframework.boot.configurationsample.record.ExampleRecord;
3430
import org.springframework.boot.configurationsample.record.NestedPropertiesRecord;
@@ -71,9 +67,6 @@
7167
import org.springframework.boot.configurationsample.specific.SimplePojo;
7268
import org.springframework.boot.configurationsample.specific.StaticAccessor;
7369
import org.springframework.core.test.tools.CompilationException;
74-
import org.springframework.core.test.tools.ResourceFile;
75-
import org.springframework.core.test.tools.SourceFile;
76-
import org.springframework.core.test.tools.TestCompiler;
7770

7871
import static org.assertj.core.api.Assertions.assertThat;
7972
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
@@ -89,7 +82,6 @@
8982
* @author Pavel Anisimov
9083
* @author Scott Frederick
9184
* @author Moritz Halbritter
92-
* @author Hyeon Jae Kim
9385
*/
9486
class ConfigurationMetadataAnnotationProcessorTests extends AbstractMetadataGenerationTests {
9587

@@ -578,19 +570,4 @@ void recordPropertiesWithDescriptions() {
578570
.withDescription("last description in Javadoc"));
579571
}
580572

581-
@Test
582-
void arithmeticExpressionPropertiesShouldOmitUnknownDefaultValues(){
583-
ConfigurationMetadata metadata = compile(ArithmeticExpressionProperties.class);
584-
assertThat(metadata).has(Metadata.withProperty("arithmetic.calculated", Integer.class)
585-
.fromSource(ArithmeticExpressionProperties.class));
586-
assertThat(metadata).has(Metadata.withProperty("arithmetic.literal", Integer.class)
587-
.fromSource(ArithmeticExpressionProperties.class)
588-
.withDefaultValue(100));
589-
assertThat(metadata).has(Metadata.withProperty("arithmetic.simple-flag", Boolean.class)
590-
.fromSource(ArithmeticExpressionProperties.class)
591-
.withDefaultValue(true));
592-
assertThat(metadata).has(Metadata.withProperty("arithmetic.complex-flag", Boolean.class)
593-
.fromSource(ArithmeticExpressionProperties.class));
594-
}
595-
596573
}

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/fieldvalues/AbstractFieldValuesProcessorTests.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,15 @@ void getFieldValues() {
6161
assertThat(values.get("bool")).isEqualTo(true);
6262
assertThat(values.get("boolNone")).isEqualTo(false);
6363
assertThat(values.get("boolConst")).isEqualTo(true);
64+
assertThat(values.get("boolInverted")).isNull();
6465
assertThat(values.get("boolObject")).isEqualTo(true);
6566
assertThat(values.get("boolObjectNone")).isNull();
6667
assertThat(values.get("boolObjectConst")).isEqualTo(true);
6768
assertThat(values.get("integer")).isEqualTo(1);
6869
assertThat(values.get("integerNone")).isEqualTo(0);
6970
assertThat(values.get("integerConst")).isEqualTo(2);
71+
assertThat(values.get("integerArithmetic")).isNull();
72+
assertThat(values.get("integerMax")).isNull();
7073
assertThat(values.get("integerObject")).isEqualTo(3);
7174
assertThat(values.get("integerObjectNone")).isNull();
7275
assertThat(values.get("integerObjectConst")).isEqualTo(4);
@@ -84,6 +87,7 @@ void getFieldValues() {
8487
assertThat(values.get("stringArrayConst")).isEqualTo(new Object[] { "OK", "KO" });
8588
assertThat(values.get("stringArrayConstElements")).isEqualTo(new Object[] { "c" });
8689
assertThat(values.get("integerArray")).isEqualTo(new Object[] { 42, 24 });
90+
assertThat(values.get("intArrayUnsupportedExpression")).isNull();
8791
assertThat(values.get("unknownArray")).isNull();
8892
assertThat(values.get("durationNone")).isNull();
8993
assertThat(values.get("durationNanos")).isEqualTo("5ns");

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/fieldvalues/ArithmeticExpressionProperties.java

Lines changed: 0 additions & 83 deletions
This file was deleted.

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/fieldvalues/FieldValues.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ public class FieldValues {
6464

6565
private boolean boolConst = BOOLEAN_CONST;
6666

67+
private boolean boolInverted = !false;
68+
6769
private Boolean boolObject = Boolean.TRUE;
6870

6971
private Boolean boolObjectNone;
@@ -76,6 +78,10 @@ public class FieldValues {
7678

7779
private int integerConst = INTEGER_CONST;
7880

81+
private int integerArithmetic = 10 * 10;
82+
83+
private int integerMax = Math.max(10, 20);
84+
7985
private Integer integerObject = 3;
8086

8187
private Integer integerObjectNone;
@@ -110,6 +116,8 @@ public class FieldValues {
110116

111117
private Integer[] integerArray = new Integer[] { 42, 24 };
112118

119+
private int[] intArrayUnsupportedExpression = new int[] { 10 + 10 };
120+
113121
private UnknownElementType[] unknownArray = new UnknownElementType[] { new UnknownElementType() };
114122

115123
private Duration durationNone;

src/checkstyle/checkstyle-suppressions.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,4 +85,5 @@
8585
<suppress files="MyInterface\.java" checks="InterfaceIsType" />
8686
<suppress files="SpringBootBanner\.java" checks="SpringLeadingWhitespace" />
8787
<suppress files="LoadTimeWeaverAwareConsumerContainers\.java" checks="InterfaceIsType" />
88+
<suppress files="FieldValues\.java" checks="SimplifyBooleanExpression" />
8889
</suppressions>

0 commit comments

Comments
 (0)