Java tutorial
/* * Copyright 2014 Click Travel Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package com.clicktravel.common.http.application; import javax.ws.rs.ext.ContextResolver; import javax.ws.rs.ext.Provider; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.joda.JodaModule; @Provider public class ObjectMapperProvider implements ContextResolver<ObjectMapper> { final ObjectMapper objectMapper; public ObjectMapperProvider() { objectMapper = new ObjectMapper(); objectMapper.registerModule(new JodaModule()); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); objectMapper.setSerializationInclusion(Include.NON_NULL); // Swagger codegen generates the following code, but it seems to be redundant // as the Java model files for enums have @JsonValue on the toString() methods // objectMapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING); // objectMapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING); } @Override public ObjectMapper getContext(final Class<?> type) { return objectMapper; } }