1. 31 5月, 2015 5 次提交
  2. 29 5月, 2015 1 次提交
  3. 24 5月, 2015 2 次提交
  4. 23 5月, 2015 2 次提交
  5. 22 5月, 2015 1 次提交
    • S
      Support annotation attribute aliases and overrides via @AliasFor · ca66e076
      Sam Brannen 提交于
      This commit introduces first-class support for aliases for annotation
      attributes. Specifically, this commit introduces a new @AliasFor
      annotation that can be used to declare a pair of aliased attributes
      within a single annotation or an alias from an attribute in a custom
      composed annotation to an attribute in a meta-annotation.
      
      To support @AliasFor within annotation instances, AnnotationUtils has
      been overhauled to "synthesize" any annotations returned by "get" and
      "find" searches. A SynthesizedAnnotation is an annotation that is
      wrapped in a JDK dynamic proxy which provides run-time support for
      @AliasFor semantics. SynthesizedAnnotationInvocationHandler is the
      actual handler behind the proxy.
      
      In addition, the contract for @AliasFor is fully validated, and an
      AnnotationConfigurationException is thrown in case invalid
      configuration is detected.
      
      For example, @ContextConfiguration from the spring-test module is now
      declared as follows:
      
          public @interface ContextConfiguration {
      
              @AliasFor(attribute = "locations")
              String[] value() default {};
      
              @AliasFor(attribute = "value")
              String[] locations() default {};
      
              // ...
          }
      
      The following annotations and their related support classes have been
      modified to use @AliasFor.
      
      - @ManagedResource
      - @ContextConfiguration
      - @ActiveProfiles
      - @TestExecutionListeners
      - @TestPropertySource
      - @Sql
      - @ControllerAdvice
      - @RequestMapping
      
      Similarly, support for AnnotationAttributes has been reworked to
      support @AliasFor as well. This allows for fine-grained control over
      exactly which attributes are overridden within an annotation hierarchy.
      In fact, it is now possible to declare an alias for the 'value'
      attribute of a meta-annotation.
      
      For example, given the revised declaration of @ContextConfiguration
      above, one can now develop a composed annotation with a custom
      attribute override as follows.
      
          @ContextConfiguration
          public @interface MyTestConfig {
      
              @AliasFor(
                 annotation = ContextConfiguration.class,
                 attribute = "locations"
              )
              String[] xmlFiles();
      
              // ...
          }
      
      Consequently, the following are functionally equivalent.
      
      - @MyTestConfig(xmlFiles = "test.xml")
      - @ContextConfiguration("test.xml")
      - @ContextConfiguration(locations = "test.xml").
      
      Issue: SPR-11512, SPR-11513
      ca66e076
  6. 21 5月, 2015 2 次提交
    • S
      Merge BeanWrapperImpl and DirectFieldAccessor · 3d86f15a
      Stephane Nicoll 提交于
      `BeanWrapperImpl` and `DirectFieldAccessor` are two
      `ConfigurablePropertyAccessor` implementations with different features
      set.
      
      This commit harmonizes the two implementations to use a common base class
      that delegates the actual property handling to the sub-classes:
      
      * `BeanWrapperImpl`:  `PropertyDescriptor` and introspection utilities
      * `DirectFieldAccessor`: reflection on `java.lang.Field`
      
      Issues: SPR-12206 - SPR-12805
      3d86f15a
    • R
      Add baseUrl to DefaultUriTemplateHandler · 1ba0625c
      Rossen Stoyanchev 提交于
      Issue: SPR-13035
      1ba0625c
  7. 20 5月, 2015 1 次提交
  8. 19 5月, 2015 4 次提交
    • S
      polish · cf391f5c
      Stephane Nicoll 提交于
      Remove unused imports
      cf391f5c
    • R
      Polish · 6468aa77
      Rossen Stoyanchev 提交于
      Issue: SPR-12893
      6468aa77
    • L
      Support OkHttp as (Async)ClientHttpRequestFactory · 69fc2a8a
      Luciano Leggieri 提交于
      This commit introduces support for OkHttp
      (http://square.github.io/okhttp/) as a backing implementation for
      ClientHttpRequestFactory and AsyncClientHttpRequestFactory.
      
      Issue: SPR-12893
      69fc2a8a
    • R
      CORS-related refinements · 5e8d8383
      Rossen Stoyanchev 提交于
      After this change CorsProcessor has a single processRequest method and
      it also explicitly deals with a null CorsConfiguration, which for
      pre-flight requests results in a rejection while for simple requests
      results in no CORS headers added.
      
      The AbstractHandlerMapping now uses a LinkedHashMap to preserve the
      order in which global patterns are provided.
      5e8d8383
  9. 18 5月, 2015 2 次提交
  10. 16 5月, 2015 1 次提交
    • S
      Add global CORS configuration capabilities · 49fff751
      Sebastien Deleuze 提交于
      This commit adds JavaConfig based global CORS configuration
      capabilities to Spring MVC. It is now possible to specify
      multiple CORS configurations, each mapped on a path pattern,
      by overriding
      WebMvcConfigurerAdapter#configureCrossOrigin(CrossOriginConfigurer).
      
      It is also possible to combine global and @CrossOrigin based
      CORS configuration.
      
      Issue: SPR-12933
      49fff751
  11. 15 5月, 2015 2 次提交
    • R
      Add component-neutral encode option in UriUtils · ca410fea
      Rossen Stoyanchev 提交于
      Issue: SPR-12750, SPR-12942
      ca410fea
    • R
      Add UriTemplateHandler · 3e59c244
      Rossen Stoyanchev 提交于
      This change introduces a strategy for expanding a URI template into a
      URI and makes it a property of the RestTemplate and AsyncRestTemplate
      so that they can be pre-configured with such a strategy.
      
      The DefaultUriTemplateHandler relies on UriComponentsBuilder internally
      and provides functionality equivalent to using the UriTemplate.
      A DefaultUriTemplateHandler can also be configured to parse the path
      of a URI template into path segments in order to allow expanding URI
      variables according to path segment encoding rules.
      
      Issue: SPR-12750
      3e59c244
  12. 14 5月, 2015 1 次提交
  13. 12 5月, 2015 2 次提交
  14. 11 5月, 2015 1 次提交
  15. 10 5月, 2015 1 次提交
  16. 07 5月, 2015 2 次提交
  17. 06 5月, 2015 1 次提交
    • R
      Find CORS config by HandlerMethod · 8853107f
      Rossen Stoyanchev 提交于
      Before this change AbstractHandlerMethodMapping used a map from Method
      to CorsConfiguration. That works for regular @RequestMapping methods.
      However frameworks like Spring Boot and Spring Integration may
      programmatically register the same Method under multiple mappings,
      i.e. adapter/gateway type classes.
      
      This change ensures that CorsConfiguraiton is indexed by HandlerMethod
      so that we can store CorsConfiguration for different handler instances
      even when the method is the same.
      
      In order for to make this work, HandlerMethod now provides an
      additional field called resolvedFromHandlerMethod that returns the
      original HandlerMethod (with the String bean name). This makes it
      possible to  perform reliable lookups.
      
      Issue: SPR-11541
      8853107f
  18. 05 5月, 2015 3 次提交
    • S
      Consistently supply test name to @Parameters · 572cbb08
      Sam Brannen 提交于
      572cbb08
    • R
      Encapsulate CORS checking within CorsConfiguration · e3060981
      Rossen Stoyanchev 提交于
      CorsConfiguration now provides methods to check and determine the
      allowed origin, method, and headers according to its own configuration.
      
      This simplifies significantly the work that needs to be done from
      DefaultCorsProcessor. However an alternative CorsProcessor can still
      access the raw CorsConfiguration and perform its own checks.
      
      Issue: SPR-12885
      e3060981
    • S
      Make DefaultCorsProcessor Servlet 2.5 compliant · 83f269b5
      Sebastien Deleuze 提交于
      This commit adds CORS related headers to HttpHeaders
      and update DefaultCorsProcessor implementation to
      use ServerHttpRequest and ServerHttpResponse instead
      of HttpServletRequest and HttpServletResponse. Usage
      of ServerHttpResponse allows to avoid using Servlet 3.0
      specific methods in order keep CORS support Servlet 2.5
      compliant.
      
      Issue: SPR-12885
      83f269b5
  19. 04 5月, 2015 3 次提交
  20. 24 4月, 2015 1 次提交
  21. 20 4月, 2015 1 次提交
  22. 17 4月, 2015 1 次提交