Class MergedContextConfiguration
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
WebMergedContextConfiguration
MergedContextConfiguration encapsulates the merged context
configuration declared on a test class and all of its superclasses and
enclosing classes via @ContextConfiguration,
@ActiveProfiles, and
@TestPropertySource.
Merged context resource locations, annotated classes, active profiles,
property resource locations, and in-lined properties represent all declared
values in the test class hierarchy and enclosing class hierarchy taking into
consideration the semantics of the ContextConfiguration.inheritLocations(),
ActiveProfiles.inheritProfiles(),
TestPropertySource.inheritLocations(), and
TestPropertySource.inheritProperties() flags.
A SmartContextLoader uses MergedContextConfiguration
to load an ApplicationContext.
MergedContextConfiguration is also used by the
ContextCache
as the key for caching an
ApplicationContext
that was loaded using properties of this MergedContextConfiguration.
- Since:
- 3.1
- Author:
- Sam Brannen, Phillip Webb
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionMergedContextConfiguration(Class<?> testClass, String[] locations, Class<?>[] classes, String[] activeProfiles, ContextLoader contextLoader) Create a newMergedContextConfigurationinstance for the supplied parameters.MergedContextConfiguration(Class<?> testClass, String[] locations, Class<?>[] classes, Set<Class<? extends ApplicationContextInitializer<?>>> contextInitializerClasses, String[] activeProfiles, String[] propertySourceLocations, String[] propertySourceProperties, Set<ContextCustomizer> contextCustomizers, ContextLoader contextLoader, CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate, MergedContextConfiguration parent) Deprecated.MergedContextConfiguration(Class<?> testClass, String[] locations, Class<?>[] classes, Set<Class<? extends ApplicationContextInitializer<?>>> contextInitializerClasses, String[] activeProfiles, String[] propertySourceLocations, String[] propertySourceProperties, ContextLoader contextLoader, CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate, MergedContextConfiguration parent) MergedContextConfiguration(Class<?> testClass, String[] locations, Class<?>[] classes, Set<Class<? extends ApplicationContextInitializer<?>>> contextInitializerClasses, String[] activeProfiles, List<PropertySourceDescriptor> propertySourceDescriptors, String[] propertySourceProperties, Set<ContextCustomizer> contextCustomizers, ContextLoader contextLoader, CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate, MergedContextConfiguration parent) Create a newMergedContextConfigurationinstance for the supplied parameters.MergedContextConfiguration(Class<?> testClass, String[] locations, Class<?>[] classes, Set<Class<? extends ApplicationContextInitializer<?>>> contextInitializerClasses, String[] activeProfiles, ContextLoader contextLoader) Create a newMergedContextConfigurationinstance for the supplied parameters.MergedContextConfiguration(Class<?> testClass, String[] locations, Class<?>[] classes, Set<Class<? extends ApplicationContextInitializer<?>>> contextInitializerClasses, String[] activeProfiles, ContextLoader contextLoader, CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate, MergedContextConfiguration parent) Create a newMergedContextConfigurationinstance for the supplied parameters.MergedContextConfiguration(MergedContextConfiguration mergedConfig) Create a newMergedContextConfigurationinstance by copying all fields from the suppliedMergedContextConfiguration. -
Method Summary
Modifier and TypeMethodDescriptionbooleanDetermine if the supplied object is equal to thisMergedContextConfigurationinstance by comparing both objects' locations, annotated classes, context initializer classes, active profiles, property source descriptors, property source properties, context customizers, parents, and the fully qualified names of theirContextLoaders.String[]Get the merged active bean definition profiles for the test class.Class<?>[]Get the merged annotated classes for the test class.Get the mergedContextCustomizersthat will be applied when the application context is loaded.Set<Class<? extends ApplicationContextInitializer<?>>>Get the mergedApplicationContextInitializerclasses for the test class.Get the resolvedContextLoaderfor the test class.String[]Get the merged resource locations forApplicationContextconfiguration files for the test class.Get theMergedContextConfigurationfor the parent application context in a context hierarchy.Get the parentApplicationContextfor the context defined by thisMergedContextConfigurationfrom the context cache.Get the merged descriptors for resource locations for testPropertySourcesfor the test class.String[]Deprecated.since 6.1 in favor ofgetPropertySourceDescriptors()String[]Get the merged inlined properties for the test class.Class<?>Get the test class associated with thisMergedContextConfiguration.booleanDetermine if thisMergedContextConfigurationinstance has class-based resources.inthashCode()Generate a unique hash code for all properties of thisMergedContextConfigurationexcluding the test class.booleanDetermine if thisMergedContextConfigurationinstance has path-based context resource locations.booleanDetermine if thisMergedContextConfigurationinstance has either path-based context resource locations or class-based resources.protected static StringnullSafeClassName(ContextLoader contextLoader) Generate a null-safeStringrepresentation of the suppliedContextLoaderbased solely on the fully qualified name of the loader or "null" if the supplied loader isnull.protected static String[]processStrings(String[] array) toString()Provide a String representation of the test class, locations, annotated classes, context initializer classes, active profiles, property source descriptors, property source properties, context customizers, the name of theContextLoader, and the parent configuration.
-
Constructor Details
-
MergedContextConfiguration
public MergedContextConfiguration(Class<?> testClass, @Nullable String[] locations, @Nullable Class<?>[] classes, @Nullable String[] activeProfiles, ContextLoader contextLoader) Create a newMergedContextConfigurationinstance for the supplied parameters.- Parameters:
testClass- the test class for which the configuration was mergedlocations- the merged context resource locationsclasses- the merged annotated classesactiveProfiles- the merged active bean definition profilescontextLoader- the resolvedContextLoader
-
MergedContextConfiguration
public MergedContextConfiguration(Class<?> testClass, @Nullable String[] locations, @Nullable Class<?>[] classes, @Nullable Set<Class<? extends ApplicationContextInitializer<?>>> contextInitializerClasses, @Nullable String[] activeProfiles, ContextLoader contextLoader) Create a newMergedContextConfigurationinstance for the supplied parameters.- Parameters:
testClass- the test class for which the configuration was mergedlocations- the merged context resource locationsclasses- the merged annotated classescontextInitializerClasses- the merged context initializer classesactiveProfiles- the merged active bean definition profilescontextLoader- the resolvedContextLoader
-
MergedContextConfiguration
public MergedContextConfiguration(Class<?> testClass, @Nullable String[] locations, @Nullable Class<?>[] classes, @Nullable Set<Class<? extends ApplicationContextInitializer<?>>> contextInitializerClasses, @Nullable String[] activeProfiles, ContextLoader contextLoader, @Nullable CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate, @Nullable MergedContextConfiguration parent) Create a newMergedContextConfigurationinstance for the supplied parameters.- Parameters:
testClass- the test class for which the configuration was mergedlocations- the merged context resource locationsclasses- the merged annotated classescontextInitializerClasses- the merged context initializer classesactiveProfiles- the merged active bean definition profilescontextLoader- the resolvedContextLoadercacheAwareContextLoaderDelegate- a cache-aware context loader delegate with which to retrieve the parentApplicationContextparent- the parent configuration ornullif there is no parent- Since:
- 3.2.2
-
MergedContextConfiguration
Create a newMergedContextConfigurationinstance by copying all fields from the suppliedMergedContextConfiguration.- Since:
- 4.1
-
MergedContextConfiguration
@Deprecated(since="6.1") public MergedContextConfiguration(Class<?> testClass, @Nullable String[] locations, @Nullable Class<?>[] classes, @Nullable Set<Class<? extends ApplicationContextInitializer<?>>> contextInitializerClasses, @Nullable String[] activeProfiles, @Nullable String[] propertySourceLocations, @Nullable String[] propertySourceProperties, ContextLoader contextLoader, @Nullable CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate, @Nullable MergedContextConfiguration parent) Deprecated.Create a newMergedContextConfigurationinstance for the supplied parameters.If a
nullvalue is supplied forlocations,classes,activeProfiles,propertySourceLocations, orpropertySourcePropertiesan empty array will be stored instead. If anullvalue is supplied for thecontextInitializerClassesan empty set will be stored instead. Furthermore, active profiles will be sorted, and duplicate profiles will be removed.- Parameters:
testClass- the test class for which the configuration was mergedlocations- the merged context resource locationsclasses- the merged annotated classescontextInitializerClasses- the merged context initializer classesactiveProfiles- the merged active bean definition profilespropertySourceLocations- the mergedPropertySourcelocationspropertySourceProperties- the mergedPropertySourcepropertiescontextLoader- the resolvedContextLoadercacheAwareContextLoaderDelegate- a cache-aware context loader delegate with which to retrieve the parentApplicationContextparent- the parent configuration ornullif there is no parent- Since:
- 4.1
-
MergedContextConfiguration
@Deprecated(since="6.1") public MergedContextConfiguration(Class<?> testClass, @Nullable String[] locations, @Nullable Class<?>[] classes, @Nullable Set<Class<? extends ApplicationContextInitializer<?>>> contextInitializerClasses, @Nullable String[] activeProfiles, @Nullable String[] propertySourceLocations, @Nullable String[] propertySourceProperties, @Nullable Set<ContextCustomizer> contextCustomizers, ContextLoader contextLoader, @Nullable CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate, @Nullable MergedContextConfiguration parent) Deprecated.Create a newMergedContextConfigurationinstance for the supplied parameters.If a
nullvalue is supplied forlocations,classes,activeProfiles,propertySourceLocations, orpropertySourcePropertiesan empty array will be stored instead. If anullvalue is supplied forcontextInitializerClassesorcontextCustomizers, an empty set will be stored instead. Furthermore, active profiles will be sorted, and duplicate profiles will be removed.- Parameters:
testClass- the test class for which the configuration was mergedlocations- the merged context resource locationsclasses- the merged annotated classescontextInitializerClasses- the merged context initializer classesactiveProfiles- the merged active bean definition profilespropertySourceLocations- the mergedPropertySourcelocationspropertySourceProperties- the mergedPropertySourcepropertiescontextCustomizers- the context customizerscontextLoader- the resolvedContextLoadercacheAwareContextLoaderDelegate- a cache-aware context loader delegate with which to retrieve the parentApplicationContextparent- the parent configuration ornullif there is no parent- Since:
- 4.3
-
MergedContextConfiguration
public MergedContextConfiguration(Class<?> testClass, @Nullable String[] locations, @Nullable Class<?>[] classes, @Nullable Set<Class<? extends ApplicationContextInitializer<?>>> contextInitializerClasses, @Nullable String[] activeProfiles, List<PropertySourceDescriptor> propertySourceDescriptors, @Nullable String[] propertySourceProperties, @Nullable Set<ContextCustomizer> contextCustomizers, ContextLoader contextLoader, @Nullable CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate, @Nullable MergedContextConfiguration parent) Create a newMergedContextConfigurationinstance for the supplied parameters.If a
nullvalue is supplied forlocations,classes,activeProfiles, orpropertySourcePropertiesan empty array will be stored instead. If anullvalue is supplied forcontextInitializerClassesorcontextCustomizers, an empty set will be stored instead. Furthermore, active profiles will be sorted, and duplicate profiles will be removed.- Parameters:
testClass- the test class for which the configuration was mergedlocations- the merged context resource locationsclasses- the merged annotated classescontextInitializerClasses- the merged context initializer classesactiveProfiles- the merged active bean definition profilespropertySourceDescriptors- the merged property source descriptorspropertySourceProperties- the merged inlined propertiescontextCustomizers- the context customizerscontextLoader- the resolvedContextLoadercacheAwareContextLoaderDelegate- a cache-aware context loader delegate with which to retrieve the parentApplicationContextparent- the parent configuration ornullif there is no parent- Since:
- 6.1
-
-
Method Details
-
getTestClass
Get the test class associated with thisMergedContextConfiguration. -
getLocations
Get the merged resource locations forApplicationContextconfiguration files for the test class.Context resource locations typically represent XML configuration files or Groovy scripts.
-
getClasses
Get the merged annotated classes for the test class. -
hasLocations
public boolean hasLocations()Determine if thisMergedContextConfigurationinstance has path-based context resource locations.- Returns:
trueif thelocationsarray is not empty- Since:
- 4.0.4
- See Also:
-
hasClasses
public boolean hasClasses()Determine if thisMergedContextConfigurationinstance has class-based resources.- Returns:
trueif theclassesarray is not empty- Since:
- 4.0.4
- See Also:
-
hasResources
public boolean hasResources()Determine if thisMergedContextConfigurationinstance has either path-based context resource locations or class-based resources. -
getContextInitializerClasses
Get the mergedApplicationContextInitializerclasses for the test class. -
getActiveProfiles
Get the merged active bean definition profiles for the test class.- See Also:
-
getPropertySourceDescriptors
Get the merged descriptors for resource locations for testPropertySourcesfor the test class.Properties will be loaded into the
Environment's set ofPropertySources.- Since:
- 6.1
- See Also:
-
getPropertySourceLocations
Deprecated.since 6.1 in favor ofgetPropertySourceDescriptors()Get the merged resource locations of properties files for the test class.- See Also:
-
getPropertySourceProperties
Get the merged inlined properties for the test class.Properties will be loaded into the
Environment's set ofPropertySources.- See Also:
-
getContextCustomizers
Get the mergedContextCustomizersthat will be applied when the application context is loaded. -
getContextLoader
Get the resolvedContextLoaderfor the test class. -
getParent
Get theMergedContextConfigurationfor the parent application context in a context hierarchy.- Returns:
- the parent configuration or
nullif there is no parent - Since:
- 3.2.2
- See Also:
-
getParentApplicationContext
Get the parentApplicationContextfor the context defined by thisMergedContextConfigurationfrom the context cache.If the parent context has not yet been loaded, it will be loaded, stored in the cache, and then returned.
- Returns:
- the parent
ApplicationContextornullif there is no parent - Since:
- 3.2.2
- See Also:
-
equals
Determine if the supplied object is equal to thisMergedContextConfigurationinstance by comparing both objects' locations, annotated classes, context initializer classes, active profiles, property source descriptors, property source properties, context customizers, parents, and the fully qualified names of theirContextLoaders. -
hashCode
public int hashCode()Generate a unique hash code for all properties of thisMergedContextConfigurationexcluding the test class. -
toString
Provide a String representation of the test class, locations, annotated classes, context initializer classes, active profiles, property source descriptors, property source properties, context customizers, the name of theContextLoader, and the parent configuration. -
processStrings
-
nullSafeClassName
Generate a null-safeStringrepresentation of the suppliedContextLoaderbased solely on the fully qualified name of the loader or "null" if the supplied loader isnull.
-
MergedContextConfiguration(Class, String[], Class[], Set, String[], List, String[], Set, ContextLoader, CacheAwareContextLoaderDelegate, MergedContextConfiguration)