Closed
Description
Sam Brannen opened SPR-9955 and commented
Status Quo
Work done in conjunction with #9917 and #9265 introduced physical package cycles in the spring-test
module. The work performed in conjunction with #14557 uses reflection to resolve these physical package cycles; however, logical package cycles still remain.
Deliverables
- Introduce a bootstrap strategy in the TestContext framework (TCF) that is responsible for determining and appropriately delegating to or instantiating the following:
AbstractDelegatingSmartContextLoader
(i.e., a concrete subclass thereof)MergedContextConfiguration
(or a subclass thereof)
- Refactor
ContextLoaderUtils
to instantiate and delegate to a bootstrap instance instead of using extensive reflection. - Introduce a meta-annotation that can be used to designate the concrete bootstrap strategy to use.
- For example,
@WebAppConfiguration
could be annotated with such a meta-annotation that points to the web bootstrap strategy implementation.
- For example,
Affects: 3.2 RC1
Issue Links:
- Relocate web artifacts in the TestContext framework to the web package [SPR-10067] #14700 Relocate web artifacts in the TestContext framework to the web package ("depends on")
- Deprecate TestContextManager.getDefaultTestExecutionListenerClasses() [SPR-11679] #16302 Deprecate TestContextManager.getDefaultTestExecutionListenerClasses() ("depends on")
- Deprecate support for custom, default ContextLoader class name in the TestContext framework [SPR-11682] #16305 Deprecate support for custom, default ContextLoader class name in the TestContext framework ("depends on")
- AnnotationUtils.findAnnotation() should support arbitrary levels of meta-annotations [SPR-11448] #16074 AnnotationUtils.findAnnotation() should support arbitrary levels of meta-annotations ("depends on")
- Document TestContext bootstrap strategy in the reference manual [SPR-11683] #16306 Document TestContext bootstrap strategy in the reference manual ("is depended on by")
- Enable reuse of DefaultActiveProfilesResolver [SPR-12611] #17212 Enable reuse of DefaultActiveProfilesResolver ("is depended on by")
- Provide support for session/request scoped beans for integration testing [SPR-4588] #9265 Provide support for session/request scoped beans for integration testing
- Support loading WebApplicationContexts with the TestContext Framework [SPR-5243] #9917 Support loading WebApplicationContexts with the TestContext Framework
- Fix package cycles in spring-test [SPR-9924] #14557 Fix package cycles in spring-test