package com.thinkbiganalytics.rest; /*- * #%L * thinkbig-commons-rest-client * %% * Copyright (C) 2017 ThinkBig Analytics * %% * 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. * #L% */ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.joda.JodaMapper; import javax.ws.rs.ext.ContextResolver; import javax.ws.rs.ext.Provider; /** * A Jersey client provider that adds Joda time mapping to the Object mapper. * * @see JodaMapper */ @Provider public class JodaTimeMapperProvider implements ContextResolver<ObjectMapper> { final ObjectMapper defaultObjectMapper; public JodaTimeMapperProvider() { defaultObjectMapper = createDefaultMapper(); } private static ObjectMapper createDefaultMapper() { final ObjectMapper result = new ObjectMapper(); result.enable(SerializationFeature.INDENT_OUTPUT); return result; } @Override public ObjectMapper getContext(final Class<?> type) { return new JodaMapper(); } }