Example usage for org.springframework.web.servlet.mvc.method.annotation RequestMappingHandlerAdapter getArgumentResolvers

List of usage examples for org.springframework.web.servlet.mvc.method.annotation RequestMappingHandlerAdapter getArgumentResolvers

Introduction

In this page you can find the example usage for org.springframework.web.servlet.mvc.method.annotation RequestMappingHandlerAdapter getArgumentResolvers.

Prototype

@Nullable
public List<HandlerMethodArgumentResolver> getArgumentResolvers() 

Source Link

Document

Return the configured argument resolvers, or possibly null if not initialized yet via #afterPropertiesSet() .

Usage

From source file:org.springframework.hateoas.config.EnableHypermediaSupportIntegrationTest.java

/**
 * @see #134, #219/*from  www.  j  a  v a2s .co m*/
 */
@Test
@SuppressWarnings("unchecked")
public void halSetupIsAppliedToAllTransitiveComponentsInRequestMappingHandlerAdapter() {

    AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(HalConfig.class);

    Jackson2ModuleRegisteringBeanPostProcessor postProcessor = new HypermediaSupportBeanDefinitionRegistrar.Jackson2ModuleRegisteringBeanPostProcessor();
    postProcessor.setBeanFactory(context);

    RequestMappingHandlerAdapter adapter = context.getBean(RequestMappingHandlerAdapter.class);

    assertThat(adapter.getMessageConverters().get(0).getSupportedMediaTypes(), hasItem(MediaTypes.HAL_JSON));

    boolean found = false;

    for (HandlerMethodArgumentResolver resolver : adapter.getArgumentResolvers().getResolvers()) {

        if (resolver instanceof AbstractMessageConverterMethodArgumentResolver) {

            found = true;

            AbstractMessageConverterMethodArgumentResolver processor = (AbstractMessageConverterMethodArgumentResolver) resolver;
            List<HttpMessageConverter<?>> converters = (List<HttpMessageConverter<?>>) ReflectionTestUtils
                    .getField(processor, "messageConverters");

            // assertThat(converters.get(0),
            // is(instanceOf(TypeConstrainedMappingJackson2HttpMessageConverter.class)));
            assertThat(converters.get(0), is(instanceOf(MappingJackson2HttpMessageConverter.class)));
            assertThat(converters.get(0).getSupportedMediaTypes(), hasItem(MediaTypes.HAL_JSON));
        }
    }

    assertThat(found, is(true));
}

From source file:io.neba.core.mvc.MvcContext.java

/**
 * Registers the custom argument resolvers if a {@link RequestMappingHandlerAdapter}
 * is present in the factory.//from  w  w  w.ja  va 2 s  .c  o m
 */
private void registerCustomArgumentResolvers() {
    RequestMappingHandlerAdapter requestMappingHandlerAdapter = this.factory
            .getBean(RequestMappingHandlerAdapter.class);

    if (requestMappingHandlerAdapter != null) {
        HandlerMethodArgumentResolverComposite argumentResolvers = requestMappingHandlerAdapter
                .getArgumentResolvers();

        if (argumentResolvers == null) {
            throw new IllegalStateException("No argument resolvers found in " + requestMappingHandlerAdapter
                    + ". It appears the handler was not initialized by the application context.");
        }

        // Add Sling-specific argument resolvers first
        List<HandlerMethodArgumentResolver> resolvers = new LinkedList<HandlerMethodArgumentResolver>();
        resolvers.add(new RequestPathInfoArgumentResolver());
        resolvers.add(new ResourceResolverArgumentResolver());
        resolvers.add(new ResourceParamArgumentResolver());

        // Subsequently add all existing argument resolvers (they are order-sensitive, ending with a catch-all resolver,
        // thus the custom resolvers have to go first)
        resolvers.addAll(argumentResolvers.getResolvers());
        requestMappingHandlerAdapter.setArgumentResolvers(resolvers);
    }
}