From 382936f2111079dcba927f6c6e77bfa55d9f5be0 Mon Sep 17 00:00:00 2001 From: Sammy Chu Date: Tue, 7 May 2019 16:59:20 +0800 Subject: [PATCH] #177 Avoid explicitly inject ObjectMapper to the ObjectMapper --- .../graphql/servlet/ConfiguringObjectMapperProvider.java | 4 ---- .../graphql/servlet/internal/VariablesDeserializer.java | 8 ++++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/main/java/graphql/servlet/ConfiguringObjectMapperProvider.java b/src/main/java/graphql/servlet/ConfiguringObjectMapperProvider.java index 55f405b5..7fdb2fed 100644 --- a/src/main/java/graphql/servlet/ConfiguringObjectMapperProvider.java +++ b/src/main/java/graphql/servlet/ConfiguringObjectMapperProvider.java @@ -23,10 +23,6 @@ public ObjectMapper provide() { SerializationFeature.FAIL_ON_EMPTY_BEANS).registerModule(new Jdk8Module()); objectMapperConfigurer.configure(mapper); - InjectableValues.Std injectableValues = new InjectableValues.Std(); - injectableValues.addValue(ObjectMapper.class, mapper); - mapper.setInjectableValues(injectableValues); - return mapper; } } diff --git a/src/main/java/graphql/servlet/internal/VariablesDeserializer.java b/src/main/java/graphql/servlet/internal/VariablesDeserializer.java index da3f532f..8427d33e 100644 --- a/src/main/java/graphql/servlet/internal/VariablesDeserializer.java +++ b/src/main/java/graphql/servlet/internal/VariablesDeserializer.java @@ -1,10 +1,10 @@ package graphql.servlet.internal; import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.util.Map; @@ -15,17 +15,17 @@ public class VariablesDeserializer extends JsonDeserializer> { @Override public Map deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { - return deserializeVariablesObject(p.readValueAs(Object.class), (ObjectMapper) ctxt.findInjectableValue(ObjectMapper.class.getName(), null, null)); + return deserializeVariablesObject(p.readValueAs(Object.class), p.getCodec()); } - public static Map deserializeVariablesObject(Object variables, ObjectMapper mapper) { + public static Map deserializeVariablesObject(Object variables, ObjectCodec codec) { if (variables instanceof Map) { @SuppressWarnings("unchecked") Map genericVariables = (Map) variables; return genericVariables; } else if (variables instanceof String) { try { - return mapper.readValue((String) variables, new TypeReference>() {}); + return codec.readValue(codec.getFactory().createParser((String) variables), new TypeReference>() {}); } catch (IOException e) { throw new RuntimeException(e); }