diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/fieldvalues/javac/JavaCompilerFieldValuesParser.java b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/fieldvalues/javac/JavaCompilerFieldValuesParser.java index 64fd29dad60..7e574f1db33 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/fieldvalues/javac/JavaCompilerFieldValuesParser.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/fieldvalues/javac/JavaCompilerFieldValuesParser.java @@ -98,6 +98,8 @@ public class JavaCompilerFieldValuesParser implements FieldValuesParser { values.put("StandardCharsets.UTF_8", "UTF-8"); values.put("StandardCharsets.UTF_16", "UTF-16"); values.put("StandardCharsets.US_ASCII", "US-ASCII"); + values.put("Duration.ZERO", 0); + values.put("Period.ZERO", 0); WELL_KNOWN_STATIC_FINALS = Collections.unmodifiableMap(values); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/fieldvalues/AbstractFieldValuesProcessorTests.java b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/fieldvalues/AbstractFieldValuesProcessorTests.java index da4c0cf5d17..883d2542b39 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/fieldvalues/AbstractFieldValuesProcessorTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/fieldvalues/AbstractFieldValuesProcessorTests.java @@ -94,6 +94,7 @@ public abstract class AbstractFieldValuesProcessorTests { assertThat(values.get("durationMinutes")).isEqualTo("30m"); assertThat(values.get("durationHours")).isEqualTo("40h"); assertThat(values.get("durationDays")).isEqualTo("50d"); + assertThat(values.get("durationZero")).isEqualTo(0); assertThat(values.get("dataSizeNone")).isNull(); assertThat(values.get("dataSizeBytes")).isEqualTo("5B"); assertThat(values.get("dataSizeKilobytes")).isEqualTo("10KB"); @@ -105,6 +106,7 @@ public abstract class AbstractFieldValuesProcessorTests { assertThat(values.get("periodWeeks")).isEqualTo("2w"); assertThat(values.get("periodMonths")).isEqualTo("10m"); assertThat(values.get("periodYears")).isEqualTo("15y"); + assertThat(values.get("periodZero")).isEqualTo(0); } @SupportedAnnotationTypes({ "org.springframework.boot.configurationsample.ConfigurationProperties" }) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/fieldvalues/FieldValues.java b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/fieldvalues/FieldValues.java index 1c03f18e72a..ee8578c8a25 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/fieldvalues/FieldValues.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/fieldvalues/FieldValues.java @@ -125,6 +125,8 @@ public class FieldValues { private Duration durationDays = Duration.ofDays(50); + private Duration durationZero = Duration.ZERO; + private DataSize dataSizeNone; private DataSize dataSizeBytes = DataSize.ofBytes(5); @@ -147,4 +149,6 @@ public class FieldValues { private Period periodYears = Period.ofYears(15); + private Period periodZero = Period.ZERO; + }