Java 类org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter 实例源码

项目:spring4-understanding    文件:MvcNamespaceTests.java   
@Test(expected = TypeMismatchException.class)
public void testCustomConversionService() throws Exception {
    loadBeanDefinitions("mvc-config-custom-conversion-service.xml", 14);

    RequestMappingHandlerMapping mapping = appContext.getBean(RequestMappingHandlerMapping.class);
    assertNotNull(mapping);
    mapping.setDefaultHandler(handlerMethod);

    // default web binding initializer behavior test
    MockHttpServletRequest request = new MockHttpServletRequest("GET", "/");
    request.setRequestURI("/accounts/12345");
    request.addParameter("date", "2009-10-31");
    MockHttpServletResponse response = new MockHttpServletResponse();

    HandlerExecutionChain chain = mapping.getHandler(request);
    assertEquals(1, chain.getInterceptors().length);
    assertTrue(chain.getInterceptors()[0] instanceof ConversionServiceExposingInterceptor);
    ConversionServiceExposingInterceptor interceptor = (ConversionServiceExposingInterceptor) chain.getInterceptors()[0];
    interceptor.preHandle(request, response, handler);
    assertSame(appContext.getBean("conversionService"), request.getAttribute(ConversionService.class.getName()));

    RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
    assertNotNull(adapter);
    adapter.handle(request, response, handlerMethod);
}
项目:FastBootWeixin    文件:WxBuildinMvcConfiguration.java   
@Override
public void afterPropertiesSet() throws Exception {
    RequestMappingHandlerAdapter requestMappingHandlerAdapter = this.beanFactory.getBean(RequestMappingHandlerAdapter.class);
    List<HandlerMethodArgumentResolver> argumentResolvers = new ArrayList<>();
    List<HandlerMethodReturnValueHandler> returnValueHandlers = new ArrayList<>();
    if (beanFactory instanceof ConfigurableBeanFactory) {
        argumentResolvers.add(new WxArgumentResolver((ConfigurableBeanFactory) beanFactory));
    } else {
        argumentResolvers.add(new WxArgumentResolver(beanFactory.getBean(WxUserManager.class), beanFactory.getBean(WxUserProvider.class)));
    }
    returnValueHandlers.add(beanFactory.getBean(WxAsyncMessageReturnValueHandler.class));
    argumentResolvers.addAll(requestMappingHandlerAdapter.getArgumentResolvers());
    returnValueHandlers.addAll(requestMappingHandlerAdapter.getReturnValueHandlers());
    requestMappingHandlerAdapter.setArgumentResolvers(argumentResolvers);
    requestMappingHandlerAdapter.setReturnValueHandlers(returnValueHandlers);
}
项目:spring4-understanding    文件:MvcNamespaceTests.java   
private void doTestCustomValidator(String xml) throws Exception {
    loadBeanDefinitions(xml, 14);

    RequestMappingHandlerMapping mapping = appContext.getBean(RequestMappingHandlerMapping.class);
    assertNotNull(mapping);
    assertFalse(mapping.getUrlPathHelper().shouldRemoveSemicolonContent());

    RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
    assertNotNull(adapter);
    assertEquals(true, new DirectFieldAccessor(adapter).getPropertyValue("ignoreDefaultModelOnRedirect"));

    // default web binding initializer behavior test
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.addParameter("date", "2009-10-31");
    MockHttpServletResponse response = new MockHttpServletResponse();
    adapter.handle(request, response, handlerMethod);

    assertTrue(appContext.getBean(TestValidator.class).validatorInvoked);
    assertFalse(handler.recordedValidationError);
}
项目:spring4-understanding    文件:MvcNamespaceTests.java   
@Test
public void testAsyncSupportOptions() throws Exception {
    loadBeanDefinitions("mvc-config-async-support.xml", 15);

    RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
    assertNotNull(adapter);

    DirectFieldAccessor fieldAccessor = new DirectFieldAccessor(adapter);
    assertEquals(ConcurrentTaskExecutor.class, fieldAccessor.getPropertyValue("taskExecutor").getClass());
    assertEquals(2500L, fieldAccessor.getPropertyValue("asyncRequestTimeout"));

    CallableProcessingInterceptor[] callableInterceptors =
            (CallableProcessingInterceptor[]) fieldAccessor.getPropertyValue("callableInterceptors");
    assertEquals(1, callableInterceptors.length);

    DeferredResultProcessingInterceptor[] deferredResultInterceptors =
            (DeferredResultProcessingInterceptor[]) fieldAccessor.getPropertyValue("deferredResultInterceptors");
    assertEquals(1, deferredResultInterceptors.length);
}
项目:spring4-understanding    文件:DelegatingWebMvcConfigurationTests.java   
@Test
public void requestMappingHandlerAdapter() throws Exception {

    delegatingConfig.setConfigurers(Arrays.asList(webMvcConfigurer));
    RequestMappingHandlerAdapter adapter = delegatingConfig.requestMappingHandlerAdapter();

    ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) adapter.getWebBindingInitializer();
    ConversionService initializerConversionService = initializer.getConversionService();
    assertTrue(initializer.getValidator() instanceof LocalValidatorFactoryBean);

    verify(webMvcConfigurer).configureMessageConverters(converters.capture());
    verify(webMvcConfigurer).configureContentNegotiation(contentNegotiationConfigurer.capture());
    verify(webMvcConfigurer).addFormatters(conversionService.capture());
    verify(webMvcConfigurer).addArgumentResolvers(resolvers.capture());
    verify(webMvcConfigurer).addReturnValueHandlers(handlers.capture());
    verify(webMvcConfigurer).configureAsyncSupport(asyncConfigurer.capture());

    assertSame(conversionService.getValue(), initializerConversionService);
    assertEquals(0, resolvers.getValue().size());
    assertEquals(0, handlers.getValue().size());
    assertEquals(converters.getValue(), adapter.getMessageConverters());
    assertNotNull(asyncConfigurer);
}
项目:spring4-understanding    文件:AnnotationDrivenBeanDefinitionParserTests.java   
@SuppressWarnings("unchecked")
@Test
public void testArgumentResolvers() {
    loadBeanDefinitions("mvc-config-argument-resolvers.xml");
    RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
    assertNotNull(adapter);
    Object value = new DirectFieldAccessor(adapter).getPropertyValue("customArgumentResolvers");
    assertNotNull(value);
    assertTrue(value instanceof List);
    List<HandlerMethodArgumentResolver> resolvers = (List<HandlerMethodArgumentResolver>) value;
    assertEquals(3, resolvers.size());
    assertTrue(resolvers.get(0) instanceof ServletWebArgumentResolverAdapter);
    assertTrue(resolvers.get(1) instanceof TestHandlerMethodArgumentResolver);
    assertTrue(resolvers.get(2) instanceof TestHandlerMethodArgumentResolver);
    assertNotSame(resolvers.get(1), resolvers.get(2));
}
项目:scaffold    文件:WebConfig.java   
private void rebuildMessageConverter(RequestMappingHandlerAdapter adapter) {
        List<HttpMessageConverter<?>> messageConverters = adapter.getMessageConverters();
        if (!CollectionUtils.isEmpty(messageConverters)) {
            for (HttpMessageConverter<?> messageConverter : messageConverters) {
                if (messageConverter instanceof MappingJackson2HttpMessageConverter) {
                    rebuildJacksonV2((MappingJackson2HttpMessageConverter) messageConverter);
                }

//                if (messageConverter instanceof MappingJacksonHttpMessageConverter) {
//                    rebuildJacksonV1((MappingJacksonHttpMessageConverter) messageConverter);
//                }
            }
        }

        /**
         * 处理form表单
         * form表单通过get方法请求,controller里边的方法中只需设置一个接收的对象即可.
         */
        adapter.getMessageConverters().add(new FormHttpMessageConverter());

    }
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:EndpointWebMvcHypermediaManagementContextConfiguration.java   
@SuppressWarnings("unchecked")
private HttpMessageConverter<Object> findConverter(
        Class<? extends HttpMessageConverter<?>> selectedConverterType,
        MediaType mediaType) {
    HttpMessageConverter<Object> cached = (HttpMessageConverter<Object>) this.converterCache
            .get(mediaType);
    if (cached != null) {
        return cached;
    }
    for (RequestMappingHandlerAdapter handlerAdapter : this.handlerAdapters) {
        for (HttpMessageConverter<?> converter : handlerAdapter
                .getMessageConverters()) {
            if (selectedConverterType.isAssignableFrom(converter.getClass())
                    && converter.canWrite(EndpointResource.class, mediaType)) {
                this.converterCache.put(mediaType, converter);
                return (HttpMessageConverter<Object>) converter;
            }
        }
    }
    return null;
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:HypermediaHttpMessageConverterConfiguration.java   
@PostConstruct
public void customizedSupportedMediaTypes() {
    if (this.beanFactory instanceof ListableBeanFactory) {
        Map<String, RequestMappingHandlerAdapter> handlerAdapters = ((ListableBeanFactory) this.beanFactory)
                .getBeansOfType(RequestMappingHandlerAdapter.class);
        for (Entry<String, RequestMappingHandlerAdapter> entry : handlerAdapters
                .entrySet()) {
            RequestMappingHandlerAdapter handlerAdapter = entry.getValue();
            for (HttpMessageConverter<?> converter : handlerAdapter
                    .getMessageConverters()) {
                if (converter instanceof TypeConstrainedMappingJackson2HttpMessageConverter) {
                    ((TypeConstrainedMappingJackson2HttpMessageConverter) converter)
                            .setSupportedMediaTypes(
                                    Arrays.asList(MediaTypes.HAL_JSON,
                                            MediaType.APPLICATION_JSON));
                }
            }

        }
    }
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:HypermediaAutoConfigurationTests.java   
@Test
public void customizationOfSupportedMediaTypesCanBeDisabled() {
    this.context = new AnnotationConfigWebApplicationContext();
    this.context.setServletContext(new MockServletContext());
    this.context.register(BaseConfig.class);
    EnvironmentTestUtils.addEnvironment(this.context,
            "spring.hateoas.use-hal-as-default-json-media-type:false");
    this.context.refresh();
    RequestMappingHandlerAdapter handlerAdapter = this.context
            .getBean(RequestMappingHandlerAdapter.class);
    for (HttpMessageConverter<?> converter : handlerAdapter.getMessageConverters()) {
        if (converter instanceof TypeConstrainedMappingJackson2HttpMessageConverter) {
            assertThat(converter.getSupportedMediaTypes())
                    .containsExactly(MediaTypes.HAL_JSON);
        }
    }
}
项目:easycode    文件:SpringMvcConfig.java   
@Bean
public WebMvcRegistrations webMvcRegistrations() {
    return new WebMvcRegistrationsAdapter() {
        @Override
        public RequestMappingHandlerMapping getRequestMappingHandlerMapping() {
            DefaultRequestMappingHandlerMapping mapping = new DefaultRequestMappingHandlerMapping();
            mapping.setControllerPostfix("Controller");
            mapping.setExcludePatterns(new String[]{
                    "/js/**",
                    "/css/**",
                    "/imgs/**"
            });
            return mapping;
        }

        @Override
        public RequestMappingHandlerAdapter getRequestMappingHandlerAdapter() {
            DefaultRequestMappingHandlerAdapter adapter = new DefaultRequestMappingHandlerAdapter();
            adapter.setAutoView(true);
            return adapter;
        }
    };
}
项目:easycode    文件:SpringMvcConfig.java   
@Bean
public WebMvcRegistrations webMvcRegistrations() {
    return new WebMvcRegistrationsAdapter() {
        @Override
        public RequestMappingHandlerMapping getRequestMappingHandlerMapping() {
            DefaultRequestMappingHandlerMapping mapping = new DefaultRequestMappingHandlerMapping();
            mapping.setControllerPostfix("Controller");
            mapping.setExcludePatterns(new String[]{
                    "/js/**",
                    "/css/**",
                    "/imgs/**"
            });
            return mapping;
        }

        @Override
        public RequestMappingHandlerAdapter getRequestMappingHandlerAdapter() {
            DefaultRequestMappingHandlerAdapter adapter = new DefaultRequestMappingHandlerAdapter();
            adapter.setAutoView(true);
            return adapter;
        }
    };
}
项目:spring-boot-concourse    文件:EndpointWebMvcHypermediaManagementContextConfiguration.java   
@SuppressWarnings("unchecked")
private HttpMessageConverter<Object> findConverter(
        Class<? extends HttpMessageConverter<?>> selectedConverterType,
        MediaType mediaType) {
    if (this.converterCache.containsKey(mediaType)) {
        return (HttpMessageConverter<Object>) this.converterCache.get(mediaType);
    }
    for (RequestMappingHandlerAdapter handlerAdapter : this.handlerAdapters) {
        for (HttpMessageConverter<?> converter : handlerAdapter
                .getMessageConverters()) {
            if (selectedConverterType.isAssignableFrom(converter.getClass())
                    && converter.canWrite(EndpointResource.class, mediaType)) {
                this.converterCache.put(mediaType, converter);
                return (HttpMessageConverter<Object>) converter;
            }
        }
    }
    return null;
}
项目:spring-boot-concourse    文件:HypermediaHttpMessageConverterConfiguration.java   
@PostConstruct
public void customizedSupportedMediaTypes() {
    if (this.beanFactory instanceof ListableBeanFactory) {
        Map<String, RequestMappingHandlerAdapter> handlerAdapters = ((ListableBeanFactory) this.beanFactory)
                .getBeansOfType(RequestMappingHandlerAdapter.class);
        for (Entry<String, RequestMappingHandlerAdapter> entry : handlerAdapters
                .entrySet()) {
            RequestMappingHandlerAdapter handlerAdapter = entry.getValue();
            for (HttpMessageConverter<?> converter : handlerAdapter
                    .getMessageConverters()) {
                if (converter instanceof TypeConstrainedMappingJackson2HttpMessageConverter) {
                    ((TypeConstrainedMappingJackson2HttpMessageConverter) converter)
                            .setSupportedMediaTypes(
                                    Arrays.asList(MediaTypes.HAL_JSON,
                                            MediaType.APPLICATION_JSON));
                }
            }

        }
    }
}
项目:spring-boot-concourse    文件:HypermediaAutoConfigurationTests.java   
@Test
public void customizationOfSupportedMediaTypesCanBeDisabled() {
    this.context = new AnnotationConfigWebApplicationContext();
    this.context.setServletContext(new MockServletContext());
    this.context.register(BaseConfig.class);
    EnvironmentTestUtils.addEnvironment(this.context,
            "spring.hateoas.use-hal-as-default-json-media-type:false");
    this.context.refresh();
    RequestMappingHandlerAdapter handlerAdapter = this.context
            .getBean(RequestMappingHandlerAdapter.class);
    for (HttpMessageConverter<?> converter : handlerAdapter.getMessageConverters()) {
        if (converter instanceof TypeConstrainedMappingJackson2HttpMessageConverter) {
            assertThat(converter.getSupportedMediaTypes())
                    .containsExactly(MediaTypes.HAL_JSON);
        }
    }
}
项目:spring-cloud-function    文件:ReactorAutoConfiguration.java   
@Bean
public SmartInitializingSingleton fluxRequestMappingHandlerAdapterProcessor(
        RequestMappingHandlerAdapter adapter,
        FluxHandlerMethodArgumentResolver resolver) {
    return new SmartInitializingSingleton() {

        @Override
        public void afterSingletonsInstantiated() {
            List<HandlerMethodArgumentResolver> resolvers = new ArrayList<>(
                    adapter.getArgumentResolvers());
            resolvers.add(0, resolver);
            adapter.setArgumentResolvers(resolvers);
            if (!ClassUtils.isPresent("org.springframework.core.ReactiveAdapter",
                    null)) {
                List<HandlerMethodReturnValueHandler> handlers = new ArrayList<>(
                        adapter.getReturnValueHandlers());
                handlers.add(0, context.getBean(FluxReturnValueHandler.class));
                adapter.setReturnValueHandlers(handlers);
            }
        }

    };
}
项目:example-restful-project    文件:WebMvcConfig.java   
@Override
public void onApplicationEvent(ApplicationEvent event) {
    if (event instanceof ContextRefreshedEvent) {
        ApplicationContext applicationContext = ((ContextRefreshedEvent) event).getApplicationContext();
        RequestMappingHandlerAdapter adapter = applicationContext.getBean(RequestMappingHandlerAdapter.class);

        TeapotMappingHandler handler = new TeapotMappingHandler(
                mapper, getMessageConverters());

        List<HandlerMethodArgumentResolver> argumentResolvers = new ArrayList<>();
        argumentResolvers.add(handler);
        argumentResolvers.addAll(adapter.getArgumentResolvers());

        adapter.setArgumentResolvers(argumentResolvers);

        List<HandlerMethodReturnValueHandler> handlers = new ArrayList<>();
        handlers.add(handler);  // must be first
        handlers.addAll(adapter.getReturnValueHandlers());

        adapter.setReturnValueHandlers(handlers);
    }
}
项目:contestparser    文件:EndpointWebMvcHypermediaManagementContextConfiguration.java   
@SuppressWarnings("unchecked")
private HttpMessageConverter<Object> findConverter(
        Class<? extends HttpMessageConverter<?>> selectedConverterType,
        MediaType mediaType) {
    if (this.converterCache.containsKey(mediaType)) {
        return (HttpMessageConverter<Object>) this.converterCache.get(mediaType);
    }
    for (RequestMappingHandlerAdapter handlerAdapter : this.handlerAdapters) {
        for (HttpMessageConverter<?> converter : handlerAdapter
                .getMessageConverters()) {
            if (selectedConverterType.isAssignableFrom(converter.getClass())
                    && converter.canWrite(EndpointResource.class, mediaType)) {
                this.converterCache.put(mediaType, converter);
                return (HttpMessageConverter<Object>) converter;
            }
        }
    }
    return null;
}
项目:contestparser    文件:HypermediaHttpMessageConverterConfiguration.java   
@PostConstruct
public void customizedSupportedMediaTypes() {
    if (this.beanFactory instanceof ListableBeanFactory) {
        Map<String, RequestMappingHandlerAdapter> handlerAdapters = ((ListableBeanFactory) this.beanFactory)
                .getBeansOfType(RequestMappingHandlerAdapter.class);
        for (Entry<String, RequestMappingHandlerAdapter> entry : handlerAdapters
                .entrySet()) {
            RequestMappingHandlerAdapter handlerAdapter = entry.getValue();
            for (HttpMessageConverter<?> converter : handlerAdapter
                    .getMessageConverters()) {
                if (converter instanceof TypeConstrainedMappingJackson2HttpMessageConverter) {
                    ((TypeConstrainedMappingJackson2HttpMessageConverter) converter)
                            .setSupportedMediaTypes(
                                    Arrays.asList(MediaTypes.HAL_JSON,
                                            MediaType.APPLICATION_JSON));
                }
            }

        }
    }
}
项目:contestparser    文件:HypermediaAutoConfigurationTests.java   
@Test
public void customizationOfSupportedMediaTypesCanBeDisabled() {
    this.context = new AnnotationConfigWebApplicationContext();
    this.context.setServletContext(new MockServletContext());
    this.context.register(BaseConfig.class);
    EnvironmentTestUtils.addEnvironment(this.context,
            "spring.hateoas.use-hal-as-default-json-media-type:false");
    this.context.refresh();
    RequestMappingHandlerAdapter handlerAdapter = this.context
            .getBean(RequestMappingHandlerAdapter.class);
    for (HttpMessageConverter<?> converter : handlerAdapter.getMessageConverters()) {
        if (converter instanceof TypeConstrainedMappingJackson2HttpMessageConverter) {
            assertThat(converter.getSupportedMediaTypes(),
                    contains(MediaTypes.HAL_JSON));
        }
    }
}
项目:pungwecms    文件:FormHandlerMappingPostProcessor.java   
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    if (bean instanceof RequestMappingHandlerAdapter) {
        RequestMappingHandlerAdapter adapter = (RequestMappingHandlerAdapter) bean;
        List<HandlerMethodArgumentResolver> resolvers = new LinkedList<>();
        resolvers.addAll(adapter.getArgumentResolvers());
        resolvers.replaceAll(handlerMethodArgumentResolver -> {
            if (handlerMethodArgumentResolver instanceof ServletModelAttributeMethodProcessor) {
                return new FormModelAttributeMethodProcessor(false);
            }
            return handlerMethodArgumentResolver;
        });
        adapter.setArgumentResolvers(resolvers);
    }
    return bean;
}
项目:spring-boot-controller-test-example    文件:TestHelper.java   
public MockMvc mvc(Object controller) {
    StandaloneMockMvcBuilder builder = new StandaloneMockMvcBuilder(controller) {
        @Override
        protected WebApplicationContext initWebAppContext() {
            WebApplicationContext context = super.initWebAppContext();
            StaticListableBeanFactory beanFactory = (StaticListableBeanFactory)context.getAutowireCapableBeanFactory();

            Arrays.stream(BeanFactoryUtils.beanNamesForTypeIncludingAncestors(applicationContext, Object.class))
                .filter(name -> applicationContext.findAnnotationOnBean(name, ControllerAdvice.class) != null)
                .forEach(name -> beanFactory.addBean(name, applicationContext.getBean(name)));

            context.getBean(RequestMappingHandlerAdapter.class).afterPropertiesSet();
            return context;
        }
    };
    return builder.setHandlerExceptionResolvers(handlerExceptionResolver).build();
}
项目:class-guard    文件:StandaloneMockMvcBuilder.java   
private void registerMvcSingletons(StubWebApplicationContext cxt) {

        StandaloneConfiguration configuration = new StandaloneConfiguration();

        RequestMappingHandlerMapping handlerMapping = configuration.requestMappingHandlerMapping();
        handlerMapping.setServletContext(cxt.getServletContext());
        handlerMapping.setApplicationContext(cxt);
        cxt.addBean("requestMappingHandlerMapping", handlerMapping);

        RequestMappingHandlerAdapter handlerAdapter = configuration.requestMappingHandlerAdapter();
        handlerAdapter.setServletContext(cxt.getServletContext());
        handlerAdapter.setApplicationContext(cxt);
        handlerAdapter.afterPropertiesSet();
        cxt.addBean("requestMappingHandlerAdapter", handlerAdapter);

        cxt.addBean("handlerExceptionResolver", configuration.handlerExceptionResolver());

        cxt.addBeans(initViewResolvers(cxt));
        cxt.addBean(DispatcherServlet.LOCALE_RESOLVER_BEAN_NAME, this.localeResolver);
        cxt.addBean(DispatcherServlet.THEME_RESOLVER_BEAN_NAME, new FixedThemeResolver());
        cxt.addBean(DispatcherServlet.REQUEST_TO_VIEW_NAME_TRANSLATOR_BEAN_NAME, new DefaultRequestToViewNameTranslator());

        this.flashMapManager = new SessionFlashMapManager();
        cxt.addBean(DispatcherServlet.FLASH_MAP_MANAGER_BEAN_NAME, this.flashMapManager);
    }
项目:class-guard    文件:MvcNamespaceTests.java   
@Test(expected=TypeMismatchException.class)
public void testCustomConversionService() throws Exception {
    loadBeanDefinitions("mvc-config-custom-conversion-service.xml", 12);

    RequestMappingHandlerMapping mapping = appContext.getBean(RequestMappingHandlerMapping.class);
    assertNotNull(mapping);
    mapping.setDefaultHandler(handlerMethod);

    // default web binding initializer behavior test
    MockHttpServletRequest request = new MockHttpServletRequest("GET", "/");
    request.setRequestURI("/accounts/12345");
    request.addParameter("date", "2009-10-31");
    MockHttpServletResponse response = new MockHttpServletResponse();

    HandlerExecutionChain chain = mapping.getHandler(request);
    assertEquals(1, chain.getInterceptors().length);
    assertTrue(chain.getInterceptors()[0] instanceof ConversionServiceExposingInterceptor);
    ConversionServiceExposingInterceptor interceptor = (ConversionServiceExposingInterceptor) chain.getInterceptors()[0];
    interceptor.preHandle(request, response, handler);
    assertSame(appContext.getBean("conversionService"), request.getAttribute(ConversionService.class.getName()));

    RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
    assertNotNull(adapter);
    adapter.handle(request, response, handlerMethod);
}
项目:class-guard    文件:MvcNamespaceTests.java   
@Test
public void testCustomValidator() throws Exception {
    loadBeanDefinitions("mvc-config-custom-validator.xml", 12);

    RequestMappingHandlerMapping mapping = appContext.getBean(RequestMappingHandlerMapping.class);
    assertNotNull(mapping);
    assertFalse(mapping.getUrlPathHelper().shouldRemoveSemicolonContent());

    RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
    assertNotNull(adapter);
    assertEquals(true, new DirectFieldAccessor(adapter).getPropertyValue("ignoreDefaultModelOnRedirect"));

    // default web binding initializer behavior test
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.addParameter("date", "2009-10-31");
    MockHttpServletResponse response = new MockHttpServletResponse();
    adapter.handle(request, response, handlerMethod);

    assertTrue(appContext.getBean(TestValidator.class).validatorInvoked);
    assertFalse(handler.recordedValidationError);
}
项目:class-guard    文件:MvcNamespaceTests.java   
@Test
public void testAsyncSupportOptions() throws Exception {
    loadBeanDefinitions("mvc-config-async-support.xml", 13);

    RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
    assertNotNull(adapter);

    DirectFieldAccessor fieldAccessor = new DirectFieldAccessor(adapter);
    assertEquals(ConcurrentTaskExecutor.class, fieldAccessor.getPropertyValue("taskExecutor").getClass());
    assertEquals(2500L, fieldAccessor.getPropertyValue("asyncRequestTimeout"));

    CallableProcessingInterceptor[] callableInterceptors =
            (CallableProcessingInterceptor[]) fieldAccessor.getPropertyValue("callableInterceptors");
    assertEquals(1, callableInterceptors.length);

    DeferredResultProcessingInterceptor[] deferredResultInterceptors =
            (DeferredResultProcessingInterceptor[]) fieldAccessor.getPropertyValue("deferredResultInterceptors");
    assertEquals(1, deferredResultInterceptors.length);
}
项目:class-guard    文件:WebMvcConfigurationSupportTests.java   
@Test
public void requestMappingHandlerAdapter() throws Exception {
    RequestMappingHandlerAdapter adapter = mvcConfiguration.requestMappingHandlerAdapter();

    List<HttpMessageConverter<?>> expectedConverters = new ArrayList<HttpMessageConverter<?>>();
    mvcConfiguration.addDefaultHttpMessageConverters(expectedConverters);
    assertEquals(expectedConverters.size(), adapter.getMessageConverters().size());

    ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) adapter.getWebBindingInitializer();
    assertNotNull(initializer);

    ConversionService conversionService = initializer.getConversionService();
    assertNotNull(conversionService);
    assertTrue(conversionService instanceof FormattingConversionService);

    Validator validator = initializer.getValidator();
    assertNotNull(validator);
    assertTrue(validator instanceof LocalValidatorFactoryBean);
}
项目:class-guard    文件:DelegatingWebMvcConfigurationTests.java   
@Test
public void requestMappingHandlerAdapter() throws Exception {

    delegatingConfig.setConfigurers(Arrays.asList(webMvcConfigurer));
    RequestMappingHandlerAdapter adapter = delegatingConfig.requestMappingHandlerAdapter();

    ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) adapter.getWebBindingInitializer();
    ConversionService initializerConversionService = initializer.getConversionService();
    assertTrue(initializer.getValidator() instanceof LocalValidatorFactoryBean);

    verify(webMvcConfigurer).configureMessageConverters(converters.capture());
    verify(webMvcConfigurer).configureContentNegotiation(contentNegotiationConfigurer.capture());
    verify(webMvcConfigurer).addFormatters(conversionService.capture());
    verify(webMvcConfigurer).addArgumentResolvers(resolvers.capture());
    verify(webMvcConfigurer).addReturnValueHandlers(handlers.capture());
    verify(webMvcConfigurer).configureAsyncSupport(asyncConfigurer.capture());

    assertSame(conversionService.getValue(), initializerConversionService);
    assertEquals(0, resolvers.getValue().size());
    assertEquals(0, handlers.getValue().size());
    assertEquals(converters.getValue(), adapter.getMessageConverters());
    assertNotNull(asyncConfigurer);
}
项目:matsuo-core    文件:MvcConfig.java   
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
  RequestMappingHandlerAdapter adapter = event.getApplicationContext().getBean(RequestMappingHandlerAdapter.class);

  try {
    FacadeBuilderHandlerMethodArgumentResolver facadeBuilderHandlerMethodArgumentResolver =
        event.getApplicationContext().getBean(FacadeBuilderHandlerMethodArgumentResolver.class);

    List<HandlerMethodArgumentResolver> argumentResolvers = new ArrayList<>(adapter.getArgumentResolvers());
    List<HandlerMethodArgumentResolver> customResolvers = adapter.getCustomArgumentResolvers();
    argumentResolvers.remove(facadeBuilderHandlerMethodArgumentResolver);
    argumentResolvers.add(0, facadeBuilderHandlerMethodArgumentResolver);
    adapter.setArgumentResolvers(argumentResolvers);
  } catch (BeansException e) {
    //e.printStackTrace();
  }
}
项目:spring-cloud-aws    文件:SnsConfigurationTest.java   
@Test
public void enableSns_withMinimalConfig_shouldConfigureACompositeArgumentResolver() throws Exception {
    // Arrange & Act
    this.webApplicationContext.register(MinimalSnsConfiguration.class);
    this.webApplicationContext.refresh();
    RequestMappingHandlerAdapter requestMappingHandlerAdapter = this.webApplicationContext.getBean(RequestMappingHandlerAdapter.class);

    // Assert
    assertEquals(1, requestMappingHandlerAdapter.getCustomArgumentResolvers().size());
    HandlerMethodArgumentResolver argumentResolver = requestMappingHandlerAdapter.getCustomArgumentResolvers().get(0);
    assertTrue(HandlerMethodArgumentResolverComposite.class.isInstance(argumentResolver));

    HandlerMethodArgumentResolverComposite compositeArgumentResolver = (HandlerMethodArgumentResolverComposite) argumentResolver;
    assertEquals(3, compositeArgumentResolver.getResolvers().size());
    assertNotNull(ReflectionTestUtils.getField(getNotificationStatusHandlerMethodArgumentResolver(compositeArgumentResolver.getResolvers()), "amazonSns"));
}
项目:alfresco-mvc    文件:Jackson2PostProcessor.java   
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
  if (bean instanceof RequestMappingHandlerAdapter) {
    RequestMappingHandlerAdapter adapter = (RequestMappingHandlerAdapter) bean;
    List<HttpMessageConverter<?>> converters = adapter.getMessageConverters();
    for (HttpMessageConverter<?> converter : converters) {
      if (converter instanceof MappingJackson2HttpMessageConverter) {
        MappingJackson2HttpMessageConverter jsonConverter = (MappingJackson2HttpMessageConverter) converter;

        ObjectMapper objectMapper = new ObjectMapper();
        SimpleModule module = new SimpleModule("Alfresco MVC Module", new Version(1, 0, 0, null, null, null));
        module.addSerializer(QName.class, new Jackson2QnameSerializer(serviceRegistry));
        module.addDeserializer(QName.class, new Jackson2QnameDeserializer(serviceRegistry));

        objectMapper.setDateFormat(new SimpleDateFormat(getDateFormat()));
        objectMapper.registerModule(module);

        jsonConverter.setObjectMapper(objectMapper);
      }
    }
  }
  return bean;
}
项目:document-management-store-app    文件:AddMediaTypeSupportConfiguration.java   
@Override
public Object postProcessBeforeInitialization(Object bean, String s) {
    if (bean instanceof RequestMappingHandlerAdapter) {
        ((RequestMappingHandlerAdapter) bean).getMessageConverters().stream()
            .filter(converter -> converter instanceof MappingJackson2HttpMessageConverter)
            .forEach(converter -> {
                MappingJackson2HttpMessageConverter halConverterCandidate = (MappingJackson2HttpMessageConverter) converter;
                ObjectMapper objectMapper = halConverterCandidate.getObjectMapper();
                if (Jackson2HalModule.isAlreadyRegisteredIn(objectMapper)) {
                    List<MediaType> vendorSpecificTypes = new ArrayList<>(halConverterCandidate.getSupportedMediaTypes());
                    vendorSpecificTypes.add(V1MediaType.V1_HAL_DOCUMENT_COLLECTION_MEDIA_TYPE);
                    vendorSpecificTypes.add(V1MediaType.V1_HAL_DOCUMENT_MEDIA_TYPE);
                    vendorSpecificTypes.add(V1MediaType.V1_HAL_FOLDER_MEDIA_TYPE);
                    vendorSpecificTypes.add(V1MediaType.V1_HAL_DOCUMENT_CONTENT_VERSION_MEDIA_TYPE);
                    vendorSpecificTypes.add(V1MediaType.V1_HAL_AUDIT_ENTRY_MEDIA_TYPE);

                    vendorSpecificTypes.add(V1MediaType.V1_HAL_DOCUMENT_AND_METADATA_COLLECTION_MEDIA_TYPE);

                    vendorSpecificTypes.add(V1MediaType.V1_DOCUMENT_COLLECTION_MEDIA_TYPE);
                    vendorSpecificTypes.add(V1MediaType.V1_DOCUMENT_MEDIA_TYPE);
                    vendorSpecificTypes.add(V1MediaType.V1_FOLDER_MEDIA_TYPE);
                    vendorSpecificTypes.add(V1MediaType.V1_DOCUMENT_CONTENT_VERSION_MEDIA_TYPE);
                    vendorSpecificTypes.add(V1MediaType.V1_AUDIT_ENTRY_MEDIA_TYPE);
                    ((MappingJackson2HttpMessageConverter) converter).setSupportedMediaTypes(vendorSpecificTypes);
                }
            });
    }
    return bean;

}
项目:grpc-java-contrib    文件:GuavaLFReturnValueHandler.java   
public GuavaLFReturnValueHandler install(RequestMappingHandlerAdapter requestMappingHandlerAdapter) {
    final List<HandlerMethodReturnValueHandler> originalHandlers = new ArrayList<>(
            requestMappingHandlerAdapter.getReturnValueHandlers());

    final int deferredPos = indexOfType(originalHandlers, DeferredResultMethodReturnValueHandler.class);
    // Add our handler directly after the deferred handler.
    originalHandlers.add(deferredPos + 1, this);

    requestMappingHandlerAdapter.setReturnValueHandlers(originalHandlers);

    return this;
}
项目:spring4-understanding    文件:WebMvcConfigurationSupport.java   
/**
 * Returns a {@link RequestMappingHandlerAdapter} for processing requests
 * through annotated controller methods. Consider overriding one of these
 * other more fine-grained methods:
 * <ul>
 * <li>{@link #addArgumentResolvers} for adding custom argument resolvers.
 * <li>{@link #addReturnValueHandlers} for adding custom return value handlers.
 * <li>{@link #configureMessageConverters} for adding custom message converters.
 * </ul>
 */
