Browse Source

Move Jackson datetime property beneath datatype

Closes gh-47327
pull/47334/head
Andy Wilkinson 3 months ago
parent
commit
8c7e0c675f
  1. 8
      documentation/spring-boot-docs/src/docs/antora/modules/how-to/pages/spring-mvc.adoc
  2. 2
      module/spring-boot-jackson/src/main/java/org/springframework/boot/jackson/autoconfigure/JacksonAutoConfiguration.java
  3. 18
      module/spring-boot-jackson/src/main/java/org/springframework/boot/jackson/autoconfigure/JacksonProperties.java
  4. 5
      module/spring-boot-jackson/src/test/java/org/springframework/boot/jackson/autoconfigure/JacksonAutoConfigurationTests.java

8
documentation/spring-boot-docs/src/docs/antora/modules/how-to/pages/spring-mvc.adoc

@ -62,6 +62,10 @@ These features are described in several enums (in Jackson) that map onto propert @@ -62,6 +62,10 @@ These features are described in several enums (in Jackson) that map onto propert
|===
| Enum | Property | Values
| javadoc:tools.jackson.databind.cfg.DateTimeFeature[]
| `spring.jackson.datatype.datetime.<feature_name>`
| `true`, `false`
| javadoc:tools.jackson.databind.cfg.EnumFeature[]
| `spring.jackson.datatype.enum.<feature_name>`
| `true`, `false`
@ -70,10 +74,6 @@ These features are described in several enums (in Jackson) that map onto propert @@ -70,10 +74,6 @@ These features are described in several enums (in Jackson) that map onto propert
| `spring.jackson.datatype.json-node.<feature_name>`
| `true`, `false`
| javadoc:tools.jackson.databind.DateTimeFeature[]
| `spring.jackson.datetime.<feature_name>`
| `true`, `false`
| javadoc:tools.jackson.databind.DeserializationFeature[]
| `spring.jackson.deserialization.<feature_name>`
| `true`, `false`

2
module/spring-boot-jackson/src/main/java/org/springframework/boot/jackson/autoconfigure/JacksonAutoConfiguration.java

@ -177,7 +177,7 @@ public final class JacksonAutoConfiguration { @@ -177,7 +177,7 @@ public final class JacksonAutoConfiguration {
configureFeatures(builder, this.jacksonProperties.getMapper(), builder::configure);
configureFeatures(builder, this.jacksonProperties.getRead(), builder::configure);
configureFeatures(builder, this.jacksonProperties.getWrite(), builder::configure);
configureFeatures(builder, this.jacksonProperties.getDatetime(), builder::configure);
configureFeatures(builder, this.jacksonProperties.getDatatype().getDatetime(), builder::configure);
configureFeatures(builder, this.jacksonProperties.getDatatype().getEnum(), builder::configure);
configureFeatures(builder, this.jacksonProperties.getDatatype().getJsonNode(), builder::configure);
configureDateFormat(builder);

18
module/spring-boot-jackson/src/main/java/org/springframework/boot/jackson/autoconfigure/JacksonProperties.java

@ -91,11 +91,6 @@ public class JacksonProperties { @@ -91,11 +91,6 @@ public class JacksonProperties {
*/
private final Map<JsonWriteFeature, Boolean> write = new EnumMap<>(JsonWriteFeature.class);
/**
* Jackson on/off features for DateTime processing.
*/
private final Map<DateTimeFeature, Boolean> datetime = new EnumMap<>(DateTimeFeature.class);
/**
* Controls the inclusion of properties during serialization. Configured with one of
* the values in Jackson's JsonInclude.Include enumeration.
@ -166,10 +161,6 @@ public class JacksonProperties { @@ -166,10 +161,6 @@ public class JacksonProperties {
return this.write;
}
public Map<DateTimeFeature, Boolean> getDatetime() {
return this.datetime;
}
public JsonInclude.@Nullable Include getDefaultPropertyInclusion() {
return this.defaultPropertyInclusion;
}
@ -251,6 +242,11 @@ public class JacksonProperties { @@ -251,6 +242,11 @@ public class JacksonProperties {
*/
private final Map<JsonNodeFeature, Boolean> jsonNode = new EnumMap<>(JsonNodeFeature.class);
/**
* Jackson on/off features for DateTimes.
*/
private final Map<DateTimeFeature, Boolean> datetime = new EnumMap<>(DateTimeFeature.class);
public Map<EnumFeature, Boolean> getEnum() {
return this.enumFeatures;
}
@ -259,6 +255,10 @@ public class JacksonProperties { @@ -259,6 +255,10 @@ public class JacksonProperties {
return this.jsonNode;
}
public Map<DateTimeFeature, Boolean> getDatetime() {
return this.datetime;
}
}
}

5
module/spring-boot-jackson/src/test/java/org/springframework/boot/jackson/autoconfigure/JacksonAutoConfigurationTests.java

@ -266,7 +266,7 @@ class JacksonAutoConfigurationTests { @@ -266,7 +266,7 @@ class JacksonAutoConfigurationTests {
@Test
void enableDatetimeFeature() {
this.contextRunner.withPropertyValues("spring.jackson.datetime.write-dates-as-timestamps:true")
this.contextRunner.withPropertyValues("spring.jackson.datatype.datetime.write-dates-as-timestamps:true")
.run((context) -> {
JsonMapper mapper = context.getBean(JsonMapper.class);
DateTimeFeature feature = DateTimeFeature.WRITE_DATES_AS_TIMESTAMPS;
@ -277,7 +277,8 @@ class JacksonAutoConfigurationTests { @@ -277,7 +277,8 @@ class JacksonAutoConfigurationTests {
@Test
void disableDatetimeFeature() {
this.contextRunner.withPropertyValues("spring.jackson.datetime.adjust-dates-to-context-time-zone:false")
this.contextRunner
.withPropertyValues("spring.jackson.datatype.datetime.adjust-dates-to-context-time-zone:false")
.run((context) -> {
JsonMapper mapper = context.getBean(JsonMapper.class);
assertThat(DateTimeFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE.enabledByDefault()).isTrue();

Loading…
Cancel
Save