[SPR-5713] Added 'value' alias for @ContextConfiguration's 'locations' attribute.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1088 50f2f4bb-b051-0410-bef5-90022cba6387
This commit is contained in:
Sam Brannen
2009-05-05 07:37:14 +00:00
parent 41b5e5d8b4
commit 545a704833
3 changed files with 35 additions and 5 deletions
@@ -45,6 +45,13 @@ public @interface ContextConfiguration {
*/
String[] locations() default {};
/**
* Alias for {@link #locations()}.
*
* @since 3.0
*/
String[] value() default {};
/**
* Whether or not {@link #locations() resource locations} from superclasses
* should be <em>inherited</em>.
@@ -184,7 +184,25 @@ public class TestContext extends AttributeAccessorSupport {
logger.trace("Retrieved @ContextConfiguration [" + contextConfiguration + "] for declaring class ["
+ declaringClass + "]");
}
String[] locations = contextLoader.processLocations(declaringClass, contextConfiguration.locations());
String[] valueLocations = contextConfiguration.value();
String[] locations = contextConfiguration.locations();
if (!ObjectUtils.isEmpty(valueLocations) && !ObjectUtils.isEmpty(locations)) {
String msg = "Test class ["
+ declaringClass
+ "] has been configured with @ContextConfiguration's 'value' ["
+ ObjectUtils.nullSafeToString(valueLocations)
+ "] and 'locations' ["
+ ObjectUtils.nullSafeToString(locations)
+ "] attributes. Only one declaration of resource locations is permitted per @ContextConfiguration annotation.";
logger.error(msg);
throw new IllegalStateException(msg);
}
else if (!ObjectUtils.isEmpty(valueLocations)) {
locations = valueLocations;
}
locations = contextLoader.processLocations(declaringClass, locations);
locationsList.addAll(0, Arrays.<String> asList(locations));
declaringClass = contextConfiguration.inheritLocations() ? AnnotationUtils.findAnnotationDeclaringClass(
annotationType, declaringClass.getSuperclass()) : null;