@Bean
public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
    List<HandlerMethodArgumentResolver> argumentResolvers = new ArrayList<HandlerMethodArgumentResolver>();
    addArgumentResolvers(argumentResolvers);

    List<HandlerMethodReturnValueHandler> returnValueHandlers = new ArrayList<HandlerMethodReturnValueHandler>();
    addReturnValueHandlers(returnValueHandlers);

    RequestMappingHandlerAdapter adapter = new RequestMappingHandlerAdapter();
    adapter.setContentNegotiationManager(mvcContentNegotiationManager());
    adapter.setMessageConverters(getMessageConverters());
    adapter.setWebBindingInitializer(getConfigurableWebBindingInitializer());
    adapter.setCustomArgumentResolvers(argumentResolvers);
    adapter.setCustomReturnValueHandlers(returnValueHandlers);

    if (jackson2Present) {
        List<RequestBodyAdvice> requestBodyAdvices = new ArrayList<RequestBodyAdvice>();
        requestBodyAdvices.add(new JsonViewRequestBodyAdvice());
        adapter.setRequestBodyAdvice(requestBodyAdvices);

        List<ResponseBodyAdvice<?>> responseBodyAdvices = new ArrayList<ResponseBodyAdvice<?>>();
        responseBodyAdvices.add(new JsonViewResponseBodyAdvice());
        adapter.setResponseBodyAdvice(responseBodyAdvices);
    }

    AsyncSupportConfigurer configurer = new AsyncSupportConfigurer();
    configureAsyncSupport(configurer);

    if (configurer.getTaskExecutor() != null) {
        adapter.setTaskExecutor(configurer.getTaskExecutor());
    }
    if (configurer.getTimeout() != null) {
        adapter.setAsyncRequestTimeout(configurer.getTimeout());
    }
    adapter.setCallableInterceptors(configurer.getCallableInterceptors());
    adapter.setDeferredResultInterceptors(configurer.getDeferredResultInterceptors());

    return adapter;
}
项目:spring4-understanding    文件:WebMvcConfigurationSupportExtensionTests.java   
@Test
public void webBindingInitializer() throws Exception {
    RequestMappingHandlerAdapter adapter = this.config.requestMappingHandlerAdapter();

    ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) adapter.getWebBindingInitializer();
    assertNotNull(initializer);

    BeanPropertyBindingResult bindingResult = new BeanPropertyBindingResult(null, "");
    initializer.getValidator().validate(null, bindingResult);
    assertEquals("invalid", bindingResult.getAllErrors().get(0).getCode());

    String[] codes = initializer.getMessageCodesResolver().resolveMessageCodes("invalid", null);
    assertEquals("custom.invalid", codes[0]);
}
项目:spring4-understanding    文件:WebMvcConfigurationSupportTests.java   
@Test
public void requestMappingHandlerAdapter() throws Exception {
    ApplicationContext context = initContext(WebConfig.class);
    RequestMappingHandlerAdapter adapter = context.getBean(RequestMappingHandlerAdapter.class);
    List<HttpMessageConverter<?>> converters = adapter.getMessageConverters();
    assertEquals(9, converters.size());
    for(HttpMessageConverter<?> converter : converters) {
        if (converter instanceof AbstractJackson2HttpMessageConverter) {
            ObjectMapper objectMapper = ((AbstractJackson2HttpMessageConverter)converter).getObjectMapper();
            assertFalse(objectMapper.getDeserializationConfig().isEnabled(MapperFeature.DEFAULT_VIEW_INCLUSION));
            assertFalse(objectMapper.getSerializationConfig().isEnabled(MapperFeature.DEFAULT_VIEW_INCLUSION));
            assertFalse(objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES));
            if (converter instanceof MappingJackson2XmlHttpMessageConverter) {
                assertEquals(XmlMapper.class, objectMapper.getClass());
            }
        }
    }

    ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) adapter.getWebBindingInitializer();
    assertNotNull(initializer);

    ConversionService conversionService = initializer.getConversionService();
    assertNotNull(conversionService);
    assertTrue(conversionService instanceof FormattingConversionService);

    Validator validator = initializer.getValidator();
    assertNotNull(validator);
    assertTrue(validator instanceof LocalValidatorFactoryBean);

    DirectFieldAccessor fieldAccessor = new DirectFieldAccessor(adapter);
    @SuppressWarnings("unchecked")
    List<Object> bodyAdvice = (List<Object>) fieldAccessor.getPropertyValue("requestResponseBodyAdvice");
    assertEquals(2, bodyAdvice.size());
    assertEquals(JsonViewRequestBodyAdvice.class, bodyAdvice.get(0).getClass());
    assertEquals(JsonViewResponseBodyAdvice.class, bodyAdvice.get(1).getClass());
}
项目:spring4-understanding    文件:AnnotationDrivenBeanDefinitionParserTests.java   
@Test
public void testMessageCodesResolver() {
    loadBeanDefinitions("mvc-config-message-codes-resolver.xml");
    RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
    assertNotNull(adapter);
    Object initializer = adapter.getWebBindingInitializer();
    assertNotNull(initializer);
    MessageCodesResolver resolver = ((ConfigurableWebBindingInitializer) initializer).getMessageCodesResolver();
    assertNotNull(resolver);
    assertEquals(TestMessageCodesResolver.class, resolver.getClass());
    assertEquals(false, new DirectFieldAccessor(adapter).getPropertyValue("ignoreDefaultModelOnRedirect"));
}
项目:spring4-understanding    文件:AnnotationDrivenBeanDefinitionParserTests.java   
@Test
public void testMessageConverters() {
    loadBeanDefinitions("mvc-config-message-converters.xml");
    verifyMessageConverters(appContext.getBean(RequestMappingHandlerAdapter.class), true);
    verifyMessageConverters(appContext.getBean(ExceptionHandlerExceptionResolver.class), true);
    verifyRequestResponseBodyAdvice(appContext.getBean(RequestMappingHandlerAdapter.class));
    verifyResponseBodyAdvice(appContext.getBean(ExceptionHandlerExceptionResolver.class));
}
项目:spring4-understanding    文件:AnnotationDrivenBeanDefinitionParserTests.java   
@SuppressWarnings("unchecked")
@Test
public void testReturnValueHandlers() {
    loadBeanDefinitions("mvc-config-return-value-handlers.xml");
    RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
    assertNotNull(adapter);
    Object value = new DirectFieldAccessor(adapter).getPropertyValue("customReturnValueHandlers");
    assertNotNull(value);
    assertTrue(value instanceof List);
    List<HandlerMethodReturnValueHandler> handlers = (List<HandlerMethodReturnValueHandler>) value;
    assertEquals(2, handlers.size());
    assertEquals(TestHandlerMethodReturnValueHandler.class, handlers.get(0).getClass());
    assertEquals(TestHandlerMethodReturnValueHandler.class, handlers.get(1).getClass());
    assertNotSame(handlers.get(0), handlers.get(1));
}
项目:spring4-understanding    文件:StandaloneMockMvcBuilder.java   
private void registerMvcSingletons(StubWebApplicationContext wac) {
    StandaloneConfiguration config = new StandaloneConfiguration();
    config.setApplicationContext(wac);

    wac.addBeans(this.controllerAdvice);

    StaticRequestMappingHandlerMapping hm = config.getHandlerMapping();
    hm.setServletContext(wac.getServletContext());
    hm.setApplicationContext(wac);
    hm.afterPropertiesSet();
    hm.registerHandlers(this.controllers);
    wac.addBean("requestMappingHandlerMapping", hm);

    RequestMappingHandlerAdapter handlerAdapter = config.requestMappingHandlerAdapter();
    handlerAdapter.setServletContext(wac.getServletContext());
    handlerAdapter.setApplicationContext(wac);
    handlerAdapter.afterPropertiesSet();
    wac.addBean("requestMappingHandlerAdapter", handlerAdapter);

    wac.addBean("handlerExceptionResolver", config.handlerExceptionResolver());

    wac.addBeans(initViewResolvers(wac));
    wac.addBean(DispatcherServlet.LOCALE_RESOLVER_BEAN_NAME, this.localeResolver);
    wac.addBean(DispatcherServlet.THEME_RESOLVER_BEAN_NAME, new FixedThemeResolver());
    wac.addBean(DispatcherServlet.REQUEST_TO_VIEW_NAME_TRANSLATOR_BEAN_NAME, new DefaultRequestToViewNameTranslator());

    this.flashMapManager = new SessionFlashMapManager();
    wac.addBean(DispatcherServlet.FLASH_MAP_MANAGER_BEAN_NAME, this.flashMapManager);
}