Skip to content

Commit f7bf613

Browse files
committed
SPR-5808 - Make HttpMessageConverterExtractor top level class
1 parent 59e41a2 commit f7bf613

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

org.springframework.web/src/main/java/org/springframework/web/client/RestTemplate.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ public <T> T getForObject(String url, Class<T> responseType, String... urlVariab
167167

168168
checkForSupportedMessageConverter(responseType);
169169
List<HttpMessageConverter<T>> supportedMessageConverters = getSupportedMessageConverters(responseType);
170-
return execute(url, HttpMethod.GET, new GetCallback<T>(responseType),
170+
return execute(url, HttpMethod.GET, new GetCallback<T>(supportedMessageConverters),
171171
new HttpMessageConverterExtractor<T>(responseType, supportedMessageConverters), urlVariables);
172172
}
173173

@@ -176,7 +176,7 @@ public <T> T getForObject(String url, Class<T> responseType, Map<String, String>
176176

177177
checkForSupportedMessageConverter(responseType);
178178
List<HttpMessageConverter<T>> supportedMessageConverters = getSupportedMessageConverters(responseType);
179-
return execute(url, HttpMethod.GET, new GetCallback<T>(responseType),
179+
return execute(url, HttpMethod.GET, new GetCallback<T>(supportedMessageConverters),
180180
new HttpMessageConverterExtractor<T>(responseType, supportedMessageConverters), urlVariables);
181181
}
182182

@@ -339,15 +339,15 @@ private void checkForSupportedMessageConverter(Class type) {
339339
/** Request callback implementation that prepares the request's accept headers. */
340340
private class GetCallback<T> implements RequestCallback {
341341

342-
private final Class<T> responseType;
342+
private final List<HttpMessageConverter<T>> messageConverters;
343343

344-
private GetCallback(Class<T> responseType) {
345-
this.responseType = responseType;
344+
private GetCallback(List<HttpMessageConverter<T>> messageConverters) {
345+
this.messageConverters = messageConverters;
346346
}
347347

348348
public void doWithRequest(ClientHttpRequest request) throws IOException {
349349
List<MediaType> allSupportedMediaTypes = new ArrayList<MediaType>();
350-
for (HttpMessageConverter<?> entityConverter : getSupportedMessageConverters(this.responseType)) {
350+
for (HttpMessageConverter<?> entityConverter : messageConverters) {
351351
List<MediaType> supportedMediaTypes = entityConverter.getSupportedMediaTypes();
352352
for (MediaType supportedMediaType : supportedMediaTypes) {
353353
if (supportedMediaType.getCharSet() != null) {

org.springframework.web/src/test/java/org/springframework/web/client/RestTemplateTests.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public void errorHandling() throws Exception {
136136

137137
@Test
138138
public void getForObject() throws Exception {
139-
expect(converter.supports(String.class)).andReturn(true).times(3);
139+
expect(converter.supports(String.class)).andReturn(true).times(2);
140140
MediaType textPlain = new MediaType("text", "plain");
141141
expect(converter.getSupportedMediaTypes()).andReturn(Collections.singletonList(textPlain)).times(2);
142142
expect(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET)).andReturn(request);
@@ -155,6 +155,7 @@ public void getForObject() throws Exception {
155155

156156
String result = template.getForObject("http://example.com", String.class);
157157
assertEquals("Invalid GET result", expected, result);
158+
assertEquals("Invalid Accept header", textPlain.toString(), requestHeaders.getFirst("Accept"));
158159

159160
verifyMocks();
160161
}
@@ -178,7 +179,7 @@ public void getForObjectUnsupportedClass() throws Exception {
178179

179180
@Test
180181
public void getUnsupportedMediaType() throws Exception {
181-
expect(converter.supports(String.class)).andReturn(true).times(3);
182+
expect(converter.supports(String.class)).andReturn(true).times(2);
182183
MediaType supportedMediaType = new MediaType("foo", "bar");
183184
expect(converter.getSupportedMediaTypes()).andReturn(Collections.singletonList(supportedMediaType)).times(2);
184185
expect(requestFactory.createRequest(new URI("http://example.com/resource"), HttpMethod.GET)).andReturn(request);

0 commit comments

Comments
 (0)