|
Spring for Apache Hadoop | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.yarn.test.context.YarnDelegatingSmartContextLoader
public class YarnDelegatingSmartContextLoader
DelegatingSmartContextLoader
is an implementation of the SmartContextLoader
SPI that delegates to a set of candidate SmartContextLoaders (i.e.,
YarnClusterInjectingXmlContextLoader
and YarnClusterInjectingAnnotationConfigContextLoader
) to
determine which context loader is appropriate for a given test classes configuration.
Each candidate is given a chance to process
the
ContextConfigurationAttributes
for each class in the test class hierarchy that
is annotated with @ContextConfiguration
, and the candidate
that supports the merged, processed configuration will be used to actually
load
the context.
Placing an empty @ContextConfiguration
annotation on a test class signals
that default resource locations (i.e., XML configuration files) or default
configuration classes
should be detected. Furthermore, if a specific ContextLoader
or
SmartContextLoader
is not explicitly declared via
@ContextConfiguration
, DelegatingSmartContextLoader
will be used as
the default loader, thus providing automatic support for either XML configuration
files or configuration classes, but not both simultaneously.
NOTE: This is a copy from a spring-test order to add custom yarn specific testing logic.
SmartContextLoader
,
YarnClusterInjectingXmlContextLoader
,
YarnClusterInjectingAnnotationConfigContextLoader
Constructor Summary | |
---|---|
YarnDelegatingSmartContextLoader()
|
Method Summary | |
---|---|
org.springframework.context.ApplicationContext |
loadContext(org.springframework.test.context.MergedContextConfiguration mergedConfig)
Delegates to an appropriate candidate SmartContextLoader to load
an ApplicationContext . |
org.springframework.context.ApplicationContext |
loadContext(java.lang.String... locations)
DelegatingSmartContextLoader does not support the
ContextLoader.loadContext(String...) method. |
void |
processContextConfiguration(org.springframework.test.context.ContextConfigurationAttributes configAttributes)
Delegates to candidate SmartContextLoaders to process the supplied
ContextConfigurationAttributes . |
java.lang.String[] |
processLocations(java.lang.Class<?> clazz,
java.lang.String... locations)
DelegatingSmartContextLoader does not support the
ContextLoader.processLocations(Class, String...) method. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public YarnDelegatingSmartContextLoader()
Method Detail |
---|
public void processContextConfiguration(org.springframework.test.context.ContextConfigurationAttributes configAttributes)
SmartContextLoaders
to process the supplied
ContextConfigurationAttributes
.
Delegation is based on explicit knowledge of the implementations of
YarnClusterInjectingXmlContextLoader
and YarnClusterInjectingAnnotationConfigContextLoader
.
Specifically, the delegation algorithm is as follows:
ContextConfigurationAttributes
are not empty, the appropriate
candidate loader will be allowed to process the configuration as is,
without any checks for detection of defaults.YarnClusterInjectingXmlContextLoader
will be allowed to process
the configuration in order to detect default resource locations. If
YarnClusterInjectingXmlContextLoader
detects default resource locations,
an info
message will be logged.YarnClusterInjectingAnnotationConfigContextLoader
will be allowed to
process the configuration in order to detect default configuration classes.
If YarnClusterInjectingAnnotationConfigContextLoader
detects default configuration
classes, an info
message will be logged.
processContextConfiguration
in interface org.springframework.test.context.SmartContextLoader
configAttributes
- the context configuration attributes to process
java.lang.IllegalArgumentException
- if the supplied configuration attributes are
null
, or if the supplied configuration attributes include both
resource locations and configuration classes
java.lang.IllegalStateException
- if YarnClusterInjectingXmlContextLoader
detects default
configuration classes; if YarnClusterInjectingAnnotationConfigContextLoader
detects default
resource locations; if neither candidate loader detects defaults for the supplied
context configuration; or if both candidate loaders detect defaults for the
supplied context configurationpublic org.springframework.context.ApplicationContext loadContext(org.springframework.test.context.MergedContextConfiguration mergedConfig) throws java.lang.Exception
SmartContextLoader
to load
an ApplicationContext
.
Delegation is based on explicit knowledge of the implementations of
YarnClusterInjectingXmlContextLoader
and YarnClusterInjectingAnnotationConfigContextLoader
.
Specifically, the delegation algorithm is as follows:
MergedContextConfiguration
are not empty and the configuration classes are empty,
YarnClusterInjectingXmlContextLoader
will load the ApplicationContext
.MergedContextConfiguration
are not empty and the resource locations are empty,
YarnClusterInjectingAnnotationConfigContextLoader
will load the ApplicationContext
.
loadContext
in interface org.springframework.test.context.SmartContextLoader
mergedConfig
- the merged context configuration to use to load the application context
java.lang.IllegalArgumentException
- if the supplied merged configuration is null
java.lang.IllegalStateException
- if neither candidate loader is capable of loading an
ApplicationContext
from the supplied merged context configuration
java.lang.Exception
public java.lang.String[] processLocations(java.lang.Class<?> clazz, java.lang.String... locations)
DelegatingSmartContextLoader
does not support the
ContextLoader.processLocations(Class, String...)
method. Call
processContextConfiguration(ContextConfigurationAttributes)
instead.
processLocations
in interface org.springframework.test.context.ContextLoader
java.lang.UnsupportedOperationException
public org.springframework.context.ApplicationContext loadContext(java.lang.String... locations) throws java.lang.Exception
DelegatingSmartContextLoader
does not support the
ContextLoader.loadContext(String...)
method. Call
loadContext(MergedContextConfiguration)
instead.
loadContext
in interface org.springframework.test.context.ContextLoader
java.lang.UnsupportedOperationException
java.lang.Exception
|
Spring for Apache Hadoop | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |