- 28 10月, 2013 7 次提交
-
-
由 Sam Brannen 提交于
-
由 Sam Brannen 提交于
* SPR-7827: Provide meta-annotation support in the TCF
-
由 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
-
由 Juergen Hoeller 提交于
Issue: SPR-11034
-
由 Rossen Stoyanchev 提交于
-
由 Juergen Hoeller 提交于
-
由 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
-
- 27 10月, 2013 5 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-11034 Issue: SPR-11004
-
由 Juergen Hoeller 提交于
-
由 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
-
由 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
-
由 Phillip Webb 提交于
Issue: SPR-11034
-
- 26 10月, 2013 20 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-11034
-
由 Juergen Hoeller 提交于
(cherry picked from commit 6021822c)
-
由 Juergen Hoeller 提交于
Issue: SPR-10995 (cherry picked from commit 045f78e6)
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
Issue: SPR-10995
-
由 Juergen Hoeller 提交于
Issue: SPR-11019
-
由 Juergen Hoeller 提交于
Issue: SPR-11027
-
由 Rossen Stoyanchev 提交于
Issue: SPR-8826
-
由 Rossen Stoyanchev 提交于
Issue: SPR-8826
-
由 Phillip Webb 提交于
Fix off-by-one error in StringUtils.parseLocaleString() Issue: SPR-10364
-
由 Phillip Webb 提交于
Add getSource() method to ResolvableType and TypeDescriptor allowing access to the underlying source field or method parameter when possible. Primarily added to provide access to additional type information or meta-data that alternative JVM languages may provide. Issue: SPR-10887
-
由 Phillip Webb 提交于
Update EvaluationException to expose the toDetailedString() method as the exception message. The simple message can now be accessed via the new getSimpleMessage() method. Issue: SPR-10938
-
由 Phillip Webb 提交于
Restore prior behavior of GenericTypeResolver.resolveTypeArguments to never include null elements in the returned array. Issue: SPR-11030
-
由 Juergen Hoeller 提交于
Issue: SPR-11027
-
由 Juergen Hoeller 提交于
Issue: SPR-11028
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
Including ScriptEvaluator implementations for JSR-223, Groovy and BeanShell. BeanShell consistently receives the bean ClassLoader now. Also revised ScriptFactory and its implementations for varargs. Issue: SPR-11007
-
由 Phillip Webb 提交于
-
由 Juergen Hoeller 提交于
Issue: SPR-11032
-
由 Juergen Hoeller 提交于
Issue: SPR-11031
-
- 25 10月, 2013 5 次提交
-
-
由 Juergen Hoeller 提交于
DefaultListableBeanFactory performs a fallback check for autowire candidates now, which GenericTypeAwareAutowireCandidateResolver implements to accept raw type matches if the target class has unresolvable type variables. Full generic matches are still preferred; the BeanFactory will only start looking for fallback matches if the first pass led to an empty result. Issue: SPR-10993 Issue: SPR-11004
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
-
由 Rossen Stoyanchev 提交于
Introduce base class AbstractMethodMessageHandler for HandlerMethod-based message handling. Add MessageCondition interface for mapping conditions to messages with support for combining type- and method-level annotation conditions, the ability to match conditions to messages, and also comparing matches to select the best match. Issue: SPR-11024
-
- 24 10月, 2013 2 次提交
-
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
-
- 23 10月, 2013 1 次提交
-
-
由 Rossen Stoyanchev 提交于
-