Browse Source

SPR-5808 - Make HttpMessageConverterExtractor top level class

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1352 50f2f4bb-b051-0410-bef5-90022cba6387
pull/1/head
Arjen Poutsma 17 years ago
parent
commit
236e3caa55
  1. 12
      org.springframework.web/src/main/java/org/springframework/web/client/RestTemplate.java
  2. 5
      org.springframework.web/src/test/java/org/springframework/web/client/RestTemplateTests.java

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

@ -167,7 +167,7 @@ public class RestTemplate extends HttpAccessor implements RestOperations { @@ -167,7 +167,7 @@ public class RestTemplate extends HttpAccessor implements RestOperations {
checkForSupportedMessageConverter(responseType);
List<HttpMessageConverter<T>> supportedMessageConverters = getSupportedMessageConverters(responseType);
return execute(url, HttpMethod.GET, new GetCallback<T>(responseType),
return execute(url, HttpMethod.GET, new GetCallback<T>(supportedMessageConverters),
new HttpMessageConverterExtractor<T>(responseType, supportedMessageConverters), urlVariables);
}
@ -176,7 +176,7 @@ public class RestTemplate extends HttpAccessor implements RestOperations { @@ -176,7 +176,7 @@ public class RestTemplate extends HttpAccessor implements RestOperations {
checkForSupportedMessageConverter(responseType);
List<HttpMessageConverter<T>> supportedMessageConverters = getSupportedMessageConverters(responseType);
return execute(url, HttpMethod.GET, new GetCallback<T>(responseType),
return execute(url, HttpMethod.GET, new GetCallback<T>(supportedMessageConverters),
new HttpMessageConverterExtractor<T>(responseType, supportedMessageConverters), urlVariables);
}
@ -339,15 +339,15 @@ public class RestTemplate extends HttpAccessor implements RestOperations { @@ -339,15 +339,15 @@ public class RestTemplate extends HttpAccessor implements RestOperations {
/** Request callback implementation that prepares the request's accept headers. */
private class GetCallback<T> implements RequestCallback {
private final Class<T> responseType;
private final List<HttpMessageConverter<T>> messageConverters;
private GetCallback(Class<T> responseType) {
this.responseType = responseType;
private GetCallback(List<HttpMessageConverter<T>> messageConverters) {
this.messageConverters = messageConverters;
}
public void doWithRequest(ClientHttpRequest request) throws IOException {
List<MediaType> allSupportedMediaTypes = new ArrayList<MediaType>();
for (HttpMessageConverter<?> entityConverter : getSupportedMessageConverters(this.responseType)) {
for (HttpMessageConverter<?> entityConverter : messageConverters) {
List<MediaType> supportedMediaTypes = entityConverter.getSupportedMediaTypes();
for (MediaType supportedMediaType : supportedMediaTypes) {
if (supportedMediaType.getCharSet() != null) {

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

@ -136,7 +136,7 @@ public class RestTemplateTests { @@ -136,7 +136,7 @@ public class RestTemplateTests {
@Test
public void getForObject() throws Exception {
expect(converter.supports(String.class)).andReturn(true).times(3);
expect(converter.supports(String.class)).andReturn(true).times(2);
MediaType textPlain = new MediaType("text", "plain");
expect(converter.getSupportedMediaTypes()).andReturn(Collections.singletonList(textPlain)).times(2);
expect(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET)).andReturn(request);
@ -155,6 +155,7 @@ public class RestTemplateTests { @@ -155,6 +155,7 @@ public class RestTemplateTests {
String result = template.getForObject("http://example.com", String.class);
assertEquals("Invalid GET result", expected, result);
assertEquals("Invalid Accept header", textPlain.toString(), requestHeaders.getFirst("Accept"));
verifyMocks();
}
@ -178,7 +179,7 @@ public class RestTemplateTests { @@ -178,7 +179,7 @@ public class RestTemplateTests {
@Test
public void getUnsupportedMediaType() throws Exception {
expect(converter.supports(String.class)).andReturn(true).times(3);
expect(converter.supports(String.class)).andReturn(true).times(2);
MediaType supportedMediaType = new MediaType("foo", "bar");
expect(converter.getSupportedMediaTypes()).andReturn(Collections.singletonList(supportedMediaType)).times(2);
expect(requestFactory.createRequest(new URI("http://example.com/resource"), HttpMethod.GET)).andReturn(request);

Loading…
Cancel
Save