|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.test.context.support.AbstractContextLoader
public abstract class AbstractContextLoader
Abstract application context loader that provides a basis for all concrete
implementations of the ContextLoader
SPI. Provides a
Template Method based approach for processing
resource locations.
As of Spring 3.1, AbstractContextLoader
also provides a basis
for all concrete implementations of the SmartContextLoader
SPI. For
backwards compatibility with the ContextLoader
SPI,
#processContextConfiguration()
delegates to #processLocations()
.
generateDefaultLocations(java.lang.Class>)
,
modifyLocations(java.lang.Class>, java.lang.String...)
Constructor Summary | |
---|---|
AbstractContextLoader()
|
Method Summary | |
---|---|
protected String[] |
generateDefaultLocations(Class<?> clazz)
Generate the default classpath resource locations array based on the supplied class. |
protected abstract String |
getResourceSuffix()
Get the suffix to append to ApplicationContext resource
locations when generating default locations. |
protected boolean |
isGenerateDefaultLocations()
Determine whether or not default resource locations should be generated if the locations provided to
#processLocations() are null or empty. |
protected String[] |
modifyLocations(Class<?> clazz,
String... locations)
Generate a modified version of the supplied locations array and return it. |
void |
processContextConfiguration(ContextConfigurationAttributes configAttributes)
For backwards compatibility with the ContextLoader SPI, the
default implementation simply delegates to #processLocations() ,
passing it the declaring class and resource locations retrieved from the supplied
configuration attributes . |
String[] |
processLocations(Class<?> clazz,
String... locations)
If the supplied locations are null or
empty and isGenerateDefaultLocations() returns
true , default locations will be
generated for the specified
class and the configured
resource suffix ; otherwise, the supplied
locations will be modified if
necessary and returned. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.springframework.test.context.SmartContextLoader |
---|
loadContext |
Methods inherited from interface org.springframework.test.context.ContextLoader |
---|
loadContext |
Constructor Detail |
---|
public AbstractContextLoader()
Method Detail |
---|
public void processContextConfiguration(ContextConfigurationAttributes configAttributes)
ContextLoader
SPI, the
default implementation simply delegates to #processLocations()
,
passing it the declaring class
and resource locations
retrieved from the supplied
configuration attributes
. The
processed locations are then
set
in
the supplied configuration attributes.
Can be overridden in subclasses — for example, to process configuration classes instead of resource locations.
processContextConfiguration
in interface SmartContextLoader
configAttributes
- the context configuration attributes to process#processLocations()
public final String[] processLocations(Class<?> clazz, String... locations)
locations
are null
or
empty and isGenerateDefaultLocations()
returns
true
, default locations will be
generated
for the specified
class
and the configured
resource suffix
; otherwise, the supplied
locations
will be modified
if
necessary and returned.
processLocations
in interface ContextLoader
clazz
- the class with which the locations are associated: to be
used when generating default locationslocations
- the unmodified locations to use for loading the
application context (can be null
or empty)
isGenerateDefaultLocations()
,
#generateDefaultLocations()
,
#modifyLocations()
,
org.springframework.test.context.ContextLoader#processLocations()
,
#processContextConfiguration()
protected String[] generateDefaultLocations(Class<?> clazz)
For example, if the supplied class is com.example.MyTest
,
the generated locations will contain a single string with a value of
"classpath:/com/example/MyTest<suffix>
",
where <suffix>
is the value of the
resource suffix
string.
As of Spring 3.1, the implementation of this method adheres to the
contract defined in the SmartContextLoader
SPI. Specifically,
this method will preemptively verify that the generated default
location actually exists. If it does not exist, this method will log a
warning and return an empty array.
Subclasses can override this method to implement a different default location generation strategy.
clazz
- the class for which the default locations are to be generated
getResourceSuffix()
protected String[] modifyLocations(Class<?> clazz, String... locations)
A plain path — for example, "context.xml" — will
be treated as a classpath resource that is relative to the package in which
the specified class is defined. A path starting with a slash is treated
as an absolute classpath location, for example:
"/org/springframework/whatever/foo.xml". A path which
references a URL (e.g., a path prefixed with
classpath:
,
file:
, http:
,
etc.) will be added to the results unchanged.
Subclasses can override this method to implement a different location modification strategy.
clazz
- the class with which the locations are associatedlocations
- the resource locations to be modified
protected boolean isGenerateDefaultLocations()
locations
provided to
#processLocations()
are null
or empty.
As of Spring 3.1, the semantics of this method have been overloaded
to include detection of either default resource locations or default
configuration classes. Consequently, this method can also be used to
determine whether or not default configuration classes should be
detected if the classes
present in the
configuration attributes
supplied
to #processContextConfiguration()
are null
or empty.
Can be overridden by subclasses to change the default behavior.
true
by defaultprotected abstract String getResourceSuffix()
ApplicationContext
resource
locations when generating default locations.
Must be implemented by subclasses.
null
or empty#generateDefaultLocations()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |