1. 24 5月, 2015 8 次提交
  2. 23 5月, 2015 14 次提交
  3. 22 5月, 2015 18 次提交
    • S
      Polish and reorganize new-in-4.2 section · 3a2da3f7
      Sam Brannen 提交于
      3a2da3f7
    • S
      Polish annotation utility tests · 73170224
      Sam Brannen 提交于
      73170224
    • A
      SpEL: ensure correct object used for nested #this references · 91ed5b6b
      Andy Clement 提交于
      Before this commit the object that #this would refer to in
      nested expressions within projection/selection clauses was always
      the root context object. This was incorrect as it should be the
      element being projected/selected over. This commit introduces
      a scope root context object which is set upon entering a new
      scope (like when entering a projection or selection). Any
      object. With this change this kind of expression now behaves:
      
      where #this is the element of list1. Unqualified references
      are also resolved against this scope root context object.
      
      Issues: SPR-10417, SPR-12035, SPR-13055
      91ed5b6b
    • S
      Update what's new section · 5a3eea8a
      Stephane Nicoll 提交于
      5a3eea8a
    • S
      Verify that SynthesizedAnnotation must be public · e7ea9256
      Sam Brannen 提交于
      This commit introduces a test that will fail if SynthesizedAnnotation is
      not public as is required by the contract for getProxyClass() in
      java.lang.reflect.Proxy.
      
      Issue: SPR-13057
      e7ea9256
    • S
      Introduce putIfAbsent() in AnnotationAttributes · ca09b1ff
      Sam Brannen 提交于
      Issue: SPR-13060
      ca09b1ff
    • R
      Upgrade to Reactor 2.0.2 · 18946c82
      Rossen Stoyanchev 提交于
      18946c82
    • R
      Polish · 0db216da
      Rossen Stoyanchev 提交于
      0db216da
    • J
      fee63fdf
    • S
      Support CompletableFuture in @MessageMapping handler methods · 5255e7ae
      Sebastien Deleuze 提交于
      Issue: SPR-12207
      5255e7ae
    • S
      Support ListenableFuture in @MessageMapping handler methods · d3db99c2
      Sebastien Deleuze 提交于
      This commit introduces support for asynchronous return values thanks
      to the new AsyncHandlerMethodReturnValueHandler interface. Out of
      the box support for ListenableFuture is also provided.
      
      Issue: SPR-12168
      d3db99c2
    • J
      ByteBufferConverter explicitly declares applicability to byte[] · 792b7b9d
      Juergen Hoeller 提交于
      Includes an optimization for simple ByteBuffer duplication.
      
      Issue: SPR-13056
      792b7b9d
    • S
      Restore AbstractPropertyAccessor · 2dc674f3
      Stephane Nicoll 提交于
      Commit 3d86f15a added a lot of new feature in AbstractPropertyAccessor
      shared by both DirectFieldAccessor and BeanWrapperImpl. This makes this
      abstract class harder to implement for others having simpler use cases.
      
      It turns that Spring Data has such use case; this commit split these new
      features in a dedicated new base class, leaving AbstractPropertyAccessor
      untouched.
      
      Issue: SPR-12805
      2dc674f3
    • S
      Polish · 27c435c4
      Stephane Nicoll 提交于
      27c435c4
    • S
      Make SynthetizedAnnotation public · 39b2fbbc
      Stephane Nicoll 提交于
      Enable public visibility on SynthetizedAnnotation to allow annotation
      outside its package to be proxied properly. This commit is pending a
      unit test that actually reproduces the problem.
      
      Issue: SPR-13057
      39b2fbbc
    • S
      Merge from sbrannen/SPR-11512 · 4549d76f
      Sam Brannen 提交于
      * SPR-11512:
        Support annotation attribute aliases and overrides via @AliasFor
      4549d76f
    • 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
    • S
      Make PropertyMatches public · a87d5f8a
      Stephane Nicoll 提交于
      Issue: SPR-13054
      a87d5f8a