Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

package gov.va.med.pbm.ampl.configuration;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.util.List;

import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

/**
* The SpringConfiguration class extends the WebMvcConfigurationSupport.
*
* @author Ian Meinert
*
*/
@Configuration
public class SpringConfiguration extends WebMvcConfigurationSupport {

@Override
public final void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
for (HttpMessageConverter<?> converter : converters) {
if (converter instanceof AbstractJackson2HttpMessageConverter) {
AbstractJackson2HttpMessageConverter jacksonConverter = (AbstractJackson2HttpMessageConverter) converter;
ObjectMapper jacksonMapper = jacksonConverter.getObjectMapper();
Jackson8Module module = new Jackson8Module();

module.addStringSerializer(LocalDate.class, (val) -> val.toString());
module.addStringSerializer(LocalDateTime.class, (val) -> val.toString());
module.addStringSerializer(OffsetDateTime.class, (val) -> val.toString());

jacksonMapper.registerModule(module);
jacksonMapper.setSerializationInclusion(Include.NON_DEFAULT);
jacksonMapper.enable(SerializationFeature.INDENT_OUTPUT);
}
}

super.extendMessageConverters(converters);
}
}