diff --git a/spring-test/src/main/java/org/springframework/test/context/ContextLoaderUtils.java b/spring-test/src/main/java/org/springframework/test/context/ContextLoaderUtils.java
index f8ce39e0fac..01f368c0113 100644
--- a/spring-test/src/main/java/org/springframework/test/context/ContextLoaderUtils.java
+++ b/spring-test/src/main/java/org/springframework/test/context/ContextLoaderUtils.java
@@ -57,7 +57,7 @@ abstract class ContextLoaderUtils {
private static final Log logger = LogFactory.getLog(ContextLoaderUtils.class);
private static final String DEFAULT_CONTEXT_LOADER_CLASS_NAME = "org.springframework.test.context.support.DelegatingSmartContextLoader";
- private static final String DEFAULT_WEB_CONTEXT_LOADER_CLASS_NAME = "org.springframework.test.context.support.WebDelegatingSmartContextLoader";
+ private static final String DEFAULT_WEB_CONTEXT_LOADER_CLASS_NAME = "org.springframework.test.context.web.WebDelegatingSmartContextLoader";
private static final String WEB_APP_CONFIGURATION_CLASS_NAME = "org.springframework.test.context.web.WebAppConfiguration";
private static final String WEB_MERGED_CONTEXT_CONFIGURATION_CLASS_NAME = "org.springframework.test.context.web.WebMergedContextConfiguration";
diff --git a/spring-test/src/main/java/org/springframework/test/context/support/AbstractDelegatingSmartContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/support/AbstractDelegatingSmartContextLoader.java
index 5a05a24c4ed..d8116c000df 100644
--- a/spring-test/src/main/java/org/springframework/test/context/support/AbstractDelegatingSmartContextLoader.java
+++ b/spring-test/src/main/java/org/springframework/test/context/support/AbstractDelegatingSmartContextLoader.java
@@ -63,7 +63,7 @@ import org.springframework.util.ObjectUtils;
* @since 3.2
* @see SmartContextLoader
*/
-abstract class AbstractDelegatingSmartContextLoader implements SmartContextLoader {
+public abstract class AbstractDelegatingSmartContextLoader implements SmartContextLoader {
private static final Log logger = LogFactory.getLog(AbstractDelegatingSmartContextLoader.class);
diff --git a/spring-test/src/main/java/org/springframework/test/context/support/AnnotationConfigContextLoaderUtils.java b/spring-test/src/main/java/org/springframework/test/context/support/AnnotationConfigContextLoaderUtils.java
index f539869ab8a..78c60e9bf5d 100644
--- a/spring-test/src/main/java/org/springframework/test/context/support/AnnotationConfigContextLoaderUtils.java
+++ b/spring-test/src/main/java/org/springframework/test/context/support/AnnotationConfigContextLoaderUtils.java
@@ -31,7 +31,7 @@ import org.springframework.util.Assert;
* @author Sam Brannen
* @since 3.2
*/
-abstract class AnnotationConfigContextLoaderUtils {
+public abstract class AnnotationConfigContextLoaderUtils {
private static final Log logger = LogFactory.getLog(AnnotationConfigContextLoaderUtils.class);
@@ -86,7 +86,7 @@ abstract class AnnotationConfigContextLoaderUtils {
* @return an array of default configuration classes, potentially empty but
* never null
*/
- static Class>[] detectDefaultConfigurationClasses(Class> declaringClass) {
+ public static Class>[] detectDefaultConfigurationClasses(Class> declaringClass) {
Assert.notNull(declaringClass, "Declaring class must not be null");
List> configClasses = new ArrayList>();
diff --git a/spring-test/src/main/java/org/springframework/test/context/support/AbstractGenericWebContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/web/AbstractGenericWebContextLoader.java
similarity index 97%
rename from spring-test/src/main/java/org/springframework/test/context/support/AbstractGenericWebContextLoader.java
rename to spring-test/src/main/java/org/springframework/test/context/web/AbstractGenericWebContextLoader.java
index 5b34d7aa6b7..42bdc7ee462 100644
--- a/spring-test/src/main/java/org/springframework/test/context/support/AbstractGenericWebContextLoader.java
+++ b/spring-test/src/main/java/org/springframework/test/context/web/AbstractGenericWebContextLoader.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.test.context.support;
+package org.springframework.test.context.web;
import javax.servlet.ServletContext;
@@ -29,7 +29,7 @@ import org.springframework.core.io.FileSystemResourceLoader;
import org.springframework.core.io.ResourceLoader;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.MergedContextConfiguration;
-import org.springframework.test.context.web.WebMergedContextConfiguration;
+import org.springframework.test.context.support.AbstractContextLoader;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.GenericWebApplicationContext;
diff --git a/spring-test/src/main/java/org/springframework/test/context/support/AnnotationConfigWebContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/web/AnnotationConfigWebContextLoader.java
similarity index 96%
rename from spring-test/src/main/java/org/springframework/test/context/support/AnnotationConfigWebContextLoader.java
rename to spring-test/src/main/java/org/springframework/test/context/web/AnnotationConfigWebContextLoader.java
index ecb69c88410..71621b1ea8b 100644
--- a/spring-test/src/main/java/org/springframework/test/context/support/AnnotationConfigWebContextLoader.java
+++ b/spring-test/src/main/java/org/springframework/test/context/web/AnnotationConfigWebContextLoader.java
@@ -14,13 +14,14 @@
* limitations under the License.
*/
-package org.springframework.test.context.support;
+package org.springframework.test.context.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.annotation.AnnotatedBeanDefinitionReader;
import org.springframework.test.context.ContextConfigurationAttributes;
-import org.springframework.test.context.web.WebMergedContextConfiguration;
+import org.springframework.test.context.support.AbstractContextLoader;
+import org.springframework.test.context.support.AnnotationConfigContextLoaderUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.support.GenericWebApplicationContext;
diff --git a/spring-test/src/main/java/org/springframework/test/context/support/XmlWebContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/web/GenericXmlWebContextLoader.java
similarity index 72%
rename from spring-test/src/main/java/org/springframework/test/context/support/XmlWebContextLoader.java
rename to spring-test/src/main/java/org/springframework/test/context/web/GenericXmlWebContextLoader.java
index 154ecd485af..23146df624a 100644
--- a/spring-test/src/main/java/org/springframework/test/context/support/XmlWebContextLoader.java
+++ b/spring-test/src/main/java/org/springframework/test/context/web/GenericXmlWebContextLoader.java
@@ -14,31 +14,23 @@
* limitations under the License.
*/
-package org.springframework.test.context.support;
+package org.springframework.test.context.web;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.test.context.web.WebMergedContextConfiguration;
import org.springframework.web.context.support.GenericWebApplicationContext;
/**
- * TODO [SPR-9864] Document XmlWebContextLoader.
+ * TODO [SPR-9864] Document GenericXmlWebContextLoader.
*
* @author Sam Brannen
* @since 3.2
*/
-public class XmlWebContextLoader extends AbstractGenericWebContextLoader {
-
- /**
- * Returns "-context.xml".
- */
- protected String getResourceSuffix() {
- return "-context.xml";
- }
+public class GenericXmlWebContextLoader extends AbstractGenericWebContextLoader {
/**
* TODO [SPR-9864] Document overridden loadBeanDefinitions().
*
- * @see org.springframework.test.context.support.AbstractGenericWebContextLoader#loadBeanDefinitions(org.springframework.web.context.support.GenericWebApplicationContext, org.springframework.test.context.web.WebMergedContextConfiguration)
+ * @see org.springframework.test.context.web.AbstractGenericWebContextLoader#loadBeanDefinitions(org.springframework.web.context.support.GenericWebApplicationContext, org.springframework.test.context.web.WebMergedContextConfiguration)
*/
@Override
protected void loadBeanDefinitions(GenericWebApplicationContext context,
@@ -46,4 +38,11 @@ public class XmlWebContextLoader extends AbstractGenericWebContextLoader {
new XmlBeanDefinitionReader(context).loadBeanDefinitions(webMergedConfig.getLocations());
}
+ /**
+ * Returns "-context.xml".
+ */
+ protected String getResourceSuffix() {
+ return "-context.xml";
+ }
+
}
diff --git a/spring-test/src/main/java/org/springframework/test/context/web/ServletTestExecutionListener.java b/spring-test/src/main/java/org/springframework/test/context/web/ServletTestExecutionListener.java
index a22b465915d..b5f7549e8f7 100644
--- a/spring-test/src/main/java/org/springframework/test/context/web/ServletTestExecutionListener.java
+++ b/spring-test/src/main/java/org/springframework/test/context/web/ServletTestExecutionListener.java
@@ -20,7 +20,6 @@ import javax.servlet.ServletContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
@@ -29,6 +28,7 @@ import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.TestContext;
import org.springframework.test.context.TestExecutionListener;
+import org.springframework.test.context.support.AbstractTestExecutionListener;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletWebRequest;
@@ -39,21 +39,11 @@ import org.springframework.web.context.request.ServletWebRequest;
* @author Sam Brannen
* @since 3.2
*/
-public class ServletTestExecutionListener implements TestExecutionListener {
+public class ServletTestExecutionListener extends AbstractTestExecutionListener {
private static final Log logger = LogFactory.getLog(ServletTestExecutionListener.class);
- /**
- * The default implementation is empty. Can be overridden by
- * subclasses as necessary.
- *
- * @see TestExecutionListener#beforeTestClass(TestContext)
- */
- public void beforeTestClass(TestContext testContext) throws Exception {
- /* no-op */
- }
-
/**
* TODO [SPR-9864] Document overridden prepareTestInstance().
*
@@ -84,21 +74,10 @@ public class ServletTestExecutionListener implements TestExecutionListener {
RequestContextHolder.resetRequestAttributes();
}
- /**
- * The default implementation is empty. Can be overridden by
- * subclasses as necessary.
- *
- * @see TestExecutionListener#afterTestClass(TestContext)
- */
- public void afterTestClass(TestContext testContext) throws Exception {
- /* no-op */
- }
-
/**
* TODO [SPR-9864] Document setUpRequestContext().
*
* @param testContext
- * @param servletContext
*/
private void setUpRequestContextIfNecessary(TestContext testContext) {
diff --git a/spring-test/src/main/java/org/springframework/test/context/support/WebDelegatingSmartContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/web/WebDelegatingSmartContextLoader.java
similarity index 80%
rename from spring-test/src/main/java/org/springframework/test/context/support/WebDelegatingSmartContextLoader.java
rename to spring-test/src/main/java/org/springframework/test/context/web/WebDelegatingSmartContextLoader.java
index 71f126fdbfd..6e0be682e80 100644
--- a/spring-test/src/main/java/org/springframework/test/context/support/WebDelegatingSmartContextLoader.java
+++ b/spring-test/src/main/java/org/springframework/test/context/web/WebDelegatingSmartContextLoader.java
@@ -14,25 +14,26 @@
* limitations under the License.
*/
-package org.springframework.test.context.support;
+package org.springframework.test.context.web;
import org.springframework.test.context.SmartContextLoader;
+import org.springframework.test.context.support.AbstractDelegatingSmartContextLoader;
/**
* {@code WebDelegatingSmartContextLoader} is a concrete implementation of
- * {@link AbstractDelegatingSmartContextLoader} that delegates to an
- * {@link XmlWebContextLoader} and an {@link AnnotationConfigWebContextLoader}.
+ * {@link AbstractDelegatingSmartContextLoader} that delegates to a
+ * {@link GenericXmlWebContextLoader} and an {@link AnnotationConfigWebContextLoader}.
*
* @author Sam Brannen
* @since 3.2
* @see SmartContextLoader
* @see AbstractDelegatingSmartContextLoader
- * @see XmlWebContextLoader
+ * @see GenericXmlWebContextLoader
* @see AnnotationConfigWebContextLoader
*/
public class WebDelegatingSmartContextLoader extends AbstractDelegatingSmartContextLoader {
- private final SmartContextLoader xmlLoader = new XmlWebContextLoader();
+ private final SmartContextLoader xmlLoader = new GenericXmlWebContextLoader();
private final SmartContextLoader annotationConfigLoader = new AnnotationConfigWebContextLoader();
diff --git a/spring-test/src/main/java/org/springframework/test/context/web/package-info.java b/spring-test/src/main/java/org/springframework/test/context/web/package-info.java
new file mode 100644
index 00000000000..ebf0020303b
--- /dev/null
+++ b/spring-test/src/main/java/org/springframework/test/context/web/package-info.java
@@ -0,0 +1,6 @@
+/**
+ * Web support classes for the Spring TestContext Framework.
+ */
+
+package org.springframework.test.context.web;
+