public class MergedContextConfiguration extends Object implements Serializable
MergedContextConfiguration encapsulates the merged
context configuration declared on a test class and all of its superclasses
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 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.
ContextConfiguration,
ContextHierarchy,
ActiveProfiles,
TestPropertySource,
ContextConfigurationAttributes,
SmartContextLoader.loadContext(MergedContextConfiguration),
Serialized Form| Constructor and Description |
|---|
MergedContextConfiguration(Class<?> testClass,
String[] locations,
Class<?>[] classes,
Set<Class<? extends org.springframework.context.ApplicationContextInitializer<? extends org.springframework.context.ConfigurableApplicationContext>>> contextInitializerClasses,
String[] activeProfiles,
ContextLoader contextLoader)
Create a new
MergedContextConfiguration instance for the
supplied parameters. |
MergedContextConfiguration(Class<?> testClass,
String[] locations,
Class<?>[] classes,
Set<Class<? extends org.springframework.context.ApplicationContextInitializer<? extends org.springframework.context.ConfigurableApplicationContext>>> contextInitializerClasses,
String[] activeProfiles,
ContextLoader contextLoader,
CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate,
MergedContextConfiguration parent)
Create a new
MergedContextConfiguration instance for the
supplied parameters. |
MergedContextConfiguration(Class<?> testClass,
String[] locations,
Class<?>[] classes,
Set<Class<? extends org.springframework.context.ApplicationContextInitializer<? extends org.springframework.context.ConfigurableApplicationContext>>> contextInitializerClasses,
String[] activeProfiles,
String[] propertySourceLocations,
String[] propertySourceProperties,
ContextLoader contextLoader,
CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate,
MergedContextConfiguration parent)
Create a new
MergedContextConfiguration instance for the
supplied parameters. |
MergedContextConfiguration(Class<?> testClass,
String[] locations,
Class<?>[] classes,
String[] activeProfiles,
ContextLoader contextLoader)
Create a new
MergedContextConfiguration instance for the
supplied parameters. |
MergedContextConfiguration(MergedContextConfiguration mergedConfig)
Create a new
MergedContextConfiguration instance by copying
all fields from the supplied MergedContextConfiguration. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object other)
Determine if the supplied object is equal to this
MergedContextConfiguration
instance by comparing both object's locations,
annotated classes,
context initializer classes,
active profiles,
property source locations,
property source properties,
parents, and the fully qualified names of their
ContextLoaders. |
String[] |
getActiveProfiles()
Get the merged active bean definition profiles for the
test class.
|
Class<?>[] |
getClasses()
Get the merged annotated classes for the test class.
|
Set<Class<? extends org.springframework.context.ApplicationContextInitializer<? extends org.springframework.context.ConfigurableApplicationContext>>> |
getContextInitializerClasses()
Get the merged
ApplicationContextInitializer classes for the
test class. |
ContextLoader |
getContextLoader()
Get the resolved
ContextLoader for the test class. |
String[] |
getLocations()
Get the merged resource locations for
ApplicationContext
configuration files for the test class. |
MergedContextConfiguration |
getParent()
Get the
MergedContextConfiguration for the parent application context
in a context hierarchy. |
org.springframework.context.ApplicationContext |
getParentApplicationContext()
Get the parent
ApplicationContext for the context defined by this
MergedContextConfiguration from the context cache. |
String[] |
getPropertySourceLocations()
Get the merged resource locations for test
PropertySources
for the test class. |
String[] |
getPropertySourceProperties()
Get the merged test
PropertySource properties for the
test class. |
Class<?> |
getTestClass()
Get the test class associated with this
MergedContextConfiguration. |
boolean |
hasClasses()
Determine if this
MergedContextConfiguration instance has
class-based resources. |
int |
hashCode()
Generate a unique hash code for all properties of this
MergedContextConfiguration excluding the
test class. |
boolean |
hasLocations()
Determine if this
MergedContextConfiguration instance has
path-based context resource locations. |
boolean |
hasResources()
Determine if this
MergedContextConfiguration instance has
either path-based context resource locations or class-based resources. |
protected static String |
nullSafeToString(ContextLoader contextLoader)
Generate a null-safe
String representation of the supplied
ContextLoader based solely on the fully qualified name of the
loader or "null" if the supplied loaded is null. |
String |
toString()
Provide a String representation of the test class,
locations, annotated classes,
context initializer classes,
active profiles,
property source locations,
property source properties,
the name of the
ContextLoader, and the
parent configuration. |
public MergedContextConfiguration(Class<?> testClass, String[] locations, Class<?>[] classes, String[] activeProfiles, ContextLoader contextLoader)
MergedContextConfiguration instance for the
supplied 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 resolved ContextLoaderpublic MergedContextConfiguration(Class<?> testClass, String[] locations, Class<?>[] classes, Set<Class<? extends org.springframework.context.ApplicationContextInitializer<? extends org.springframework.context.ConfigurableApplicationContext>>> contextInitializerClasses, String[] activeProfiles, ContextLoader contextLoader)
MergedContextConfiguration instance for the
supplied 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 resolved ContextLoaderMergedContextConfiguration(Class, String[], Class[], Set, String[], ContextLoader, CacheAwareContextLoaderDelegate, MergedContextConfiguration)public MergedContextConfiguration(Class<?> testClass, String[] locations, Class<?>[] classes, Set<Class<? extends org.springframework.context.ApplicationContextInitializer<? extends org.springframework.context.ConfigurableApplicationContext>>> contextInitializerClasses, String[] activeProfiles, ContextLoader contextLoader, CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate, MergedContextConfiguration parent)
MergedContextConfiguration instance for the
supplied 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 resolved ContextLoadercacheAwareContextLoaderDelegate - a cache-aware context loader
delegate with which to retrieve the parent contextparent - the parent configuration or null if there is no parentpublic MergedContextConfiguration(MergedContextConfiguration mergedConfig)
MergedContextConfiguration instance by copying
all fields from the supplied MergedContextConfiguration.public MergedContextConfiguration(Class<?> testClass, String[] locations, Class<?>[] classes, Set<Class<? extends org.springframework.context.ApplicationContextInitializer<? extends org.springframework.context.ConfigurableApplicationContext>>> contextInitializerClasses, String[] activeProfiles, String[] propertySourceLocations, String[] propertySourceProperties, ContextLoader contextLoader, CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate, MergedContextConfiguration parent)
MergedContextConfiguration instance for the
supplied parameters.
If a null value is supplied for locations,
classes, activeProfiles, propertySourceLocations,
or propertySourceProperties an empty array will be stored instead.
If a null value is supplied for the
contextInitializerClasses an empty set will be stored instead.
Furthermore, active profiles will be sorted, and duplicate profiles
will be removed.
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 merged PropertySource locationspropertySourceProperties - the merged PropertySource propertiescontextLoader - the resolved ContextLoadercacheAwareContextLoaderDelegate - a cache-aware context loader
delegate with which to retrieve the parent contextparent - the parent configuration or null if there is no parentprotected static String nullSafeToString(ContextLoader contextLoader)
String representation of the supplied
ContextLoader based solely on the fully qualified name of the
loader or "null" if the supplied loaded is null.public Class<?> getTestClass()
MergedContextConfiguration.public String[] getLocations()
ApplicationContext
configuration files for the test class.
Context resource locations typically represent XML configuration files or Groovy scripts.
public Class<?>[] getClasses()
public boolean hasLocations()
MergedContextConfiguration instance has
path-based context resource locations.true if the locations array is not emptyhasResources(),
hasClasses()public boolean hasClasses()
MergedContextConfiguration instance has
class-based resources.true if the classes array is not emptyhasResources(),
hasLocations()public boolean hasResources()
MergedContextConfiguration instance has
either path-based context resource locations or class-based resources.true if either the locations
or the classes array is not emptyhasLocations(),
hasClasses()public Set<Class<? extends org.springframework.context.ApplicationContextInitializer<? extends org.springframework.context.ConfigurableApplicationContext>>> getContextInitializerClasses()
ApplicationContextInitializer classes for the
test class.public String[] getActiveProfiles()
ActiveProfilespublic String[] getPropertySourceLocations()
PropertySources
for the test class.TestPropertySource.locations(),
Propertiespublic String[] getPropertySourceProperties()
PropertySource properties for the
test class.
Properties will be loaded into the Environment's set of
PropertySources.
TestPropertySource.properties(),
Propertiespublic ContextLoader getContextLoader()
ContextLoader for the test class.public MergedContextConfiguration getParent()
MergedContextConfiguration for the parent application context
in a context hierarchy.null if there is no parentgetParentApplicationContext()public org.springframework.context.ApplicationContext getParentApplicationContext()
ApplicationContext for the context defined by this
MergedContextConfiguration from the context cache.
If the parent context has not yet been loaded, it will be loaded, stored in the cache, and then returned.
ApplicationContext or null if there is no parentgetParent()public boolean equals(Object other)
MergedContextConfiguration
instance by comparing both object's locations,
annotated classes,
context initializer classes,
active profiles,
property source locations,
property source properties,
parents, and the fully qualified names of their
ContextLoaders.public int hashCode()
MergedContextConfiguration excluding the
test class.public String toString()
ContextLoader, and the
parent configuration.