package eu.eudat; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.json.JsonMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import eu.eudat.data.BaseEntity; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.scheduling.annotation.EnableAsync; @SpringBootApplication(scanBasePackages = { "eu.eudat", "eu.eudat.depositinterface", "gr.cite", "gr.cite.tools", "gr.cite.commons" }) @EntityScan({ "eu.eudat.data"}) @EnableAsync public class EuDatApplication extends SpringBootServletInitializer { @Bean @Primary public ObjectMapper primaryObjectMapper() { return JsonMapper.builder().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) .serializationInclusion(JsonInclude.Include.NON_NULL) .addModule(new JavaTimeModule()).build(); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(EuDatApplication.class); } public static void main(String[] args) { SpringApplication.run(EuDatApplication.class, args); } }