|
41 | 41 | import com.fasterxml.jackson.databind.introspect.AnnotatedMethod; |
42 | 42 | import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; |
43 | 43 | import com.fasterxml.jackson.databind.json.JsonMapper; |
| 44 | +import com.fasterxml.jackson.databind.module.SimpleModule; |
44 | 45 | import com.fasterxml.jackson.databind.ser.BeanPropertyWriter; |
45 | 46 | import com.fasterxml.jackson.databind.ser.BeanSerializerFactory; |
46 | 47 | import com.fasterxml.jackson.databind.ser.BeanSerializerModifier; |
47 | 48 | import com.fasterxml.jackson.databind.ser.PropertyWriter; |
48 | 49 | import com.fasterxml.jackson.databind.ser.SerializerFactory; |
49 | 50 | import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter; |
50 | 51 | import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; |
| 52 | +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
51 | 53 | import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; |
52 | 54 | import org.apache.commons.logging.Log; |
53 | 55 | import org.apache.commons.logging.LogFactory; |
|
80 | 82 | import org.springframework.core.env.PropertySource; |
81 | 83 | import org.springframework.util.ClassUtils; |
82 | 84 | import org.springframework.util.StringUtils; |
| 85 | +import org.springframework.util.unit.DataSize; |
83 | 86 |
|
84 | 87 | /** |
85 | 88 | * {@link Endpoint @Endpoint} to expose application properties from |
@@ -188,12 +191,12 @@ protected void configureJsonMapper(JsonMapper.Builder builder) { |
188 | 191 | builder.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); |
189 | 192 | builder.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); |
190 | 193 | builder.configure(SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS, false); |
191 | | - JsonMapper.builder(); |
192 | 194 | builder.configure(MapperFeature.USE_STD_BEAN_NAMING, true); |
193 | 195 | builder.serializationInclusion(Include.NON_NULL); |
194 | 196 | applyConfigurationPropertiesFilter(builder); |
195 | 197 | applySerializationModifier(builder); |
196 | 198 | builder.addModule(new JavaTimeModule()); |
| 199 | + builder.addModule(new ConfigurationPropertiesModule()); |
197 | 200 | } |
198 | 201 |
|
199 | 202 | private void applyConfigurationPropertiesFilter(JsonMapper.Builder builder) { |
@@ -474,6 +477,17 @@ public void serializeAsField(Object pojo, JsonGenerator jgen, SerializerProvider |
474 | 477 |
|
475 | 478 | } |
476 | 479 |
|
| 480 | + /** |
| 481 | + * {@link SimpleModule} for configure the serializer. |
| 482 | + */ |
| 483 | + private static final class ConfigurationPropertiesModule extends SimpleModule { |
| 484 | + |
| 485 | + private ConfigurationPropertiesModule() { |
| 486 | + addSerializer(DataSize.class, ToStringSerializer.instance); |
| 487 | + } |
| 488 | + |
| 489 | + } |
| 490 | + |
477 | 491 | /** |
478 | 492 | * {@link BeanSerializerModifier} to return only relevant configuration properties. |
479 | 493 | */ |
|
0 commit comments