package cz.coffei.foodo.data.rest; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import cz.coffei.foodo.data.rest.conversions.LocalTimeDeserializer; import cz.coffei.foodo.data.rest.conversions.LocalTimeSerializer; import cz.coffei.foodo.data.rest.conversions.TimestampSerializer; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.ext.ContextResolver; import javax.ws.rs.ext.Provider; import java.sql.Timestamp; import java.time.LocalTime; /** * Created by jtrantin on 10.8.15. */ @Provider @Produces( MediaType.APPLICATION_JSON ) public class JacksonProducer implements ContextResolver<ObjectMapper> { private final ObjectMapper json; public JacksonProducer() { this.json = new ObjectMapper(); SimpleModule module = new SimpleModule("Serializers module"); module.addSerializer(LocalTime.class, new LocalTimeSerializer()); module.addDeserializer(LocalTime.class, new LocalTimeDeserializer()); module.addSerializer(Timestamp.class, new TimestampSerializer()); this.json.registerModule(module); } @Override public ObjectMapper getContext( Class<?> type ) { return json; } }