#293 - HypermediaSupportBeanDefinitionRegistrar also augments RestTemplates.
We now also augment HttpMessageConverters for RestTemplate Spring beans.
This commit is contained in:
@@ -59,6 +59,7 @@ import org.springframework.http.converter.json.MappingJackson2HttpMessageConvert
|
||||
import org.springframework.plugin.core.PluginRegistry;
|
||||
import org.springframework.plugin.core.support.PluginRegistryFactoryBean;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
|
||||
|
||||
@@ -249,6 +250,12 @@ class HypermediaSupportBeanDefinitionRegistrar implements ImportBeanDefinitionRe
|
||||
.setMessageConverters(augmentedConverters.toArray(new HttpMessageConverter<?>[augmentedConverters.size()]));
|
||||
}
|
||||
|
||||
if (bean instanceof RestTemplate) {
|
||||
|
||||
RestTemplate template = (RestTemplate) bean;
|
||||
template.setMessageConverters(potentiallyRegisterModule(template.getMessageConverters()));
|
||||
}
|
||||
|
||||
return bean;
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ import org.springframework.hateoas.mvc.TypeConstrainedMappingJackson2HttpMessage
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
||||
import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver;
|
||||
@@ -118,6 +119,19 @@ public class EnableHypermediaSupportIntegrationTest {
|
||||
assertThat(found, is(true));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #293
|
||||
*/
|
||||
@Test
|
||||
public void registersHttpMessageConvertersForRestTemplate() {
|
||||
|
||||
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(HalConfig.class);
|
||||
RestTemplate template = context.getBean(RestTemplate.class);
|
||||
|
||||
assertThat(template.getMessageConverters().get(0).getSupportedMediaTypes(), hasItem(MediaTypes.HAL_JSON));
|
||||
context.close();
|
||||
}
|
||||
|
||||
private static void assertEntityLinksSetUp(ApplicationContext context) {
|
||||
|
||||
Map<String, EntityLinks> discoverers = context.getBeansOfType(EntityLinks.class);
|
||||
@@ -167,6 +181,11 @@ public class EnableHypermediaSupportIntegrationTest {
|
||||
numberOfMessageConvertersLegacy = adapter.getMessageConverters().length;
|
||||
return adapter;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public RestTemplate restTemplate() {
|
||||
return new RestTemplate();
|
||||
}
|
||||
}
|
||||
|
||||
@Configuration
|
||||
|
||||
Reference in New Issue
Block a user