#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.PluginRegistry;
|
||||||
import org.springframework.plugin.core.support.PluginRegistryFactoryBean;
|
import org.springframework.plugin.core.support.PluginRegistryFactoryBean;
|
||||||
import org.springframework.util.ClassUtils;
|
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.annotation.AnnotationMethodHandlerAdapter;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
|
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
|
||||||
|
|
||||||
@@ -249,6 +250,12 @@ class HypermediaSupportBeanDefinitionRegistrar implements ImportBeanDefinitionRe
|
|||||||
.setMessageConverters(augmentedConverters.toArray(new HttpMessageConverter<?>[augmentedConverters.size()]));
|
.setMessageConverters(augmentedConverters.toArray(new HttpMessageConverter<?>[augmentedConverters.size()]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (bean instanceof RestTemplate) {
|
||||||
|
|
||||||
|
RestTemplate template = (RestTemplate) bean;
|
||||||
|
template.setMessageConverters(potentiallyRegisterModule(template.getMessageConverters()));
|
||||||
|
}
|
||||||
|
|
||||||
return bean;
|
return bean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ import org.springframework.hateoas.mvc.TypeConstrainedMappingJackson2HttpMessage
|
|||||||
import org.springframework.http.converter.HttpMessageConverter;
|
import org.springframework.http.converter.HttpMessageConverter;
|
||||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||||
import org.springframework.test.util.ReflectionTestUtils;
|
import org.springframework.test.util.ReflectionTestUtils;
|
||||||
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
||||||
import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;
|
import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver;
|
import org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver;
|
||||||
@@ -118,6 +119,19 @@ public class EnableHypermediaSupportIntegrationTest {
|
|||||||
assertThat(found, is(true));
|
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) {
|
private static void assertEntityLinksSetUp(ApplicationContext context) {
|
||||||
|
|
||||||
Map<String, EntityLinks> discoverers = context.getBeansOfType(EntityLinks.class);
|
Map<String, EntityLinks> discoverers = context.getBeansOfType(EntityLinks.class);
|
||||||
@@ -167,6 +181,11 @@ public class EnableHypermediaSupportIntegrationTest {
|
|||||||
numberOfMessageConvertersLegacy = adapter.getMessageConverters().length;
|
numberOfMessageConvertersLegacy = adapter.getMessageConverters().length;
|
||||||
return adapter;
|
return adapter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public RestTemplate restTemplate() {
|
||||||
|
return new RestTemplate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
|
|||||||
Reference in New Issue
Block a user