Detect custom ContentNegotiationViewResolver
The <mvc:annotation-driven> element now adds an alias when a ContentNegotiationManager bean is registered with a custom name. This helps <mvc:view-resolvers> to more reliably find such a custom ContentNegotiationManager. Issue: SPR-13559
This commit is contained in:
@@ -691,7 +691,7 @@ public class MvcNamespaceTests {
|
||||
|
||||
@Test
|
||||
public void testContentNegotiationManager() throws Exception {
|
||||
loadBeanDefinitions("mvc-config-content-negotiation-manager.xml", 14);
|
||||
loadBeanDefinitions("mvc-config-content-negotiation-manager.xml", 15);
|
||||
|
||||
RequestMappingHandlerMapping mapping = appContext.getBean(RequestMappingHandlerMapping.class);
|
||||
ContentNegotiationManager manager = mapping.getContentNegotiationManager();
|
||||
@@ -699,6 +699,15 @@ public class MvcNamespaceTests {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo.xml");
|
||||
NativeWebRequest webRequest = new ServletWebRequest(request);
|
||||
assertEquals(Arrays.asList(MediaType.valueOf("application/rss+xml")), manager.resolveMediaTypes(webRequest));
|
||||
|
||||
ViewResolverComposite compositeResolver = this.appContext.getBean(ViewResolverComposite.class);
|
||||
assertNotNull(compositeResolver);
|
||||
assertEquals("Actual: " + compositeResolver.getViewResolvers(), 1, compositeResolver.getViewResolvers().size());
|
||||
|
||||
ViewResolver resolver = compositeResolver.getViewResolvers().get(0);
|
||||
assertEquals(ContentNegotiatingViewResolver.class, resolver.getClass());
|
||||
ContentNegotiatingViewResolver cnvr = (ContentNegotiatingViewResolver) resolver;
|
||||
assertSame(manager, cnvr.getContentNegotiationManager());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user