1. 28 10月, 2013 7 次提交
    • S
      Relocate test class to src/test/java folder · f9cadfe6
      Sam Brannen 提交于
      f9cadfe6
    • S
      Merge pull request #393 from sbrannen/SPR-7827 · 2bd5a535
      Sam Brannen 提交于
      * SPR-7827:
        Provide meta-annotation support in the TCF
      2bd5a535
    • S
      Provide meta-annotation support in the TCF · 5e7021f3
      Sam Brannen 提交于
      Spring 3.0 already allows component stereotypes to be used in a
      meta-annotation fashion, for example by creating a custom
      @TransactionalService stereotype annotation which combines
      @Transactional and @Service in a single, reusable, application-specific
      annotation. However, the Spring TestContext Framework (TCF) currently
      does not provide any support for test-related annotations to be used as
      meta-annotations.
      
      This commit overhauls the TCF with regard to how annotations are
      retrieved and adds explicit support for the following annotations to be
      used as meta-annotations in conjunction with the TCF.
      
      - @ContextConfiguration
      - @ContextHierarchy
      - @ActiveProfiles
      - @DirtiesContext
      - @IfProfileValue
      - @ProfileValueSourceConfiguration
      - @BeforeTransaction
      - @AfterTransaction
      - @TransactionConfiguration
      - @Rollback
      - @TestExecutionListeners
      - @Repeat
      - @Timed
      - @WebAppConfiguration
      
      Note that meta-annotation support for @Transactional was already
      available prior to this commit.
      
      The following is a summary of the major changes included in this commit.
      
      - Now using AnnotationUtils.getAnnotation() instead of
        Class.getAnnotation() where appropriate in the TestContext Framework.
      - Now using AnnotationUtils.findAnnotation() instead of
        Class.isAnnotationPresent() where appropriate in the TestContext
        Framework.
      - Introduced findAnnotationPrefersInteracesOverLocalMetaAnnotations() in
        AnnotationUtilsTests in order to verify the status quo.
      - AnnotationUtils.findAnnotationDeclaringClass() and
        AnnotationUtils.findAnnotationDeclaringClassForTypes() now support
        meta annotations.
      - Introduced MetaAnnotationUtils and AnnotationDescriptor in the
        spring-test module.
      - Introduced UntypedAnnotationDescriptor in MetaAnnotationUtils.
      - Introduced findAnnotationDescriptorForTypes() in MetaAnnotationUtils.
      - ContextLoaderUtils now uses MetaAnnotationUtils for looking up
        @ActiveProfiles as a potential meta-annotation.
      - TestContextManager now uses MetaAnnotationUtils for looking up
        @TestExecutionListeners as a potential meta-annotation.
      - DirtiesContextTestExecutionListener now uses AnnotationUtils for
        looking up @DirtiesContext as a potential meta-annotation.
      - Introduced DirtiesContextTestExecutionListenerTests.
      - ProfileValueUtils now uses AnnotationUtils for looking up
        @IfProfileValue and @ProfileValueSourceConfiguration as potential
        meta-annotations.
      - @BeforeTransaction and @AfterTransaction now support ANNOTATION_TYPE
        as a target, allowing them to be used as meta-annotations.
      - TransactionalTestExecutionListener now uses AnnotationUtils for
        looking up @BeforeTransaction, @AfterTransaction, @Rollback, and
        @TransactionConfiguration as potential meta-annotations.
      - Introduced TransactionalTestExecutionListenerTests.
      - @Repeat and @Timed now support ANNOTATION_TYPE as a target, allowing
        them to be used as meta-annotations.
      - SpringJUnit4ClassRunner now uses AnnotationUtils for looking up
        @Repeat and @Timed as potential meta-annotations.
      - Moved all remaining logic for building the MergedContextConfiguration
        from the DefaultTestContext constructor to
        ContextLoaderUtils.buildMergedContextConfiguration().
      - Verified meta-annotation support for @WebAppConfiguration and
        @ContextConfiguration.
      
      Issue: SPR-7827
      5e7021f3
    • J
      Aligned with refinements in 3.2.x branch · 56dfcd15
      Juergen Hoeller 提交于
      Issue: SPR-11034
      56dfcd15
    • R
      Replace use of jdk 1.8 api · 24dfe8ec
      Rossen Stoyanchev 提交于
      24dfe8ec
    • J
      Polishing · 2c2ed7ed
      Juergen Hoeller 提交于
      2c2ed7ed
    • J
      Fixed resolveReturnTypeForFactoryMethod to unwrap TypedStringValue · 960ba379
      Juergen Hoeller 提交于
      XML-defined arguments values are initially turned into TypedStringValue wrappers. If we encounter an unresolved argument, we need to unwrap such a TypedStringValue and then try to treat its content as a class name.
      
      Issue: SPR-11034
      960ba379
  2. 27 10月, 2013 5 次提交
    • J
      Added further tests for raw matching of generic types · 671fad3c
      Juergen Hoeller 提交于
      Issue: SPR-11034
      Issue: SPR-11004
      671fad3c
    • J
      Polishing · 4cb453bb
      Juergen Hoeller 提交于
      4cb453bb
    • J
      Proper matching of raw generic types and generically typed factory methods · a6b02610
      Juergen Hoeller 提交于
      Also optimized getTypeForFactoryMethod's implementation for non-generic factory methods, and reduced calls to getResolvedFactoryMethod in order to avoid repeated synchronization.
      
      Issue: SPR-11034
      a6b02610
    • S
      Convert TestContext to interface & default impl · 88fe2e9b
      Sam Brannen 提交于
      Since the Spring TestContext Framework was introduced in Spring
      Framework 2.5, the TestContext class has always been a public class
      with package private constructors. The visibility of TestContext's
      constructor and methods was intentionally limited in order to hide the
      implementation details of the context cache, etc. However, this fact
      has made it difficult (if not impossible) to unit test custom
      TestExecutionListener implementations.
      
      This commit addresses this issue by converting TestContext into a
      public interface with a package private DefaultTestContext
      implementation. This enables unit testing of any components that depend
      on a TestContext (e.g., TestExecutionListeners) while at the same time
      preserving the encapsulation of the inner workings of the TestContext
      implementation with regard to context loading and caching.
      
      Issue: SPR-7692
      88fe2e9b
    • P
      Increased ResolvableType unit test coverage · 2e1c035d
      Phillip Webb 提交于
      Issue: SPR-11034
      2e1c035d
  3. 26 10月, 2013 20 次提交
  4. 25 10月, 2013 5 次提交
  5. 24 10月, 2013 2 次提交
  6. 23 10月, 2013 1 次提交