Skip to content

Commit 407842e

Browse files
committed
AbstractJackson2HttpMessageConverter
1 parent 29603ab commit 407842e

File tree

3 files changed

+14
-49
lines changed

3 files changed

+14
-49
lines changed

spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlHttpHandler.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,13 @@
2929
import javax.servlet.http.HttpServletRequest;
3030
import javax.servlet.http.Part;
3131

32-
import com.fasterxml.jackson.databind.ObjectMapper;
3332
import org.apache.commons.logging.Log;
3433
import org.apache.commons.logging.LogFactory;
3534
import org.springframework.graphql.server.support.MultipartVariableMapper;
35+
import org.springframework.http.HttpHeaders;
36+
import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter;
37+
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
38+
import org.springframework.http.converter.json.MappingJacksonInputMessage;
3639
import org.springframework.web.multipart.MultipartFile;
3740
import org.springframework.web.multipart.MultipartHttpServletRequest;
3841
import reactor.core.publisher.Mono;
@@ -76,7 +79,7 @@ public class GraphQlHttpHandler {
7679

7780
private final WebGraphQlHandler graphQlHandler;
7881

79-
private final PartReader partReader;
82+
private final AbstractJackson2HttpMessageConverter messageConverter;
8083

8184
/**
8285
* Create a new instance.
@@ -85,14 +88,14 @@ public class GraphQlHttpHandler {
8588
public GraphQlHttpHandler(WebGraphQlHandler graphQlHandler) {
8689
Assert.notNull(graphQlHandler, "WebGraphQlHandler is required");
8790
this.graphQlHandler = graphQlHandler;
88-
this.partReader = new JacksonPartReader(new ObjectMapper());
91+
this.messageConverter = new MappingJackson2HttpMessageConverter();
8992
}
9093

91-
public GraphQlHttpHandler(WebGraphQlHandler graphQlHandler, PartReader partReader) {
94+
public GraphQlHttpHandler(WebGraphQlHandler graphQlHandler, AbstractJackson2HttpMessageConverter messageConverter) {
9295
Assert.notNull(graphQlHandler, "WebGraphQlHandler is required");
93-
Assert.notNull(partReader, "PartConverter is required");
96+
Assert.notNull(messageConverter, "PartConverter is required");
9497
this.graphQlHandler = graphQlHandler;
95-
this.partReader = partReader;
98+
this.messageConverter = messageConverter;
9699
}
97100

98101
/**
@@ -138,7 +141,7 @@ public ServerResponse handleMultipartRequest(ServerRequest serverRequest) throws
138141
final Map<String, Object> queryVariables = getFromMapOrEmpty(inputQuery, "variables");
139142
final Map<String, Object> extensions = getFromMapOrEmpty(inputQuery, "extensions");
140143

141-
Map<String, MultipartFile> fileParams = readMultipartFiles(httpServletRequest);
144+
Map<String, MultipartFile> fileParams = getMultipartFiles(httpServletRequest);
142145

143146
Map<String, List<String>> fileMappings = Optional.ofNullable(this.<Map<String, List<String>>>deserializePart(
144147
httpServletRequest,
@@ -195,7 +198,9 @@ private <T> T deserializePart(HttpServletRequest httpServletRequest, String name
195198
return null;
196199
}
197200
try(InputStream inputStream = part.getInputStream()) {
198-
return partReader.readPart(inputStream, type);
201+
return (T) messageConverter.read(
202+
type, null, new MappingJacksonInputMessage(inputStream, new HttpHeaders())
203+
);
199204
} catch (IOException e) {
200205
throw new RuntimeException(e);
201206
}
@@ -212,7 +217,7 @@ private Map<String, Object> getFromMapOrEmpty(Map<String, Object> input, String
212217
}
213218
}
214219

215-
private static Map<String, MultipartFile> readMultipartFiles(HttpServletRequest httpServletRequest) {
220+
private Map<String, MultipartFile> getMultipartFiles(HttpServletRequest httpServletRequest) {
216221
Assert.isInstanceOf(MultipartHttpServletRequest.class, httpServletRequest,
217222
"Request should be of type MultipartHttpServletRequest");
218223
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) httpServletRequest;

spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/JacksonPartReader.java

Lines changed: 0 additions & 32 deletions
This file was deleted.

spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/PartReader.java

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)